|
11 | 11 | import com.fasterxml.jackson.annotation.JsonProperty;
|
12 | 12 | import com.fasterxml.jackson.core.JsonProcessingException;
|
13 | 13 | import com.fasterxml.jackson.databind.ObjectMapper;
|
| 14 | +import com.google.errorprone.annotations.CanIgnoreReturnValue; |
14 | 15 | import java.io.IOException;
|
15 | 16 | import java.net.MalformedURLException;
|
16 | 17 | import java.net.URL;
|
@@ -88,12 +89,13 @@ private <T> void runApiClientTest(
|
88 | 89 | runApiClientTest(client, request, clazz, expectedResponse);
|
89 | 90 | }
|
90 | 91 |
|
91 |
| - private void runFailingApiClientTest( |
92 |
| - Request request, List<ResponseProvider> responses, Class<?> clazz, String expectedMessage) |
93 |
| - throws IOException { |
| 92 | + @CanIgnoreReturnValue |
| 93 | + private DatabricksException runFailingApiClientTest( |
| 94 | + Request request, List<ResponseProvider> responses, Class<?> clazz, String expectedMessage) { |
94 | 95 | DatabricksException exception =
|
95 | 96 | runFailingApiClientTest(request, responses, clazz, DatabricksException.class);
|
96 | 97 | assertEquals(exception.getMessage(), expectedMessage);
|
| 98 | + return exception; |
97 | 99 | }
|
98 | 100 |
|
99 | 101 | private <T extends Throwable> T runFailingApiClientTest(
|
@@ -217,16 +219,21 @@ void retry429() throws IOException {
|
217 | 219 | @Test
|
218 | 220 | void failAfterTooManyRetries() throws IOException {
|
219 | 221 | Request req = getBasicRequest();
|
220 |
| - runFailingApiClientTest( |
221 |
| - req, |
222 |
| - Arrays.asList( |
223 |
| - getTooManyRequestsResponseWithRetryAfterDateHeader(req), |
224 |
| - getTooManyRequestsResponse(req), |
225 |
| - getTooManyRequestsResponse(req), |
226 |
| - getTooManyRequestsResponse(req), |
227 |
| - getSuccessResponse(req)), |
228 |
| - MyEndpointResponse.class, |
229 |
| - "Request GET /api/my/endpoint failed after 4 retries"); |
| 222 | + DatabricksException exception = |
| 223 | + runFailingApiClientTest( |
| 224 | + req, |
| 225 | + Arrays.asList( |
| 226 | + getTooManyRequestsResponseWithRetryAfterDateHeader(req), |
| 227 | + getTooManyRequestsResponse(req), |
| 228 | + getTooManyRequestsResponse(req), |
| 229 | + getTooManyRequestsResponse(req), |
| 230 | + getSuccessResponse(req)), |
| 231 | + MyEndpointResponse.class, |
| 232 | + "Request GET /api/my/endpoint failed after 4 retries"); |
| 233 | + assertInstanceOf(DatabricksError.class, exception.getCause()); |
| 234 | + DatabricksError cause = (DatabricksError) exception.getCause(); |
| 235 | + assertEquals(cause.getErrorCode(), "TOO_MANY_REQUESTS"); |
| 236 | + assertEquals(cause.getStatusCode(), 429); |
230 | 237 | }
|
231 | 238 |
|
232 | 239 | @Test
|
|
0 commit comments