public void OpenWebViewCommandTests() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var termsOfServiceDetail = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01) }; var param = ReAgreeTermsOfServicePage.BuildNavigationParams(termsOfServiceDetail); reAgreeTermsOfServicePageViewModel.Initialize(param); var actualCalls = 0; string actualUri = default; BrowserLaunchMode actualLaunchMode = default; reAgreeTermsOfServicePageViewModel.BrowserOpenAsync = (uri, launchMode) => { actualCalls++; actualUri = uri; actualLaunchMode = launchMode; return(Task.CompletedTask); }; reAgreeTermsOfServicePageViewModel.OpenWebView.Execute(null); Assert.Equal(1, actualCalls); Assert.Equal(AppResources.UrlTermOfUse, actualUri); Assert.Equal(BrowserLaunchMode.SystemPreferred, actualLaunchMode); }
public void InitializeTests() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var termsOfServiceDetail = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01) }; var param = ReAgreeTermsOfServicePage.BuildNavigationParams(termsOfServiceDetail); reAgreeTermsOfServicePageViewModel.Initialize(param); Assert.Equal(termsOfServiceDetail.Text, reAgreeTermsOfServicePageViewModel.UpdateText); }
public override async void OnNavigatedTo(INavigationParameters parameters) { _loggerService.StartMethod(); base.OnNavigatedTo(parameters); await _migrationService.MigrateAsync(); var destination = Destination.HomePage; if (parameters.ContainsKey(SplashPage.DestinationKey)) { _loggerService.Info($"Destination is set {destination}"); destination = parameters.GetValue <Destination>(SplashPage.DestinationKey); } if (_userDataRepository.IsAllAgreed()) { _loggerService.Info("User data exists"); var termsUpdateInfo = await _termsUpdateService.GetTermsUpdateInfo(); if (_termsUpdateService.IsUpdated(TermsType.TermsOfService, termsUpdateInfo)) { _loggerService.Info($"Transition to ReAgreeTermsOfServicePage"); var navigationParams = ReAgreeTermsOfServicePage.BuildNavigationParams(termsUpdateInfo, destination, parameters); _ = await NavigationService.NavigateAsync("/" + nameof(ReAgreeTermsOfServicePage), navigationParams); } else if (_termsUpdateService.IsUpdated(TermsType.PrivacyPolicy, termsUpdateInfo)) { _loggerService.Info($"Transition to ReAgreePrivacyPolicyPage"); var navigationParams = ReAgreePrivacyPolicyPage.BuildNavigationParams(termsUpdateInfo.PrivacyPolicy, destination, parameters); _ = await NavigationService.NavigateAsync("/" + nameof(ReAgreePrivacyPolicyPage), navigationParams); } else { _loggerService.Info($"Transition to {destination}"); _ = await NavigationService.NavigateAsync(destination.ToPath(), parameters); } } else { _loggerService.Info("No user data exists"); _loggerService.Info($"Transition to TutorialPage1"); _ = await NavigationService.NavigateAsync("/" + nameof(TutorialPage1)); } _loggerService.EndMethod(); }
public async Task <INavigationResult> NavigateNextAsync(bool isSetupLaterEventLog = false) { _loggerService.StartMethod(); try { string name; INavigationParameters parameters; if (_userDataRepository.IsAllAgreed()) { _loggerService.Info("Is all agreed"); if (_termsUpdateService.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoModel)) { name = $"/{nameof(ReAgreeTermsOfServicePage)}"; parameters = ReAgreeTermsOfServicePage.BuildNavigationParams(_termsUpdateInfoModel.TermsOfService); } else if (_termsUpdateService.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoModel)) { name = $"/{nameof(ReAgreePrivacyPolicyPage)}"; parameters = ReAgreePrivacyPolicyPage.BuildNavigationParams(_termsUpdateInfoModel.PrivacyPolicy); } else if (!isSetupLaterEventLog && _sendEventLogStateRepository.IsExistNotSetEventType()) { name = $"/{nameof(EventLogCooperationPage)}"; parameters = EventLogCooperationPage.BuildNavigationParams(EventLogCooperationPage.TransitionReason.Splash); } else { name = Destination.ToPath(); parameters = DestinationPageParameters; } } else { name = $"/{nameof(TutorialPage1)}"; parameters = null; } _loggerService.Info($"Transition to {name}"); return(await _navigationService.NavigateAsync(name, parameters)); } finally { _loggerService.EndMethod(); } }
public void OnClickReAgreeCommandTests() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var termsOfServiceDetail = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01) }; var param = ReAgreeTermsOfServicePage.BuildNavigationParams(termsOfServiceDetail); reAgreeTermsOfServicePageViewModel.Initialize(param); mockUserDataRepository.Setup(x => x.SaveLastUpdateDate(TermsType.TermsOfService, termsOfServiceDetail.UpdateDateTimeUtc)); reAgreeTermsOfServicePageViewModel.OnClickReAgreeCommand.Execute(null); mockSplashNavigationService.Verify(x => x.NavigateNextAsync(false), Times.Once()); }
public void InitializeTests() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "プライバシーポリシーテキスト", UpdateDateTimeJst = new DateTime(2020, 11, 02) } }; var param = ReAgreeTermsOfServicePage.BuildNavigationParams(updateInfo, Destination.HomePage); reAgreeTermsOfServicePageViewModel.Initialize(param); Assert.Equal(updateInfo.TermsOfService.Text, reAgreeTermsOfServicePageViewModel.UpdateText); }
public void OnClickReAgreeCommandWithDestinationTest() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "プライバシーポリシーテキスト", UpdateDateTimeJst = new DateTime(2020, 11, 02) } }; var param = ReAgreeTermsOfServicePage.BuildNavigationParams(updateInfo, Destination.NotifyOtherPage); reAgreeTermsOfServicePageViewModel.Initialize(param); mockUserDataRepository.Setup(x => x.SaveLastUpdateDate(TermsType.TermsOfService, updateInfo.TermsOfService.UpdateDateTimeUtc)); mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, updateInfo)).Returns(false); reAgreeTermsOfServicePageViewModel.OnClickReAgreeCommand.Execute(null); mockNavigationService.Verify(x => x.NavigateAsync(Destination.NotifyOtherPage.ToPath(), param), Times.Once()); }
public void OnClickReAgreeCommandTests_NavigateReAgreePrivacyPolicyPageViewModel() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "プライバシーポリシーテキスト", UpdateDateTimeJst = new DateTime(2020, 11, 02) } }; var param = ReAgreeTermsOfServicePage.BuildNavigationParams(updateInfo, Destination.HomePage); reAgreeTermsOfServicePageViewModel.Initialize(param); mockUserDataRepository.Setup(x => x.SaveLastUpdateDate(TermsType.TermsOfService, updateInfo.TermsOfService.UpdateDateTimeUtc)); mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, updateInfo)).Returns(true); reAgreeTermsOfServicePageViewModel.OnClickReAgreeCommand.Execute(null); param.Add("updatePrivacyPolicyInfo", updateInfo.PrivacyPolicy); mockNavigationService.Verify(x => x.NavigateAsync(nameof(ReAgreePrivacyPolicyPage), It.IsAny <NavigationParameters>()), Times.Once()); }