package com.netflix.astyanax.util; import junit.framework.Assert; import org.junit.Test; import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; import com.netflix.astyanax.connectionpool.impl.SimpleRateLimiterImpl; public class RateLimiterTest { @Test public void testRateLimiter() { ConnectionPoolConfigurationImpl config = new ConnectionPoolConfigurationImpl( "cluster_keyspace"); config.setConnectionLimiterMaxPendingCount(10); config.setConnectionLimiterWindowSize(1000); SimpleRateLimiterImpl limit = new SimpleRateLimiterImpl(config); int time = 0; boolean result; for (int i = 0; i < 10; i++) { time += 10; result = limit.check(time); Assert.assertTrue(result); } result = limit.check(time + 10); Assert.assertFalse(result); result = limit.check(time + 1000); Assert.assertTrue(result); } @Test public void testRateLimiter2() { ConnectionPoolConfigurationImpl config = new ConnectionPoolConfigurationImpl( "cluster_keyspace"); config.setConnectionLimiterMaxPendingCount(10); config.setConnectionLimiterWindowSize(1000); SimpleRateLimiterImpl limit = new SimpleRateLimiterImpl(config); int time = 0; int interval = 100; for (int i = 0; i < 10; i++) { time += interval; boolean result = limit.check(time); Assert.assertTrue(result); } boolean result = limit.check(time + interval); Assert.assertTrue(result); } }