|
|
@@ -1,34 +1,36 @@ |
|
|
|
package me.chanjar.weixin.common.util; |
|
|
|
package me.chanjar.weixin.common.api; |
|
|
|
|
|
|
|
import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker; |
|
|
|
import org.testng.*; |
|
|
|
import org.testng.annotations.*; |
|
|
|
import org.testng.Assert; |
|
|
|
import org.testng.annotations.Test; |
|
|
|
|
|
|
|
import static org.testng.Assert.assertFalse; |
|
|
|
import static org.testng.Assert.assertTrue; |
|
|
|
|
|
|
|
@Test |
|
|
|
public class WxMessageInMemoryDuplicateCheckerTest { |
|
|
|
private WxMessageInMemoryDuplicateChecker checker = new WxMessageInMemoryDuplicateChecker(2000l, 1000l); |
|
|
|
|
|
|
|
public void test() throws InterruptedException { |
|
|
|
Long[] msgIds = new Long[]{1l, 2l, 3l, 4l, 5l, 6l, 7l, 8l}; |
|
|
|
WxMessageInMemoryDuplicateChecker checker = new WxMessageInMemoryDuplicateChecker(2000l, 1000l); |
|
|
|
|
|
|
|
// 第一次检查 |
|
|
|
for (Long msgId : msgIds) { |
|
|
|
boolean result = checker.isDuplicate(String.valueOf(msgId)); |
|
|
|
Assert.assertFalse(result); |
|
|
|
assertFalse(result); |
|
|
|
} |
|
|
|
|
|
|
|
// 过1秒再检查 |
|
|
|
Thread.sleep(1000l); |
|
|
|
for (Long msgId : msgIds) { |
|
|
|
boolean result = checker.isDuplicate(String.valueOf(msgId)); |
|
|
|
Assert.assertTrue(result); |
|
|
|
assertTrue(result); |
|
|
|
} |
|
|
|
|
|
|
|
// 过1.5秒再检查 |
|
|
|
Thread.sleep(1500l); |
|
|
|
for (Long msgId : msgIds) { |
|
|
|
boolean result = checker.isDuplicate(String.valueOf(msgId)); |
|
|
|
Assert.assertFalse(result); |
|
|
|
assertFalse(result); |
|
|
|
} |
|
|
|
|
|
|
|
} |