From 68946ced66cd6c39280bbc2f85b9caef53491102 Mon Sep 17 00:00:00 2001 From: Kolya Opahle <k.opahle@sap.com> Date: Wed, 17 Mar 2021 16:04:08 +0100 Subject: [PATCH] =?UTF-8?q?1.14=20"Ihr=20Testergebnis=20liegt=20vor"=20->?= =?UTF-8?q?=201.15=20"Risiko-=C3=9Cberpr=C3=BCfung=20fehlgeschlagen"=20(EX?= =?UTF-8?q?POSUREAPP-5843)=20(#2632)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Risk Level calculation is now only aborted when the user has seen the positive test result * Fixed tests for Risk Level calc changes Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com> --- .../rki/coronawarnapp/risk/RiskLevelTask.kt | 4 +-- .../coronawarnapp/risk/RiskLevelTaskTest.kt | 32 ++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt index 0bdfeb13e..e9ab8acd4 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/RiskLevelTask.kt @@ -83,8 +83,8 @@ class RiskLevelTask @Inject constructor( Timber.d("The current time is %s", it) } - if (submissionSettings.isAllowedToSubmitKeys) { - Timber.i("Positive test result, skip risk calculation") + if (submissionSettings.isAllowedToSubmitKeys && submissionSettings.hasViewedTestResult.value) { + Timber.i("Positive test result and user has seen it, skip risk calculation") return RiskLevelTaskResult( calculatedAt = nowUTC, failureReason = FailureReason.POSITIVE_TEST_RESULT diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt index 28cf7f0f7..aa31b2ba8 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt @@ -204,7 +204,7 @@ class RiskLevelTaskTest : BaseTest() { } @Test - fun `risk calculation is skipped if positive test is registered`() = runBlockingTest { + fun `risk calculation is skipped if positive test is registered and viewed`() = runBlockingTest { val cachedKey = mockk<CachedKey>().apply { every { info } returns mockk<CachedKeyInfo>().apply { every { toDateTime() } returns DateTime.parse("2020-12-28").minusDays(1) @@ -216,6 +216,7 @@ class RiskLevelTaskTest : BaseTest() { every { backgroundModeStatus.isAutoModeEnabled } returns flowOf(false) every { timeStamper.nowUTC } returns now every { submissionSettings.isAllowedToSubmitKeys } returns true + every { submissionSettings.hasViewedTestResult.value } returns true createTask().run(arguments) shouldBe RiskLevelTaskResult( calculatedAt = now, @@ -223,6 +224,35 @@ class RiskLevelTaskTest : BaseTest() { ) } + @Test + fun `risk calculation is not skipped if positive test is registered and not viewed`() = runBlockingTest { + val cachedKey = mockk<CachedKey>().apply { + every { info } returns mockk<CachedKeyInfo>().apply { + every { toDateTime() } returns DateTime.parse("2020-12-28").minusDays(1) + } + } + val now = Instant.parse("2020-12-28") + val aggregatedRiskResult = mockk<AggregatedRiskResult>().apply { + every { isIncreasedRisk() } returns true + } + + coEvery { keyCacheRepository.getAllCachedKeys() } returns listOf(cachedKey) + coEvery { enfClient.exposureWindows() } returns listOf() + every { riskLevels.calculateRisk(any(), any()) } returns null + every { riskLevels.aggregateResults(any(), any()) } returns aggregatedRiskResult + every { timeStamper.nowUTC } returns now + coEvery { analyticsExposureWindowCollector.reportRiskResultsPerWindow(any()) } just Runs + every { submissionSettings.isAllowedToSubmitKeys } returns true + every { submissionSettings.hasViewedTestResult.value } returns false + + createTask().run(arguments) shouldBe RiskLevelTaskResult( + calculatedAt = now, + failureReason = null, + aggregatedRiskResult = aggregatedRiskResult, + listOf() + ) + } + @Test fun `risk calculation returns aggregated risk result`() = runBlockingTest { val cachedKey = mockk<CachedKey>().apply { -- GitLab