@Test
  public void testCreateWithErrors() throws Exception {
    MvcResult result =
        mvc.perform(
                post(BASE_URI, ObjectId.get().toHexString())
                    .principal(MockUser.mock())
                    .contentType(MediaType.APPLICATION_JSON)
                    .content(parser.encode(new CommentBody())))
            .andReturn();

    mvc.perform(asyncDispatch(result)).andExpect(status().isBadRequest());
  }
 @Test
 public void testDeleteOne() throws Exception {
   MvcResult deleteComment =
       mvc.perform(
               delete("/inns/{innId}/comments/{comment}", comment.getInn(), comment.getId())
                   .principal(MockUser.mock()))
           .andExpect(request().asyncStarted())
           .andReturn();
   mvc.perform(asyncDispatch(deleteComment)).andExpect(status().isNoContent());
   assertThat(
       "Object must not exist after deletion",
       repo.findOne(comment.getId()),
       is(nullValue(Comment.class)));
 }
 @Test
 public void testEditComment() throws Exception {
   MvcResult editAction =
       mvc.perform(
               put("/inns/{innId}/comments/{comment}", comment.getInn(), comment.getId())
                   .principal(MockUser.mock())
                   .contentType(MediaType.APPLICATION_JSON)
                   .content(parser.encode(contentBody("The pool is awesome, you should try it!!")))
                   .accept(MediaType.APPLICATION_JSON))
           .andExpect(request().asyncStarted())
           .andExpect(request().asyncResult(instanceOf(ResponseEntity.class)))
           .andReturn();
   mvc.perform(asyncDispatch(editAction))
       .andExpect(status().isOk())
       .andExpect(content().contentType(MediaType.APPLICATION_JSON))
       .andExpect(jsonPath("$.id").isString())
       .andExpect(jsonPath("$.content", is("The pool is awesome, you should try it!!")));
 }
 @Test
 public void testCreateComment() throws Exception {
   MvcResult action =
       mvc.perform(
               post(BASE_URI, ObjectId.get().toHexString())
                   .principal(MockUser.mock())
                   .contentType(MediaType.APPLICATION_JSON)
                   .accept(MediaType.APPLICATION_JSON)
                   .content(parser.encode(contentBody("#foos"))))
           .andExpect(request().asyncStarted())
           .andExpect(request().asyncResult(instanceOf(ResponseEntity.class)))
           .andReturn();
   mvc.perform(asyncDispatch(action))
       .andExpect(status().isCreated())
       .andExpect(content().contentType(MediaType.APPLICATION_JSON))
       .andExpect(jsonPath("$.id").isString())
       .andExpect(jsonPath("$.inn").isString())
       .andExpect(jsonPath("$.content", is("#foos")))
       .andExpect(jsonPath("$.author", is(1)));
 }