Skip to content

Commit ca3c073

Browse files
committed
using the same tests and naming convention in both samples
1 parent 6cd01b8 commit ca3c073

File tree

5 files changed

+117
-101
lines changed

5 files changed

+117
-101
lines changed

todo-mvp-loaders/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksPresenter.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,6 @@ public void resume() {
8181
mLoaderManager.initLoader(TASKS_QUERY, null, this);
8282
}
8383

84-
@Override
85-
public void pause() {
86-
87-
}
88-
8984
@Override
9085
public Loader<List<Task>> onCreateLoader(int id, Bundle args) {
9186
mTasksView.setLoadingIndicator(true);

todo-mvp-loaders/app/src/test/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailPresenterTest.java

Lines changed: 52 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.example.android.architecture.blueprints.todoapp.taskdetail;
1818

19+
import android.support.v4.app.LoaderManager;
1920
import android.support.v4.content.Loader;
2021

2122
import com.example.android.architecture.blueprints.todoapp.data.Task;
@@ -27,9 +28,7 @@
2728
import org.mockito.Mock;
2829
import org.mockito.MockitoAnnotations;
2930

30-
import static org.mockito.Mockito.mock;
31-
import static org.mockito.Mockito.never;
32-
import static org.mockito.Mockito.verify;
31+
import static org.mockito.Mockito.*;
3332

3433
/**
3534
* Unit tests for the implementation of {@link TaskDetailPresenter}
@@ -55,22 +54,25 @@ public class TaskDetailPresenterTest {
5554
@Mock
5655
private TaskLoader mTaskLoader;
5756

57+
@Mock
58+
private LoaderManager mLoaderManager;
59+
5860
private TaskDetailPresenter mTaskDetailPresenter;
5961

6062
@Before
61-
public void setupTasksPresenter() {
63+
public void setup() {
6264
// Mockito has a very convenient way to inject mocks by using the @Mock annotation. To
6365
// inject the mocks in the test the initMocks method needs to be called.
6466
MockitoAnnotations.initMocks(this);
65-
66-
// Get a reference to the class under test
67-
mTaskDetailPresenter = new TaskDetailPresenter(
68-
ACTIVE_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader);
6967
}
7068

7169
@Test
7270
public void getActiveTaskFromRepositoryAndLoadIntoView() {
7371
// When tasks presenter is asked to open an ACTIVE_TASK
72+
73+
// Get a reference to the class under test
74+
mTaskDetailPresenter = new TaskDetailPresenter(
75+
ACTIVE_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
7476
mTaskDetailPresenter.onLoadFinished(mock(Loader.class), ACTIVE_TASK);
7577

7678
// Then progress indicator is hidden and title, description and completion status are shown
@@ -83,6 +85,8 @@ public void getActiveTaskFromRepositoryAndLoadIntoView() {
8385
@Test
8486
public void getCompletedTaskFromRepositoryAndLoadIntoView() {
8587
// When tasks presenter is asked to open a completed task
88+
mTaskDetailPresenter = new TaskDetailPresenter(
89+
COMPLETED_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
8690
mTaskDetailPresenter.onLoadFinished(mock(Loader.class), COMPLETED_TASK);
8791

8892
// Then progress indicator is hidden and title, description and completion status are shown
@@ -94,61 +98,74 @@ public void getCompletedTaskFromRepositoryAndLoadIntoView() {
9498
}
9599

96100
@Test
97-
public void loadANullTask_showsMissingTaskError() {
98-
// When loading of an ACTIVE_TASK is requested with an invalid task.
101+
public void getUnknownTaskFromRepositoryAndLoadIntoView() {
102+
// When loading of an ACTIVE_TASK is requested with an invalid task
103+
mTaskDetailPresenter = new TaskDetailPresenter(
104+
INVALID_TASK_ID, mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
99105
mTaskDetailPresenter.onLoadFinished(mock(Loader.class), null);
100106

101107
// Then progress indicator is hidden and missing ACTIVE_TASK UI is shown
102108
verify(mTaskDetailFragment).showMissingTask();
103109
}
104110

105111
@Test
106-
public void userActions_deleteTask() {
112+
public void deleteTask() {
107113
// When the deletion of an ACTIVE_TASK is requested
108-
mTaskDetailPresenter.deleteTask(ACTIVE_TASK.getId());
114+
mTaskDetailPresenter = new TaskDetailPresenter(
115+
ACTIVE_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
116+
mTaskDetailPresenter.deleteTask();
109117

110118
// Then the repository and the view are notified
111119
verify(mTasksRepository).deleteTask(ACTIVE_TASK.getId());
112120
verify(mTaskDetailFragment).showTaskDeleted();
113121
}
114122

115123
@Test
116-
public void userActions_editTask_correctId() {
124+
public void completeTask() {
125+
// When the presenter is asked to complete the ACTIVE_TASK
126+
mTaskDetailPresenter = new TaskDetailPresenter(
127+
ACTIVE_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
128+
mTaskDetailPresenter.completeTask();
129+
130+
// Then a request is sent to the repository and the UI is updated
131+
verify(mTasksRepository).completeTask(ACTIVE_TASK.getId());
132+
verify(mTaskDetailFragment).showTaskMarkedComplete();
133+
}
134+
135+
@Test
136+
public void activateTask() {
137+
// When the presenter is asked to activate the ACTIVE_TASK
138+
mTaskDetailPresenter = new TaskDetailPresenter(
139+
ACTIVE_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
140+
mTaskDetailPresenter.activateTask();
141+
142+
// Then a request is sent to the repository and the UI is updated
143+
verify(mTasksRepository).activateTask(ACTIVE_TASK.getId());
144+
verify(mTaskDetailFragment).showTaskMarkedActive();
145+
}
146+
147+
@Test
148+
public void activeTaskIsShownWhenEditing() {
117149
// When the edit of an ACTIVE_TASK is requested
118-
mTaskDetailPresenter.editTask(ACTIVE_TASK.getId());
150+
mTaskDetailPresenter = new TaskDetailPresenter(
151+
ACTIVE_TASK.getId(), mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
152+
mTaskDetailPresenter.editTask();
119153

120154
// Then the view is notified
121155
verify(mTaskDetailFragment).showEditTask(ACTIVE_TASK.getId());
122156
}
123157

124158
@Test
125-
public void userActions_editTask_incorrectId() {
159+
public void invalidTaskIsNotShownWhenEditing() {
126160
// When the edit of an invalid task id is requested
127-
mTaskDetailPresenter.editTask(INVALID_TASK_ID);
161+
mTaskDetailPresenter = new TaskDetailPresenter(
162+
INVALID_TASK_ID, mTasksRepository, mTaskDetailFragment, mTaskLoader, mLoaderManager);
163+
mTaskDetailPresenter.editTask();
128164

129165
// Then the edit mode is never started
130166
verify(mTaskDetailFragment, never()).showEditTask(INVALID_TASK_ID);
131167
// instead, the error is shown.
132168
verify(mTaskDetailFragment).showMissingTask();
133169
}
134170

135-
@Test
136-
public void userActions_completeTask() {
137-
// When the presenter is asked to complete the ACTIVE_TASK
138-
mTaskDetailPresenter.completeTask(ACTIVE_TASK.getId());
139-
140-
// Then a request is sent to the repository and the UI is updated
141-
verify(mTasksRepository).completeTask(ACTIVE_TASK.getId());
142-
verify(mTaskDetailFragment).showTaskMarkedComplete();
143-
}
144-
145-
@Test
146-
public void userActions_activateTask() {
147-
// When the presenter is asked to activate the ACTIVE_TASK
148-
mTaskDetailPresenter.activateTask(ACTIVE_TASK.getId());
149-
150-
// Then a request is sent to the repository and the UI is updated
151-
verify(mTasksRepository).activateTask(ACTIVE_TASK.getId());
152-
verify(mTaskDetailFragment).showTaskMarkedActive();
153-
}
154171
}

todo-mvp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailPresenter.java

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public TaskDetailPresenter(@Nullable String taskId,
4848
}
4949

5050
@Override
51-
public void created() {
51+
public void resume() {
5252
openTask();
5353
}
5454

@@ -86,46 +86,37 @@ public void onDataNotAvailable() {
8686
}
8787

8888
@Override
89-
public void resume() {
90-
// no-op
91-
}
92-
93-
@Override
94-
public void pause() {
95-
// no-op
96-
}
97-
98-
@Override
99-
public void editTask(@Nullable String taskId) {
100-
if (null == taskId || taskId.isEmpty()) {
89+
public void editTask() {
90+
if (null == mTaskId || mTaskId.isEmpty()) {
10191
mTaskDetailView.showMissingTask();
10292
return;
10393
}
104-
mTaskDetailView.showEditTask(taskId);
94+
mTaskDetailView.showEditTask(mTaskId);
10595
}
10696

10797
@Override
108-
public void deleteTask(@Nullable String taskId) {
109-
mTasksRepository.deleteTask(taskId);
98+
public void deleteTask() {
99+
mTasksRepository.deleteTask(mTaskId);
110100
mTaskDetailView.showTaskDeleted();
111101
}
112102

113-
public void completeTask(@Nullable String taskId) {
114-
if (null == taskId || taskId.isEmpty()) {
103+
@Override
104+
public void completeTask() {
105+
if (null == mTaskId || mTaskId.isEmpty()) {
115106
mTaskDetailView.showMissingTask();
116107
return;
117108
}
118-
mTasksRepository.completeTask(taskId);
109+
mTasksRepository.completeTask(mTaskId);
119110
mTaskDetailView.showTaskMarkedComplete();
120111
}
121112

122113
@Override
123-
public void activateTask(@Nullable String taskId) {
124-
if (null == taskId || taskId.isEmpty()) {
114+
public void activateTask() {
115+
if (null == mTaskId || mTaskId.isEmpty()) {
125116
mTaskDetailView.showMissingTask();
126117
return;
127118
}
128-
mTasksRepository.activateTask(taskId);
119+
mTasksRepository.activateTask(mTaskId);
129120
mTaskDetailView.showTaskMarkedActive();
130121
}
131122

todo-mvp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksPresenter.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,6 @@ public void resume() {
5555
loadTasks(false);
5656
}
5757

58-
@Override
59-
public void pause() {
60-
61-
}
62-
6358
@Override
6459
public void result(int requestCode, int resultCode) {
6560
// If a task was successfully added, show snackbar

0 commit comments

Comments
 (0)