diff --git a/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/AllLimitedTest.java b/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/AllLimitedTest.java new file mode 100644 index 0000000..643a5ed --- /dev/null +++ b/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/AllLimitedTest.java @@ -0,0 +1,39 @@ +package com.wunong.smart.rate.limiter.core.limiter; + +import com.wunong.smart.rate.limiter.core.factory.RateLimiterFactory; +import com.wunong.smart.rate.limiter.core.factory.impl.DefaultRateLimiterFactory; +import com.wunong.smart.rate.limiter.core.support.GuavaRateLimiter; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * @author created by zealot.zt + */ +public class AllLimitedTest { + + private static final int POOL_SIZE = 2; + private static ExecutorService service = Executors.newFixedThreadPool(POOL_SIZE); + private static RateLimiterFactory factory = new DefaultRateLimiterFactory(); + + public static final int qps = 0; + public static final String TEST_PREFIX_KEY = "test_"; + private static final int KEY_SIZE = 4; + + static { + for (int i = 0; i < KEY_SIZE; i++) { + factory.register(getKey(i), GuavaRateLimiter.create(qps)); + } + } + + private static String getKey(int i) { + return TEST_PREFIX_KEY + i; + } + + public static void main(String[] args) { + for (int i = 0; i < POOL_SIZE; i++) { + service.submit(new LimierTask(factory, getKey(i % KEY_SIZE))); + } + } + +} diff --git a/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/OneLimiterTest.java b/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/OneLimiterTest.java index 0e244f6..0eb2aea 100644 --- a/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/OneLimiterTest.java +++ b/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/limiter/OneLimiterTest.java @@ -22,7 +22,7 @@ public class OneLimiterTest { static { for (int i = 0; i < KEY_SIZE; i++) { - factory.register(getKey(i), new GuavaRateLimiter(10)); + factory.register(getKey(i), GuavaRateLimiter.create(10)); } } diff --git a/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/support/KeyResolverFactoryTest.java b/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/support/KeyResolverFactoryTest.java new file mode 100644 index 0000000..75684bc --- /dev/null +++ b/smart-rate-limiter/smart-rate-limiter-core/src/test/java/com/wunong/smart/rate/limiter/core/support/KeyResolverFactoryTest.java @@ -0,0 +1,34 @@ +package com.wunong.smart.rate.limiter.core.support; + +import com.wunong.smart.rate.limiter.core.api.KeyResolver; +import com.wunong.smart.rate.limiter.core.factory.KeyResolverFactory; +import com.wunong.smart.rate.limiter.core.factory.impl.DefaultKeyResolverFactory; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author created by zealot.zt + */ +public class KeyResolverFactoryTest { + + private final KeyResolverFactory factory = new DefaultKeyResolverFactory(); + + @Test + public void testRegister() { + String key = "testRegister"; + KeyResolver resolver = event -> key; + Assert.assertNull(factory.get(resolver.getClass())); + factory.register(resolver); + Assert.assertNotNull(factory.get(resolver.getClass())); + } + + @Test + public void testRegisterNone() { + String key = "testRegister"; + KeyResolver resolver = event -> key; + Assert.assertNull(factory.get(KeyResolver.class)); + factory.register(resolver); + Assert.assertNull(factory.get(KeyResolver.class)); + } + +}