summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/test
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-12-20 10:25:17 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-01-08 09:27:06 +0100
commit0f33bd4bcbdf7fc3a9defb79b38f30a37038e89f (patch)
treea1137f3331274dd85d27b057826a8dfdb1869ded /android/app/src/test
parent02c7148847246fc492948d8ffdb426792c5f1c64 (diff)
downloadmullvadvpn-0f33bd4bcbdf7fc3a9defb79b38f30a37038e89f.tar.xz
mullvadvpn-0f33bd4bcbdf7fc3a9defb79b38f30a37038e89f.zip
Make UI state have constraints
Diffstat (limited to 'android/app/src/test')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt7
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt4
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt34
3 files changed, 21 insertions, 24 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt
index 6ec1ae1fea..4575d8c895 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt
@@ -59,8 +59,7 @@ class RelayListFilterRepositoryTest {
fun `when settings is updated selected providers should update`() = runTest {
// Arrange
val mockSettings: Settings = mockk()
- val selectedProviders: Constraint<Providers> =
- Constraint.Only(Providers(setOf(ProviderId("Prove"))))
+ val selectedProviders: Constraint<Providers> = Constraint.Only(setOf(ProviderId("Prove")))
every { mockSettings.relaySettings.relayConstraints.providers } returns selectedProviders
// Act, Assert
@@ -147,7 +146,7 @@ class RelayListFilterRepositoryTest {
@Test
fun `when successfully updating selected providers should return successful`() = runTest {
// Arrange
- val providers = Constraint.Only(Providers(setOf(ProviderId("Mopp"))))
+ val providers = Constraint.Only(setOf(ProviderId("Mopp")))
coEvery { mockManagementService.setProviders(providers) } returns Unit.right()
// Act
@@ -162,7 +161,7 @@ class RelayListFilterRepositoryTest {
fun `when failing to update selected providers should return SetWireguardConstraintsError`() =
runTest {
// Arrange
- val providers = Constraint.Only(Providers(setOf(ProviderId("Mopp"))))
+ val providers = Constraint.Only(setOf(ProviderId("Mopp")))
val error = SetWireguardConstraintsError.Unknown(mockk())
coEvery { mockManagementService.setProviders(providers) } returns error.left()
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt
index bd1a759b77..32921b4ab0 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt
@@ -71,7 +71,7 @@ class FilterChipUseCaseTest {
@Test
fun `when provider filter is applied should return correct number of providers`() = runTest {
// Arrange
- val expectedProviders = Providers(providers = setOf(ProviderId("1"), ProviderId("2")))
+ val expectedProviders = setOf(ProviderId("1"), ProviderId("2"))
selectedProviders.value = Constraint.Only(expectedProviders)
providerToOwnerships.value =
mapOf(
@@ -88,7 +88,7 @@ class FilterChipUseCaseTest {
fun `when provider and ownership filter is applied should return correct filter chips`() =
runTest {
// Arrange
- val expectedProviders = Providers(providers = setOf(ProviderId("1")))
+ val expectedProviders = setOf(ProviderId("1"))
val expectedOwnership = Ownership.MullvadOwned
selectedProviders.value = Constraint.Only(expectedProviders)
selectedOwnership.value = Constraint.Only(expectedOwnership)
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt
index 49b9b4baff..7c905c0119 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt
@@ -16,7 +16,7 @@ import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.compose.state.toConstraintProviders
import net.mullvad.mullvadvpn.compose.state.toOwnershipConstraint
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
-import net.mullvad.mullvadvpn.lib.common.test.assertLists
+import net.mullvad.mullvadvpn.lib.common.test.assertSet
import net.mullvad.mullvadvpn.lib.model.Constraint
import net.mullvad.mullvadvpn.lib.model.Ownership
import net.mullvad.mullvadvpn.lib.model.ProviderId
@@ -55,15 +55,15 @@ class FilterViewModelTest {
ProviderId("Tzulo") to setOf(Ownership.Rented),
ProviderId("xtom") to setOf(Ownership.Rented),
)
- private val mockSelectedProviders: List<ProviderId> =
- listOf(ProviderId("31173"), ProviderId("Blix"), ProviderId("Creanova"))
+ private val mockSelectedProviders: Providers =
+ setOf(ProviderId("31173"), ProviderId("Blix"), ProviderId("Creanova"))
@BeforeEach
fun setup() {
every { mockRelayListFilterRepository.selectedOwnership } returns selectedOwnership
every { mockProvidersOwnershipUseCase() } returns flowOf(dummyListOfAllProviders)
every { mockRelayListFilterRepository.selectedProviders } returns
- MutableStateFlow(Constraint.Only(Providers(mockSelectedProviders.toHashSet())))
+ MutableStateFlow(Constraint.Only(mockSelectedProviders))
viewModel =
FilterViewModel(
providerToOwnershipsUseCase = mockProvidersOwnershipUseCase,
@@ -84,9 +84,9 @@ class FilterViewModelTest {
val mockOwnership = Ownership.Rented
// Assert
viewModel.uiState.test {
- assertEquals(awaitItem().selectedOwnership, Ownership.MullvadOwned)
- viewModel.setSelectedOwnership(mockOwnership)
- assertEquals(mockOwnership, awaitItem().selectedOwnership)
+ assertEquals(Constraint.Only(Ownership.MullvadOwned), awaitItem().selectedOwnership)
+ viewModel.setSelectedOwnership(Constraint.Only(mockOwnership))
+ assertEquals(Constraint.Only(mockOwnership), awaitItem().selectedOwnership)
}
}
@@ -97,11 +97,11 @@ class FilterViewModelTest {
val mockSelectedProvidersList = ProviderId("ptisp")
// Assert
viewModel.uiState.test {
- assertLists(awaitItem().selectedProviders, mockSelectedProviders)
+ assertSet(mockSelectedProviders, awaitItem().selectedProviders.getOrNull()!!)
viewModel.setSelectedProvider(true, mockSelectedProvidersList)
- assertLists(
- listOf(mockSelectedProvidersList) + mockSelectedProviders,
- awaitItem().selectedProviders,
+ assertSet(
+ setOf(mockSelectedProvidersList) + mockSelectedProviders,
+ awaitItem().selectedProviders.getOrNull()!!,
)
}
}
@@ -109,14 +109,12 @@ class FilterViewModelTest {
@Test
fun `setAllProvider with true should emit uiState with selectedProviders includes all providers`() =
runTest {
- // Arrange
- val mockProvidersList = dummyListOfAllProviders.keys.toList()
// Act
viewModel.setAllProviders(true)
// Assert
viewModel.uiState.test {
val state = awaitItem()
- assertEquals(mockProvidersList, state.selectedProviders)
+ assertEquals(Constraint.Any, state.selectedProviders)
}
}
@@ -126,7 +124,7 @@ class FilterViewModelTest {
// Arrange
val mockOwnership = Ownership.MullvadOwned.toOwnershipConstraint()
val mockSelectedProviders =
- mockSelectedProviders.toConstraintProviders(dummyListOfAllProviders.keys.toList())
+ mockSelectedProviders.toConstraintProviders(dummyListOfAllProviders.keys)
coEvery {
mockRelayListFilterRepository.updateSelectedOwnershipAndProviderFilter(
mockOwnership,
@@ -149,12 +147,12 @@ class FilterViewModelTest {
@Test
fun `ensure that providers with multiple ownership are only returned once`() = runTest {
// Arrange
- val expectedProviderList = dummyListOfAllProviders.keys.toList()
+ val expectedProviderList = dummyListOfAllProviders.keys
// Assert
viewModel.uiState.test {
val state = awaitItem()
- assertLists(expectedProviderList, state.allProviders)
+ assertSet(expectedProviderList, state.allProviders)
}
}
@@ -163,7 +161,7 @@ class FilterViewModelTest {
// Assert
viewModel.uiState.test {
val state = awaitItem()
- assertEquals(state.allProviders.sorted(), state.allProviders)
+ assertSet(state.allProviders, state.allProviders)
assertEquals(state.selectableProviders.sorted(), state.selectableProviders)
}
}