use of com.google.cloud.tools.jib.http.ResponseException in project jib by google.
the class BlobCheckerTest method testHandleHttpResponseException_hasOtherErrors.
@Test
public void testHandleHttpResponseException_hasOtherErrors() throws IOException {
ResponseException mockResponseException = Mockito.mock(ResponseException.class);
Mockito.when(mockResponseException.getStatusCode()).thenReturn(HttpStatusCodes.STATUS_CODE_NOT_FOUND);
ErrorResponseTemplate emptyErrorResponseTemplate = new ErrorResponseTemplate().addError(new ErrorEntryTemplate(ErrorCodes.BLOB_UNKNOWN.name(), "some message")).addError(new ErrorEntryTemplate(ErrorCodes.MANIFEST_UNKNOWN.name(), "some message"));
Mockito.when(mockResponseException.getContent()).thenReturn(JsonTemplateMapper.toUtf8String(emptyErrorResponseTemplate));
try {
testBlobChecker.handleHttpResponseException(mockResponseException);
Assert.fail("Non-BLOB_UNKNOWN errors should not be handled");
} catch (ResponseException ex) {
Assert.assertEquals(mockResponseException, ex);
}
}
use of com.google.cloud.tools.jib.http.ResponseException in project jib by google.
the class BlobCheckerTest method testHandleHttpResponseException_invalidStatusCode.
@Test
public void testHandleHttpResponseException_invalidStatusCode() {
ResponseException mockResponseException = Mockito.mock(ResponseException.class);
Mockito.when(mockResponseException.getStatusCode()).thenReturn(-1);
try {
testBlobChecker.handleHttpResponseException(mockResponseException);
Assert.fail("Non-404 status codes should not be handled");
} catch (ResponseException ex) {
Assert.assertEquals(mockResponseException, ex);
}
}
use of com.google.cloud.tools.jib.http.ResponseException in project jib by GoogleContainerTools.
the class ManifestPusherIntegrationTest method testPush_missingBlobs.
@Test
public void testPush_missingBlobs() throws IOException, RegistryException {
RegistryClient registryClient = RegistryClient.factory(EventHandlers.NONE, "gcr.io", "distroless/java", httpClient).newRegistryClient();
ManifestTemplate manifestTemplate = registryClient.pullManifest("latest").getManifest();
registryClient = RegistryClient.factory(EventHandlers.NONE, "localhost:5000", "ignored", httpClient).newRegistryClient();
try {
registryClient.pushManifest(manifestTemplate, "latest");
Assert.fail("Pushing manifest without its BLOBs should fail");
} catch (RegistryErrorException ex) {
ResponseException responseException = (ResponseException) ex.getCause();
Assert.assertEquals(HttpStatusCodes.STATUS_CODE_BAD_REQUEST, responseException.getStatusCode());
}
}
use of com.google.cloud.tools.jib.http.ResponseException in project jib by GoogleContainerTools.
the class ManifestPusherTest method testHandleHttpResponseException_dockerRegistry_tagInvalid.
/**
* Docker Registry 2.0 and 2.1 return 400 / TAG_INVALID.
*/
@Test
public void testHandleHttpResponseException_dockerRegistry_tagInvalid() throws ResponseException {
ResponseException exception = Mockito.mock(ResponseException.class);
Mockito.when(exception.getStatusCode()).thenReturn(HttpStatus.SC_BAD_REQUEST);
Mockito.when(exception.getContent()).thenReturn("{\"errors\":[{\"code\":\"TAG_INVALID\"," + "\"message\":\"manifest tag did not match URI\"}]}");
try {
testManifestPusher.handleHttpResponseException(exception);
Assert.fail();
} catch (RegistryErrorException ex) {
MatcherAssert.assertThat(ex.getMessage(), CoreMatchers.containsString("Registry may not support pushing OCI Manifest or " + "Docker Image Manifest Version 2, Schema 2"));
}
}
use of com.google.cloud.tools.jib.http.ResponseException in project jib by GoogleContainerTools.
the class RegistryEndpointCallerTest method verifyThrowsRegistryErrorException.
/**
* Verifies that a response with {@code httpStatusCode} throws {@link
* RegistryUnauthorizedException}.
*/
private void verifyThrowsRegistryErrorException(int httpStatusCode) throws IOException, RegistryException {
ResponseException errorResponse = mockResponseException(httpStatusCode);
Mockito.when(errorResponse.getContent()).thenReturn("{\"errors\":[{\"code\":\"code\",\"message\":\"message\"}]}");
setUpRegistryResponse(errorResponse);
try {
endpointCaller.call();
Assert.fail("Call should have failed");
} catch (RegistryErrorException ex) {
MatcherAssert.assertThat(ex.getMessage(), CoreMatchers.startsWith("Tried to actionDescription but failed because: unknown error code: code (message)"));
}
}
Aggregations