Skip to content

Instantly share code, notes, and snippets.

@lobster1234
Created October 29, 2022 22:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lobster1234/af1e2a2dd2755b5ce1c9958a3a8ec8d4 to your computer and use it in GitHub Desktop.
Save lobster1234/af1e2a2dd2755b5ce1c9958a3a8ec8d4 to your computer and use it in GitHub Desktop.
Test for the token bucket rate limiter
package org.lobster1234.misc;
import junit.framework.TestCase;
import java.util.concurrent.TimeUnit;
public class TokenBucketRateLimiterTest extends TestCase {
public void testTokenBucketRateLimiter() {
try {
TokenBucketRateLimiter limiter = new TokenBucketRateLimiter(10, TimeUnit.SECONDS);
for (int i = 0; i < 11; i++) {
limiter.execute(new RequestPayLoad("Test Request"), payLoad -> System.out.println("Success " + payLoad.getPayload()),
payLoad -> System.out.println("Failure " + payLoad.getPayload()));
}
Thread.sleep(5000); //sleep for 5 seconds
//try again
for (int i = 0; i < 11; i++) {
limiter.execute(new RequestPayLoad("Test Request"), payLoad -> System.out.println("Success " + payLoad.getPayload()),
payLoad -> System.out.println("Failure " + payLoad.getPayload()));
}
}catch(Exception e){
e.printStackTrace();
fail();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment