Skip to content

Commit

Permalink
Google Java Format
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions committed Jan 31, 2024
1 parent 56006f4 commit 17d2b7c
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ public int getTimeTillSpaceGetsAvailable() {

/**
* Gets the remaining RateLimit
*
* @return int the remaining RateLimit
*/
public int getRateLimitRemaining() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,10 +238,10 @@ private RateLimitBucket<T> getMatchingBucket(RestRequest<T> request) {
* @param responseTimestamp The timestamp directly after the response finished.
*/
void handleResponse(
RestRequest<T> request,
RestRequestResult<T> result,
RateLimitBucket<T> bucket,
long responseTimestamp) {
RestRequest<T> request,
RestRequestResult<T> result,
RateLimitBucket<T> bucket,
long responseTimestamp) {
try {
HttpResponse<String> response = result.getResponse();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,69 +17,71 @@
import org.junit.jupiter.api.Test;

class RateLimitManagerTest<T> {
private AzureApiImpl<T> api;
private RestRequest<T> request;
private RateLimitManager<T> rateLimitManager;
private AzureApiImpl<T> api;
private RestRequest<T> request;
private RateLimitManager<T> rateLimitManager;

@BeforeEach
public void setUp() {
api = mock(AzureApiImpl.class, RETURNS_DEEP_STUBS);
request = mock(RestRequest.class);
rateLimitManager = new RateLimitManager<>(api);
}
@BeforeEach
public void setUp() {
api = mock(AzureApiImpl.class, RETURNS_DEEP_STUBS);
request = mock(RestRequest.class);
rateLimitManager = new RateLimitManager<>(api);
}

@Test
void testQueueRequest() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
rateLimitManager.queueRequest(request);
verify(api.getThreadPool().getExecutorService()).submit(any(Runnable.class));
}
@Test
void testQueueRequest() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
rateLimitManager.queueRequest(request);
verify(api.getThreadPool().getExecutorService()).submit(any(Runnable.class));
}

@Test
void testSearchBucket() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
Optional<RateLimitBucket<T>> bucket = rateLimitManager.searchBucket(request);
assertTrue(bucket.isPresent());
}
@Test
void testSearchBucket() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
Optional<RateLimitBucket<T>> bucket = rateLimitManager.searchBucket(request);
assertTrue(bucket.isPresent());
}

@Test
void testWaitUntilSpaceGetsAvailable() {
RateLimitBucket<T> bucket = new RateLimitBucket<>(RestEndpoint.LANGUAGES);
bucket.setRateLimitRemaining(1000);
bucket.setRateLimitResetTimestamp(System.currentTimeMillis() + 1000);
assertDoesNotThrow(() -> rateLimitManager.waitUntilSpaceGetsAvailable(bucket));
}
@Test
void testWaitUntilSpaceGetsAvailable() {
RateLimitBucket<T> bucket = new RateLimitBucket<>(RestEndpoint.LANGUAGES);
bucket.setRateLimitRemaining(1000);
bucket.setRateLimitResetTimestamp(System.currentTimeMillis() + 1000);
assertDoesNotThrow(() -> rateLimitManager.waitUntilSpaceGetsAvailable(bucket));
}

@Test
void testRetryRequest() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
rateLimitManager.searchBucket(request);
RestRequest<T> retriedRequest = rateLimitManager.retryRequest(new RateLimitBucket<>(RestEndpoint.LANGUAGES ));
assertNull(retriedRequest);
}
@Test
void testRetryRequest() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
rateLimitManager.searchBucket(request);
RestRequest<T> retriedRequest =
rateLimitManager.retryRequest(new RateLimitBucket<>(RestEndpoint.LANGUAGES));
assertNull(retriedRequest);
}

@Test
void retryRequestWhenBucketIsEmpty() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
rateLimitManager.searchBucket(request);
RestRequest<T> retriedRequest = rateLimitManager.retryRequest(new RateLimitBucket<>(RestEndpoint.LANGUAGES));
assertNull(retriedRequest);
}
@Test
void retryRequestWhenBucketIsEmpty() {
when(request.getEndpoint()).thenReturn(RestEndpoint.LANGUAGES);
rateLimitManager.searchBucket(request);
RestRequest<T> retriedRequest =
rateLimitManager.retryRequest(new RateLimitBucket<>(RestEndpoint.LANGUAGES));
assertNull(retriedRequest);
}

@Test
void handleResponseWhenStatusCodeIsNot429() {
HttpHeaders headers = mock(HttpHeaders.class);
when(headers.firstValue(RateLimitManager.RATE_LIMITED_HEADER)).thenReturn(Optional.of("1"));
when(headers.firstValue(RateLimitManager.RATE_LIMIT_RESET_HEADER)).thenReturn(Optional.of("0"));
RateLimitBucket<T> bucket = new RateLimitBucket<>(RestEndpoint.LANGUAGES);
RestRequestResult<T> result = mock(RestRequestResult.class);
when(result.getResponse()).thenReturn(mock(HttpResponse.class));
when(result.getResponse().statusCode()).thenReturn(200);
when(result.getResponse().headers()).thenReturn(headers);
CompletableFuture<RestRequestResult<T>> future = new CompletableFuture<>();
future.complete(result);
when(request.getResult()).thenReturn(future);
rateLimitManager.handleResponse(request, result, bucket, System.currentTimeMillis());
assertEquals(1, bucket.getRateLimitRemaining());
}
}
@Test
void handleResponseWhenStatusCodeIsNot429() {
HttpHeaders headers = mock(HttpHeaders.class);
when(headers.firstValue(RateLimitManager.RATE_LIMITED_HEADER)).thenReturn(Optional.of("1"));
when(headers.firstValue(RateLimitManager.RATE_LIMIT_RESET_HEADER)).thenReturn(Optional.of("0"));
RateLimitBucket<T> bucket = new RateLimitBucket<>(RestEndpoint.LANGUAGES);
RestRequestResult<T> result = mock(RestRequestResult.class);
when(result.getResponse()).thenReturn(mock(HttpResponse.class));
when(result.getResponse().statusCode()).thenReturn(200);
when(result.getResponse().headers()).thenReturn(headers);
CompletableFuture<RestRequestResult<T>> future = new CompletableFuture<>();
future.complete(result);
when(request.getResult()).thenReturn(future);
rateLimitManager.handleResponse(request, result, bucket, System.currentTimeMillis());
assertEquals(1, bucket.getRateLimitRemaining());
}
}

0 comments on commit 17d2b7c

Please sign in to comment.