@@ -19,12 +19,11 @@ import com.owncloud.android.ui.activities.data.files.FilesRepository.ReadRemoteF
1919import com.owncloud.android.ui.activity.BaseActivity
2020import org.junit.Before
2121import org.junit.Test
22- import org.mockito.ArgumentCaptor
23- import org.mockito.ArgumentMatchers.eq
24- import org.mockito.Captor
2522import org.mockito.Mock
2623import org.mockito.Mockito.verify
2724import org.mockito.MockitoAnnotations
25+ import org.mockito.kotlin.argumentCaptor
26+ import org.mockito.kotlin.eq
2827import java.util.Date
2928
3029class ActivitiesPresenterTest {
@@ -50,18 +49,12 @@ class ActivitiesPresenterTest {
5049 @Mock
5150 private lateinit var lifecycleScope: LifecycleCoroutineScope
5251
53- @Captor
54- private lateinit var readRemoteFileCallbackCaptor: ArgumentCaptor <ReadRemoteFileCallback >
55-
56- @Captor
57- private lateinit var loadActivitiesCallbackCaptor: ArgumentCaptor <LoadActivitiesCallback >
58-
5952 private lateinit var activitiesPresenter: ActivitiesPresenter
6053 private lateinit var activitiesList: List <Any >
6154
6255 @Before
6356 fun setupActivitiesPresenter () {
64- MockitoAnnotations .initMocks (this )
57+ MockitoAnnotations .openMocks (this )
6558 activitiesPresenter = ActivitiesPresenter (activitiesRepository, filesRepository, view)
6659
6760 activitiesList = mutableListOf (
@@ -79,104 +72,84 @@ class ActivitiesPresenterTest {
7972 @Test
8073 fun loadInitialActivitiesFromRepositoryIntoView () {
8174 val lastGiven = - 1L
75+ val captor = argumentCaptor<LoadActivitiesCallback >()
8276
83- // When loading activities from repository is requested from presenter...
8477 activitiesPresenter.loadActivities(lifecycleScope, lastGiven)
85- // Empty list view is hidden in view
8678 verify(view).showLoadingMessage()
87- // Repository starts retrieving activities from server
8879 verify(activitiesRepository).getActivities(
8980 eq(lifecycleScope),
9081 eq(lastGiven),
91- loadActivitiesCallbackCaptor.capture()
92- )
93- // Repository returns data
94- loadActivitiesCallbackCaptor.value.onActivitiesLoaded(
95- activitiesList,
96- nextcloudClient,
97- lastGiven
82+ captor.capture()
9883 )
99- // Progress indicator is hidden
84+ captor.firstValue.onActivitiesLoaded(activitiesList, nextcloudClient, lastGiven)
10085 verify(view).setProgressIndicatorState(eq(false ))
101- // List of activities is shown in view
10286 verify(view).showActivities(eq(activitiesList), eq(nextcloudClient), eq(lastGiven))
10387 }
10488
10589 @Test
10690 fun loadFollowUpActivitiesFromRepositoryIntoView () {
10791 val lastGiven = 1L
92+ val captor = argumentCaptor<LoadActivitiesCallback >()
10893
109- // When loading activities from repository is requested from presenter...
11094 activitiesPresenter.loadActivities(lifecycleScope, lastGiven)
111- // Progress indicator is shown in view
11295 verify(view).setProgressIndicatorState(eq(true ))
113- // Repository starts retrieving activities from server
11496 verify(activitiesRepository).getActivities(
11597 eq(lifecycleScope),
11698 eq(lastGiven),
117- loadActivitiesCallbackCaptor .capture()
99+ captor .capture()
118100 )
119- // Repository returns data
120- loadActivitiesCallbackCaptor.value.onActivitiesLoaded(activitiesList, nextcloudClient, lastGiven)
121- // Progress indicator is hidden
101+ captor.firstValue.onActivitiesLoaded(activitiesList, nextcloudClient, lastGiven)
122102 verify(view).setProgressIndicatorState(eq(false ))
123- // List of activities is shown in view
124103 verify(view).showActivities(eq(activitiesList), eq(nextcloudClient), eq(lastGiven))
125104 }
126105
127106 @Test
128107 fun loadActivitiesFromRepositoryShowError () {
129108 val lastGiven = - 1L
109+ val captor = argumentCaptor<LoadActivitiesCallback >()
130110
131- // When loading activities from repository is requested from presenter...
132111 activitiesPresenter.loadActivities(lifecycleScope, lastGiven)
133- // Repository starts retrieving activities from server
134112 verify(activitiesRepository).getActivities(
135113 eq(lifecycleScope),
136114 eq(lastGiven),
137- loadActivitiesCallbackCaptor .capture()
115+ captor .capture()
138116 )
139- // Repository returns an error
140- loadActivitiesCallbackCaptor.value.onActivitiesLoadedError(" error" )
141- // Correct error is shown in view
117+ captor.firstValue.onActivitiesLoadedError(" error" )
142118 verify(view).showActivitiesLoadError(eq(" error" ))
143119 }
144120
145121 @Test
146122 fun loadRemoteFileFromRepositoryShowDetailUI () {
147- // When retrieving remote file from repository...
123+ val captor = argumentCaptor<ReadRemoteFileCallback >()
124+
148125 activitiesPresenter.openActivity(" null" , baseActivity)
149126 verify(view).setProgressIndicatorState(eq(true ))
150- verify(filesRepository).readRemoteFile(eq(" null" ), eq(baseActivity), readRemoteFileCallbackCaptor.capture())
151-
152- // Repository returns a valid file object
153- readRemoteFileCallbackCaptor.value.onFileLoaded(ocFile)
127+ verify(filesRepository).readRemoteFile(eq(" null" ), eq(baseActivity), captor.capture())
128+ captor.firstValue.onFileLoaded(ocFile)
154129 verify(view).setProgressIndicatorState(eq(false ))
155130 verify(view).showActivityDetailUI(eq(ocFile))
156131 }
157132
158133 @Test
159134 fun loadRemoteFileFromRepositoryShowEmptyFile () {
160- // When retrieving remote file from repository...
135+ val captor = argumentCaptor<ReadRemoteFileCallback >()
136+
161137 activitiesPresenter.openActivity(" null" , baseActivity)
162138 verify(view).setProgressIndicatorState(eq(true ))
163- verify(filesRepository).readRemoteFile(eq(" null" ), eq(baseActivity), readRemoteFileCallbackCaptor.capture())
164-
165- // Repository returns a valid but null file object
166- readRemoteFileCallbackCaptor.value.onFileLoaded(null )
139+ verify(filesRepository).readRemoteFile(eq(" null" ), eq(baseActivity), captor.capture())
140+ captor.firstValue.onFileLoaded(null )
167141 verify(view).setProgressIndicatorState(eq(false ))
168142 verify(view).showActivityDetailUIIsNull()
169143 }
170144
171145 @Test
172146 fun loadRemoteFileFromRepositoryShowError () {
173- // When retrieving remote file from repository...
147+ val captor = argumentCaptor<ReadRemoteFileCallback >()
148+
174149 activitiesPresenter.openActivity(" null" , baseActivity)
175150 verify(view).setProgressIndicatorState(eq(true ))
176- verify(filesRepository).readRemoteFile(eq(" null" ), eq(baseActivity), readRemoteFileCallbackCaptor.capture())
177-
178- // Repository returns an error
179- readRemoteFileCallbackCaptor.value.onFileLoadError(" error" )
151+ verify(filesRepository).readRemoteFile(eq(" null" ), eq(baseActivity), captor.capture())
152+ captor.firstValue.onFileLoadError(" error" )
180153 verify(view).setProgressIndicatorState(eq(false ))
181154 verify(view).showActivityDetailError(eq(" error" ))
182155 }
0 commit comments