package co.smartreceipts.android.ocr.widget.configuration; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import co.smartreceipts.android.activities.NavigationHandler; import co.smartreceipts.android.identity.IdentityManager; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; @RunWith(RobolectricTestRunner.class) public class OcrConfigurationRouterTest { @InjectMocks OcrConfigurationRouter router; @Mock NavigationHandler navigationHandler; @Mock IdentityManager identityManager; @Before public void setUp() { MockitoAnnotations.initMocks(this); } @Test public void navigateToProperLocationWhenNotLoggedInForNewSession() { when(identityManager.isLoggedIn()).thenReturn(false); assertTrue(router.navigateToProperLocation(false)); verify(navigationHandler).navigateToLoginScreen(); } @Test public void navigateToProperLocationWhenNotLoggedInForExistingSession() { when(identityManager.isLoggedIn()).thenReturn(false); assertFalse(router.navigateToProperLocation(true)); verify(navigationHandler).navigateBackDelayed(); } @Test public void navigateToProperLocationWhenLoggedInForNewSession() { when(identityManager.isLoggedIn()).thenReturn(true); assertFalse(router.navigateToProperLocation(false)); verifyZeroInteractions(navigationHandler); } @Test public void navigateToProperLocationWhenLoggedInForExistingSession() { when(identityManager.isLoggedIn()).thenReturn(true); assertFalse(router.navigateToProperLocation(true)); verifyZeroInteractions(navigationHandler); } @Test public void navigateBack() { router.navigateBack(); verify(navigationHandler).navigateBack(); } }