Skip to content
Snippets Groups Projects
Unverified Commit 64201019 authored by BMItter's avatar BMItter Committed by GitHub
Browse files

Test result no notification intended fix (EXPOSUREAPP-4625) (#2204)


* Now it is working

* fix tests, not working after change

Co-authored-by: default avatarKolya Opahle <k.opahle@sap.com>
Co-authored-by: default avatarRalf Gehrer <ralfgehrer@users.noreply.github.com>
parent b80d8cfd
No related branches found
No related tags found
No related merge requests found
......@@ -3,11 +3,13 @@ package de.rki.coronawarnapp.notification
import android.content.Context
import androidx.navigation.NavDeepLinkBuilder
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.storage.LocalData
import de.rki.coronawarnapp.ui.main.MainActivity
import de.rki.coronawarnapp.util.device.ForegroundState
import de.rki.coronawarnapp.util.di.AppContext
import de.rki.coronawarnapp.util.formatter.TestResult
import kotlinx.coroutines.flow.first
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Provider
......@@ -21,6 +23,11 @@ class TestResultAvailableNotificationService @Inject constructor(
suspend fun showTestResultAvailableNotification(testResult: TestResult) {
if (foregroundState.isInForeground.first()) return
if (!LocalData.isNotificationsTestEnabled) {
Timber.i("Don't show test result available notification because user doesn't want to be informed")
return
}
val pendingIntent = navDeepLinkBuilderProvider.get().apply {
setGraph(R.navigation.nav_graph)
setComponentName(MainActivity::class.java)
......
......@@ -6,6 +6,7 @@ import android.content.Context
import androidx.navigation.NavDeepLinkBuilder
import de.rki.coronawarnapp.CoronaWarnApplication
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.storage.LocalData
import de.rki.coronawarnapp.util.device.ForegroundState
import de.rki.coronawarnapp.util.formatter.TestResult
import io.kotest.matchers.shouldBe
......@@ -41,11 +42,13 @@ class TestResultAvailableNotificationServiceTest {
MockKAnnotations.init(this)
mockkObject(CoronaWarnApplication)
mockkObject(LocalData)
every { CoronaWarnApplication.getAppContext() } returns context
every { context.getSystemService(Context.NOTIFICATION_SERVICE) } returns notificationManager
every { navDeepLinkBuilderProvider.get() } returns navDeepLinkBuilder
every { navDeepLinkBuilder.createPendingIntent() } returns pendingIntent
every { LocalData.isNotificationsTestEnabled } returns true
}
@AfterEach
......@@ -110,4 +113,23 @@ class TestResultAvailableNotificationServiceTest {
)
}
}
@Test
fun `test notification in background disabled`() = runBlockingTest {
coEvery { foregroundState.isInForeground } returns flow { emit(false) }
every { LocalData.isNotificationsTestEnabled } returns false
createInstance().apply {
showTestResultAvailableNotification(TestResult.POSITIVE)
verify(exactly = 0) {
notificationHelper.sendNotification(
title = any(),
content = any(),
notificationId = any(),
pendingIntent = any()
)
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment