From 322500c1fa91fd9ea2def115032792560fa7c9ac Mon Sep 17 00:00:00 2001 From: Matthias Urhahn <matthias.urhahn@sap.com> Date: Fri, 20 Nov 2020 14:07:20 +0100 Subject: [PATCH] Resolve ENFv2 PR comments (#1681) * Unarm the quota check for now. * Make key provider unit tests more specific. * Add time unit to parameter name. --- .../DefaultDiagnosisKeyProvider.kt | 5 +-- .../DefaultDiagnosisKeyProviderTest.kt | 31 +++++++++---------- .../windows/ExposureWindowsCalculationTest.kt | 8 ++--- .../nearby/windows/entities/cases/TestCase.kt | 4 +-- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt index 5d4ce8b4f..64f2e75d7 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt @@ -30,8 +30,9 @@ class DefaultDiagnosisKeyProvider @Inject constructor( enfVersion.requireMinimumVersion(ENFVersion.V1_6) if (!submissionQuota.consumeQuota(1)) { - Timber.w("No key files submitted because not enough quota available.") - return false + Timber.e("No key files submitted because not enough quota available.") + // Needs discussion until armed, concerns: Hiding other underlying issues. +// return false } return suspendCoroutine { cont -> diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt index a8fdf3444..da15e5721 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt @@ -4,10 +4,12 @@ import com.google.android.gms.nearby.exposurenotification.ExposureNotificationCl import de.rki.coronawarnapp.nearby.modules.version.ENFVersion import de.rki.coronawarnapp.nearby.modules.version.OutdatedENFVersionException import io.kotest.matchers.shouldBe +import io.mockk.Called import io.mockk.MockKAnnotations import io.mockk.clearAllMocks import io.mockk.coEvery import io.mockk.coVerify +import io.mockk.coVerifySequence import io.mockk.impl.annotations.MockK import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.runBlockingTest @@ -61,11 +63,9 @@ class DefaultDiagnosisKeyProviderTest : BaseTest() { runBlockingTest { provider.provideDiagnosisKeys(exampleKeyFiles) } shouldBe false } - coVerify(exactly = 0) { - googleENFClient.provideDiagnosisKeys(exampleKeyFiles) - googleENFClient.provideDiagnosisKeys(listOf(exampleKeyFiles[0])) - googleENFClient.provideDiagnosisKeys(listOf(exampleKeyFiles[1])) - submissionQuota.consumeQuota(2) + coVerify { + googleENFClient wasNot Called + submissionQuota wasNot Called } } @@ -75,27 +75,24 @@ class DefaultDiagnosisKeyProviderTest : BaseTest() { runBlocking { provider.provideDiagnosisKeys(exampleKeyFiles) } shouldBe true - coVerify(exactly = 1) { - googleENFClient.provideDiagnosisKeys(any<List<File>>()) - googleENFClient.provideDiagnosisKeys(exampleKeyFiles) + coVerifySequence { submissionQuota.consumeQuota(1) + googleENFClient.provideDiagnosisKeys(exampleKeyFiles) } } @Test - fun `provide diagnosis key when quota is empty`() { + fun `quota is just monitored`() { coEvery { submissionQuota.consumeQuota(any()) } returns false val provider = createProvider() - runBlocking { provider.provideDiagnosisKeys(exampleKeyFiles) } shouldBe false + runBlocking { provider.provideDiagnosisKeys(exampleKeyFiles) } shouldBe true - coVerify(exactly = 0) { - googleENFClient.provideDiagnosisKeys(any<List<File>>()) + coVerifySequence { + submissionQuota.consumeQuota(1) googleENFClient.provideDiagnosisKeys(exampleKeyFiles) } - - coVerify(exactly = 1) { submissionQuota.consumeQuota(1) } } @Test @@ -104,9 +101,9 @@ class DefaultDiagnosisKeyProviderTest : BaseTest() { runBlocking { provider.provideDiagnosisKeys(emptyList()) } shouldBe true - coVerify(exactly = 0) { - googleENFClient.provideDiagnosisKeys(any<List<File>>()) - googleENFClient.provideDiagnosisKeys(emptyList()) + coVerify { + googleENFClient wasNot Called + submissionQuota wasNot Called } } } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt index 4af8bfe87..c38efd853 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt @@ -135,8 +135,8 @@ class ExposureWindowsCalculationTest : BaseTest() { // 6 - Check with expected result from test case aggregatedRiskResult.totalRiskLevel.number shouldBe case.expTotalRiskLevel - aggregatedRiskResult.mostRecentDateWithHighRisk shouldBe getTestCaseDate(case.expAgeOfMostRecentDateWithHighRisk) - aggregatedRiskResult.mostRecentDateWithLowRisk shouldBe getTestCaseDate(case.expAgeOfMostRecentDateWithLowRisk) + aggregatedRiskResult.mostRecentDateWithHighRisk shouldBe getTestCaseDate(case.expAgeOfMostRecentDateWithHighRiskInDays) + aggregatedRiskResult.mostRecentDateWithLowRisk shouldBe getTestCaseDate(case.expAgeOfMostRecentDateWithLowRiskInDays) aggregatedRiskResult.totalMinimumDistinctEncountersWithHighRisk shouldBe case.expTotalMinimumDistinctEncountersWithHighRisk aggregatedRiskResult.totalMinimumDistinctEncountersWithLowRisk shouldBe case.expTotalMinimumDistinctEncountersWithLowRisk } @@ -164,14 +164,14 @@ class ExposureWindowsCalculationTest : BaseTest() { addPropertyCheckToComparisonDebugTable( "Date With High Risk", aggregated.mostRecentDateWithHighRisk, - getTestCaseDate(case.expAgeOfMostRecentDateWithHighRisk) + getTestCaseDate(case.expAgeOfMostRecentDateWithHighRiskInDays) ) ) result.append( addPropertyCheckToComparisonDebugTable( "Date With Low Risk", aggregated.mostRecentDateWithLowRisk, - getTestCaseDate(case.expAgeOfMostRecentDateWithLowRisk) + getTestCaseDate(case.expAgeOfMostRecentDateWithLowRiskInDays) ) ) result.append( diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/entities/cases/TestCase.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/entities/cases/TestCase.kt index 1ee966b35..0d28ea6d7 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/entities/cases/TestCase.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/entities/cases/TestCase.kt @@ -6,9 +6,9 @@ data class TestCase( @SerializedName("description") val description: String, @SerializedName("expAgeOfMostRecentDateWithHighRisk") - val expAgeOfMostRecentDateWithHighRisk: Long?, + val expAgeOfMostRecentDateWithHighRiskInDays: Long?, @SerializedName("expAgeOfMostRecentDateWithLowRisk") - val expAgeOfMostRecentDateWithLowRisk: Long?, + val expAgeOfMostRecentDateWithLowRiskInDays: Long?, @SerializedName("expTotalMinimumDistinctEncountersWithHighRisk") val expTotalMinimumDistinctEncountersWithHighRisk: Int, @SerializedName("expTotalMinimumDistinctEncountersWithLowRisk") -- GitLab