|
@@ -24,9 +24,9 @@ public class StackControllerTest extends BaseTest {
|
24
|
24
|
super.beforeEach();
|
25
|
25
|
activity = newActivity();
|
26
|
26
|
uut = new StackController(activity);
|
27
|
|
- child1 = new SimpleViewController(activity);
|
28
|
|
- child2 = new SimpleViewController(activity);
|
29
|
|
- child3 = new SimpleViewController(activity);
|
|
27
|
+ child1 = new SimpleViewController(activity, "child1");
|
|
28
|
+ child2 = new SimpleViewController(activity, "child2");
|
|
29
|
+ child3 = new SimpleViewController(activity, "child3");
|
30
|
30
|
}
|
31
|
31
|
|
32
|
32
|
@Test
|
|
@@ -38,24 +38,24 @@ public class StackControllerTest extends BaseTest {
|
38
|
38
|
public void holdsAStackOfViewControllers() throws Exception {
|
39
|
39
|
assertThat(uut.getChildControllers()).isEmpty();
|
40
|
40
|
uut.setChildControllers(child1, child2, child3);
|
41
|
|
- assertThat(uut.getChildControllers()).containsExactly(child3, child2, child1);
|
42
|
|
- assertThat(uut.getChildControllers().peek()).isEqualTo(child3);
|
|
41
|
+ assertThat(uut.getChildControllers()).containsOnly(child3, child2, child1);
|
|
42
|
+ assertThat(uut.peek()).isEqualTo(child3);
|
43
|
43
|
}
|
44
|
44
|
|
45
|
45
|
@Test
|
46
|
46
|
public void push() throws Exception {
|
47
|
47
|
assertThat(uut.getChildControllers()).isEmpty();
|
48
|
48
|
uut.push(child1);
|
49
|
|
- assertThat(uut.getChildControllers()).containsExactly(child1);
|
|
49
|
+ assertThat(uut.getChildControllers()).containsOnly(child1);
|
50
|
50
|
}
|
51
|
51
|
|
52
|
52
|
@Test
|
53
|
53
|
public void pop() throws Exception {
|
54
|
54
|
uut.push(child1);
|
55
|
55
|
uut.push(child2);
|
56
|
|
- assertThat(uut.getChildControllers()).containsExactly(child2, child1);
|
|
56
|
+ assertThat(uut.getChildControllers()).containsOnly(child2, child1);
|
57
|
57
|
uut.pop();
|
58
|
|
- assertThat(uut.getChildControllers()).containsExactly(child1);
|
|
58
|
+ assertThat(uut.getChildControllers()).containsOnly(child1);
|
59
|
59
|
}
|
60
|
60
|
|
61
|
61
|
@Test
|
|
@@ -98,24 +98,24 @@ public class StackControllerTest extends BaseTest {
|
98
|
98
|
|
99
|
99
|
@Test
|
100
|
100
|
public void popDoesNothingWhenZeroOrOneChild() throws Exception {
|
101
|
|
- assertThat(uut.getChildControllers().size()).isZero();
|
|
101
|
+ assertThat(uut.getChildControllers()).isEmpty();
|
102
|
102
|
uut.pop();
|
103
|
|
- assertThat(uut.getChildControllers().size()).isZero();
|
|
103
|
+ assertThat(uut.getChildControllers()).isEmpty();
|
104
|
104
|
|
105
|
105
|
uut.push(child1);
|
106
|
106
|
uut.pop();
|
107
|
|
- assertThat(uut.getChildControllers().size()).isEqualTo(1);
|
|
107
|
+ assertThat(uut.getChildControllers()).containsOnly(child1);
|
108
|
108
|
}
|
109
|
109
|
|
110
|
110
|
@Test
|
111
|
111
|
public void canPopWhenSizeIsMoreThanOne() throws Exception {
|
112
|
|
- assertThat(uut.getChildControllers().size()).isZero();
|
|
112
|
+ assertThat(uut.getChildControllers()).isEmpty();
|
113
|
113
|
assertThat(uut.canPop()).isFalse();
|
114
|
114
|
uut.push(child1);
|
115
|
|
- assertThat(uut.getChildControllers().size()).isEqualTo(1);
|
|
115
|
+ assertThat(uut.getChildControllers()).containsOnly(child1);
|
116
|
116
|
assertThat(uut.canPop()).isFalse();
|
117
|
117
|
uut.push(child2);
|
118
|
|
- assertThat(uut.getChildControllers().size()).isEqualTo(2);
|
|
118
|
+ assertThat(uut.getChildControllers()).containsOnly(child1, child2);
|
119
|
119
|
assertThat(uut.canPop()).isTrue();
|
120
|
120
|
}
|
121
|
121
|
|
|
@@ -131,26 +131,60 @@ public class StackControllerTest extends BaseTest {
|
131
|
131
|
public void pushAddsToViewTree() throws Exception {
|
132
|
132
|
assertThat(uut.getView().getChildCount()).isZero();
|
133
|
133
|
uut.push(child1);
|
134
|
|
- assertThat(uut.getView().getChildCount()).isEqualTo(1);
|
|
134
|
+ assertHasSingleChildViewOfController(child1);
|
135
|
135
|
}
|
136
|
136
|
|
137
|
137
|
@Test
|
138
|
138
|
public void pushRemovesPreviousFromTree() throws Exception {
|
139
|
139
|
assertThat(uut.getView().getChildCount()).isZero();
|
140
|
140
|
uut.push(child1);
|
141
|
|
- assertThat(uut.getView().getChildCount()).isEqualTo(1);
|
|
141
|
+ assertHasSingleChildViewOfController(child1);
|
142
|
142
|
uut.push(child2);
|
143
|
|
- assertThat(uut.getView().getChildCount()).isEqualTo(1);
|
|
143
|
+ assertHasSingleChildViewOfController(child2);
|
144
|
144
|
}
|
145
|
145
|
|
146
|
146
|
@Test
|
147
|
147
|
public void popReplacesViewWithPrevious() throws Exception {
|
148
|
148
|
uut.push(child1);
|
149
|
149
|
uut.push(child2);
|
150
|
|
- assertThat(uut.getView().getChildCount()).isEqualTo(1);
|
151
|
|
- assertThat(uut.getView().getChildAt(0)).isEqualTo(child2.getView());
|
|
150
|
+ assertHasSingleChildViewOfController(child2);
|
152
|
151
|
uut.pop();
|
|
152
|
+ assertHasSingleChildViewOfController(child1);
|
|
153
|
+ }
|
|
154
|
+
|
|
155
|
+ @Test
|
|
156
|
+ public void popSpecificWhenTopIsRegularPop() throws Exception {
|
|
157
|
+ uut.push(child1);
|
|
158
|
+ uut.push(child2);
|
|
159
|
+ uut.pop(child2);
|
|
160
|
+ assertThat(uut.getChildControllers()).containsOnly(child1);
|
|
161
|
+ assertHasSingleChildViewOfController(child1);
|
|
162
|
+ }
|
|
163
|
+
|
|
164
|
+ @Test
|
|
165
|
+ public void popSpecificDeepInStack() throws Exception {
|
|
166
|
+ uut.push(child1);
|
|
167
|
+ uut.push(child2);
|
|
168
|
+ assertHasSingleChildViewOfController(child2);
|
|
169
|
+
|
|
170
|
+ uut.pop(child1);
|
|
171
|
+ assertThat(uut.getChildControllers()).containsOnly(child2);
|
|
172
|
+ assertHasSingleChildViewOfController(child2);
|
|
173
|
+ }
|
|
174
|
+
|
|
175
|
+// @Test
|
|
176
|
+// public void getControllerAtIndex() throws Exception {
|
|
177
|
+// uut.push(child1);
|
|
178
|
+// uut.push(child2);
|
|
179
|
+// uut.push(child3);
|
|
180
|
+// assertThat(uut.getChildController(0)).isEqualTo(child1);
|
|
181
|
+// assertThat(uut.getChildController(1)).isEqualTo(child2);
|
|
182
|
+// assertThat(uut.getChildController(2)).isEqualTo(child3);
|
|
183
|
+// assertThat(uut.getChildController(3)).isNull();
|
|
184
|
+// }
|
|
185
|
+
|
|
186
|
+ private void assertHasSingleChildViewOfController(ViewController childController) {
|
153
|
187
|
assertThat(uut.getView().getChildCount()).isEqualTo(1);
|
154
|
|
- assertThat(uut.getView().getChildAt(0)).isEqualTo(child1.getView());
|
|
188
|
+ assertThat(uut.getView().getChildAt(0)).isEqualTo(childController.getView());
|
155
|
189
|
}
|
156
|
190
|
}
|