Skip to content

Commit

Permalink
Add response assertions to JsonProcessingExceptionMapperTest
Browse files Browse the repository at this point in the history
  • Loading branch information
sleberknight committed Apr 30, 2024
1 parent 08847e6 commit 8de9e41
Showing 1 changed file with 17 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.kiwiproject.dropwizard.util.exception.ErrorMessageAssertions.assertAndGetErrorMessage;
import static org.kiwiproject.test.constants.KiwiTestConstants.OBJECT_MAPPER;
import static org.kiwiproject.test.jaxrs.JaxrsTestHelper.assertBadRequest;
import static org.kiwiproject.test.jaxrs.JaxrsTestHelper.assertInternalServerErrorResponse;
import static org.mockito.Mockito.mock;

import com.fasterxml.jackson.core.JsonGenerationException;
Expand All @@ -25,13 +27,20 @@ void shouldProcessJsonProcessingException() {
var mapper = new JsonProcessingExceptionMapper();
var jsonException = createJsonException();
var response = mapper.toResponse(jsonException);
var errorMessage = assertAndGetErrorMessage(response);
assertBadRequest(response);

var errorMessage = assertAndGetErrorMessage(response);
assertThat(errorMessage.getMessage()).isEqualTo(jsonException.getOriginalMessage());
}

private JsonProcessingException createJsonException() {
String badJson = "{ \"first\": \"Bob\" \"last\": \"Jones\" )"; // missing comma before 'last' property
// missing comma before 'last' property
var badJson = """
{
"first": "Bob"
"last": "Jones"
}
""";
try {
OBJECT_MAPPER.readValue(badJson, Person.class);
} catch (JsonProcessingException e) {
Expand All @@ -45,8 +54,9 @@ void shouldProcessJsonGenerationException() {
var mapper = new JsonProcessingExceptionMapper();
var jsonException = new JsonGenerationException("Problem generating", mock(JsonGenerator.class));
var response = mapper.toResponse(jsonException);
var errorMessage = assertAndGetErrorMessage(response);
assertInternalServerErrorResponse(response);

var errorMessage = assertAndGetErrorMessage(response);
assertThat(errorMessage.getMessage()).isEqualTo(jsonException.getOriginalMessage());
}

Expand All @@ -57,8 +67,9 @@ void shouldProcessInvalidDefinitionException() {
"Problem generating", mock(JavaType.class));

var response = mapper.toResponse(jsonException);
var errorMessage = assertAndGetErrorMessage(response);
assertInternalServerErrorResponse(response);

var errorMessage = assertAndGetErrorMessage(response);
assertThat(errorMessage.getMessage()).isEqualTo(jsonException.getOriginalMessage());
}

Expand All @@ -67,8 +78,9 @@ void shouldProcessJsonProcessingException_WithSpecificMessage() {
var mapper = new JsonProcessingExceptionMapper();
var jsonException = new JsonParseException(mock(JsonParser.class), "No suitable constructor found for Foo");
var response = mapper.toResponse(jsonException);
var errorMessage = assertAndGetErrorMessage(response);
assertInternalServerErrorResponse(response);

var errorMessage = assertAndGetErrorMessage(response);
assertThat(errorMessage.getMessage()).isEqualTo(jsonException.getOriginalMessage());
}

Expand Down

0 comments on commit 8de9e41

Please sign in to comment.