porting settings tests to engine
This commit is contained in:
parent
d491bb844a
commit
8a95a77d7a
|
@ -2,9 +2,11 @@ package fake
|
||||||
|
|
||||||
import app.dapk.st.engine.ChatEngine
|
import app.dapk.st.engine.ChatEngine
|
||||||
import app.dapk.st.matrix.common.RoomId
|
import app.dapk.st.matrix.common.RoomId
|
||||||
|
import io.mockk.coEvery
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import test.delegateReturn
|
import test.delegateReturn
|
||||||
|
import java.io.InputStream
|
||||||
|
|
||||||
class FakeChatEngine : ChatEngine by mockk() {
|
class FakeChatEngine : ChatEngine by mockk() {
|
||||||
|
|
||||||
|
@ -12,4 +14,6 @@ class FakeChatEngine : ChatEngine by mockk() {
|
||||||
|
|
||||||
fun givenDirectory() = every { directory() }.delegateReturn()
|
fun givenDirectory() = every { directory() }.delegateReturn()
|
||||||
|
|
||||||
|
fun givenImportKeys(inputStream: InputStream, passphrase: String) = coEvery { inputStream.importRoomKeys(passphrase) }.delegateReturn()
|
||||||
|
|
||||||
}
|
}
|
|
@ -12,11 +12,10 @@ dependencies {
|
||||||
|
|
||||||
kotlinTest(it)
|
kotlinTest(it)
|
||||||
|
|
||||||
androidImportFixturesWorkaround(project, project(":matrix:services:sync"))
|
|
||||||
androidImportFixturesWorkaround(project, project(":matrix:services:crypto"))
|
|
||||||
androidImportFixturesWorkaround(project, project(":matrix:common"))
|
androidImportFixturesWorkaround(project, project(":matrix:common"))
|
||||||
androidImportFixturesWorkaround(project, project(":core"))
|
androidImportFixturesWorkaround(project, project(":core"))
|
||||||
androidImportFixturesWorkaround(project, project(":domains:store"))
|
androidImportFixturesWorkaround(project, project(":domains:store"))
|
||||||
androidImportFixturesWorkaround(project, project(":domains:android:viewmodel"))
|
androidImportFixturesWorkaround(project, project(":domains:android:viewmodel"))
|
||||||
androidImportFixturesWorkaround(project, project(":domains:android:stub"))
|
androidImportFixturesWorkaround(project, project(":domains:android:stub"))
|
||||||
|
androidImportFixturesWorkaround(project, project(":chat-engine"))
|
||||||
}
|
}
|
|
@ -3,9 +3,8 @@ package app.dapk.st.settings
|
||||||
import ViewModelTest
|
import ViewModelTest
|
||||||
import app.dapk.st.core.Lce
|
import app.dapk.st.core.Lce
|
||||||
import app.dapk.st.design.components.SpiderPage
|
import app.dapk.st.design.components.SpiderPage
|
||||||
import app.dapk.st.matrix.crypto.ImportResult
|
import app.dapk.st.engine.ImportResult
|
||||||
import fake.*
|
import fake.*
|
||||||
import fake.FakeStoreCleaner
|
|
||||||
import fixture.aRoomId
|
import fixture.aRoomId
|
||||||
import internalfake.FakeSettingsItemFactory
|
import internalfake.FakeSettingsItemFactory
|
||||||
import internalfake.FakeUriFilenameResolver
|
import internalfake.FakeUriFilenameResolver
|
||||||
|
@ -35,20 +34,18 @@ internal class SettingsViewModelTest {
|
||||||
|
|
||||||
private val fakeStoreCleaner = FakeStoreCleaner()
|
private val fakeStoreCleaner = FakeStoreCleaner()
|
||||||
private val fakeContentResolver = FakeContentResolver()
|
private val fakeContentResolver = FakeContentResolver()
|
||||||
private val fakeCryptoService = FakeCryptoService()
|
|
||||||
private val fakeSyncService = FakeSyncService()
|
|
||||||
private val fakeUriFilenameResolver = FakeUriFilenameResolver()
|
private val fakeUriFilenameResolver = FakeUriFilenameResolver()
|
||||||
private val fakePushTokenRegistrars = FakePushRegistrars()
|
private val fakePushTokenRegistrars = FakePushRegistrars()
|
||||||
private val fakeSettingsItemFactory = FakeSettingsItemFactory()
|
private val fakeSettingsItemFactory = FakeSettingsItemFactory()
|
||||||
private val fakeThemeStore = FakeThemeStore()
|
private val fakeThemeStore = FakeThemeStore()
|
||||||
private val fakeLoggingStore = FakeLoggingStore()
|
private val fakeLoggingStore = FakeLoggingStore()
|
||||||
private val fakeMessageOptionsStore = FakeMessageOptionsStore()
|
private val fakeMessageOptionsStore = FakeMessageOptionsStore()
|
||||||
|
private val fakeChatEngine = FakeChatEngine()
|
||||||
|
|
||||||
private val viewModel = SettingsViewModel(
|
private val viewModel = SettingsViewModel(
|
||||||
|
fakeChatEngine,
|
||||||
fakeStoreCleaner,
|
fakeStoreCleaner,
|
||||||
fakeContentResolver.instance,
|
fakeContentResolver.instance,
|
||||||
fakeCryptoService,
|
|
||||||
fakeSyncService,
|
|
||||||
fakeUriFilenameResolver.instance,
|
fakeUriFilenameResolver.instance,
|
||||||
fakeSettingsItemFactory.instance,
|
fakeSettingsItemFactory.instance,
|
||||||
fakePushTokenRegistrars.instance,
|
fakePushTokenRegistrars.instance,
|
||||||
|
@ -174,9 +171,8 @@ internal class SettingsViewModelTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `given success when importing room keys, then emits progress`() = runViewModelTest {
|
fun `given success when importing room keys, then emits progress`() = runViewModelTest {
|
||||||
fakeSyncService.expectUnit { it.forceManualRefresh(A_LIST_OF_ROOM_IDS) }
|
|
||||||
fakeContentResolver.givenFile(A_URI.instance).returns(AN_INPUT_STREAM.instance)
|
fakeContentResolver.givenFile(A_URI.instance).returns(AN_INPUT_STREAM.instance)
|
||||||
fakeCryptoService.givenImportKeys(AN_INPUT_STREAM.instance, A_PASSPHRASE).returns(flowOf(AN_IMPORT_SUCCESS))
|
fakeChatEngine.givenImportKeys(AN_INPUT_STREAM.instance, A_PASSPHRASE).returns(flowOf(AN_IMPORT_SUCCESS))
|
||||||
|
|
||||||
viewModel
|
viewModel
|
||||||
.test(initialState = SettingsScreenState(A_IMPORT_ROOM_KEYS_PAGE_WITH_SELECTION))
|
.test(initialState = SettingsScreenState(A_IMPORT_ROOM_KEYS_PAGE_WITH_SELECTION))
|
||||||
|
|
Loading…
Reference in New Issue