@Test
public void update_TodoEntryNotFound_ShouldThrowException() {

    TodoDTO updatedTodoEntry = new TodoDTOBuilder()
            .id(ID)
            .description(DESCRIPTION)
            .title(TITLE)
            .build();

    when(repositoryMock.update(isA(Todo.class))).thenThrow(new TodoNotFoundException(""));

    catchException(service).update(updatedTodoEntry);
    assertThat(caughtException()).isExactlyInstanceOf(TodoNotFoundException.class);

    ArgumentCaptor<Todo> repositoryMethodArgument = ArgumentCaptor.forClass(Todo.class);

    verify(repositoryMock, times(1)).update(repositoryMethodArgument.capture());
    verifyNoMoreInteractions(repositoryMock);

    Todo repositoryMethodArgumentValue = repositoryMethodArgument.getValue();

    assertThatTodo(repositoryMethodArgumentValue)
            .hasDescription(DESCRIPTION)
            .hasId(ID)
            .hasTitle(TITLE)
            .creationTimeIsNotSet()
            .modificationTimeIsNotSet();
}