From 08856fd162d8d9003c3882c23d6a3a3e20ffb44e Mon Sep 17 00:00:00 2001
From: Oliver Zimmerman <oezimmerman@gmail.com>
Date: Mon, 30 Nov 2020 15:00:37 +0000
Subject: [PATCH] Unit tests finalized.

---
 ...ssionTestResultConsentGivenFragmentTest.kt |  9 +----
 .../FragmentTestModuleRegistrar.kt            |  1 -
 ...bmissionTestResultConsentGivenViewModel.kt |  7 ++--
 ...sionTestResultConsentGivenViewModelTest.kt | 38 +++++++------------
 4 files changed, 17 insertions(+), 38 deletions(-)

diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt
index a68c7cfab..efa8c1831 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt
@@ -2,7 +2,6 @@ package de.rki.coronawarnapp.ui.submission
 
 import androidx.fragment.app.testing.launchFragment
 import androidx.fragment.app.testing.launchFragmentInContainer
-import androidx.lifecycle.MutableLiveData
 import androidx.navigation.NavController
 import androidx.navigation.Navigation
 import androidx.test.espresso.Espresso.onView
@@ -14,9 +13,7 @@ import dagger.android.ContributesAndroidInjector
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.ui.submission.testresult.SubmissionTestResultConsentGivenFragment
 import de.rki.coronawarnapp.ui.submission.testresult.SubmissionTestResultConsentGivenViewModel
-import de.rki.coronawarnapp.ui.submission.testresult.TestResultUIState
 import io.mockk.MockKAnnotations
-import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.junit.After
 import org.junit.Before
@@ -30,14 +27,10 @@ import testhelpers.BaseUITest
 class SubmissionTestResultConsentGivenFragmentTest : BaseUITest() {
 
     @MockK lateinit var viewModel: SubmissionTestResultConsentGivenViewModel
-    @MockK lateinit var uiState: TestResultUIState
 
     @Before
     fun setup() {
         MockKAnnotations.init(this, relaxed = true)
-
-        every { viewModel.uiState } returns MutableLiveData()
-
         setupMockViewModel(object : SubmissionTestResultConsentGivenViewModel.Factory {
             override fun create(): SubmissionTestResultConsentGivenViewModel = viewModel
         })
@@ -53,7 +46,7 @@ class SubmissionTestResultConsentGivenFragmentTest : BaseUITest() {
         launchFragment<SubmissionTestResultConsentGivenFragment>()
     }
 
-    @Test
+   @Test
     fun testEventConsentGivenContinueWithSymptomsClicked() {
 
         val mockNavController = mock(NavController::class.java)
diff --git a/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt b/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt
index 0dcf18fb5..0fce202ee 100644
--- a/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt
+++ b/Corona-Warn-App/src/androidTest/java/testhelpers/FragmentTestModuleRegistrar.kt
@@ -43,7 +43,6 @@ import de.rki.coronawarnapp.ui.submission.testresult.SubmissionTestResultConsent
         SubmissionContactTestModule::class,
         SubmissionDoneTestModule::class,
         SubmissionQRScanFragmentModule::class,
-        SubmissionTestResultConsentGivenModule::class
     ]
 )
 class FragmentTestModuleRegistrar
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModel.kt
index c54f8c723..17013ae99 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModel.kt
@@ -7,19 +7,18 @@ import de.rki.coronawarnapp.storage.SubmissionRepository
 import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionNavigationEvents
 import de.rki.coronawarnapp.util.DeviceUIState
 import de.rki.coronawarnapp.util.NetworkRequestWrapper.Companion.withSuccess
-import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
 import de.rki.coronawarnapp.util.ui.SingleLiveEvent
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
 import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory
+import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.combineTransform
 import kotlinx.coroutines.sync.Mutex
 import kotlinx.coroutines.sync.withLock
 import timber.log.Timber
 
 class SubmissionTestResultConsentGivenViewModel @AssistedInject constructor(
-    dispatcherProvider: DispatcherProvider,
     private val submissionRepository: SubmissionRepository
-) : CWAViewModel(dispatcherProvider = dispatcherProvider) {
+) : CWAViewModel() {
 
     private val showRedeemedTokenWarning = SingleLiveEvent<Unit>()
     private var wasRedeemedTokenErrorShown = false
@@ -45,7 +44,7 @@ class SubmissionTestResultConsentGivenViewModel @AssistedInject constructor(
             deviceUiState = deviceUiState,
             testResultReceivedDate = resultDate
         ).let { emit(it) }
-    }.asLiveData(context = dispatcherProvider.Default)
+    }.asLiveData(context = Dispatchers.Default)
 
     val routeToScreen: SingleLiveEvent<SubmissionNavigationEvents> = SingleLiveEvent()
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModelTest.kt
index 859af01db..13b2daaca 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultConsentGivenViewModelTest.kt
@@ -1,44 +1,32 @@
 package de.rki.coronawarnapp.ui.submission.testresult
 
-import androidx.lifecycle.MutableLiveData
-import androidx.test.ext.junit.runners.AndroidJUnit4
+import de.rki.coronawarnapp.storage.SubmissionRepository
 import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionNavigationEvents
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.every
 import io.mockk.impl.annotations.MockK
-import org.junit.After
-import org.junit.Before
+import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
-import org.junit.runner.RunWith
-import testhelpers.BaseUITest
+import testhelpers.BaseTest
 import testhelpers.extensions.InstantExecutorExtension
 
-@RunWith(AndroidJUnit4::class)
-class SubmissionTestResultConsentGivenViewModelTest : BaseUITest() {
+@ExtendWith(InstantExecutorExtension::class)
+class SubmissionTestResultConsentGivenViewModelTest : BaseTest() {
+    @MockK
+    lateinit var submissionRepository: SubmissionRepository
+    lateinit var viewModel: SubmissionTestResultConsentGivenViewModel
 
-    @MockK lateinit var viewModel: SubmissionTestResultConsentGivenViewModel
-    @MockK lateinit var uiState: TestResultUIState
-
-    @Before
-    fun setup() {
+    @BeforeEach
+    fun setUp() {
         MockKAnnotations.init(this, relaxed = true)
-
-        every { viewModel.uiState } returns MutableLiveData()
-
-        setupMockViewModel(object : SubmissionTestResultConsentGivenViewModel.Factory {
-            override fun create(): SubmissionTestResultConsentGivenViewModel = viewModel
-        })
     }
 
-    @After
-    fun teardown() {
-        clearAllViewModels()
-    }
+    private fun createViewModel() = SubmissionTestResultConsentGivenViewModel(submissionRepository)
 
     @Test
     fun testOnConsentProvideSymptomsButtonClick() {
+        viewModel = createViewModel()
         viewModel.onContinuePressed()
         viewModel.routeToScreen.value shouldBe SubmissionNavigationEvents.NavigateToSymptomIntroduction
 
@@ -46,8 +34,8 @@ class SubmissionTestResultConsentGivenViewModelTest : BaseUITest() {
 
     @Test
     fun testOnCancelled() {
+        viewModel = createViewModel()
         viewModel.cancelTestSubmission()
         viewModel.routeToScreen.value shouldBe SubmissionNavigationEvents.NavigateToMainActivity
     }
-
 }
-- 
GitLab