Browse Source

pass down lifecycle methods

Daniel Zlotin 7 years ago
parent
commit
a00c121882

+ 21
- 0
lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/ParentController.java View File

39
 
39
 
40
 		return null;
40
 		return null;
41
 	}
41
 	}
42
+
43
+	/*
44
+	 * lifecycle
45
+	 */
46
+
47
+	@Override
48
+	public void onAppear() {
49
+		super.onAppear();
50
+		for (ViewController child : getChildControllers()) {
51
+			child.onAppear();
52
+		}
53
+	}
54
+
55
+
56
+	@Override
57
+	public void onDisappear() {
58
+		super.onDisappear();
59
+		for (ViewController child : getChildControllers()) {
60
+			child.onDisappear();
61
+		}
62
+	}
42
 }
63
 }

+ 24
- 0
lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/ParentControllerTest.java View File

16
 import java.util.List;
16
 import java.util.List;
17
 
17
 
18
 import static org.assertj.core.api.Java6Assertions.assertThat;
18
 import static org.assertj.core.api.Java6Assertions.assertThat;
19
+import static org.mockito.Mockito.spy;
20
+import static org.mockito.Mockito.times;
21
+import static org.mockito.Mockito.verify;
19
 
22
 
20
 public class ParentControllerTest extends BaseTest {
23
 public class ParentControllerTest extends BaseTest {
21
 
24
 
76
 
79
 
77
 		assertThat(uut.findControllerById("child2")).isEqualTo(child2);
80
 		assertThat(uut.findControllerById("child2")).isEqualTo(child2);
78
 	}
81
 	}
82
+
83
+	@Test
84
+	public void lifecycleMethodsPassDownToChildren_onAppear() throws Exception {
85
+		ViewController child1 = spy(new SimpleViewController(activity, "child1"));
86
+		children.add(child1);
87
+
88
+		verify(child1, times(0)).onAppear();
89
+		uut.onAppear();
90
+		verify(child1, times(1)).onAppear();
91
+	}
92
+
93
+	@Test
94
+	public void lifecycleMethodsPassDownToChildren_onDisappear() throws Exception {
95
+		ViewController child1 = spy(new SimpleViewController(activity, "child1"));
96
+		children.add(child1);
97
+
98
+		verify(child1, times(0)).onDisappear();
99
+		uut.onDisappear();
100
+		verify(child1, times(1)).onDisappear();
101
+	}
102
+
79
 }
103
 }