summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/test
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-05-19 08:16:51 +0200
committerAlbin <albin@mullvad.net>2023-05-23 16:27:32 +0200
commit6d8b81e305489bafed9e84a7c297e4f71ac3e9dc (patch)
tree20ff409083afbee7e3b23c366d6094fd6f589358 /android/app/src/test
parent3470c85de0a361ee340b510bc779318c5ac95860 (diff)
downloadmullvadvpn-6d8b81e305489bafed9e84a7c297e4f71ac3e9dc.tar.xz
mullvadvpn-6d8b81e305489bafed9e84a7c297e4f71ac3e9dc.zip
Remove scopes in koin and use global scope everywhere
Diffstat (limited to 'android/app/src/test')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt45
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt25
2 files changed, 18 insertions, 52 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt
deleted file mode 100644
index 01b1807d42..0000000000
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.mullvad.mullvadvpn.di
-
-import android.os.Messenger
-import io.mockk.mockk
-import io.mockk.unmockkAll
-import kotlin.test.assertEquals
-import net.mullvad.mullvadvpn.ipc.Event
-import net.mullvad.mullvadvpn.ipc.MessageDispatcher
-import net.mullvad.mullvadvpn.ui.serviceconnection.SplitTunneling
-import org.junit.After
-import org.junit.Rule
-import org.junit.Test
-import org.koin.core.parameter.parametersOf
-import org.koin.core.qualifier.named
-import org.koin.core.scope.Scope
-import org.koin.test.KoinTest
-import org.koin.test.KoinTestRule
-
-class UiModuleTest : KoinTest {
-
- @get:Rule val koinTestRule = KoinTestRule.create { modules(uiModule) }
-
- @After
- fun tearDown() {
- unmockkAll()
- }
-
- @Test
- fun test_scope_linking() {
- val appsScope: Scope = getKoin().createScope(APPS_SCOPE, named(APPS_SCOPE))
- val serviceConnectionScope =
- getKoin().createScope(SERVICE_CONNECTION_SCOPE, named(SERVICE_CONNECTION_SCOPE))
-
- appsScope.linkTo(serviceConnectionScope)
-
- val mockedMessenger = mockk<Messenger>()
- val mockedEventMessageHandler = mockk<MessageDispatcher<Event>>(relaxed = true)
- val serviceConnectionSplitTunneling =
- serviceConnectionScope.get<SplitTunneling>(
- parameters = { parametersOf(mockedMessenger, mockedEventMessageHandler) }
- )
-
- assertEquals(appsScope.get<SplitTunneling>(), serviceConnectionSplitTunneling)
- }
-}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt
index bc31165ebe..2b5a7f261c 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt
@@ -14,11 +14,15 @@ import io.mockk.verifyAll
import java.util.concurrent.TimeUnit
import kotlin.test.assertEquals
import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.TestCoroutineRule
import net.mullvad.mullvadvpn.applist.AppData
import net.mullvad.mullvadvpn.applist.ApplicationsProvider
import net.mullvad.mullvadvpn.compose.state.SplitTunnelingUiState
+import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionContainer
+import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager
+import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionState
import net.mullvad.mullvadvpn.ui.serviceconnection.SplitTunneling
import org.junit.After
import org.junit.Before
@@ -32,6 +36,8 @@ class SplitTunnelingViewModelTest {
@get:Rule val timeout = Timeout(3000L, TimeUnit.MILLISECONDS)
private val mockedApplicationsProvider = mockk<ApplicationsProvider>()
private val mockedSplitTunneling = mockk<SplitTunneling>()
+ private val mockedServiceConnectionManager = mockk<ServiceConnectionManager>()
+ private val mockedServiceConnectionContainer = mockk<ServiceConnectionContainer>()
private lateinit var testSubject: SplitTunnelingViewModel
@Before
@@ -67,7 +73,7 @@ class SplitTunnelingViewModelTest {
}
initTestSubject(emptyList())
val expectedState =
- SplitTunnelingUiState.Data(
+ SplitTunnelingUiState.ShowAppList(
excludedApps = emptyList(),
includedApps = emptyList(),
showSystemApps = false
@@ -88,7 +94,7 @@ class SplitTunnelingViewModelTest {
initTestSubject(listOf(appExcluded, appNotExcluded))
val expectedState =
- SplitTunnelingUiState.Data(
+ SplitTunnelingUiState.ShowAppList(
excludedApps = listOf(appExcluded),
includedApps = listOf(appNotExcluded),
showSystemApps = false
@@ -119,13 +125,13 @@ class SplitTunnelingViewModelTest {
initTestSubject(listOf(app))
val expectedStateBeforeAction =
- SplitTunnelingUiState.Data(
+ SplitTunnelingUiState.ShowAppList(
excludedApps = listOf(app),
includedApps = emptyList(),
showSystemApps = false
)
val expectedStateAfterAction =
- SplitTunnelingUiState.Data(
+ SplitTunnelingUiState.ShowAppList(
excludedApps = emptyList(),
includedApps = listOf(app),
showSystemApps = false
@@ -160,14 +166,14 @@ class SplitTunnelingViewModelTest {
initTestSubject(listOf(app))
val expectedStateBeforeAction =
- SplitTunnelingUiState.Data(
+ SplitTunnelingUiState.ShowAppList(
excludedApps = emptyList(),
includedApps = listOf(app),
showSystemApps = false
)
val expectedStateAfterAction =
- SplitTunnelingUiState.Data(
+ SplitTunnelingUiState.ShowAppList(
excludedApps = listOf(app),
includedApps = emptyList(),
showSystemApps = false
@@ -189,10 +195,15 @@ class SplitTunnelingViewModelTest {
private fun initTestSubject(appList: List<AppData>) {
every { mockedApplicationsProvider.getAppsList() } returns appList
+ every { mockedServiceConnectionManager.connectionState } returns
+ MutableStateFlow(
+ ServiceConnectionState.ConnectedReady(mockedServiceConnectionContainer)
+ )
+ every { mockedServiceConnectionContainer.splitTunneling } returns mockedSplitTunneling
testSubject =
SplitTunnelingViewModel(
mockedApplicationsProvider,
- mockedSplitTunneling,
+ mockedServiceConnectionManager,
testCoroutineRule.testDispatcher
)
}