in wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java [1912:1994]
protected void verifyWagonExceptionMessage(Exception e, int forStatusCode, String forUrl, String forReasonPhrase) {
// TODO: handle AuthenticationException for Wagon.connect() calls
assertNotNull(e);
try {
assertTrue("only verify instances of WagonException", e instanceof WagonException);
String reasonPhrase;
String assertMessageForBadMessage = "exception message not described properly";
switch (forStatusCode) {
case HttpServletResponse.SC_NOT_FOUND:
// TODO: add test for 410: Gone?
assertTrue(
"404 not found response should throw ResourceDoesNotExistException",
e instanceof ResourceDoesNotExistException);
reasonPhrase = (forReasonPhrase == null || forReasonPhrase.isEmpty())
? " Not Found"
: (" " + forReasonPhrase);
assertEquals(
assertMessageForBadMessage,
"resource missing at " + forUrl + ", status: 404" + reasonPhrase,
e.getMessage());
break;
case HttpServletResponse.SC_UNAUTHORIZED:
// FIXME assumes Wagon.get()/put() returning 401 instead of Wagon.connect()
assertTrue(
"401 Unauthorized should throw AuthorizationException since "
+ " AuthenticationException is not explicitly declared as thrown from wagon "
+ "methods",
e instanceof AuthorizationException);
reasonPhrase = (forReasonPhrase == null || forReasonPhrase.isEmpty())
? " Unauthorized"
: (" " + forReasonPhrase);
assertEquals(
assertMessageForBadMessage,
"authentication failed for " + forUrl + ", status: 401" + reasonPhrase,
e.getMessage());
break;
case HttpServletResponse.SC_PROXY_AUTHENTICATION_REQUIRED:
assertTrue(
"407 Proxy authentication required should throw AuthorizationException",
e instanceof AuthorizationException);
reasonPhrase = (forReasonPhrase == null || forReasonPhrase.isEmpty())
? " Proxy Authentication Required"
: (" " + forReasonPhrase);
assertEquals(
assertMessageForBadMessage,
"proxy authentication failed for " + forUrl + ", status: 407" + reasonPhrase,
e.getMessage());
break;
case HttpServletResponse.SC_FORBIDDEN:
assertTrue(
"403 Forbidden should throw AuthorizationException", e instanceof AuthorizationException);
reasonPhrase = (forReasonPhrase == null || forReasonPhrase.isEmpty())
? " Forbidden"
: (" " + forReasonPhrase);
assertEquals(
assertMessageForBadMessage,
"authorization failed for " + forUrl + ", status: 403" + reasonPhrase,
e.getMessage());
break;
default:
assertTrue(
"transfer failures should at least be wrapped in a TransferFailedException",
e instanceof TransferFailedException);
assertTrue(
"expected status code for transfer failures should be >= 400",
forStatusCode >= HttpServletResponse.SC_BAD_REQUEST);
reasonPhrase = forReasonPhrase == null ? "" : " " + forReasonPhrase;
assertEquals(
assertMessageForBadMessage,
"transfer failed for " + forUrl + ", status: " + forStatusCode + reasonPhrase,
e.getMessage());
break;
}
} catch (AssertionError assertionError) {
logger.error("Exception which failed assertions: ", e);
throw assertionError;
}
}