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(); }
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); }