use of io.crnk.core.engine.error.ErrorResponse in project crnk-framework by crnk-project.
the class JpaExceptionMapperTests method testPersistenceException.
@Test
public void testPersistenceException() {
PersistenceException exception = new PersistenceException(new BadRequestException("test"));
ExceptionMapperRegistry exceptionMapperRegistry = boot.getExceptionMapperRegistry();
PersistenceExceptionMapper mapper = (PersistenceExceptionMapper) exceptionMapperRegistry.findMapperFor(PersistenceException.class).get();
ErrorResponse response = mapper.toErrorResponse(exception);
ErrorData errorData = response.getErrors().iterator().next();
Assert.assertEquals(Integer.toString(HttpStatus.BAD_REQUEST_400), errorData.getStatus());
Assert.assertEquals("test", errorData.getDetail());
}
use of io.crnk.core.engine.error.ErrorResponse in project crnk-framework by crnk-project.
the class JpaExceptionMapperTests method testPersistenceRollbackException.
@Test
public void testPersistenceRollbackException() {
javax.persistence.RollbackException exception = new javax.persistence.RollbackException(new BadRequestException("test"));
ExceptionMapperRegistry exceptionMapperRegistry = boot.getExceptionMapperRegistry();
PersistenceRollbackExceptionMapper mapper = (PersistenceRollbackExceptionMapper) exceptionMapperRegistry.findMapperFor(javax.persistence.RollbackException.class).get();
ErrorResponse response = mapper.toErrorResponse(exception);
ErrorData errorData = response.getErrors().iterator().next();
Assert.assertEquals(Integer.toString(HttpStatus.BAD_REQUEST_400), errorData.getStatus());
Assert.assertEquals("test", errorData.getDetail());
}
use of io.crnk.core.engine.error.ErrorResponse in project crnk-framework by crnk-project.
the class ClientStubBase method handleError.
protected RuntimeException handleError(HttpAdapterResponse response) throws IOException {
ErrorResponse errorResponse = null;
String body = response.body();
String contentType = response.getResponseHeader(HttpHeaders.HTTP_CONTENT_TYPE);
if (body.length() > 0 && contentType != null && contentType.toLowerCase().contains(HttpHeaders.JSONAPI_CONTENT_TYPE)) {
ObjectMapper objectMapper = client.getObjectMapper();
Document document = objectMapper.readValue(body, Document.class);
if (document.getErrors() != null && !document.getErrors().isEmpty()) {
errorResponse = new ErrorResponse(document.getErrors(), response.code());
}
}
if (errorResponse == null) {
errorResponse = new ErrorResponse(null, response.code());
}
ExceptionMapperRegistry exceptionMapperRegistry = client.getExceptionMapperRegistry();
Optional<ExceptionMapper<?>> mapper = (Optional) exceptionMapperRegistry.findMapperFor(errorResponse);
if (mapper.isPresent()) {
Throwable throwable = mapper.get().fromErrorResponse(errorResponse);
if (throwable instanceof RuntimeException) {
return (RuntimeException) throwable;
} else {
return new ClientException(response.code(), response.message(), throwable);
}
} else {
return new ClientException(response.code(), response.message());
}
}
use of io.crnk.core.engine.error.ErrorResponse in project crnk-framework by crnk-project.
the class CrnkExceptionMapperTest method forbidden.
@Test
public void forbidden() {
CrnkExceptionMapper mapper = new CrnkExceptionMapper();
ErrorResponse response = mapper.toErrorResponse(new ForbiddenException("testMessage"));
assertThat(response.getHttpStatus()).isEqualTo(HttpStatus.FORBIDDEN_403);
assertThat(mapper.accepts(response)).isTrue();
CrnkMappableException exception = mapper.fromErrorResponse(response);
assertThat(exception).isInstanceOf(ForbiddenException.class);
assertThat(exception.getMessage()).isEqualTo("testMessage");
}
use of io.crnk.core.engine.error.ErrorResponse in project crnk-framework by crnk-project.
the class CrnkExceptionMapperTest method invalidExceptionNotManagedByMapper.
@Test(expected = IllegalStateException.class)
public void invalidExceptionNotManagedByMapper() {
CrnkExceptionMapper mapper = new CrnkExceptionMapper();
mapper.fromErrorResponse(new ErrorResponse(null, 123));
}
Aggregations