Skip to content
Snippets Groups Projects
Commit 08856fd1 authored by Oliver Zimmerman's avatar Oliver Zimmerman
Browse files

Unit tests finalized.

parent 17ee1c74
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -43,7 +43,6 @@ import de.rki.coronawarnapp.ui.submission.testresult.SubmissionTestResultConsent
SubmissionContactTestModule::class,
SubmissionDoneTestModule::class,
SubmissionQRScanFragmentModule::class,
SubmissionTestResultConsentGivenModule::class
]
)
class FragmentTestModuleRegistrar
......@@ -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()
......
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
}
}
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