1818package com.wire.android.ui.home
1919
2020import com.wire.android.config.CoroutineTestExtension
21+ import com.wire.kalium.logic.feature.client.MLSClientManager
22+ import com.wire.kalium.logic.feature.conversation.keyingmaterials.KeyingMaterialsManager
2123import com.wire.kalium.logic.feature.e2ei.SyncCertificateRevocationListUseCase
2224import com.wire.kalium.logic.feature.e2ei.usecase.ObserveCertificateRevocationForSelfClientUseCase
2325import com.wire.kalium.logic.feature.featureConfig.FeatureFlagsSyncWorker
26+ import com.wire.kalium.logic.feature.mlsmigration.MLSMigrationManager
2427import com.wire.kalium.logic.feature.server.UpdateApiVersionsUseCase
2528import io.mockk.MockKAnnotations
2629import io.mockk.coEvery
2730import io.mockk.coVerify
2831import io.mockk.impl.annotations.MockK
29- import kotlinx.coroutines.InternalCoroutinesApi
3032import kotlinx.coroutines.delay
3133import kotlinx.coroutines.test.advanceUntilIdle
3234import kotlinx.coroutines.test.runTest
@@ -42,6 +44,9 @@ class AppSyncViewModelTest {
4244 withFeatureFlagsSyncWorker()
4345 withSyncCertificateRevocationListUseCase()
4446 withUpdateApiVersions()
47+ withMlsClientManager()
48+ withMlsMigrationManager()
49+ withKeyingMaterialsManager()
4550 }
4651
4752 viewModel.startSyncingAppConfig()
@@ -51,6 +56,9 @@ class AppSyncViewModelTest {
5156 coVerify { arrangement.syncCertificateRevocationListUseCase.invoke() }
5257 coVerify { arrangement.featureFlagsSyncWorker.execute() }
5358 coVerify { arrangement.updateApiVersions() }
59+ coVerify { arrangement.mlsClientManager() }
60+ coVerify { arrangement.mlsMigrationManager() }
61+ coVerify { arrangement.keyingMaterialsManager() }
5462 }
5563
5664 @Test
@@ -60,6 +68,9 @@ class AppSyncViewModelTest {
6068 withFeatureFlagsSyncWorker(1000 )
6169 withSyncCertificateRevocationListUseCase(1000 )
6270 withUpdateApiVersions(1000 )
71+ withMlsClientManager(1000 )
72+ withMlsMigrationManager(1000 )
73+ withKeyingMaterialsManager(1000 )
6374 }
6475
6576 viewModel.startSyncingAppConfig()
@@ -71,6 +82,9 @@ class AppSyncViewModelTest {
7182 coVerify(exactly = 1 ) { arrangement.syncCertificateRevocationListUseCase.invoke() }
7283 coVerify(exactly = 1 ) { arrangement.featureFlagsSyncWorker.execute() }
7384 coVerify(exactly = 1 ) { arrangement.updateApiVersions() }
85+ coVerify(exactly = 1 ) { arrangement.mlsClientManager() }
86+ coVerify(exactly = 1 ) { arrangement.mlsMigrationManager() }
87+ coVerify(exactly = 1 ) { arrangement.keyingMaterialsManager() }
7488 }
7589
7690 private class Arrangement {
@@ -87,6 +101,15 @@ class AppSyncViewModelTest {
87101 @MockK
88102 lateinit var updateApiVersions: UpdateApiVersionsUseCase
89103
104+ @MockK
105+ lateinit var mlsClientManager: MLSClientManager
106+
107+ @MockK
108+ lateinit var mlsMigrationManager: MLSMigrationManager
109+
110+ @MockK
111+ lateinit var keyingMaterialsManager: KeyingMaterialsManager
112+
90113 init {
91114 MockKAnnotations .init (this )
92115 }
@@ -95,10 +118,12 @@ class AppSyncViewModelTest {
95118 syncCertificateRevocationListUseCase,
96119 observeCertificateRevocationForSelfClient,
97120 featureFlagsSyncWorker,
98- updateApiVersions
121+ updateApiVersions,
122+ mLSClientManager = mlsClientManager,
123+ mLSMigrationManager = mlsMigrationManager,
124+ keyingMaterialsManager = keyingMaterialsManager
99125 )
100126
101- @OptIn(InternalCoroutinesApi ::class )
102127 fun withObserveCertificateRevocationForSelfClient (delayMs : Long = 0) {
103128 coEvery { observeCertificateRevocationForSelfClient.invoke() } coAnswers {
104129 delay(delayMs)
@@ -123,6 +148,24 @@ class AppSyncViewModelTest {
123148 }
124149 }
125150
151+ fun withMlsClientManager (delayMs : Long = 0) {
152+ coEvery { mlsClientManager() } coAnswers {
153+ delay(delayMs)
154+ }
155+ }
156+
157+ fun withMlsMigrationManager (delayMs : Long = 0) {
158+ coEvery { mlsMigrationManager() } coAnswers {
159+ delay(delayMs)
160+ }
161+ }
162+
163+ fun withKeyingMaterialsManager (delayMs : Long = 0) {
164+ coEvery { keyingMaterialsManager() } coAnswers {
165+ delay(delayMs)
166+ }
167+ }
168+
126169 fun arrange (block : Arrangement .() -> Unit ) = apply (block).let {
127170 this to viewModel
128171 }
0 commit comments