示例#1
0
            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();
            }
示例#2
0
            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();
            }
示例#3
0
            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();
            }
示例#4
0
            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>();
            }
示例#5
0
            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>();
            }
示例#6
0
        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());
        }
示例#7
0
            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);
 }