Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

Commit

Permalink
Merge pull request #1139 from cocoa-mhlw/feature/disable-event-log-se…
Browse files Browse the repository at this point in the history
…tting

イベントログの協力のお願いへの遷移を削除
  • Loading branch information
cocoa-dev004 authored Sep 14, 2022
2 parents ed1042e + acb0863 commit d5485de
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 201 deletions.
46 changes: 3 additions & 43 deletions Covid19Radar/Covid19Radar/Services/SplashNavigationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ public interface ISplashNavigationService
{
Destination Destination { get; set; }
INavigationParameters DestinationPageParameters { get; set; }
Task Prepare();
Task<INavigationResult> NavigateNextAsync(bool isSetupLaterEventLog = false);
}

Expand All @@ -24,39 +23,18 @@ public class SplashNavigationService : ISplashNavigationService
private readonly INavigationService _navigationService;
private readonly IUserDataRepository _userDataRepository;
private readonly ILoggerService _loggerService;
private readonly ITermsUpdateService _termsUpdateService;
private readonly ISendEventLogStateRepository _sendEventLogStateRepository;

public Destination Destination { get; set; }
public INavigationParameters DestinationPageParameters { get; set; }

private TermsUpdateInfoModel _termsUpdateInfoModel = new TermsUpdateInfoModel();

public SplashNavigationService(
INavigationService navigationService,
IUserDataRepository userDataRepository,
ILoggerService loggerService,
ITermsUpdateService termsUpdateService,
ISendEventLogStateRepository sendEventLogStateRepository)
ILoggerService loggerService)
{
_navigationService = navigationService;
_userDataRepository = userDataRepository;
_termsUpdateService = termsUpdateService;
_loggerService = loggerService;
_sendEventLogStateRepository = sendEventLogStateRepository;
}

public async Task Prepare()
{
_loggerService.StartMethod();
try
{
_termsUpdateInfoModel = await _termsUpdateService.GetTermsUpdateInfo();
}
finally
{
_loggerService.EndMethod();
}
}

public async Task<INavigationResult> NavigateNextAsync(bool isSetupLaterEventLog = false)
Expand All @@ -72,26 +50,8 @@ public async Task<INavigationResult> NavigateNextAsync(bool isSetupLaterEventLog
{
_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;
}
name = Destination.ToPath();
parameters = DestinationPageParameters;
}
else
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ public class SplashNavigationServiceTests
private readonly Mock<INavigationService> mockNavigatoinService;
private readonly Mock<IUserDataRepository> mockUserDataRepository;
private readonly Mock<ILoggerService> mockLoggerService;
private readonly Mock<ITermsUpdateService> mockTermsUpdateService;
private readonly Mock<ISendEventLogStateRepository> mockSendEventLogStateRepository;

private readonly TermsUpdateInfoModel _termsUpdateInfoDefault = new TermsUpdateInfoModel
{
Expand All @@ -36,30 +34,14 @@ public SplashNavigationServiceTests()
mockNavigatoinService = mockRepository.Create<INavigationService>();
mockUserDataRepository = mockRepository.Create<IUserDataRepository>();
mockLoggerService = mockRepository.Create<ILoggerService>();
mockTermsUpdateService = mockRepository.Create<ITermsUpdateService>();
mockSendEventLogStateRepository = mockRepository.Create<ISendEventLogStateRepository>();
}

public SplashNavigationService CreateService()
{
return new SplashNavigationService(
mockNavigatoinService.Object,
mockUserDataRepository.Object,
mockLoggerService.Object,
mockTermsUpdateService.Object,
mockSendEventLogStateRepository.Object);
}

[Fact]
public async Task PrepareTestAsync()
{
SplashNavigationService unitUnderTest = CreateService();

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();

mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());
mockLoggerService.Object);
}

[Fact]
Expand All @@ -70,141 +52,14 @@ public async Task NavigateNextAsyncTest_Tutorial()
unitUnderTest.Destination = Destination.HomePage;
unitUnderTest.DestinationPageParameters = new NavigationParameters();

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();
mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());

mockUserDataRepository.Setup(x => x.IsAllAgreed()).Returns(false);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault)).Returns(false);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault)).Returns(false);
mockSendEventLogStateRepository.Setup(x => x.IsExistNotSetEventType()).Returns(false);

await unitUnderTest.NavigateNextAsync();

mockUserDataRepository.Verify(x => x.IsAllAgreed(), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault), Times.Never());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault), Times.Never());
mockSendEventLogStateRepository.Verify(x => x.IsExistNotSetEventType(), Times.Never());
mockNavigatoinService.Verify(x => x.NavigateAsync("/TutorialPage1", It.IsAny<INavigationParameters>()), Times.Once());
}

[Fact]
public async Task NavigateNextAsyncTest_TermsOfService()
{
SplashNavigationService unitUnderTest = CreateService();

unitUnderTest.Destination = Destination.HomePage;
unitUnderTest.DestinationPageParameters = new NavigationParameters();

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();
mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());

mockUserDataRepository.Setup(x => x.IsAllAgreed()).Returns(true);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault)).Returns(true);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault)).Returns(true);
mockSendEventLogStateRepository.Setup(x => x.IsExistNotSetEventType()).Returns(true);

await unitUnderTest.NavigateNextAsync();

mockUserDataRepository.Verify(x => x.IsAllAgreed(), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault), Times.Never());
mockSendEventLogStateRepository.Verify(x => x.IsExistNotSetEventType(), Times.Never());
mockNavigatoinService.Verify(x => x.NavigateAsync("/ReAgreeTermsOfServicePage",
It.Is<INavigationParameters>(x =>
x.ContainsKey(ReAgreeTermsOfServicePage.TermsOfServiceDetailKey) &&
x.GetValue<TermsUpdateInfoModel.Detail>(ReAgreeTermsOfServicePage.TermsOfServiceDetailKey).Text == "Test: Terms of service")),
Times.Once());
}

[Fact]
public async Task NavigateNextAsyncTest_PrivacyPolicy()
{
SplashNavigationService unitUnderTest = CreateService();

unitUnderTest.Destination = Destination.HomePage;
unitUnderTest.DestinationPageParameters = new NavigationParameters();

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();
mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());

mockUserDataRepository.Setup(x => x.IsAllAgreed()).Returns(true);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault)).Returns(false);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault)).Returns(true);
mockSendEventLogStateRepository.Setup(x => x.IsExistNotSetEventType()).Returns(true);

await unitUnderTest.NavigateNextAsync();

mockUserDataRepository.Verify(x => x.IsAllAgreed(), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault), Times.Once());
mockSendEventLogStateRepository.Verify(x => x.IsExistNotSetEventType(), Times.Never());
mockNavigatoinService.Verify(x => x.NavigateAsync("/ReAgreePrivacyPolicyPage",
It.Is<INavigationParameters>(x =>
x.ContainsKey(ReAgreePrivacyPolicyPage.PrivacyPolicyDetailKey) &&
x.GetValue<TermsUpdateInfoModel.Detail>(ReAgreePrivacyPolicyPage.PrivacyPolicyDetailKey).Text == "Test: Privacy policy")),
Times.Once());
}

[Fact]
public async Task NavigateNextAsyncTest_EventLog()
{
SplashNavigationService unitUnderTest = CreateService();

unitUnderTest.Destination = Destination.HomePage;
unitUnderTest.DestinationPageParameters = new NavigationParameters();

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();
mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());

mockUserDataRepository.Setup(x => x.IsAllAgreed()).Returns(true);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault)).Returns(false);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault)).Returns(false);
mockSendEventLogStateRepository.Setup(x => x.IsExistNotSetEventType()).Returns(true);

await unitUnderTest.NavigateNextAsync();

mockUserDataRepository.Verify(x => x.IsAllAgreed(), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault), Times.Once());
mockSendEventLogStateRepository.Verify(x => x.IsExistNotSetEventType(), Times.Once());
mockNavigatoinService.Verify(x => x.NavigateAsync("/EventLogCooperationPage", It.IsAny<INavigationParameters>()), Times.Once());
}

[Fact]
public async Task NavigateNextAsyncTest_EventLogSetupLager()
{
SplashNavigationService unitUnderTest = CreateService();

unitUnderTest.Destination = Destination.HomePage;
unitUnderTest.DestinationPageParameters = new NavigationParameters();

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();
mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());

mockUserDataRepository.Setup(x => x.IsAllAgreed()).Returns(true);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault)).Returns(false);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault)).Returns(false);
mockSendEventLogStateRepository.Setup(x => x.IsExistNotSetEventType()).Returns(true);

await unitUnderTest.NavigateNextAsync(true);

mockUserDataRepository.Verify(x => x.IsAllAgreed(), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault), Times.Once());
mockSendEventLogStateRepository.Verify(x => x.IsExistNotSetEventType(), Times.Never());
mockNavigatoinService.Verify(x => x.NavigateAsync(Destination.HomePage.ToPath(), It.IsAny<INavigationParameters>()), Times.Once());
}

[Fact]
public async Task NavigateNextAsyncTest_Destination()
{
Expand All @@ -213,30 +68,18 @@ public async Task NavigateNextAsyncTest_Destination()
unitUnderTest.Destination = Destination.HomePage;
unitUnderTest.DestinationPageParameters = new NavigationParameters { { "test-key", "test-value" } };

mockTermsUpdateService.Setup(x => x.GetTermsUpdateInfo()).ReturnsAsync(_termsUpdateInfoDefault);

await unitUnderTest.Prepare();
mockTermsUpdateService.Verify(x => x.GetTermsUpdateInfo(), Times.Once());

mockUserDataRepository.Setup(x => x.IsAllAgreed()).Returns(true);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault)).Returns(false);
mockTermsUpdateService.Setup(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault)).Returns(false);
mockSendEventLogStateRepository.Setup(x => x.IsExistNotSetEventType()).Returns(false);

await unitUnderTest.NavigateNextAsync();

mockUserDataRepository.Verify(x => x.IsAllAgreed(), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoDefault), Times.Once());
mockTermsUpdateService.Verify(x => x.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoDefault), Times.Once());
mockSendEventLogStateRepository.Verify(x => x.IsExistNotSetEventType(), Times.Once());
mockNavigatoinService.Verify(x => x.NavigateAsync(
Destination.HomePage.ToPath(),
It.Is<INavigationParameters>(x =>
x.ContainsKey("test-key") &&
x.GetValue<string>("test-key") == "test-value")),
Times.Once());
}

}
}

0 comments on commit d5485de

Please sign in to comment.