Skip to content

Commit a8c1289

Browse files
committed
Change test in RustMatrixAuthenticationServiceTest
1 parent 121eb11 commit a8c1289

File tree

5 files changed

+40
-15
lines changed

5 files changed

+40
-15
lines changed

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/FakeClientBuilderProvider.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ package io.element.android.libraries.matrix.impl
1010
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClientBuilder
1111
import org.matrix.rustcomponents.sdk.ClientBuilder
1212

13-
class FakeClientBuilderProvider : ClientBuilderProvider {
13+
class FakeClientBuilderProvider(
14+
private val provideResult: () -> ClientBuilder = { FakeFfiClientBuilder() }
15+
) : ClientBuilderProvider {
1416
override fun provide(): ClientBuilder {
15-
return FakeFfiClientBuilder()
17+
return provideResult()
1618
}
1719
}

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactoryTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ fun TestScope.createRustMatrixClientFactory(
3939
baseDirectory: File = File("/base"),
4040
cacheDirectory: File = File("/cache"),
4141
sessionStore: SessionStore = InMemorySessionStore(),
42+
clientBuilderProvider: ClientBuilderProvider = FakeClientBuilderProvider(),
4243
) = RustMatrixClientFactory(
4344
baseDirectory = baseDirectory,
4445
cacheDirectory = cacheDirectory,
@@ -52,5 +53,5 @@ fun TestScope.createRustMatrixClientFactory(
5253
analyticsService = FakeAnalyticsService(),
5354
featureFlagService = FakeFeatureFlagService(),
5455
timelineEventTypeFilterFactory = FakeTimelineEventTypeFilterFactory(),
55-
clientBuilderProvider = FakeClientBuilderProvider(),
56+
clientBuilderProvider = clientBuilderProvider,
5657
)

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationServiceTest.kt

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@
88
package io.element.android.libraries.matrix.impl.auth
99

1010
import com.google.common.truth.Truth.assertThat
11-
import io.element.android.libraries.matrix.api.core.SessionId
11+
import io.element.android.libraries.matrix.impl.ClientBuilderProvider
12+
import io.element.android.libraries.matrix.impl.FakeClientBuilderProvider
1213
import io.element.android.libraries.matrix.impl.createRustMatrixClientFactory
14+
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
15+
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClientBuilder
16+
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiHomeserverLoginDetails
1317
import io.element.android.libraries.matrix.impl.paths.SessionPathsFactory
1418
import io.element.android.libraries.matrix.test.auth.FakeOidcRedirectUrlProvider
1519
import io.element.android.libraries.matrix.test.core.aBuildMeta
1620
import io.element.android.libraries.sessionstorage.api.SessionStore
1721
import io.element.android.libraries.sessionstorage.test.InMemorySessionStore
18-
import io.element.android.libraries.sessionstorage.test.aSessionData
1922
import io.element.android.tests.testutils.testCoroutineDispatchers
2023
import kotlinx.coroutines.test.TestScope
2124
import kotlinx.coroutines.test.runTest
@@ -24,25 +27,36 @@ import java.io.File
2427

2528
class RustMatrixAuthenticationServiceTest {
2629
@Test
27-
fun `getLatestSessionId should return the value from the store`() = runTest {
28-
val sessionStore = InMemorySessionStore()
30+
fun `setHomeserver is successful`() = runTest {
2931
val sut = createRustMatrixAuthenticationService(
30-
sessionStore = sessionStore,
32+
clientBuilderProvider = FakeClientBuilderProvider(
33+
provideResult = {
34+
FakeFfiClientBuilder(
35+
buildResult = {
36+
FakeFfiClient(
37+
homeserverLoginDetailsResult = {
38+
FakeFfiHomeserverLoginDetails()
39+
}
40+
)
41+
}
42+
)
43+
}
44+
),
3145
)
32-
assertThat(sut.getLatestSessionId()).isNull()
33-
sessionStore.storeData(aSessionData(sessionId = "@alice:server.org"))
34-
assertThat(sut.getLatestSessionId()).isEqualTo(SessionId("@alice:server.org"))
46+
assertThat(sut.setHomeserver("matrix.org").isSuccess).isTrue()
3547
}
3648

3749
private fun TestScope.createRustMatrixAuthenticationService(
3850
sessionStore: SessionStore = InMemorySessionStore(),
51+
clientBuilderProvider: ClientBuilderProvider = FakeClientBuilderProvider(),
3952
): RustMatrixAuthenticationService {
4053
val baseDirectory = File("/base")
4154
val cacheDirectory = File("/cache")
4255
val rustMatrixClientFactory = createRustMatrixClientFactory(
4356
baseDirectory = baseDirectory,
4457
cacheDirectory = cacheDirectory,
4558
sessionStore = sessionStore,
59+
clientBuilderProvider = clientBuilderProvider,
4660
)
4761
return RustMatrixAuthenticationService(
4862
sessionPathsFactory = SessionPathsFactory(baseDirectory, cacheDirectory),

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeFfiClient.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import io.element.android.tests.testutils.simulateLongTask
1515
import org.matrix.rustcomponents.sdk.Client
1616
import org.matrix.rustcomponents.sdk.ClientDelegate
1717
import org.matrix.rustcomponents.sdk.Encryption
18+
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
1819
import org.matrix.rustcomponents.sdk.IgnoredUsersListener
1920
import org.matrix.rustcomponents.sdk.NoPointer
2021
import org.matrix.rustcomponents.sdk.NotificationClient
@@ -41,6 +42,7 @@ class FakeFfiClient(
4142
private val session: Session = aRustSession(),
4243
private val clearCachesResult: () -> Unit = { lambdaError() },
4344
private val withUtdHook: (UnableToDecryptDelegate) -> Unit = { lambdaError() },
45+
private val homeserverLoginDetailsResult: () -> HomeserverLoginDetails = { lambdaError() },
4446
private val closeResult: () -> Unit = {},
4547
) : Client(NoPointer) {
4648
override fun userId(): String = userId
@@ -71,12 +73,18 @@ class FakeFfiClient(
7173
override suspend fun ignoredUsers(): List<String> {
7274
return emptyList()
7375
}
76+
7477
override fun subscribeToIgnoredUsers(listener: IgnoredUsersListener): TaskHandle {
7578
return FakeFfiTaskHandle()
7679
}
7780

7881
override suspend fun getProfile(userId: String): UserProfile {
7982
return UserProfile(userId = userId, displayName = null, avatarUrl = null)
8083
}
84+
85+
override suspend fun homeserverLoginDetails(): HomeserverLoginDetails {
86+
return homeserverLoginDetailsResult()
87+
}
88+
8189
override fun close() = closeResult()
8290
}

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeFfiClientBuilder.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ import uniffi.matrix_sdk.BackupDownloadStrategy
1717
import uniffi.matrix_sdk_crypto.CollectStrategy
1818
import uniffi.matrix_sdk_crypto.DecryptionSettings
1919

20-
class FakeFfiClientBuilder : ClientBuilder(NoPointer) {
20+
class FakeFfiClientBuilder(
21+
val buildResult: () -> Client = { FakeFfiClient(withUtdHook = {}) }
22+
) : ClientBuilder(NoPointer) {
2123
override fun addRootCertificates(certificates: List<ByteArray>) = this
2224
override fun autoEnableBackups(autoEnableBackups: Boolean) = this
2325
override fun autoEnableCrossSigning(autoEnableCrossSigning: Boolean) = this
@@ -41,7 +43,5 @@ class FakeFfiClientBuilder : ClientBuilder(NoPointer) {
4143
override fun enableShareHistoryOnInvite(enableShareHistoryOnInvite: Boolean): ClientBuilder = this
4244
override fun threadsEnabled(enabled: Boolean, threadSubscriptions: Boolean): ClientBuilder = this
4345

44-
override suspend fun build(): Client {
45-
return FakeFfiClient(withUtdHook = {})
46-
}
46+
override suspend fun build() = buildResult()
4747
}

0 commit comments

Comments
 (0)