Exemple #1
0
            public async Task ShowsTheOnboardingViewModelIfTheUserHasNotLoggedInPreviously()
            {
                ITogglDataSource dataSource = null;

                UserAccessManager.GetDataSourceIfLoggedIn().Returns(dataSource);

                await Task.Run(() => AppStart.Start());

                await NavigationService.Received().Navigate <OnboardingViewModel>();
            }
Exemple #2
0
            public async Task CallsForkNavigateToMainTabBarViewModelAndMainViewModelIfTheUserHasLoggedInPreviously()
            {
                var dataSource = Substitute.For <ITogglDataSource>();

                UserAccessManager.GetDataSourceIfLoggedIn().Returns(dataSource);

                await Task.Run(() => AppStart.Start());

                await NavigationService.Received().ForkNavigate <MainTabBarViewModel, MainViewModel>();
            }
            public void ReturnsADataSourceIfTheUserExistsInTheDatabase()
            {
                var observable = Observable.Return <IDatabaseUser>(FoundationUser.Clean(User));

                Database.User.Single().Returns(observable);

                var result = UserAccessManager.GetDataSourceIfLoggedIn();

                result.Should().NotBeNull();
            }
            public void ReturnsNullIfTheDatabaseHasNoUsers()
            {
                var observable = Observable.Throw <IDatabaseUser>(new InvalidOperationException());

                Database.User.Single().Returns(observable);

                var result = UserAccessManager.GetDataSourceIfLoggedIn();

                result.Should().BeNull();
            }
            public void EmitsTheDataSourceWhenUserIsLoggedIn()
            {
                var observer   = Substitute.For <IObserver <ITogglDataSource> >();
                var observable = Observable.Return <IDatabaseUser>(FoundationUser.Clean(User));

                Database.User.Single().Returns(observable);
                UserAccessManager.UserLoggedIn.Subscribe(observer);

                UserAccessManager.GetDataSourceIfLoggedIn();

                observer.Received().OnNext(Arg.Any <ITogglDataSource>());
            }
            public void DoesNotEmitTheDataSourceWhenUserIsNotLoggedIn()
            {
                var observer   = Substitute.For <IObserver <ITogglDataSource> >();
                var observable = Observable.Throw <IDatabaseUser>(new InvalidOperationException());

                Database.User.Single().Returns(observable);
                UserAccessManager.UserLoggedIn.Subscribe(observer);

                UserAccessManager.GetDataSourceIfLoggedIn();

                observer.DidNotReceive().OnNext(Arg.Any <ITogglDataSource>());
            }
Exemple #7
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 <ISingletonDataSource <IThreadSafeUser> >();

                user.ApiToken.Returns(newApiToken);
                userSource.Current.Returns(Observable.Return(user));
                dataSource.User.Returns(userSource);
                UserAccessManager.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().ForkNavigate <MainTabBarViewModel, MainViewModel>();
            }
Exemple #8
0
 protected AppStartTest()
 {
     AppStart = new AppStart <OnboardingViewModel>(App, TimeService, UserAccessManager, OnboardingStorage, NavigationService, AccessRestrictionStorage);
     DataSource.SyncManager.Returns(SyncManager);
     UserAccessManager.GetDataSourceIfLoggedIn().Returns(DataSource);
 }