TaskDetailPresenter implements TaskDetailContract.Presenter { @Override public void deleteTask() { mUseCaseHandler.execute(mDeleteTask, new DeleteTask.RequestValues(mTaskId), new UseCase.UseCaseCallback<DeleteTask.ResponseValue>() { @Override public void onSuccess(DeleteTask.ResponseValue response) { mTaskDetailView.showTaskDeleted(); } @Override public void onError(Error error) { } }); } TaskDetailPresenter(@NonNull UseCaseHandler useCaseHandler,
            @Nullable String taskId,
            @NonNull TaskDetailContract.View taskDetailView,
            @NonNull GetTask getTask,
            @NonNull CompleteTask completeTask,
            @NonNull ActivateTask activateTask,
            @NonNull DeleteTask deleteTask); @Override void start(); @Override void editTask(); @Override void deleteTask(); @Override void completeTask(); @Override void activateTask();  }
@Test public void deleteTask() { Task task = new Task(TITLE_TEST, DESCRIPTION_TEST); mTaskDetailPresenter = givenTaskDetailPresenter(task.getId()); mTaskDetailPresenter.deleteTask(); verify(mTasksRepository).deleteTask(task.getId()); verify(mTaskDetailView).showTaskDeleted(); }