package io.dropwizard.jersey.errors; import org.glassfish.jersey.server.internal.LocalizationMessages; import org.junit.Test; import javax.ws.rs.NotSupportedException; import javax.ws.rs.core.Response; import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; import static javax.ws.rs.core.Response.Status.UNSUPPORTED_MEDIA_TYPE; import static org.assertj.core.api.Assertions.assertThat; public class IllegalStateExceptionMapperTest { private final IllegalStateExceptionMapper mapper = new IllegalStateExceptionMapper(); @Test public void delegatesToParentClass() { @SuppressWarnings("serial") final Response reponse = mapper.toResponse(new IllegalStateException(getClass().getName()) { }); assertThat(reponse.getStatusInfo()).isEqualTo(INTERNAL_SERVER_ERROR); } @Test public void handlesFormParamContentTypeError() { final Response reponse = mapper .toResponse(new IllegalStateException(LocalizationMessages.FORM_PARAM_CONTENT_TYPE_ERROR())); assertThat(reponse.getStatusInfo()).isEqualTo(UNSUPPORTED_MEDIA_TYPE); assertThat(reponse.getEntity()).isInstanceOf(ErrorMessage.class); assertThat(((ErrorMessage) reponse.getEntity()).getMessage()) .isEqualTo(new NotSupportedException().getLocalizedMessage()); } }