private static ResponseBuilder responseOf(final HttpStatusCode httpStatusCode) { return Response.status(httpStatusCode.getJaxrsStatusType()).type(MediaType.APPLICATION_JSON_TYPE); }
@Test public void simpleNoMessage() throws Exception { // given final HttpStatusCode status = HttpStatusCode.BAD_REQUEST; final RestfulObjectsApplicationException ex = RestfulObjectsApplicationException.create(status); // when final Response response = exceptionMapper.toResponse(ex); // then assertThat(HttpStatusCode.lookup(response.getStatus()), is(status)); assertThat(response.getMetadata().get("Warning"), is(nullValue())); // and then final String entity = (String) response.getEntity(); assertThat(entity, is(not(nullValue()))); final JsonRepresentation jsonRepr = JsonMapper.instance().read(entity, JsonRepresentation.class); // then assertThat(jsonRepr.getString("message"), is(nullValue())); assertThat(jsonRepr.getArray("stackTrace"), is(not(nullValue()))); assertThat(jsonRepr.getArray("stackTrace").size(), is(greaterThan(0))); assertThat(jsonRepr.getRepresentation("causedBy"), is(nullValue())); }
@Override public Response toResponse(final RuntimeException ex) { final ResponseBuilder builder = Response.status(HttpStatusCode.INTERNAL_SERVER_ERROR.getJaxrsStatusType()).type(RestfulMediaType.APPLICATION_JSON_ERROR).entity(jsonFor(ex)); return builder.build(); }
private int getHttpStatusCodeIfAny(final Throwable ex) { if (!(ex instanceof HasHttpStatusCode)) { return 0; } final HasHttpStatusCode hasHttpStatusCode = (HasHttpStatusCode) ex; return hasHttpStatusCode.getHttpStatusCode().getStatusCode(); }
@Override public Response toResponse(final RestfulObjectsApplicationException ex) { final ResponseBuilder builder = Response.status(ex.getHttpStatusCode().getJaxrsStatusType()).type(RestfulMediaType.APPLICATION_JSON_ERROR).entity(jsonFor(ex)); final String message = ex.getMessage(); if (message != null) { builder.header(RestfulResponse.Header.WARNING.getName(), message); } return builder.build(); }