public async Task ShowsTheOutdatedViewIfTheCurrentVersionOfTheAppIsOutdated() { AccessRestrictionStorage.IsClientOutdated().Returns(true); await Task.Run(() => AppStart.Start()); await NavigationService.Received().Navigate <OnboardingViewModel>(); await NavigationService.Received().Navigate <OutdatedAppViewModel>(); LoginManager.DidNotReceive().GetDataSourceIfLoggedIn(); }
public async Task ShowsTheOutdatedViewIfTheTokenWasRevokedAndTheApiIsOutdated() { AccessRestrictionStorage.IsUnauthorized(Arg.Any <string>()).Returns(true); AccessRestrictionStorage.IsApiOutdated().Returns(true); AppStart.Start(); await NavigationService.Received().Navigate <OutdatedAppViewModel>(); await NavigationService.DidNotReceive().Navigate <TokenResetViewModel>(); UserAccessManager.DidNotReceive().CheckIfLoggedIn(); }
public async Task ShowsTheOutdatedViewIfTheTokenWasRevokedAndTheAppIsOutdated() { AccessRestrictionStorage.IsUnauthorized(Arg.Any <string>()).Returns(true); AccessRestrictionStorage.IsClientOutdated().Returns(true); await Task.Run(() => AppStart.Start()); await NavigationService.Received().Navigate <OnboardingViewModel>(); await NavigationService.Received().Navigate <OutdatedAppViewModel>(); LoginManager.DidNotReceive().GetDataSourceIfLoggedIn(); }
public async Task DoesNotShowTheUnauthorizedAccessViewIfUsersApiTokenChanged() { var oldApiToken = Guid.NewGuid().ToString(); var newApiToken = Guid.NewGuid().ToString(); var user = Substitute.For <IThreadSafeUser>(); var interactorFactory = Substitute.For <IInteractorFactory>(); user.ApiToken.Returns(newApiToken); interactorFactory.GetCurrentUser().Execute().Returns(Observable.Return(user)); AccessRestrictionStorage.IsUnauthorized(Arg.Is(oldApiToken)).Returns(true); AccessRestrictionStorage.IsApiOutdated().Returns(false); AccessRestrictionStorage.IsClientOutdated().Returns(false); AppStart.Start(); await NavigationService.Received().Navigate <MainTabBarViewModel>(); }
public async Task DoesNotShowTheUnauthorizedAccessViewIfUsersApiTokenChanged() { var oldApiToken = Guid.NewGuid().ToString(); var newApiToken = Guid.NewGuid().ToString(); var user = Substitute.For <IThreadSafeUser>(); var dataSource = Substitute.For <ITogglDataSource>(); var userSource = Substitute.For <IUserSource>(); user.ApiToken.Returns(newApiToken); userSource.Current.Returns(Observable.Return(user)); dataSource.User.Returns(userSource); LoginManager.GetDataSourceIfLoggedIn().Returns(dataSource); AccessRestrictionStorage.IsUnauthorized(Arg.Is(oldApiToken)).Returns(true); AccessRestrictionStorage.IsApiOutdated().Returns(false); AccessRestrictionStorage.IsClientOutdated().Returns(false); await Task.Run(() => AppStart.Start()); await NavigationService.Received().Navigate <MainTabBarViewModel>(); }
public void Start_NavigatesToCorrectViewModel_Outdated() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var updateServiceMock = new Mock <IUpdateService>(); updateServiceMock.Setup(mock => mock.Outdated).Returns(true); var appStart = new AppStart( navigationsServiceMock.Object, updateServiceMock.Object ); // act appStart.Start(); // assert navigationsServiceMock.Verify(mock => mock.Navigate <UpdateViewModel>( It.IsAny <IMvxBundle>() ), Times.Once()); }
public async Task CallsNavigateToMainTabBarViewModelIfTheUserHasLoggedInPreviously() { AppStart.Start(); await NavigationService.Received().Navigate <MainTabBarViewModel>(); }
protected void Session_Start(object sender, EventArgs e) { //initializes Cache on first request AppStart.Start(HttpContext.Current); }