Parcourir la source

popToRoot tests

Guy Carmeli il y a 6 ans
Parent
révision
425d450ea8

+ 42
- 1
lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/StackControllerTest.java Voir le fichier

@@ -29,6 +29,7 @@ import org.mockito.ArgumentCaptor;
29 29
 import org.mockito.Mockito;
30 30
 
31 31
 import static org.assertj.core.api.Java6Assertions.assertThat;
32
+import static org.mockito.ArgumentMatchers.any;
32 33
 import static org.mockito.ArgumentMatchers.eq;
33 34
 import static org.mockito.Mockito.mock;
34 35
 import static org.mockito.Mockito.spy;
@@ -338,11 +339,51 @@ public class StackControllerTest extends BaseTest {
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 380
     @Test
342 381
     public void popToRoot_EmptyStackDoesNothing() {
343 382
         assertThat(uut.isEmpty()).isTrue();
344
-        uut.popToRoot(new CommandListenerAdapter());
383
+        CommandListenerAdapter listener = spy(new CommandListenerAdapter());
384
+        uut.popToRoot(listener);
345 385
         assertThat(uut.isEmpty()).isTrue();
386
+        verify(listener, times(1)).onError(any());
346 387
     }
347 388
 
348 389
     @Test