Skip to content
Snippets Groups Projects
Unverified Commit 0fa9457e authored by Kolya Opahle's avatar Kolya Opahle Committed by GitHub
Browse files

Implementation of tests for the interoperability countries selection screen...

Implementation of tests for the interoperability countries selection screen (EXPOSUREAPP-2439) (#1140)

* Added initial set of viewModel tests

Signed-off-by: default avatarKolya Opahle <k.opahle@sap.com>

* Fail tests on unexpected null.

Co-authored-by: default avatarMatthias Urhahn <matthias.urhahn@sap.com>
parent f7f185a3
No related branches found
No related tags found
No related merge requests found
package de.rki.coronawarnapp.ui.submission.viewmodel
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import de.rki.coronawarnapp.ui.submission.SubmissionCountry
import io.kotest.inspectors.forAll
import io.kotest.inspectors.forAtLeastOne
import io.kotest.inspectors.forAtMostOne
import io.kotest.matchers.collections.shouldHaveSize
import io.kotest.matchers.shouldBe
import org.junit.Rule
import org.junit.Test
class SubmissionCountrySelectViewModelTest {
@get:Rule
val instantTaskExecRule = InstantTaskExecutorRule()
@Test
fun testFetchCountries() {
val viewModel = SubmissionCountrySelectViewModel()
viewModel.fetchCountries()
// TODO: implement proper test one backend is merged
viewModel.countries.value!!.shouldHaveSize(2)
}
@Test
fun testUpdateCountryCheckedState() {
val viewModel = SubmissionCountrySelectViewModel()
viewModel.fetchCountries()
viewModel.updateCountryCheckedState(SubmissionCountry("IT", true))
viewModel.countries.value!!.forAtMostOne {
it.countryCode shouldBe "IT"
it.selected shouldBe true
}
viewModel.updateCountryCheckedState(SubmissionCountry("IT", false))
viewModel.countries.value!!.forAtLeastOne {
it.countryCode shouldBe "IT"
it.selected shouldBe false
}
}
@Test
fun testNoInfoClickRemovesSelections() {
val viewModel = SubmissionCountrySelectViewModel()
viewModel.fetchCountries()
viewModel.updateCountryCheckedState(SubmissionCountry("IT", true))
viewModel.updateCountryCheckedState(SubmissionCountry("ES", true))
viewModel.countries.value!!.forAll { it.selected shouldBe true }
viewModel.noInfoClick()
viewModel.countries.value!!.forAll { it.selected shouldBe false }
}
}
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