diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt index b8b64db0f02b78fc43531ffd539d72e770345d6a..ea7b2eece6db44ee9736e3c964240429d3775a14 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTask.kt @@ -6,6 +6,7 @@ import de.rki.coronawarnapp.coronatest.CoronaTestRepository import de.rki.coronawarnapp.exception.ExceptionCategory import de.rki.coronawarnapp.exception.reporting.report import de.rki.coronawarnapp.presencetracing.checkins.CheckInRepository +import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut import de.rki.coronawarnapp.presencetracing.risk.calculation.CheckInWarningMatcher import de.rki.coronawarnapp.presencetracing.risk.calculation.PresenceTracingRiskMapper import de.rki.coronawarnapp.presencetracing.risk.storage.PresenceTracingRiskRepository @@ -34,6 +35,7 @@ class PresenceTracingWarningTask @Inject constructor( private val checkInsRepository: CheckInRepository, private val presenceTracingRiskMapper: PresenceTracingRiskMapper, private val coronaTestRepository: CoronaTestRepository, + private val autoCheckOut: AutoCheckOut, ) : Task<PresenceTracingWarningTaskProgress, PresenceTracingWarningTask.Result> { private val internalProgress = ConflatedBroadcastChannel<PresenceTracingWarningTaskProgress>() @@ -44,6 +46,12 @@ class PresenceTracingWarningTask @Inject constructor( override suspend fun run(arguments: Task.Arguments): Result = try { Timber.d("Running with arguments=%s", arguments) + autoCheckOut.apply { + Timber.tag(TAG).d("Processing overdue check-outs before risk calculation.") + processOverDueCheckouts() + refreshAlarm() + } + try { doWork() } catch (e: Exception) { 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 d81f7eff26394e0c622943efb89dde6e84aab444..eaf28fd1f4fa40984ab5e636ad6a5e540136463c 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 @@ -13,7 +13,6 @@ import de.rki.coronawarnapp.exception.reporting.report import de.rki.coronawarnapp.nearby.ENFClient import de.rki.coronawarnapp.nearby.modules.detectiontracker.ExposureDetectionTracker import de.rki.coronawarnapp.nearby.modules.detectiontracker.TrackedExposureDetection -import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut import de.rki.coronawarnapp.risk.EwRiskLevelResult.FailureReason import de.rki.coronawarnapp.risk.result.EwAggregatedRiskResult import de.rki.coronawarnapp.risk.storage.RiskLevelStorage @@ -48,7 +47,6 @@ class RiskLevelTask @Inject constructor( private val keyCacheRepository: KeyCacheRepository, private val coronaTestRepository: CoronaTestRepository, private val analyticsExposureWindowCollector: AnalyticsExposureWindowCollector, - private val autoCheckOut: AutoCheckOut, ) : Task<DefaultProgress, EwRiskLevelTaskResult> { private val internalProgress = ConflatedBroadcastChannel<DefaultProgress>() @@ -59,12 +57,6 @@ class RiskLevelTask @Inject constructor( override suspend fun run(arguments: Task.Arguments): EwRiskLevelTaskResult = try { Timber.d("Running with arguments=%s", arguments) - autoCheckOut.apply { - Timber.tag(TAG).d("Processing overdue check-outs before risk calculation.") - processOverDueCheckouts() - refreshAlarm() - } - val configData: ConfigData = appConfigProvider.getAppConfig() determineRiskLevelResult(configData).also { diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt index 79a5518b6b160bcf15755ffd9bceef9234693aeb..98d7ace516554e1496faa5d6e0c784999f0db1c4 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/risk/execution/PresenceTracingWarningTaskTest.kt @@ -3,6 +3,7 @@ package de.rki.coronawarnapp.presencetracing.risk.execution import de.rki.coronawarnapp.coronatest.CoronaTestRepository import de.rki.coronawarnapp.coronatest.type.CoronaTest import de.rki.coronawarnapp.presencetracing.checkins.CheckInRepository +import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut import de.rki.coronawarnapp.presencetracing.risk.calculation.CheckInWarningMatcher import de.rki.coronawarnapp.presencetracing.risk.calculation.PresenceTracingRiskMapper import de.rki.coronawarnapp.presencetracing.risk.calculation.createCheckIn @@ -45,6 +46,7 @@ class PresenceTracingWarningTaskTest : BaseTest() { @MockK lateinit var traceWarningRepository: TraceWarningRepository @MockK lateinit var checkInsRepository: CheckInRepository @MockK lateinit var presenceTracingRiskMapper: PresenceTracingRiskMapper + @MockK lateinit var autoCheckOut: AutoCheckOut @MockK lateinit var coronaTestRepository: CoronaTestRepository private val coronaTests: MutableStateFlow<Set<CoronaTest>> = MutableStateFlow( @@ -87,6 +89,9 @@ class PresenceTracingWarningTaskTest : BaseTest() { } coEvery { presenceTracingRiskMapper.clearConfig() } just Runs + + coEvery { autoCheckOut.processOverDueCheckouts() } returns emptyList() + coEvery { autoCheckOut.refreshAlarm() } returns true } private fun createInstance() = PresenceTracingWarningTask( @@ -98,6 +103,7 @@ class PresenceTracingWarningTaskTest : BaseTest() { checkInsRepository = checkInsRepository, presenceTracingRiskMapper = presenceTracingRiskMapper, coronaTestRepository = coronaTestRepository, + autoCheckOut = autoCheckOut, ) @Test @@ -105,6 +111,9 @@ class PresenceTracingWarningTaskTest : BaseTest() { createInstance().run(mockk()) shouldNotBe null coVerifySequence { + autoCheckOut.processOverDueCheckouts() + autoCheckOut.refreshAlarm() + syncTool.syncPackages() presenceTracingRiskRepository.deleteStaleData() checkInsRepository.checkInsWithinRetention 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 77e65bd863c06f9f0ae662767e22adf81cd63c3a..b9f84a1809d366028a29df859a2d4129b6e532f6 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 @@ -13,7 +13,6 @@ import de.rki.coronawarnapp.diagnosiskeys.storage.CachedKey import de.rki.coronawarnapp.diagnosiskeys.storage.CachedKeyInfo import de.rki.coronawarnapp.diagnosiskeys.storage.KeyCacheRepository import de.rki.coronawarnapp.nearby.ENFClient -import de.rki.coronawarnapp.presencetracing.checkins.checkout.auto.AutoCheckOut import de.rki.coronawarnapp.risk.result.EwAggregatedRiskResult import de.rki.coronawarnapp.risk.storage.RiskLevelStorage import de.rki.coronawarnapp.task.Task @@ -54,7 +53,6 @@ class RiskLevelTaskTest : BaseTest() { @MockK lateinit var keyCacheRepository: KeyCacheRepository @MockK lateinit var coronaTestRepository: CoronaTestRepository @MockK lateinit var analyticsExposureWindowCollector: AnalyticsExposureWindowCollector - @MockK lateinit var autoCheckOut: AutoCheckOut private val arguments: Task.Arguments = object : Task.Arguments {} @@ -95,9 +93,6 @@ class RiskLevelTaskTest : BaseTest() { coEvery { keyCacheRepository.getAllCachedKeys() } returns emptyList() coEvery { riskLevelStorage.storeResult(any()) } just Runs - - coEvery { autoCheckOut.processOverDueCheckouts() } returns emptyList() - coEvery { autoCheckOut.refreshAlarm() } returns true } private fun createTask() = RiskLevelTask( @@ -112,7 +107,6 @@ class RiskLevelTaskTest : BaseTest() { keyCacheRepository = keyCacheRepository, coronaTestRepository = coronaTestRepository, analyticsExposureWindowCollector = analyticsExposureWindowCollector, - autoCheckOut = autoCheckOut ) @Test