package com.lyft.scoop; import com.lyft.scoop.transitions.BackwardSlideTransition; import com.lyft.scoop.transitions.ForwardSlideTransition; import com.lyft.scoop.transitions.InstantTransition; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE) public class UiContainerTest { @Rule public ExpectedException exception = ExpectedException.none(); @Test public void getTransitionsFromViewController() { final ViewControllerWithTransitions viewControllerWithTransitions = new ViewControllerWithTransitions(); final ScreenTransition enterTransition = UiContainer.getTransition(viewControllerWithTransitions, TransitionDirection.ENTER); final ScreenTransition exitTransition = UiContainer.getTransition(viewControllerWithTransitions, TransitionDirection.EXIT); Assert.assertEquals(enterTransition.getClass(), ForwardSlideTransition.class); Assert.assertEquals(exitTransition.getClass(), BackwardSlideTransition.class); } @Test public void useInstantTransitionIfControllerHasNoTransitions() { final ViewController viewControllerWithoutTransitions = new ViewControllerWithoutTransitions(); final ScreenTransition enterTransition = UiContainer.getTransition(viewControllerWithoutTransitions, TransitionDirection.ENTER); final ScreenTransition exitTransition = UiContainer.getTransition(viewControllerWithoutTransitions, TransitionDirection.EXIT); Assert.assertEquals(enterTransition.getClass(), InstantTransition.class); Assert.assertEquals(exitTransition.getClass(), InstantTransition.class); } private static class ViewControllerWithTransitions extends ViewController { @Override protected ScreenTransition enterTransition() { return new ForwardSlideTransition(); } @Override protected ScreenTransition exitTransition() { return new BackwardSlideTransition(); } @Override protected int layoutId() { return 0; } } private static class ViewControllerWithoutTransitions extends ViewController { @Override protected int layoutId() { return 0; } } }