package org.resthub.web.exception; import org.fest.assertions.api.Assertions; import org.resthub.web.Http; import org.testng.annotations.Test; public class HttpExceptionTest { @Test(expectedExceptions=IllegalArgumentException.class) public void testInvalidStatusCode() { ClientExceptionFactory.createHttpExceptionFromStatusCode(900); } @Test(expectedExceptions=IllegalArgumentException.class) public void test1xxStatusCode() { ClientExceptionFactory.createHttpExceptionFromStatusCode(100); } @Test(expectedExceptions=IllegalArgumentException.class) public void test2xxStatusCode() { ClientExceptionFactory.createHttpExceptionFromStatusCode(200); } @Test(expectedExceptions=IllegalArgumentException.class) public void test3xxStatusCode() { ClientExceptionFactory.createHttpExceptionFromStatusCode(300); } @Test public void test4xxUnsupportedStatusCode() { Assertions.assertThat(ClientExceptionFactory.createHttpExceptionFromStatusCode(444)).isInstanceOf(ClientException.class); } @Test public void test5xxUnsupportedStatusCode() { Assertions.assertThat(ClientExceptionFactory.createHttpExceptionFromStatusCode(555)).isInstanceOf(ClientException.class); } @Test public void testBadRequestStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.BAD_REQUEST); Assertions.assertThat(he).isNotNull().isInstanceOf(BadRequestClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.BAD_REQUEST); } @Test public void testConflictStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.CONFLICT); Assertions.assertThat(he).isNotNull().isInstanceOf(ConflictClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.CONFLICT); } @Test public void testInternalServerErrorStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.INTERNAL_SERVER_ERROR); Assertions.assertThat(he).isNotNull().isInstanceOf(InternalServerErrorClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.INTERNAL_SERVER_ERROR); } @Test public void testNotFoundErrorStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.NOT_FOUND); Assertions.assertThat(he).isNotNull().isInstanceOf(NotFoundClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.NOT_FOUND); } @Test public void testNotImplementedErrorStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.NOT_IMPLEMENTED); Assertions.assertThat(he).isNotNull().isInstanceOf(NotImplementedClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.NOT_IMPLEMENTED); } @Test public void testUnauthorizedErrorStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.UNAUTHORIZED); Assertions.assertThat(he).isNotNull().isInstanceOf(UnauthorizedClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.UNAUTHORIZED); } @Test public void testForbiddenErrorStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.FORBIDDEN); Assertions.assertThat(he).isNotNull().isInstanceOf(ForbiddenClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.FORBIDDEN); } @Test public void testNotAcceptableErrorStatusCode() { ClientException he = ClientExceptionFactory.createHttpExceptionFromStatusCode(Http.NOT_ACCEPTABLE); Assertions.assertThat(he).isNotNull().isInstanceOf(NotAcceptableClientException.class); Assertions.assertThat(he.getStatusCode()).isEqualTo(Http.NOT_ACCEPTABLE); } }