Skip to content

Commit

Permalink
Add test for DispatchRateLimiter
Browse files Browse the repository at this point in the history
  • Loading branch information
wangjialing committed Nov 24, 2020
1 parent 398584b commit 332ce71
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
Expand Up @@ -76,7 +76,7 @@ public RateLimiter(final long permits, final long rateTime, final TimeUnit timeU

public RateLimiter(final ScheduledExecutorService service, final long permits, final long rateTime,
final TimeUnit timeUnit, Supplier<Long> permitUpdater) {
this(service, permits, rateTime, timeUnit, null, false);
this(service, permits, rateTime, timeUnit, permitUpdater, false);
}

public RateLimiter(final ScheduledExecutorService service, final long permits, final long rateTime,
Expand Down
Expand Up @@ -164,6 +164,27 @@ public void testResetRate() throws Exception {
rate.close();
}

@Test
public void testDispatchRate() throws Exception {
final long rateTimeMSec = 1000;
final int permits = 100;
RateLimiter rate = new RateLimiter(null, permits, rateTimeMSec, TimeUnit.MILLISECONDS, null, true);
rate.tryAcquire(100);
rate.tryAcquire(100);
rate.tryAcquire(100);
assertEquals(rate.getAvailablePermits(), 0);

Thread.sleep(rateTimeMSec * 2);
// check after two rate-time: acquiredPermits is 100
assertEquals(rate.getAvailablePermits(), 0);

Thread.sleep(rateTimeMSec);
// check after three rate-time: acquiredPermits is 0
assertEquals(rate.getAvailablePermits() > 0, true);

rate.close();
}

@Test
public void testRateLimiterWithPermitUpdater() throws Exception {
long permits = 10;
Expand Down

0 comments on commit 332ce71

Please sign in to comment.