Browse Source

popToRoot tests

Guy Carmeli 6 years ago
parent
commit
425d450ea8

+ 42
- 1
lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/StackControllerTest.java View File

29
 import org.mockito.Mockito;
29
 import org.mockito.Mockito;
30
 
30
 
31
 import static org.assertj.core.api.Java6Assertions.assertThat;
31
 import static org.assertj.core.api.Java6Assertions.assertThat;
32
+import static org.mockito.ArgumentMatchers.any;
32
 import static org.mockito.ArgumentMatchers.eq;
33
 import static org.mockito.ArgumentMatchers.eq;
33
 import static org.mockito.Mockito.mock;
34
 import static org.mockito.Mockito.mock;
34
 import static org.mockito.Mockito.spy;
35
 import static org.mockito.Mockito.spy;
338
         });
339
         });
339
     }
340
     }
340
 
341
 
342
+    @Test
343
+    public void popToRoot_onlyTopChildIsAnimated() {
344
+        child1.options.animated = new Bool(false);
345
+        child2.options.animated = new Bool(false);
346
+        child3.options.animated = new Bool(false);
347
+
348
+        uut.push(child1, new CommandListenerAdapter());
349
+        uut.push(child2, new CommandListenerAdapter());
350
+        uut.push(child3, new CommandListenerAdapter());
351
+
352
+        uut.popToRoot(new CommandListenerAdapter() {
353
+            @Override
354
+            public void onSuccess(String childId) {
355
+                verify(animator, times(1)).animatePop(eq(child3.getView()), any());
356
+            }
357
+        });
358
+    }
359
+
360
+    @Test
361
+    public void popToRoot_topChildrenAreDestroyed() {
362
+        child1.options.animated = new Bool(false);
363
+        child2.options.animated = new Bool(false);
364
+        child3.options.animated = new Bool(false);
365
+
366
+        uut.push(child1, new CommandListenerAdapter());
367
+        uut.push(child2, new CommandListenerAdapter());
368
+        uut.push(child3, new CommandListenerAdapter());
369
+
370
+        uut.popToRoot(new CommandListenerAdapter() {
371
+            @Override
372
+            public void onSuccess(String childId) {
373
+                verify(child1, times(0)).destroy();
374
+                verify(child2, times(1)).destroy();
375
+                verify(child3, times(1)).destroy();
376
+            }
377
+        });
378
+    }
379
+
341
     @Test
380
     @Test
342
     public void popToRoot_EmptyStackDoesNothing() {
381
     public void popToRoot_EmptyStackDoesNothing() {
343
         assertThat(uut.isEmpty()).isTrue();
382
         assertThat(uut.isEmpty()).isTrue();
344
-        uut.popToRoot(new CommandListenerAdapter());
383
+        CommandListenerAdapter listener = spy(new CommandListenerAdapter());
384
+        uut.popToRoot(listener);
345
         assertThat(uut.isEmpty()).isTrue();
385
         assertThat(uut.isEmpty()).isTrue();
386
+        verify(listener, times(1)).onError(any());
346
     }
387
     }
347
 
388
 
348
     @Test
389
     @Test