public void OpenWebViewCommandTests() { 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); 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 bool IsUpdated(TermsType termsType, TermsUpdateInfoModel termsUpdateInfo) { loggerService.StartMethod(); TermsUpdateInfoModel.Detail info = termsType switch { TermsType.TermsOfService => termsUpdateInfo.TermsOfService, TermsType.PrivacyPolicy => termsUpdateInfo.PrivacyPolicy, _ => throw new NotSupportedException() }; if (info == null) { loggerService.EndMethod(); return(false); } var updateDatetime = info.UpdateDateTimeUtc; DateTime lastUpdateDate = userDataRepository.GetLastUpdateDate(termsType); loggerService.Info($"termsType: {termsType}, lastUpdateDate: {lastUpdateDate}, updateDatetimeUtc: {updateDatetime}"); loggerService.EndMethod(); return(lastUpdateDate < updateDatetime); } }
public void OnClickReAgreeCommandTests_() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTime = new DateTime(2020, 11, 01) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "プライバシーポリシーテキスト", UpdateDateTime = new DateTime(2020, 11, 02) } }; var param = new NavigationParameters { { "updateInfo", updateInfo } }; reAgreeTermsOfServicePageViewModel.Initialize(param); mockTermsUpdateService.Setup(x => x.SaveLastUpdateDateAsync(TermsType.TermsOfService, updateInfo.TermsOfService.UpdateDateTime)); mockTermsUpdateService.Setup(x => x.IsReAgree(TermsType.PrivacyPolicy, updateInfo)).Returns(false); reAgreeTermsOfServicePageViewModel.OnClickReAgreeCommand.Execute(null); mockNavigationService.Verify(x => x.NavigateAsync("/" + nameof(MenuPage) + "/" + nameof(NavigationPage) + "/" + nameof(HomePage)), Times.Once()); }
public void OpenWebViewCommandTests() { var reAgreePrivacyPolicyPageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "test", UpdateDateTimeJst = DateTime.Now } }; var param = ReAgreePrivacyPolicyPage.BuildNavigationParams(updateInfo.PrivacyPolicy, Destination.HomePage); reAgreePrivacyPolicyPageViewModel.Initialize(param); var actualCalls = 0; string actualUri = default; BrowserLaunchMode actualLaunchMode = default; reAgreePrivacyPolicyPageViewModel.BrowserOpenAsync = (uri, launchMode) => { actualCalls++; actualUri = uri; actualLaunchMode = launchMode; return(Task.CompletedTask); }; reAgreePrivacyPolicyPageViewModel.OpenWebView.Execute(null); Assert.Equal(1, actualCalls); Assert.Equal(AppResources.UrlPrivacyPolicy, actualUri); Assert.Equal(BrowserLaunchMode.SystemPreferred, actualLaunchMode); }
public override void Initialize(INavigationParameters parameters) { loggerService.StartMethod(); base.Initialize(parameters); UpdateInfo = (TermsUpdateInfoModel)parameters["updateInfo"]; UpdateDateTime = UpdateInfo.TermsOfService.UpdateDateTime; UpdateText = UpdateInfo.TermsOfService.Text; loggerService.EndMethod(); }
public async Task Prepare() { _loggerService.StartMethod(); try { _termsUpdateInfoModel = await _termsUpdateService.GetTermsUpdateInfo(); } finally { _loggerService.EndMethod(); } }
public override void Initialize(INavigationParameters parameters) { _loggerService.StartMethod(); base.Initialize(parameters); UpdateInfo = (TermsUpdateInfoModel)parameters[ReAgreeTermsOfServicePage.UpdateInfoKey]; UpdateDateTimeUtc = UpdateInfo.TermsOfService.UpdateDateTimeUtc; UpdateText = UpdateInfo.TermsOfService.Text; _navigationParameters = parameters; _loggerService.EndMethod(); }
public static INavigationParameters BuildNavigationParams( TermsUpdateInfoModel updateInfo, Destination destination, INavigationParameters?baseParam = null ) { var param = new NavigationParameters(); param.CopyFrom(baseParam); param.Add(UpdateInfoKey, updateInfo); param.Add(DestinationKey, destination); return(param); }
public void InitializeTests() { var reAgreePrivacyPolicyPageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "test", UpdateDateTimeJst = new DateTime(2020, 11, 02) } }; var param = ReAgreePrivacyPolicyPage.BuildNavigationParams(updateInfo.PrivacyPolicy, Destination.HomePage); reAgreePrivacyPolicyPageViewModel.Initialize(param); Assert.Equal(updateInfo.PrivacyPolicy.Text, reAgreePrivacyPolicyPageViewModel.UpdateText); }
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 OnClickReAgreeCommandTests() { var reAgreePrivacyPolicyPageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "test", UpdateDateTimeJst = DateTime.Now } }; var param = ReAgreePrivacyPolicyPage.BuildNavigationParams(updateInfo.PrivacyPolicy, Destination.HomePage); reAgreePrivacyPolicyPageViewModel.Initialize(param); mockUserDataRepository.Setup(x => x.SaveLastUpdateDate(TermsType.PrivacyPolicy, updateInfo.PrivacyPolicy.UpdateDateTimeUtc)); reAgreePrivacyPolicyPageViewModel.OnClickReAgreeCommand.Execute(null); mockNavigationService.Verify(x => x.NavigateAsync(Destination.HomePage.ToPath(), param), Times.Once()); }
public void IsReAgreeTest_NotSaveLastUpdateDateTime(TermsType termsType, string key) { var info = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { UpdateDateTime = DateTime.Now }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { UpdateDateTime = DateTime.Now } }; var termsUpdateService = CreateService(); mockPreferencesService.Setup(x => x.ContainsKey(key)).Returns(false); var result = termsUpdateService.IsReAgree(termsType, info); Assert.True(result); }
public void IsReAgreeTest_NoNeedReAgree(TermsType termsType, string key) { var info = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { UpdateDateTime = new DateTime(2020, 11, 2) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { UpdateDateTime = new DateTime(2020, 11, 2) } }; var termsUpdateService = CreateService(); mockPreferencesService.Setup(x => x.ContainsKey(key)).Returns(true); mockPreferencesService.Setup(x => x.GetValue(key, new DateTime())).Returns(new DateTime(2020, 11, 3)); var result = termsUpdateService.IsReAgree(termsType, info); Assert.False(result); }
public void IsReAgreeTest_RequiredReAgree(TermsType termsType, string key) { var info = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { UpdateDateTime = new DateTime(2020, 11, 2) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { UpdateDateTime = new DateTime(2020, 11, 2) } }; var termsUpdateService = CreateService(); mockApplicationPropertyService.Setup(x => x.ContainsKey(key)).Returns(true); mockApplicationPropertyService.Setup(x => x.GetProperties(key)).Returns(new DateTime(2020, 11, 1)); var result = termsUpdateService.IsReAgree(termsType, info); Assert.True(result); }
public void IsUpdatedTest_RequiredReAgree(TermsType termsType, string key) { var info = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { UpdateDateTimeJst = new DateTime(2020, 11, 2) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { UpdateDateTimeJst = new DateTime(2020, 11, 2) } }; var termsUpdateService = CreateService(); mockPreferencesService.Setup(x => x.ContainsKey(key)).Returns(true); mockUserDataRepository.Setup(x => x.GetLastUpdateDate(termsType)).Returns(new DateTime(2020, 11, 1)); var result = termsUpdateService.IsUpdated(termsType, info); Assert.True(result); }
public bool IsReAgree(TermsType privacyType, TermsUpdateInfoModel termsUpdateInfo) { loggerService.StartMethod(); TermsUpdateInfoModel.Detail info = null; string key = null; switch (privacyType) { case TermsType.TermsOfService: info = termsUpdateInfo.TermsOfService; key = TermsOfServiceLastUpdateDateKey; break; case TermsType.PrivacyPolicy: info = termsUpdateInfo.PrivacyPolicy; key = PrivacyPolicyLastUpdateDateKey; break; } if (info == null) { loggerService.EndMethod(); return(false); } var lastUpdateDate = new DateTime(); if (applicationPropertyService.ContainsKey(key)) { lastUpdateDate = (DateTime)applicationPropertyService.GetProperties(key); } loggerService.Info($"privacyType: {privacyType}, lastUpdateDate: {lastUpdateDate}, info.UpdateDateTime: {info.UpdateDateTime}"); loggerService.EndMethod(); return(lastUpdateDate < info.UpdateDateTime); }
public bool IsReAgree(TermsType termsType, TermsUpdateInfoModel termsUpdateInfo) { loggerService.StartMethod(); TermsUpdateInfoModel.Detail info = null; string key = null; switch (termsType) { case TermsType.TermsOfService: info = termsUpdateInfo.TermsOfService; key = PreferenceKey.TermsOfServiceLastUpdateDateTime; break; case TermsType.PrivacyPolicy: info = termsUpdateInfo.PrivacyPolicy; key = PreferenceKey.PrivacyPolicyLastUpdateDateTime; break; } if (info == null) { loggerService.EndMethod(); return(false); } var lastUpdateDate = new DateTime(); if (preferencesService.ContainsKey(key)) { lastUpdateDate = preferencesService.GetValue(key, lastUpdateDate); } loggerService.Info($"termsType: {termsType}, lastUpdateDate: {lastUpdateDate}, info.UpdateDateTime: {info.UpdateDateTime}"); loggerService.EndMethod(); return(lastUpdateDate < info.UpdateDateTime); }
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 OpenWebViewCommandTests() { var reAgreeTermsOfServicePageViewModel = CreateViewModel(); var updateInfo = new TermsUpdateInfoModel { TermsOfService = new TermsUpdateInfoModel.Detail { Text = "利用規約テキスト", UpdateDateTime = new DateTime(2020, 11, 01) }, PrivacyPolicy = new TermsUpdateInfoModel.Detail { Text = "プライバシーポリシーテキスト", UpdateDateTime = new DateTime(2020, 11, 02) } }; var param = new NavigationParameters { { "updateInfo", updateInfo } }; 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("https://www.mhlw.go.jp/cocoa/kiyaku_english.html", actualUri); Assert.Equal(BrowserLaunchMode.SystemPreferred, actualLaunchMode); }
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()); }
public bool IsUpdated(TermsType termsType, TermsUpdateInfoModel termsUpdateInfo) { bool result = false; switch (termsType) { case TermsType.TermsOfService: if (_termsOfServiceUpdated) { _termsOfServiceUpdated = false; result = true; } break; case TermsType.PrivacyPolicy: if (_privacyPolicyUpdated) { _privacyPolicyUpdated = false; result = true; } break; } return(result); }