mockMvc.perform(post("/todo/update")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.param(WebTestConstants.FORM_FIELD_DESCRIPTION, DESCRIPTION)
.param(WebTestConstants.FORM_FIELD_ID, ID.toString())
.param(WebTestConstants.FORM_FIELD_TITLE, TITLE)
.sessionAttr(TodoController.MODEL_ATTRIBUTE_TODO, new TodoDTO())
)
.andExpect(status().isMovedTemporarily())
.andExpect(view().name(expectedRedirectViewPath))
.andExpect(model().attribute(TodoController.PARAMETER_TODO_ID, is("1")))
.andExpect(flash().attribute(TodoController.FLASH_MESSAGE_KEY_FEEDBACK, is("Todo entry: title was updated.")));
ArgumentCaptor<TodoDTO> formObjectArgument = ArgumentCaptor.forClass(TodoDTO.class);
verify(todoServiceMock, times(1)).update(formObjectArgument.capture());
verifyNoMoreInteractions(todoServiceMock);
TodoDTO formObject = formObjectArgument.getValue();
assertThat(formObject.getDescription(), is(DESCRIPTION));
assertThat(formObject.getId(), is(ID));
assertThat(formObject.getTitle(), is(TITLE));
}