| 
				
			 | 
			
			
				@@ -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
			 | 
			
			
				 } 
			 |