From 66403d6d461fba1f5d23c75abec180a962159435 Mon Sep 17 00:00:00 2001 From: ARIYAMA Keiji Date: Thu, 20 Jan 2022 16:07:40 +0900 Subject: [PATCH 1/2] Fix an issue that wrong == operator used. --- .../ExposureRiskCalculationConfigurationRepository.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Covid19Radar/Covid19Radar/Repository/ExposureRiskCalculationConfigurationRepository.cs b/Covid19Radar/Covid19Radar/Repository/ExposureRiskCalculationConfigurationRepository.cs index eca2f605e..530d9789d 100644 --- a/Covid19Radar/Covid19Radar/Repository/ExposureRiskCalculationConfigurationRepository.cs +++ b/Covid19Radar/Covid19Radar/Repository/ExposureRiskCalculationConfigurationRepository.cs @@ -113,7 +113,7 @@ private async Task GetExposureRiskCalcul { currentConfiguration = CreateDefaultConfiguration(); } - else if(preferCache) + else if (preferCache) { _loggerService.EndMethod(); return currentConfiguration; @@ -154,7 +154,7 @@ private async Task GetExposureRiskCalcul return currentConfiguration; } - if (newExposureRiskCalculationConfiguration == currentConfiguration) + if (newExposureRiskCalculationConfiguration.Equals(currentConfiguration)) { _loggerService.Info("ExposureRiskCalculationConfiguration have not been changed."); _loggerService.EndMethod(); From 5f4bac7f07f9ce484c39d8e0bdfe59c14bae5d73 Mon Sep 17 00:00:00 2001 From: ARIYAMA Keiji Date: Thu, 20 Jan 2022 16:17:34 +0900 Subject: [PATCH 2/2] Add test. --- ...CalculationConfigurationRepositoryTests.cs | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/Covid19Radar/Tests/Covid19Radar.UnitTests/Repository/ExposureRiskCalculationConfigurationRepositoryTests.cs b/Covid19Radar/Tests/Covid19Radar.UnitTests/Repository/ExposureRiskCalculationConfigurationRepositoryTests.cs index 90bfd114d..a7d1d2e98 100644 --- a/Covid19Radar/Tests/Covid19Radar.UnitTests/Repository/ExposureRiskCalculationConfigurationRepositoryTests.cs +++ b/Covid19Radar/Tests/Covid19Radar.UnitTests/Repository/ExposureRiskCalculationConfigurationRepositoryTests.cs @@ -155,5 +155,43 @@ V1ExposureRiskCalculationConfiguration newConfiguration Assert.Equal(result, newConfiguration); } + [Fact] + public async Task GetExposureRiskConfigurationTest_not_updated() + { + string currentConfigurationJson = GetTestJson(JSON_EXPOSURE_RISK_CONFIGURATION1); + File.WriteAllText(CURRENT_EXPOSURE_RISK_CONFIGURATION_FILE_PATH, currentConfigurationJson); + V1ExposureRiskCalculationConfiguration currentConfiguration + = JsonConvert.DeserializeObject(currentConfigurationJson); + + string newConfigurationJson = GetTestJson(JSON_EXPOSURE_RISK_CONFIGURATION2); + V1ExposureRiskCalculationConfiguration newConfiguration + = JsonConvert.DeserializeObject(newConfigurationJson); + + var jsonContent = new StringContent( + newConfigurationJson, + Encoding.UTF8, + "application/json" + ); + var client = HttpClientUtils.CreateHttpClient(HttpStatusCode.OK, jsonContent); + mockClientService.Setup(x => x.Create()).Returns(client); + + mockLocalPathService.Setup(x => x.ExposureConfigurationDirPath).Returns("./"); + mockLocalPathService.Setup(x => x.CurrentExposureRiskCalculationConfigurationPath).Returns(CURRENT_EXPOSURE_RISK_CONFIGURATION_FILE_PATH); + mockServerConfigurationRepository.Setup(x => x.ExposureRiskCalculationConfigurationUrl).Returns("https://example.com/exposure_risk_configuration.json"); + + var unitUnderTest = CreateRepository(); + var result = await unitUnderTest.GetExposureRiskCalculationConfigurationAsync(preferCache: false); + + result = await unitUnderTest.GetExposureRiskCalculationConfigurationAsync(preferCache: false); + + mockServerConfigurationRepository.Verify(s => s.LoadAsync(), Times.Exactly(2)); + mockLoggerService.Verify(x => x.Info("ExposureRiskCalculationConfiguration have not been changed.", It.IsAny(), It.IsAny(), It.IsAny()),Times.Once); + + Assert.NotNull(result); + + Assert.NotEqual(result, currentConfiguration); + Assert.Equal(result, newConfiguration); + } + } }