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