|
54 | 54 | import static org.hamcrest.Matchers.instanceOf; |
55 | 55 | import static org.hamcrest.Matchers.is; |
56 | 56 | import static org.mockito.ArgumentMatchers.any; |
| 57 | +import static org.mockito.ArgumentMatchers.anyString; |
57 | 58 | import static org.mockito.Mockito.doAnswer; |
| 59 | +import static org.mockito.Mockito.doThrow; |
58 | 60 | import static org.mockito.Mockito.mock; |
59 | 61 | import static org.mockito.Mockito.times; |
60 | 62 | import static org.mockito.Mockito.verify; |
@@ -181,6 +183,36 @@ private void queueWebServerResponsesForRetries(String responseJson) { |
181 | 183 | } |
182 | 184 | } |
183 | 185 |
|
| 186 | + public void testGetAuthorization_ReturnsFailure_WhenExceptionOccurs() throws IOException { |
| 187 | + var senderFactory = HttpRequestSenderTests.createSenderFactory(threadPool, clientManager); |
| 188 | + var eisGatewayUrl = getUrl(webServer); |
| 189 | + |
| 190 | + var exceptionToThrow = new IllegalStateException("exception"); |
| 191 | + var logger = mock(Logger.class); |
| 192 | + doThrow(exceptionToThrow).when(logger).debug(anyString()); |
| 193 | + |
| 194 | + var authHandler = new ElasticInferenceServiceAuthorizationRequestHandler( |
| 195 | + eisGatewayUrl, |
| 196 | + threadPool, |
| 197 | + logger, |
| 198 | + createNoopApplierFactory() |
| 199 | + ); |
| 200 | + |
| 201 | + try (var sender = senderFactory.createSender()) { |
| 202 | + var responseData = getEisAuthorizationResponseWithMultipleEndpoints(eisGatewayUrl); |
| 203 | + |
| 204 | + webServer.enqueue(new MockResponse().setResponseCode(200).setBody(responseData.responseJson())); |
| 205 | + |
| 206 | + PlainActionFuture<ElasticInferenceServiceAuthorizationModel> listener = new PlainActionFuture<>(); |
| 207 | + authHandler.getAuthorization(listener, sender); |
| 208 | + |
| 209 | + var exception = expectThrows(IllegalStateException.class, () -> listener.actionGet(TIMEOUT)); |
| 210 | + assertThat(exception, is(exceptionToThrow)); |
| 211 | + |
| 212 | + assertThat(webServer.requests().size(), is(0)); |
| 213 | + } |
| 214 | + } |
| 215 | + |
184 | 216 | public void testGetAuthorization_ReturnsAValidResponse() throws IOException { |
185 | 217 | var senderFactory = HttpRequestSenderTests.createSenderFactory(threadPool, clientManager); |
186 | 218 | var eisGatewayUrl = getUrl(webServer); |
|
0 commit comments