@@ -11,7 +11,6 @@ import org.mockito.ArgumentMatchers.any
11
11
import org.mockito.ArgumentMatchers.anyInt
12
12
import org.mockito.ArgumentMatchers.argThat
13
13
import org.mockito.Mock
14
- import org.mockito.Mockito.`when`
15
14
import org.mockito.Mockito.never
16
15
import org.mockito.Mockito.times
17
16
import org.mockito.Mockito.verify
@@ -20,27 +19,21 @@ import java.util.*
20
19
class CategoriesListPresenterTest : BasePresenterTest <CategoriesListPresenter >() {
21
20
@Mock
22
21
private lateinit var mockView: View
23
- @Mock
24
- private lateinit var mockContestBuilder : Contest .Builder
22
+
23
+ private lateinit var contestBuilder : Contest .Builder
25
24
26
25
@Before
27
26
fun setup () {
28
- `when `(mockContestBuilder.categories).thenReturn(makeCategories())
29
- presenter = CategoriesListPresenter (mockView, testConfiguration, mockContestBuilder)
30
- }
31
-
32
- private fun makeCategories (): List <Category > {
33
- val categories = ArrayList <Category >()
34
- for (i in 0 .. 4 ) {
35
- categories.add(Category (" Category " + i, " Category description " + i))
27
+ contestBuilder = Contest .Builder ().apply {
28
+ categories = makeCategories()
36
29
}
37
- return categories
30
+ presenter = CategoriesListPresenter (mockView, testConfiguration, contestBuilder)
38
31
}
39
32
40
33
@Test
41
34
fun presenterShouldAddDefaultCategoryIfCategoriesIsEmptyOrNull () {
42
- ` when `(mockContestBuilder .categories).thenReturn( ArrayList < Category >() )
43
- presenter = CategoriesListPresenter (mockView, testConfiguration, mockContestBuilder )
35
+ contestBuilder .categories = mutableListOf ( )
36
+ presenter = CategoriesListPresenter (mockView, testConfiguration, contestBuilder )
44
37
verify<View >(mockView).getDefaultCategory(anyInt(), anyInt())
45
38
}
46
39
@@ -52,14 +45,15 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
52
45
53
46
@Test
54
47
fun onViewBoundShouldDisableNextWhenCategoriesIsEmpty () {
55
- ` when `(mockContestBuilder .categories).thenReturn( ArrayList < Category >() )
48
+ contestBuilder .categories = mutableListOf ( )
56
49
presenter.onViewBound()
57
50
verify<View >(mockView).setNextEnabled(false )
58
51
}
59
52
60
53
@Test
61
54
fun onDeleteClickedShouldNeverDisableWhenCategoriesIsNotEmpty () {
62
- val categories = mockContestBuilder.categories
55
+ val categories = contestBuilder.categories
56
+
63
57
var i = 0
64
58
while (i < (categories.size - 1 )) {
65
59
presenter.onDeleteClicked(categories[i++ ])
@@ -71,7 +65,7 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
71
65
72
66
@Test
73
67
fun onDeleteClickedShouldDisableNextWhenCategoriesIsEmpty () {
74
- ` when `(mockContestBuilder .categories).thenReturn( ArrayList < Category >() )
68
+ contestBuilder .categories = mutableListOf ( )
75
69
val singleCategory = Category (" Single Category" , " TEST" )
76
70
77
71
presenter.onDeleteClicked(singleCategory)
@@ -94,7 +88,7 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
94
88
95
89
@Test
96
90
fun onViewBoundShouldTriggerViewToDisableNextWhenCategoriesIsEmpty () {
97
- ` when `(mockContestBuilder .categories).thenReturn( ArrayList < Category >() )
91
+ contestBuilder .categories = mutableListOf ( )
98
92
presenter.onViewBound()
99
93
verify<View >(mockView).setNextEnabled(false )
100
94
}
@@ -108,7 +102,7 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
108
102
@Test
109
103
fun displayCategoriesShouldShowDefaultCategoryWhenThereAreNoCategories () {
110
104
val categories = listOf (Category (" Default name" , " Default description" ))
111
- ` when `(mockContestBuilder .categories).thenReturn( categories)
105
+ contestBuilder .categories = categories
112
106
113
107
presenter.displayCategories()
114
108
@@ -117,12 +111,8 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
117
111
118
112
@Test
119
113
fun displayCategoriesShouldShowCategoriesWhenThereAreCategories () {
120
- val categories = makeCategories()
121
- `when `(mockContestBuilder.categories).thenReturn(categories)
122
-
123
114
presenter.displayCategories()
124
-
125
- verify<View >(mockView).showCategories(categories)
115
+ verify<View >(mockView).showCategories(contestBuilder.categories)
126
116
}
127
117
128
118
@Test
@@ -140,7 +130,7 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
140
130
@Test
141
131
fun onCategoryClickedShouldTriggerViewToShowEditPage () {
142
132
val categories = listOf (Category (" Test" , " Tester" ))
143
- ` when `(mockContestBuilder .categories).thenReturn( categories)
133
+ contestBuilder .categories = categories
144
134
145
135
presenter.onCategoryClicked(categories[0 ])
146
136
@@ -149,30 +139,32 @@ class CategoriesListPresenterTest : BasePresenterTest<CategoriesListPresenter>()
149
139
150
140
@Test
151
141
fun onDeleteClickedShouldTriggerViewToLoseCategory () {
152
- val initialSize = mockContestBuilder .categories.size
153
- presenter.onDeleteClicked(mockContestBuilder .categories[0 ])
142
+ val initialSize = contestBuilder .categories.size
143
+ presenter.onDeleteClicked(contestBuilder .categories[0 ])
154
144
verify<View >(mockView).showCategories(argThat<List <Category >> { argument -> argument.size == initialSize - 1 })
155
145
}
156
146
157
147
@Test
158
148
fun onCategoryMovedShouldUpdateCategoriesListWhenItemMovedUp () {
159
- val categories = makeCategories()
160
- `when `(mockContestBuilder.categories).thenReturn(categories)
161
-
162
149
presenter.onCategoryMoved(1 , 4 )
163
150
164
- assertTrue(categories[4 ].name == " Category 1" )
165
- assertTrue(categories[1 ].name == " Category 2" )
151
+ assertTrue(contestBuilder. categories[4 ].name == " Category 1" )
152
+ assertTrue(contestBuilder. categories[1 ].name == " Category 2" )
166
153
}
167
154
168
155
@Test
169
156
fun onCategoryMovedShouldUpdateCategoriesListWhenItemMovedDown () {
170
- val categories = makeCategories()
171
- `when `(mockContestBuilder.categories).thenReturn(categories)
172
-
173
157
presenter.onCategoryMoved(4 , 1 )
174
158
175
- assertTrue(categories[1 ].name == " Category 4" )
176
- assertTrue(categories[4 ].name == " Category 3" )
159
+ assertTrue(contestBuilder.categories[1 ].name == " Category 4" )
160
+ assertTrue(contestBuilder.categories[4 ].name == " Category 3" )
161
+ }
162
+
163
+ private fun makeCategories (): List <Category > {
164
+ val categories = ArrayList <Category >()
165
+ for (i in 0 .. 4 ) {
166
+ categories.add(Category (" Category " + i, " Category description " + i))
167
+ }
168
+ return categories
177
169
}
178
170
}
0 commit comments