protected override void AdditionalSetup()
            {
                OnboardingStorage
                .CompletedCalendarOnboarding()
                .Returns(true);

                PermissionsService
                .CalendarPermissionGranted
                .Returns(Observable.Return(true));

                NavigationService
                .Navigate <SelectUserCalendarsViewModel, bool, string[]>(Arg.Any <bool>())
                .Returns(new string[0]);

                InteractorFactory
                .GetUserCalendars()
                .Execute()
                .Returns(Observable.Return(new UserCalendar().Yield()));

                DialogService
                .Alert(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>())
                .Returns(Observable.Return(Unit.Default));

                TestScheduler.AdvanceBy(1);
            }
            public void ReturnsFalseIfCalendarOnboardingHasBeenCompleted()
            {
                OnboardingStorage.CompletedCalendarOnboarding().Returns(true);
                var viewModel = CreateViewModel();
                var observer  = TestScheduler.CreateObserver <bool>();

                viewModel.ShouldShowOnboarding.Subscribe(observer);
                TestScheduler.Start();

                observer.Messages.Single().Value.Value.Should().BeFalse();
            }
Beispiel #3
0
            public void ReturnsTrueIfCalendarOnboardingHasntBeenCompleted()
            {
                OnboardingStorage.CompletedCalendarOnboarding().Returns(false);
                var viewModel = CreateViewModel();
                var observer  = TestScheduler.CreateObserver <bool>();

                viewModel.ShouldShowOnboarding.Subscribe(observer);

                TestScheduler.Start();
                observer.SingleEmittedValue().Should().BeTrue();
            }
            public async Task EmitsFalseWhenUserWantsToContinueWithoutCalendarAccess()
            {
                OnboardingStorage.CompletedCalendarOnboarding().Returns(false);
                var observer = TestScheduler.CreateObserver <bool>();

                ViewModel.ShouldShowOnboarding.Subscribe(observer);
                PermissionsService.RequestCalendarAuthorization().Returns(Observable.Return(false));
                NavigationService.Navigate <CalendarPermissionDeniedViewModel, Unit>().Returns(Unit.Default);

                ViewModel.GetStarted.Execute();
                TestScheduler.Start();

                observer.Messages.Select(message => message.Value.Value).AssertEqual(true, false);
            }
            public async Task EmitsFalseWhenUserGrantsCalendarAccess()
            {
                OnboardingStorage.CompletedCalendarOnboarding().Returns(false);
                var observer = TestScheduler.CreateObserver <bool>();

                ViewModel.ShouldShowOnboarding.Subscribe(observer);
                PermissionsService.RequestCalendarAuthorization().Returns(Observable.Return(true));
                NavigationService.Navigate <SelectUserCalendarsViewModel, string[]>().Returns(new string[0]);

                ViewModel.GetStarted.Execute();
                TestScheduler.Start();

                observer.Messages.Select(message => message.Value.Value).AssertEqual(true, false);
            }