Rename classes overriding classes from the FFI layer. (#4817)
* Rename classes overriding classes from the FFI layer. * For other Konsist test.
This commit is contained in:
parent
3ae8d77c9a
commit
7a3db35ccb
43 changed files with 155 additions and 143 deletions
|
|
@ -7,11 +7,11 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl
|
package io.element.android.libraries.matrix.impl
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustClientBuilder
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClientBuilder
|
||||||
import org.matrix.rustcomponents.sdk.ClientBuilder
|
import org.matrix.rustcomponents.sdk.ClientBuilder
|
||||||
|
|
||||||
class FakeClientBuilderProvider : ClientBuilderProvider {
|
class FakeClientBuilderProvider : ClientBuilderProvider {
|
||||||
override fun provide(): ClientBuilder {
|
override fun provide(): ClientBuilder {
|
||||||
return FakeRustClientBuilder()
|
return FakeFfiClientBuilder()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ package io.element.android.libraries.matrix.impl
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustSyncService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiSyncService
|
||||||
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
||||||
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||||
|
|
@ -40,7 +40,7 @@ class RustMatrixClientTest {
|
||||||
val clearCachesResult = lambdaRecorder<Unit> { }
|
val clearCachesResult = lambdaRecorder<Unit> { }
|
||||||
val closeResult = lambdaRecorder<Unit> { }
|
val closeResult = lambdaRecorder<Unit> { }
|
||||||
val client = createRustMatrixClient(
|
val client = createRustMatrixClient(
|
||||||
client = FakeRustClient(
|
client = FakeFfiClient(
|
||||||
clearCachesResult = clearCachesResult,
|
clearCachesResult = clearCachesResult,
|
||||||
closeResult = closeResult,
|
closeResult = closeResult,
|
||||||
)
|
)
|
||||||
|
|
@ -52,7 +52,7 @@ class RustMatrixClientTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createRustMatrixClient(
|
private fun TestScope.createRustMatrixClient(
|
||||||
client: Client = FakeRustClient(),
|
client: Client = FakeFfiClient(),
|
||||||
sessionStore: SessionStore = InMemorySessionStore(),
|
sessionStore: SessionStore = InMemorySessionStore(),
|
||||||
) = RustMatrixClient(
|
) = RustMatrixClient(
|
||||||
innerClient = client,
|
innerClient = client,
|
||||||
|
|
@ -62,7 +62,7 @@ class RustMatrixClientTest {
|
||||||
sessionDelegate = aRustClientSessionDelegate(
|
sessionDelegate = aRustClientSessionDelegate(
|
||||||
sessionStore = sessionStore,
|
sessionStore = sessionStore,
|
||||||
),
|
),
|
||||||
innerSyncService = FakeRustSyncService(),
|
innerSyncService = FakeFfiSyncService(),
|
||||||
dispatchers = testCoroutineDispatchers(),
|
dispatchers = testCoroutineDispatchers(),
|
||||||
baseCacheDirectory = File(""),
|
baseCacheDirectory = File(""),
|
||||||
clock = FakeSystemClock(),
|
clock = FakeSystemClock(),
|
||||||
|
|
|
||||||
|
|
@ -9,14 +9,14 @@ package io.element.android.libraries.matrix.impl.auth
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails
|
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustHomeserverLoginDetails
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiHomeserverLoginDetails
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class HomeserverDetailsKtTest {
|
class HomeserverDetailsKtTest {
|
||||||
@Test
|
@Test
|
||||||
fun `map should be correct`() {
|
fun `map should be correct`() {
|
||||||
// Given
|
// Given
|
||||||
val homeserverLoginDetails = FakeRustHomeserverLoginDetails(
|
val homeserverLoginDetails = FakeFfiHomeserverLoginDetails(
|
||||||
url = "https://example.org",
|
url = "https://example.org",
|
||||||
supportsPasswordLogin = true,
|
supportsPasswordLogin = true,
|
||||||
supportsOidcLogin = false
|
supportsOidcLogin = false
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
package io.element.android.libraries.matrix.impl.auth.qrlogin
|
package io.element.android.libraries.matrix.impl.auth.qrlogin
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeQrCodeData
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiQrCodeData
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
|
|
@ -16,7 +16,7 @@ class SdkQrCodeLoginDataTest {
|
||||||
@Test
|
@Test
|
||||||
fun `getServer reads the value from the Rust side, null case`() {
|
fun `getServer reads the value from the Rust side, null case`() {
|
||||||
val sut = SdkQrCodeLoginData(
|
val sut = SdkQrCodeLoginData(
|
||||||
rustQrCodeData = FakeQrCodeData(
|
rustQrCodeData = FakeFfiQrCodeData(
|
||||||
serverNameResult = { null },
|
serverNameResult = { null },
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
@ -26,7 +26,7 @@ class SdkQrCodeLoginDataTest {
|
||||||
@Test
|
@Test
|
||||||
fun `getServer reads the value from the Rust side`() {
|
fun `getServer reads the value from the Rust side`() {
|
||||||
val sut = SdkQrCodeLoginData(
|
val sut = SdkQrCodeLoginData(
|
||||||
rustQrCodeData = FakeQrCodeData(
|
rustQrCodeData = FakeFfiQrCodeData(
|
||||||
serverNameResult = { A_HOMESERVER_URL },
|
serverNameResult = { A_HOMESERVER_URL },
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.fixtures.factories
|
package io.element.android.libraries.matrix.impl.fixtures.factories
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustLazyTimelineItemProvider
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiLazyTimelineItemProvider
|
||||||
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||||
import org.matrix.rustcomponents.sdk.EventOrTransactionId
|
import org.matrix.rustcomponents.sdk.EventOrTransactionId
|
||||||
|
|
@ -50,7 +50,7 @@ fun aRustEventTimelineItem(
|
||||||
readReceipts = readReceipts,
|
readReceipts = readReceipts,
|
||||||
origin = origin,
|
origin = origin,
|
||||||
localCreatedAt = localCreatedAt,
|
localCreatedAt = localCreatedAt,
|
||||||
lazyProvider = FakeRustLazyTimelineItemProvider(
|
lazyProvider = FakeFfiLazyTimelineItemProvider(
|
||||||
debugInfo = debugInfo,
|
debugInfo = debugInfo,
|
||||||
shieldsState = shieldsState,
|
shieldsState = shieldsState,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
package io.element.android.libraries.matrix.impl.fixtures.factories
|
package io.element.android.libraries.matrix.impl.fixtures.factories
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineEvent
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineEvent
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_NAME
|
import io.element.android.libraries.matrix.test.A_ROOM_NAME
|
||||||
import io.element.android.libraries.matrix.test.A_USER_NAME
|
import io.element.android.libraries.matrix.test.A_USER_NAME
|
||||||
import org.matrix.rustcomponents.sdk.JoinRule
|
import org.matrix.rustcomponents.sdk.JoinRule
|
||||||
|
|
@ -65,7 +65,7 @@ fun aRustNotificationRoomInfo(
|
||||||
)
|
)
|
||||||
|
|
||||||
fun aRustNotificationEventTimeline(
|
fun aRustNotificationEventTimeline(
|
||||||
event: TimelineEvent = FakeRustTimelineEvent(),
|
event: TimelineEvent = FakeFfiTimelineEvent(),
|
||||||
) = NotificationEvent.Timeline(
|
) = NotificationEvent.Timeline(
|
||||||
event = event,
|
event = event,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -30,12 +30,12 @@ import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
import org.matrix.rustcomponents.sdk.UnableToDecryptDelegate
|
import org.matrix.rustcomponents.sdk.UnableToDecryptDelegate
|
||||||
import org.matrix.rustcomponents.sdk.UserProfile
|
import org.matrix.rustcomponents.sdk.UserProfile
|
||||||
|
|
||||||
class FakeRustClient(
|
class FakeFfiClient(
|
||||||
private val userId: String = A_USER_ID.value,
|
private val userId: String = A_USER_ID.value,
|
||||||
private val deviceId: String = A_DEVICE_ID.value,
|
private val deviceId: String = A_DEVICE_ID.value,
|
||||||
private val notificationClient: NotificationClient = FakeRustNotificationClient(),
|
private val notificationClient: NotificationClient = FakeFfiNotificationClient(),
|
||||||
private val notificationSettings: NotificationSettings = FakeRustNotificationSettings(),
|
private val notificationSettings: NotificationSettings = FakeFfiNotificationSettings(),
|
||||||
private val encryption: Encryption = FakeRustEncryption(),
|
private val encryption: Encryption = FakeFfiEncryption(),
|
||||||
private val session: Session = aRustSession(),
|
private val session: Session = aRustSession(),
|
||||||
private val clearCachesResult: () -> Unit = { lambdaError() },
|
private val clearCachesResult: () -> Unit = { lambdaError() },
|
||||||
private val withUtdHook: (UnableToDecryptDelegate) -> Unit = { lambdaError() },
|
private val withUtdHook: (UnableToDecryptDelegate) -> Unit = { lambdaError() },
|
||||||
|
|
@ -47,11 +47,11 @@ class FakeRustClient(
|
||||||
override suspend fun getNotificationSettings(): NotificationSettings = notificationSettings
|
override suspend fun getNotificationSettings(): NotificationSettings = notificationSettings
|
||||||
override fun encryption(): Encryption = encryption
|
override fun encryption(): Encryption = encryption
|
||||||
override fun session(): Session = session
|
override fun session(): Session = session
|
||||||
override fun setDelegate(delegate: ClientDelegate?): TaskHandle = FakeRustTaskHandle()
|
override fun setDelegate(delegate: ClientDelegate?): TaskHandle = FakeFfiTaskHandle()
|
||||||
override suspend fun cachedAvatarUrl(): String? = null
|
override suspend fun cachedAvatarUrl(): String? = null
|
||||||
override suspend fun restoreSession(session: Session) = Unit
|
override suspend fun restoreSession(session: Session) = Unit
|
||||||
override fun syncService(): SyncServiceBuilder = FakeRustSyncServiceBuilder()
|
override fun syncService(): SyncServiceBuilder = FakeFfiSyncServiceBuilder()
|
||||||
override fun roomDirectorySearch(): RoomDirectorySearch = FakeRustRoomDirectorySearch()
|
override fun roomDirectorySearch(): RoomDirectorySearch = FakeFfiRoomDirectorySearch()
|
||||||
override suspend fun setPusher(
|
override suspend fun setPusher(
|
||||||
identifiers: PusherIdentifiers,
|
identifiers: PusherIdentifiers,
|
||||||
kind: PusherKind,
|
kind: PusherKind,
|
||||||
|
|
@ -64,12 +64,12 @@ class FakeRustClient(
|
||||||
override suspend fun deletePusher(identifiers: PusherIdentifiers) = Unit
|
override suspend fun deletePusher(identifiers: PusherIdentifiers) = Unit
|
||||||
override suspend fun clearCaches() = simulateLongTask { clearCachesResult() }
|
override suspend fun clearCaches() = simulateLongTask { clearCachesResult() }
|
||||||
override suspend fun setUtdDelegate(utdDelegate: UnableToDecryptDelegate) = withUtdHook(utdDelegate)
|
override suspend fun setUtdDelegate(utdDelegate: UnableToDecryptDelegate) = withUtdHook(utdDelegate)
|
||||||
override suspend fun getSessionVerificationController(): SessionVerificationController = FakeRustSessionVerificationController()
|
override suspend fun getSessionVerificationController(): SessionVerificationController = FakeFfiSessionVerificationController()
|
||||||
override suspend fun ignoredUsers(): List<String> {
|
override suspend fun ignoredUsers(): List<String> {
|
||||||
return emptyList()
|
return emptyList()
|
||||||
}
|
}
|
||||||
override fun subscribeToIgnoredUsers(listener: IgnoredUsersListener): TaskHandle {
|
override fun subscribeToIgnoredUsers(listener: IgnoredUsersListener): TaskHandle {
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getProfile(userId: String): UserProfile {
|
override suspend fun getProfile(userId: String): UserProfile {
|
||||||
|
|
@ -20,7 +20,7 @@ import uniffi.matrix_sdk.BackupDownloadStrategy
|
||||||
import uniffi.matrix_sdk_crypto.CollectStrategy
|
import uniffi.matrix_sdk_crypto.CollectStrategy
|
||||||
import uniffi.matrix_sdk_crypto.TrustRequirement
|
import uniffi.matrix_sdk_crypto.TrustRequirement
|
||||||
|
|
||||||
class FakeRustClientBuilder : ClientBuilder(NoPointer) {
|
class FakeFfiClientBuilder : ClientBuilder(NoPointer) {
|
||||||
override fun addRootCertificates(certificates: List<ByteArray>) = this
|
override fun addRootCertificates(certificates: List<ByteArray>) = this
|
||||||
override fun autoEnableBackups(autoEnableBackups: Boolean) = this
|
override fun autoEnableBackups(autoEnableBackups: Boolean) = this
|
||||||
override fun autoEnableCrossSigning(autoEnableCrossSigning: Boolean) = this
|
override fun autoEnableCrossSigning(autoEnableCrossSigning: Boolean) = this
|
||||||
|
|
@ -43,10 +43,10 @@ class FakeRustClientBuilder : ClientBuilder(NoPointer) {
|
||||||
override fun username(username: String) = this
|
override fun username(username: String) = this
|
||||||
|
|
||||||
override suspend fun buildWithQrCode(qrCodeData: QrCodeData, oidcConfiguration: OidcConfiguration, progressListener: QrLoginProgressListener): Client {
|
override suspend fun buildWithQrCode(qrCodeData: QrCodeData, oidcConfiguration: OidcConfiguration, progressListener: QrLoginProgressListener): Client {
|
||||||
return FakeRustClient()
|
return FakeFfiClient()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun build(): Client {
|
override suspend fun build(): Client {
|
||||||
return FakeRustClient(withUtdHook = {})
|
return FakeFfiClient(withUtdHook = {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -17,13 +17,13 @@ import org.matrix.rustcomponents.sdk.RecoveryStateListener
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
import org.matrix.rustcomponents.sdk.VerificationStateListener
|
import org.matrix.rustcomponents.sdk.VerificationStateListener
|
||||||
|
|
||||||
class FakeRustEncryption : Encryption(NoPointer) {
|
class FakeFfiEncryption : Encryption(NoPointer) {
|
||||||
override fun verificationStateListener(listener: VerificationStateListener): TaskHandle {
|
override fun verificationStateListener(listener: VerificationStateListener): TaskHandle {
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun recoveryStateListener(listener: RecoveryStateListener): TaskHandle {
|
override fun recoveryStateListener(listener: RecoveryStateListener): TaskHandle {
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun waitForE2eeInitializationTasks() = simulateLongTask {}
|
override suspend fun waitForE2eeInitializationTasks() = simulateLongTask {}
|
||||||
|
|
@ -41,6 +41,6 @@ class FakeRustEncryption : Encryption(NoPointer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun backupStateListener(listener: BackupStateListener): TaskHandle {
|
override fun backupStateListener(listener: BackupStateListener): TaskHandle {
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
|
||||||
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
|
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
|
||||||
import org.matrix.rustcomponents.sdk.NoPointer
|
import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
|
|
||||||
class FakeRustHomeserverLoginDetails(
|
class FakeFfiHomeserverLoginDetails(
|
||||||
private val url: String = "https://example.org",
|
private val url: String = "https://example.org",
|
||||||
private val supportsPasswordLogin: Boolean = true,
|
private val supportsPasswordLogin: Boolean = true,
|
||||||
private val supportsOidcLogin: Boolean = false
|
private val supportsOidcLogin: Boolean = false
|
||||||
|
|
@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.SendHandle
|
import org.matrix.rustcomponents.sdk.SendHandle
|
||||||
import org.matrix.rustcomponents.sdk.ShieldState
|
import org.matrix.rustcomponents.sdk.ShieldState
|
||||||
|
|
||||||
class FakeRustLazyTimelineItemProvider(
|
class FakeFfiLazyTimelineItemProvider(
|
||||||
private val debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(),
|
private val debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(),
|
||||||
private val shieldsState: ShieldState? = null,
|
private val shieldsState: ShieldState? = null,
|
||||||
) : LazyTimelineItemProvider(NoPointer) {
|
) : LazyTimelineItemProvider(NoPointer) {
|
||||||
|
|
@ -12,7 +12,7 @@ import org.matrix.rustcomponents.sdk.NotificationClient
|
||||||
import org.matrix.rustcomponents.sdk.NotificationItem
|
import org.matrix.rustcomponents.sdk.NotificationItem
|
||||||
import org.matrix.rustcomponents.sdk.NotificationItemsRequest
|
import org.matrix.rustcomponents.sdk.NotificationItemsRequest
|
||||||
|
|
||||||
class FakeRustNotificationClient(
|
class FakeFfiNotificationClient(
|
||||||
var notificationItemResult: Map<String, NotificationItem> = emptyMap(),
|
var notificationItemResult: Map<String, NotificationItem> = emptyMap(),
|
||||||
) : NotificationClient(NoPointer) {
|
) : NotificationClient(NoPointer) {
|
||||||
override suspend fun getNotifications(requests: List<NotificationItemsRequest>): Map<String, NotificationItem> {
|
override suspend fun getNotifications(requests: List<NotificationItemsRequest>): Map<String, NotificationItem> {
|
||||||
|
|
@ -13,7 +13,7 @@ import org.matrix.rustcomponents.sdk.NotificationSettings
|
||||||
import org.matrix.rustcomponents.sdk.NotificationSettingsDelegate
|
import org.matrix.rustcomponents.sdk.NotificationSettingsDelegate
|
||||||
import org.matrix.rustcomponents.sdk.RoomNotificationSettings
|
import org.matrix.rustcomponents.sdk.RoomNotificationSettings
|
||||||
|
|
||||||
class FakeRustNotificationSettings(
|
class FakeFfiNotificationSettings(
|
||||||
private val roomNotificationSettings: RoomNotificationSettings = aRustRoomNotificationSettings(),
|
private val roomNotificationSettings: RoomNotificationSettings = aRustRoomNotificationSettings(),
|
||||||
) : NotificationSettings(NoPointer) {
|
) : NotificationSettings(NoPointer) {
|
||||||
private var delegate: NotificationSettingsDelegate? = null
|
private var delegate: NotificationSettingsDelegate? = null
|
||||||
|
|
@ -11,7 +11,7 @@ import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
import org.matrix.rustcomponents.sdk.NoPointer
|
import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.QrCodeData
|
import org.matrix.rustcomponents.sdk.QrCodeData
|
||||||
|
|
||||||
class FakeQrCodeData(
|
class FakeFfiQrCodeData(
|
||||||
private val serverNameResult: () -> String? = { lambdaError() },
|
private val serverNameResult: () -> String? = { lambdaError() },
|
||||||
) : QrCodeData(NoPointer) {
|
) : QrCodeData(NoPointer) {
|
||||||
override fun serverName(): String? {
|
override fun serverName(): String? {
|
||||||
|
|
@ -17,7 +17,7 @@ import org.matrix.rustcomponents.sdk.Room
|
||||||
import org.matrix.rustcomponents.sdk.RoomInfo
|
import org.matrix.rustcomponents.sdk.RoomInfo
|
||||||
import org.matrix.rustcomponents.sdk.RoomMembersIterator
|
import org.matrix.rustcomponents.sdk.RoomMembersIterator
|
||||||
|
|
||||||
class FakeRustRoom(
|
class FakeFfiRoom(
|
||||||
private val roomId: RoomId = A_ROOM_ID,
|
private val roomId: RoomId = A_ROOM_ID,
|
||||||
private val getMembers: () -> RoomMembersIterator = { lambdaError() },
|
private val getMembers: () -> RoomMembersIterator = { lambdaError() },
|
||||||
private val getMembersNoSync: () -> RoomMembersIterator = { lambdaError() },
|
private val getMembersNoSync: () -> RoomMembersIterator = { lambdaError() },
|
||||||
|
|
@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntriesListener
|
||||||
import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
|
import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
|
|
||||||
class FakeRustRoomDirectorySearch(
|
class FakeFfiRoomDirectorySearch(
|
||||||
var isAtLastPage: Boolean = false,
|
var isAtLastPage: Boolean = false,
|
||||||
) : RoomDirectorySearch(NoPointer) {
|
) : RoomDirectorySearch(NoPointer) {
|
||||||
override suspend fun isAtLastPage(): Boolean {
|
override suspend fun isAtLastPage(): Boolean {
|
||||||
|
|
@ -28,7 +28,7 @@ class FakeRustRoomDirectorySearch(
|
||||||
|
|
||||||
override suspend fun results(listener: RoomDirectorySearchEntriesListener): TaskHandle {
|
override suspend fun results(listener: RoomDirectorySearchEntriesListener): TaskHandle {
|
||||||
this.listener = listener
|
this.listener = listener
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun emitResult(roomEntriesUpdate: List<RoomDirectorySearchEntryUpdate>) {
|
fun emitResult(roomEntriesUpdate: List<RoomDirectorySearchEntryUpdate>) {
|
||||||
|
|
@ -10,4 +10,4 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
|
||||||
import org.matrix.rustcomponents.sdk.NoPointer
|
import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.RoomList
|
import org.matrix.rustcomponents.sdk.RoomList
|
||||||
|
|
||||||
class FakeRustRoomList : RoomList(NoPointer)
|
class FakeFfiRoomList : RoomList(NoPointer)
|
||||||
|
|
@ -15,9 +15,9 @@ import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicator
|
||||||
import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicatorListener
|
import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicatorListener
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
|
|
||||||
class FakeRustRoomListService : RoomListService(NoPointer) {
|
class FakeFfiRoomListService : RoomListService(NoPointer) {
|
||||||
override suspend fun allRooms(): RoomList {
|
override suspend fun allRooms(): RoomList {
|
||||||
return FakeRustRoomList()
|
return FakeFfiRoomList()
|
||||||
}
|
}
|
||||||
|
|
||||||
private var listener: RoomListServiceSyncIndicatorListener? = null
|
private var listener: RoomListServiceSyncIndicatorListener? = null
|
||||||
|
|
@ -27,7 +27,7 @@ class FakeRustRoomListService : RoomListService(NoPointer) {
|
||||||
listener: RoomListServiceSyncIndicatorListener,
|
listener: RoomListServiceSyncIndicatorListener,
|
||||||
): TaskHandle {
|
): TaskHandle {
|
||||||
this.listener = listener
|
this.listener = listener
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun emitRoomListServiceSyncIndicator(syncIndicator: RoomListServiceSyncIndicator) {
|
fun emitRoomListServiceSyncIndicator(syncIndicator: RoomListServiceSyncIndicator) {
|
||||||
|
|
@ -35,6 +35,6 @@ class FakeRustRoomListService : RoomListService(NoPointer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun state(listener: RoomListServiceStateListener): TaskHandle {
|
override fun state(listener: RoomListServiceStateListener): TaskHandle {
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11,7 +11,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.RoomMember
|
import org.matrix.rustcomponents.sdk.RoomMember
|
||||||
import org.matrix.rustcomponents.sdk.RoomMembersIterator
|
import org.matrix.rustcomponents.sdk.RoomMembersIterator
|
||||||
|
|
||||||
class FakeRustRoomMembersIterator(
|
class FakeFfiRoomMembersIterator(
|
||||||
private var members: List<RoomMember>? = null
|
private var members: List<RoomMember>? = null
|
||||||
) : RoomMembersIterator(NoPointer) {
|
) : RoomMembersIterator(NoPointer) {
|
||||||
override fun len(): UInt {
|
override fun len(): UInt {
|
||||||
|
|
@ -11,6 +11,6 @@ import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.SessionVerificationController
|
import org.matrix.rustcomponents.sdk.SessionVerificationController
|
||||||
import org.matrix.rustcomponents.sdk.SessionVerificationControllerDelegate
|
import org.matrix.rustcomponents.sdk.SessionVerificationControllerDelegate
|
||||||
|
|
||||||
class FakeRustSessionVerificationController : SessionVerificationController(NoPointer) {
|
class FakeFfiSessionVerificationController : SessionVerificationController(NoPointer) {
|
||||||
override fun setDelegate(delegate: SessionVerificationControllerDelegate?) {}
|
override fun setDelegate(delegate: SessionVerificationControllerDelegate?) {}
|
||||||
}
|
}
|
||||||
|
|
@ -13,12 +13,12 @@ import org.matrix.rustcomponents.sdk.SyncService
|
||||||
import org.matrix.rustcomponents.sdk.SyncServiceStateObserver
|
import org.matrix.rustcomponents.sdk.SyncServiceStateObserver
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
|
|
||||||
class FakeRustSyncService(
|
class FakeFfiSyncService(
|
||||||
private val roomListService: RoomListService = FakeRustRoomListService(),
|
private val roomListService: RoomListService = FakeFfiRoomListService(),
|
||||||
) : SyncService(NoPointer) {
|
) : SyncService(NoPointer) {
|
||||||
override fun roomListService(): RoomListService = roomListService
|
override fun roomListService(): RoomListService = roomListService
|
||||||
override fun state(listener: SyncServiceStateObserver): TaskHandle {
|
override fun state(listener: SyncServiceStateObserver): TaskHandle {
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
override suspend fun stop() {}
|
override suspend fun stop() {}
|
||||||
}
|
}
|
||||||
|
|
@ -11,7 +11,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.SyncService
|
import org.matrix.rustcomponents.sdk.SyncService
|
||||||
import org.matrix.rustcomponents.sdk.SyncServiceBuilder
|
import org.matrix.rustcomponents.sdk.SyncServiceBuilder
|
||||||
|
|
||||||
class FakeRustSyncServiceBuilder : SyncServiceBuilder(NoPointer) {
|
class FakeFfiSyncServiceBuilder : SyncServiceBuilder(NoPointer) {
|
||||||
override fun withOfflineMode(): SyncServiceBuilder = this
|
override fun withOfflineMode(): SyncServiceBuilder = this
|
||||||
override suspend fun finish(): SyncService = FakeRustSyncService()
|
override suspend fun finish(): SyncService = FakeFfiSyncService()
|
||||||
}
|
}
|
||||||
|
|
@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
|
||||||
import org.matrix.rustcomponents.sdk.NoPointer
|
import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
|
|
||||||
class FakeRustTaskHandle : TaskHandle(NoPointer) {
|
class FakeFfiTaskHandle : TaskHandle(NoPointer) {
|
||||||
override fun cancel() = Unit
|
override fun cancel() = Unit
|
||||||
override fun destroy() = Unit
|
override fun destroy() = Unit
|
||||||
}
|
}
|
||||||
|
|
@ -15,11 +15,11 @@ import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
import org.matrix.rustcomponents.sdk.TimelineListener
|
import org.matrix.rustcomponents.sdk.TimelineListener
|
||||||
import uniffi.matrix_sdk.RoomPaginationStatus
|
import uniffi.matrix_sdk.RoomPaginationStatus
|
||||||
|
|
||||||
class FakeRustTimeline : Timeline(NoPointer) {
|
class FakeFfiTimeline : Timeline(NoPointer) {
|
||||||
private var listener: TimelineListener? = null
|
private var listener: TimelineListener? = null
|
||||||
override suspend fun addListener(listener: TimelineListener): TaskHandle {
|
override suspend fun addListener(listener: TimelineListener): TaskHandle {
|
||||||
this.listener = listener
|
this.listener = listener
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun emitDiff(diff: List<TimelineDiff>) {
|
fun emitDiff(diff: List<TimelineDiff>) {
|
||||||
|
|
@ -29,7 +29,7 @@ class FakeRustTimeline : Timeline(NoPointer) {
|
||||||
private var paginationStatusListener: PaginationStatusListener? = null
|
private var paginationStatusListener: PaginationStatusListener? = null
|
||||||
override suspend fun subscribeToBackPaginationStatus(listener: PaginationStatusListener): TaskHandle {
|
override suspend fun subscribeToBackPaginationStatus(listener: PaginationStatusListener): TaskHandle {
|
||||||
this.paginationStatusListener = listener
|
this.paginationStatusListener = listener
|
||||||
return FakeRustTaskHandle()
|
return FakeFfiTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun emitPaginationStatus(status: RoomPaginationStatus) {
|
fun emitPaginationStatus(status: RoomPaginationStatus) {
|
||||||
|
|
@ -14,9 +14,9 @@ import org.matrix.rustcomponents.sdk.TimelineChange
|
||||||
import org.matrix.rustcomponents.sdk.TimelineDiff
|
import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
import org.matrix.rustcomponents.sdk.TimelineItem
|
import org.matrix.rustcomponents.sdk.TimelineItem
|
||||||
|
|
||||||
class FakeRustTimelineDiff(
|
class FakeFfiTimelineDiff(
|
||||||
private val change: TimelineChange,
|
private val change: TimelineChange,
|
||||||
private val item: TimelineItem? = FakeRustTimelineItem()
|
private val item: TimelineItem? = FakeFfiTimelineItem()
|
||||||
) : TimelineDiff(NoPointer) {
|
) : TimelineDiff(NoPointer) {
|
||||||
override fun change() = change
|
override fun change() = change
|
||||||
override fun append(): List<TimelineItem>? = item?.let { listOf(it) }
|
override fun append(): List<TimelineItem>? = item?.let { listOf(it) }
|
||||||
|
|
@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEvent
|
import org.matrix.rustcomponents.sdk.TimelineEvent
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventType
|
import org.matrix.rustcomponents.sdk.TimelineEventType
|
||||||
|
|
||||||
class FakeRustTimelineEvent(
|
class FakeFfiTimelineEvent(
|
||||||
val timestamp: ULong = A_FAKE_TIMESTAMP.toULong(),
|
val timestamp: ULong = A_FAKE_TIMESTAMP.toULong(),
|
||||||
val timelineEventType: TimelineEventType = aRustTimelineEventTypeMessageLike(),
|
val timelineEventType: TimelineEventType = aRustTimelineEventTypeMessageLike(),
|
||||||
val senderId: String = A_USER_ID_2.value,
|
val senderId: String = A_USER_ID_2.value,
|
||||||
|
|
@ -10,4 +10,4 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
|
||||||
import org.matrix.rustcomponents.sdk.NoPointer
|
import org.matrix.rustcomponents.sdk.NoPointer
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
||||||
|
|
||||||
class FakeRustTimelineEventTypeFilter : TimelineEventTypeFilter(NoPointer)
|
class FakeFfiTimelineEventTypeFilter : TimelineEventTypeFilter(NoPointer)
|
||||||
|
|
@ -13,7 +13,7 @@ import org.matrix.rustcomponents.sdk.TimelineItem
|
||||||
import org.matrix.rustcomponents.sdk.TimelineUniqueId
|
import org.matrix.rustcomponents.sdk.TimelineUniqueId
|
||||||
import org.matrix.rustcomponents.sdk.VirtualTimelineItem
|
import org.matrix.rustcomponents.sdk.VirtualTimelineItem
|
||||||
|
|
||||||
class FakeRustTimelineItem(
|
class FakeFfiTimelineItem(
|
||||||
private val asEventResult: EventTimelineItem? = null,
|
private val asEventResult: EventTimelineItem? = null,
|
||||||
) : TimelineItem(NoPointer) {
|
) : TimelineItem(NoPointer) {
|
||||||
override fun asEvent(): EventTimelineItem? = asEventResult
|
override fun asEvent(): EventTimelineItem? = asEventResult
|
||||||
|
|
@ -11,7 +11,7 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.notification.NotificationContent
|
import io.element.android.libraries.matrix.api.notification.NotificationContent
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType
|
import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustNotificationItem
|
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustNotificationItem
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustNotificationClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiNotificationClient
|
||||||
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||||
import io.element.android.libraries.matrix.test.A_MESSAGE
|
import io.element.android.libraries.matrix.test.A_MESSAGE
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
|
|
@ -28,7 +28,7 @@ import org.matrix.rustcomponents.sdk.NotificationClient
|
||||||
class RustNotificationServiceTest {
|
class RustNotificationServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun test() = runTest {
|
fun test() = runTest {
|
||||||
val notificationClient = FakeRustNotificationClient(
|
val notificationClient = FakeFfiNotificationClient(
|
||||||
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustNotificationItem()),
|
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustNotificationItem()),
|
||||||
)
|
)
|
||||||
val sut = createRustNotificationService(
|
val sut = createRustNotificationService(
|
||||||
|
|
@ -48,7 +48,7 @@ class RustNotificationServiceTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createRustNotificationService(
|
private fun TestScope.createRustNotificationService(
|
||||||
notificationClient: NotificationClient = FakeRustNotificationClient(),
|
notificationClient: NotificationClient = FakeFfiNotificationClient(),
|
||||||
clock: SystemClock = FakeSystemClock(),
|
clock: SystemClock = FakeSystemClock(),
|
||||||
) =
|
) =
|
||||||
RustNotificationService(
|
RustNotificationService(
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ package io.element.android.libraries.matrix.impl.notificationsettings
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustNotificationSettings
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiNotificationSettings
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
|
|
@ -32,9 +32,9 @@ class RustNotificationSettingsServiceTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createRustNotificationSettingsService(
|
private fun TestScope.createRustNotificationSettingsService(
|
||||||
notificationSettings: NotificationSettings = FakeRustNotificationSettings(),
|
notificationSettings: NotificationSettings = FakeFfiNotificationSettings(),
|
||||||
) = RustNotificationSettingsService(
|
) = RustNotificationSettingsService(
|
||||||
client = FakeRustClient(
|
client = FakeFfiClient(
|
||||||
notificationSettings = notificationSettings,
|
notificationSettings = notificationSettings,
|
||||||
),
|
),
|
||||||
sessionCoroutineScope = this,
|
sessionCoroutineScope = this,
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ package io.element.android.libraries.matrix.impl.pushers
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
|
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
|
||||||
import io.element.android.libraries.matrix.api.pusher.UnsetHttpPusherData
|
import io.element.android.libraries.matrix.api.pusher.UnsetHttpPusherData
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -18,7 +18,7 @@ class RustPushersServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun `setPusher should invoke the client method`() = runTest {
|
fun `setPusher should invoke the client method`() = runTest {
|
||||||
val sut = RustPushersService(
|
val sut = RustPushersService(
|
||||||
client = FakeRustClient(),
|
client = FakeFfiClient(),
|
||||||
dispatchers = testCoroutineDispatchers()
|
dispatchers = testCoroutineDispatchers()
|
||||||
)
|
)
|
||||||
sut.setHttpPusher(
|
sut.setHttpPusher(
|
||||||
|
|
@ -29,7 +29,7 @@ class RustPushersServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun `unsetPusher should invoke the client method`() = runTest {
|
fun `unsetPusher should invoke the client method`() = runTest {
|
||||||
val sut = RustPushersService(
|
val sut = RustPushersService(
|
||||||
client = FakeRustClient(),
|
client = FakeFfiClient(),
|
||||||
dispatchers = testCoroutineDispatchers()
|
dispatchers = testCoroutineDispatchers()
|
||||||
)
|
)
|
||||||
sut.unsetHttpPusher(
|
sut.unsetHttpPusher(
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
package io.element.android.libraries.matrix.impl.room
|
package io.element.android.libraries.matrix.impl.room
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.room.StateEventType
|
import io.element.android.libraries.matrix.api.room.StateEventType
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineEventTypeFilter
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineEventTypeFilter
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
||||||
|
|
||||||
class FakeTimelineEventTypeFilterFactory : TimelineEventTypeFilterFactory {
|
class FakeTimelineEventTypeFilterFactory : TimelineEventTypeFilterFactory {
|
||||||
override fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter {
|
override fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter {
|
||||||
return FakeRustTimelineEventTypeFilter()
|
return FakeFfiTimelineEventTypeFilter()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||||
import io.element.android.libraries.matrix.api.room.RoomInfo
|
import io.element.android.libraries.matrix.api.room.RoomInfo
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.MembershipChange
|
import io.element.android.libraries.matrix.api.timeline.item.event.MembershipChange
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoom
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoom
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomListService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
||||||
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.room.aRoomInfo
|
import io.element.android.libraries.matrix.test.room.aRoomInfo
|
||||||
|
|
@ -41,7 +41,7 @@ class RustBaseRoomTest {
|
||||||
val roomMembershipObserver = RoomMembershipObserver()
|
val roomMembershipObserver = RoomMembershipObserver()
|
||||||
val rustBaseRoom = createRustBaseRoom(
|
val rustBaseRoom = createRustBaseRoom(
|
||||||
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.JOINED),
|
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.JOINED),
|
||||||
innerRoom = FakeRustRoom(
|
innerRoom = FakeFfiRoom(
|
||||||
leaveLambda = {
|
leaveLambda = {
|
||||||
// Simulate a successful leave
|
// Simulate a successful leave
|
||||||
}
|
}
|
||||||
|
|
@ -61,7 +61,7 @@ class RustBaseRoomTest {
|
||||||
val roomMembershipObserver = RoomMembershipObserver()
|
val roomMembershipObserver = RoomMembershipObserver()
|
||||||
val rustBaseRoom = createRustBaseRoom(
|
val rustBaseRoom = createRustBaseRoom(
|
||||||
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.KNOCKED),
|
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.KNOCKED),
|
||||||
innerRoom = FakeRustRoom(
|
innerRoom = FakeFfiRoom(
|
||||||
leaveLambda = {
|
leaveLambda = {
|
||||||
// Simulate a successful leave
|
// Simulate a successful leave
|
||||||
}
|
}
|
||||||
|
|
@ -81,7 +81,7 @@ class RustBaseRoomTest {
|
||||||
val roomMembershipObserver = RoomMembershipObserver()
|
val roomMembershipObserver = RoomMembershipObserver()
|
||||||
val rustBaseRoom = createRustBaseRoom(
|
val rustBaseRoom = createRustBaseRoom(
|
||||||
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.INVITED),
|
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.INVITED),
|
||||||
innerRoom = FakeRustRoom(
|
innerRoom = FakeFfiRoom(
|
||||||
leaveLambda = {
|
leaveLambda = {
|
||||||
// Simulate a successful leave
|
// Simulate a successful leave
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ class RustBaseRoomTest {
|
||||||
val roomMembershipObserver = RoomMembershipObserver()
|
val roomMembershipObserver = RoomMembershipObserver()
|
||||||
val rustBaseRoom = createRustBaseRoom(
|
val rustBaseRoom = createRustBaseRoom(
|
||||||
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.INVITED),
|
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.INVITED),
|
||||||
innerRoom = FakeRustRoom(
|
innerRoom = FakeFfiRoom(
|
||||||
leaveLambda = { error("Leave failed") }
|
leaveLambda = { error("Leave failed") }
|
||||||
),
|
),
|
||||||
roomMembershipObserver = roomMembershipObserver,
|
roomMembershipObserver = roomMembershipObserver,
|
||||||
|
|
@ -127,7 +127,7 @@ class RustBaseRoomTest {
|
||||||
|
|
||||||
private fun TestScope.createRustBaseRoom(
|
private fun TestScope.createRustBaseRoom(
|
||||||
initialRoomInfo: RoomInfo = aRoomInfo(),
|
initialRoomInfo: RoomInfo = aRoomInfo(),
|
||||||
innerRoom: FakeRustRoom = FakeRustRoom(),
|
innerRoom: FakeFfiRoom = FakeFfiRoom(),
|
||||||
roomMembershipObserver: RoomMembershipObserver = RoomMembershipObserver(),
|
roomMembershipObserver: RoomMembershipObserver = RoomMembershipObserver(),
|
||||||
): RustBaseRoom {
|
): RustBaseRoom {
|
||||||
val dispatchers = testCoroutineDispatchers()
|
val dispatchers = testCoroutineDispatchers()
|
||||||
|
|
@ -137,7 +137,7 @@ class RustBaseRoomTest {
|
||||||
innerRoom = innerRoom,
|
innerRoom = innerRoom,
|
||||||
coroutineDispatchers = dispatchers,
|
coroutineDispatchers = dispatchers,
|
||||||
roomSyncSubscriber = RoomSyncSubscriber(
|
roomSyncSubscriber = RoomSyncSubscriber(
|
||||||
roomListService = FakeRustRoomListService(),
|
roomListService = FakeFfiRoomListService(),
|
||||||
dispatchers = dispatchers,
|
dispatchers = dispatchers,
|
||||||
),
|
),
|
||||||
roomMembershipObserver = roomMembershipObserver,
|
roomMembershipObserver = roomMembershipObserver,
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMembersState
|
import io.element.android.libraries.matrix.api.room.RoomMembersState
|
||||||
import io.element.android.libraries.matrix.api.room.roomMembers
|
import io.element.android.libraries.matrix.api.room.roomMembers
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomMember
|
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomMember
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoom
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoom
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomMembersIterator
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomMembersIterator
|
||||||
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.CACHE
|
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.CACHE
|
||||||
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.CACHE_AND_SERVER
|
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.CACHE_AND_SERVER
|
||||||
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.SERVER
|
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.SERVER
|
||||||
|
|
@ -28,8 +28,8 @@ import org.junit.Test
|
||||||
class RoomMemberListFetcherTest {
|
class RoomMemberListFetcherTest {
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with CACHE source - emits cached members, if any`() = runTest {
|
fun `fetchRoomMembers with CACHE source - emits cached members, if any`() = runTest {
|
||||||
val room = FakeRustRoom(getMembersNoSync = {
|
val room = FakeFfiRoom(getMembersNoSync = {
|
||||||
FakeRustRoomMembersIterator(
|
FakeFfiRoomMembersIterator(
|
||||||
listOf(
|
listOf(
|
||||||
aRustRoomMember(A_USER_ID),
|
aRustRoomMember(A_USER_ID),
|
||||||
aRustRoomMember(A_USER_ID_2),
|
aRustRoomMember(A_USER_ID_2),
|
||||||
|
|
@ -55,8 +55,8 @@ class RoomMemberListFetcherTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with CACHE source - emits empty list, if no members exist`() = runTest {
|
fun `fetchRoomMembers with CACHE source - emits empty list, if no members exist`() = runTest {
|
||||||
val room = FakeRustRoom(getMembersNoSync = {
|
val room = FakeFfiRoom(getMembersNoSync = {
|
||||||
FakeRustRoomMembersIterator(emptyList())
|
FakeFfiRoomMembersIterator(emptyList())
|
||||||
})
|
})
|
||||||
|
|
||||||
val fetcher = RoomMemberListFetcher(room, Dispatchers.Default)
|
val fetcher = RoomMemberListFetcher(room, Dispatchers.Default)
|
||||||
|
|
@ -70,7 +70,7 @@ class RoomMemberListFetcherTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with CACHE source - emits Error on error found`() = runTest {
|
fun `fetchRoomMembers with CACHE source - emits Error on error found`() = runTest {
|
||||||
val room = FakeRustRoom(getMembersNoSync = {
|
val room = FakeFfiRoom(getMembersNoSync = {
|
||||||
error("Some unexpected issue")
|
error("Some unexpected issue")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -85,8 +85,8 @@ class RoomMemberListFetcherTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with CACHE source - emits all items at once`() = runTest {
|
fun `fetchRoomMembers with CACHE source - emits all items at once`() = runTest {
|
||||||
val room = FakeRustRoom(getMembersNoSync = {
|
val room = FakeFfiRoom(getMembersNoSync = {
|
||||||
FakeRustRoomMembersIterator(
|
FakeFfiRoomMembersIterator(
|
||||||
listOf(
|
listOf(
|
||||||
aRustRoomMember(A_USER_ID),
|
aRustRoomMember(A_USER_ID),
|
||||||
aRustRoomMember(A_USER_ID_2),
|
aRustRoomMember(A_USER_ID_2),
|
||||||
|
|
@ -112,8 +112,8 @@ class RoomMemberListFetcherTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with SERVER source - emits only new members, if any`() = runTest {
|
fun `fetchRoomMembers with SERVER source - emits only new members, if any`() = runTest {
|
||||||
val room = FakeRustRoom(getMembers = {
|
val room = FakeFfiRoom(getMembers = {
|
||||||
FakeRustRoomMembersIterator(
|
FakeFfiRoomMembersIterator(
|
||||||
listOf(
|
listOf(
|
||||||
aRustRoomMember(A_USER_ID),
|
aRustRoomMember(A_USER_ID),
|
||||||
aRustRoomMember(A_USER_ID_2),
|
aRustRoomMember(A_USER_ID_2),
|
||||||
|
|
@ -134,7 +134,7 @@ class RoomMemberListFetcherTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with SERVER source - on error it emits an Error item`() = runTest {
|
fun `fetchRoomMembers with SERVER source - on error it emits an Error item`() = runTest {
|
||||||
val room = FakeRustRoom(getMembers = { error("An unexpected error") })
|
val room = FakeFfiRoom(getMembers = { error("An unexpected error") })
|
||||||
|
|
||||||
val fetcher = RoomMemberListFetcher(room, Dispatchers.Default)
|
val fetcher = RoomMemberListFetcher(room, Dispatchers.Default)
|
||||||
fetcher.membersFlow.test {
|
fetcher.membersFlow.test {
|
||||||
|
|
@ -148,12 +148,12 @@ class RoomMemberListFetcherTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with CACHE_AND_SERVER source - returns cached items first, then new ones`() = runTest {
|
fun `fetchRoomMembers with CACHE_AND_SERVER source - returns cached items first, then new ones`() = runTest {
|
||||||
val room = FakeRustRoom(
|
val room = FakeFfiRoom(
|
||||||
getMembersNoSync = {
|
getMembersNoSync = {
|
||||||
FakeRustRoomMembersIterator(listOf(aRustRoomMember(A_USER_ID_4)))
|
FakeFfiRoomMembersIterator(listOf(aRustRoomMember(A_USER_ID_4)))
|
||||||
},
|
},
|
||||||
getMembers = {
|
getMembers = {
|
||||||
FakeRustRoomMembersIterator(
|
FakeFfiRoomMembersIterator(
|
||||||
listOf(
|
listOf(
|
||||||
aRustRoomMember(A_USER_ID),
|
aRustRoomMember(A_USER_ID),
|
||||||
aRustRoomMember(A_USER_ID_2),
|
aRustRoomMember(A_USER_ID_2),
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomDirectoryList
|
import io.element.android.libraries.matrix.api.roomdirectory.RoomDirectoryList
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomDescription
|
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomDescription
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomDirectorySearch
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomDirectorySearch
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
|
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
|
|
@ -26,7 +26,7 @@ import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
|
||||||
class RustBaseRoomDirectoryListTest {
|
class RustBaseRoomDirectoryListTest {
|
||||||
@Test
|
@Test
|
||||||
fun `check that the state emits the expected values`() = runTest {
|
fun `check that the state emits the expected values`() = runTest {
|
||||||
val roomDirectorySearch = FakeRustRoomDirectorySearch()
|
val roomDirectorySearch = FakeFfiRoomDirectorySearch()
|
||||||
val mapper = RoomDescriptionMapper()
|
val mapper = RoomDescriptionMapper()
|
||||||
val sut = createRustRoomDirectoryList(
|
val sut = createRustRoomDirectoryList(
|
||||||
roomDirectorySearch = roomDirectorySearch,
|
roomDirectorySearch = roomDirectorySearch,
|
||||||
|
|
@ -78,7 +78,7 @@ class RustBaseRoomDirectoryListTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createRustRoomDirectoryList(
|
private fun TestScope.createRustRoomDirectoryList(
|
||||||
roomDirectorySearch: RoomDirectorySearch = FakeRustRoomDirectorySearch(),
|
roomDirectorySearch: RoomDirectorySearch = FakeFfiRoomDirectorySearch(),
|
||||||
) = RustRoomDirectoryList(
|
) = RustRoomDirectoryList(
|
||||||
inner = roomDirectorySearch,
|
inner = roomDirectorySearch,
|
||||||
coroutineScope = backgroundScope,
|
coroutineScope = backgroundScope,
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.roomdirectory
|
package io.element.android.libraries.matrix.impl.roomdirectory
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -15,7 +15,7 @@ import org.junit.Test
|
||||||
class RustBaseRoomDirectoryServiceTest {
|
class RustBaseRoomDirectoryServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun test() = runTest {
|
fun test() = runTest {
|
||||||
val client = FakeRustClient()
|
val client = FakeFfiClient()
|
||||||
val sut = RustRoomDirectoryService(
|
val sut = RustRoomDirectoryService(
|
||||||
client = client,
|
client = client,
|
||||||
sessionDispatcher = StandardTestDispatcher(testScheduler),
|
sessionDispatcher = StandardTestDispatcher(testScheduler),
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.roomlist
|
package io.element.android.libraries.matrix.impl.roomlist
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomList
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomList
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomListService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.coroutines.EmptyCoroutineContext
|
import kotlin.coroutines.EmptyCoroutineContext
|
||||||
|
|
@ -17,14 +17,14 @@ class RoomListFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun `createRoomList should work`() = runTest {
|
fun `createRoomList should work`() = runTest {
|
||||||
val sut = RoomListFactory(
|
val sut = RoomListFactory(
|
||||||
innerRoomListService = FakeRustRoomListService(),
|
innerRoomListService = FakeFfiRoomListService(),
|
||||||
sessionCoroutineScope = backgroundScope,
|
sessionCoroutineScope = backgroundScope,
|
||||||
)
|
)
|
||||||
sut.createRoomList(
|
sut.createRoomList(
|
||||||
pageSize = 10,
|
pageSize = 10,
|
||||||
coroutineContext = EmptyCoroutineContext,
|
coroutineContext = EmptyCoroutineContext,
|
||||||
) {
|
) {
|
||||||
FakeRustRoomList()
|
FakeFfiRoomList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ package io.element.android.libraries.matrix.impl.roomlist
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomSummary
|
import io.element.android.libraries.matrix.api.roomlist.RoomSummary
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoom
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoom
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomListService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
|
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID_3
|
import io.element.android.libraries.matrix.test.A_ROOM_ID_3
|
||||||
|
|
@ -170,14 +170,14 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_3)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_3)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun aRustRoom(roomId: RoomId = A_ROOM_ID) = FakeRustRoom(
|
private fun aRustRoom(roomId: RoomId = A_ROOM_ID) = FakeFfiRoom(
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
latestEventLambda = { null },
|
latestEventLambda = { null },
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun TestScope.createProcessor() = RoomSummaryListProcessor(
|
private fun TestScope.createProcessor() = RoomSummaryListProcessor(
|
||||||
summaries,
|
summaries,
|
||||||
FakeRustRoomListService(),
|
FakeFfiRoomListService(),
|
||||||
coroutineContext = StandardTestDispatcher(testScheduler),
|
coroutineContext = StandardTestDispatcher(testScheduler),
|
||||||
roomSummaryDetailsFactory = RoomSummaryFactory(),
|
roomSummaryDetailsFactory = RoomSummaryFactory(),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ package io.element.android.libraries.matrix.impl.roomlist
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomListService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
||||||
import io.element.android.libraries.matrix.impl.room.RoomSyncSubscriber
|
import io.element.android.libraries.matrix.impl.room.RoomSyncSubscriber
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
|
@ -25,7 +25,7 @@ import org.matrix.rustcomponents.sdk.RoomListService as RustRoomListService
|
||||||
class RustBaseRoomListServiceTest {
|
class RustBaseRoomListServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun `syncIndicator should emit the expected values`() = runTest {
|
fun `syncIndicator should emit the expected values`() = runTest {
|
||||||
val roomListService = FakeRustRoomListService()
|
val roomListService = FakeFfiRoomListService()
|
||||||
val sut = createRustRoomListService(
|
val sut = createRustRoomListService(
|
||||||
roomListService = roomListService,
|
roomListService = roomListService,
|
||||||
)
|
)
|
||||||
|
|
@ -42,7 +42,7 @@ class RustBaseRoomListServiceTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createRustRoomListService(
|
private fun TestScope.createRustRoomListService(
|
||||||
roomListService: RustRoomListService = FakeRustRoomListService(),
|
roomListService: RustRoomListService = FakeFfiRoomListService(),
|
||||||
) = RustRoomListService(
|
) = RustRoomListService(
|
||||||
innerRoomListService = roomListService,
|
innerRoomListService = roomListService,
|
||||||
sessionDispatcher = StandardTestDispatcher(testScheduler),
|
sessionDispatcher = StandardTestDispatcher(testScheduler),
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ package io.element.android.libraries.matrix.impl.timeline
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineDiff
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineDiff
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.event.EventTimelineItemMapper
|
import io.element.android.libraries.matrix.impl.timeline.item.event.EventTimelineItemMapper
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.event.TimelineEventContentMapper
|
import io.element.android.libraries.matrix.impl.timeline.item.event.TimelineEventContentMapper
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.virtual.VirtualTimelineItemMapper
|
import io.element.android.libraries.matrix.impl.timeline.item.virtual.VirtualTimelineItemMapper
|
||||||
|
|
@ -33,7 +33,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Append adds new entries at the end of the list`() = runTest {
|
fun `Append adds new entries at the end of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent)
|
timelineItems.value = listOf(anEvent)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.APPEND)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.APPEND)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(2)
|
assertThat(timelineItems.value.count()).isEqualTo(2)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -45,7 +45,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent)
|
timelineItems.value = listOf(anEvent)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.PUSH_BACK)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.PUSH_BACK)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(2)
|
assertThat(timelineItems.value.count()).isEqualTo(2)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -57,7 +57,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent)
|
timelineItems.value = listOf(anEvent)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.PUSH_FRONT)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.PUSH_FRONT)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(2)
|
assertThat(timelineItems.value.count()).isEqualTo(2)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
MatrixTimelineItem.Other,
|
MatrixTimelineItem.Other,
|
||||||
|
|
@ -69,7 +69,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Set replaces an entry at some index`() = runTest {
|
fun `Set replaces an entry at some index`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.SET)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.SET)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(2)
|
assertThat(timelineItems.value.count()).isEqualTo(2)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -81,7 +81,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Insert inserts a new entry at the provided index`() = runTest {
|
fun `Insert inserts a new entry at the provided index`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.INSERT)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.INSERT)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(3)
|
assertThat(timelineItems.value.count()).isEqualTo(3)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -94,7 +94,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Remove removes an entry at some index`() = runTest {
|
fun `Remove removes an entry at some index`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.REMOVE)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.REMOVE)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(2)
|
assertThat(timelineItems.value.count()).isEqualTo(2)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -106,7 +106,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `PopBack removes an entry at the end of the list`() = runTest {
|
fun `PopBack removes an entry at the end of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.POP_BACK)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.POP_BACK)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(1)
|
assertThat(timelineItems.value.count()).isEqualTo(1)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -117,7 +117,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `PopFront removes an entry at the start of the list`() = runTest {
|
fun `PopFront removes an entry at the start of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.POP_FRONT)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.POP_FRONT)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(1)
|
assertThat(timelineItems.value.count()).isEqualTo(1)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent2,
|
anEvent2,
|
||||||
|
|
@ -128,7 +128,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Clear removes all the entries`() = runTest {
|
fun `Clear removes all the entries`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.CLEAR)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.CLEAR)))
|
||||||
assertThat(timelineItems.value).isEmpty()
|
assertThat(timelineItems.value).isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -136,7 +136,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Truncate removes all entries after the provided length`() = runTest {
|
fun `Truncate removes all entries after the provided length`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.TRUNCATE)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.TRUNCATE)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(1)
|
assertThat(timelineItems.value.count()).isEqualTo(1)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
anEvent,
|
anEvent,
|
||||||
|
|
@ -147,7 +147,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
fun `Reset removes all entries and add the provided ones`() = runTest {
|
fun `Reset removes all entries and add the provided ones`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.RESET)))
|
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.RESET)))
|
||||||
assertThat(timelineItems.value.count()).isEqualTo(1)
|
assertThat(timelineItems.value.count()).isEqualTo(1)
|
||||||
assertThat(timelineItems.value).containsExactly(
|
assertThat(timelineItems.value).containsExactly(
|
||||||
MatrixTimelineItem.Other,
|
MatrixTimelineItem.Other,
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,9 @@ import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.virtual.VirtualTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.item.virtual.VirtualTimelineItem
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomListService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimeline
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimeline
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineDiff
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineDiff
|
||||||
import io.element.android.libraries.matrix.impl.room.RoomContentForwarder
|
import io.element.android.libraries.matrix.impl.room.RoomContentForwarder
|
||||||
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
|
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
|
||||||
import io.element.android.libraries.matrix.test.room.aRoomInfo
|
import io.element.android.libraries.matrix.test.room.aRoomInfo
|
||||||
|
|
@ -40,7 +40,7 @@ import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
|
||||||
class RustTimelineTest {
|
class RustTimelineTest {
|
||||||
@Test
|
@Test
|
||||||
fun `ensure that the timeline emits new loading item when pagination does not bring new events`() = runTest {
|
fun `ensure that the timeline emits new loading item when pagination does not bring new events`() = runTest {
|
||||||
val inner = FakeRustTimeline()
|
val inner = FakeFfiTimeline()
|
||||||
val systemClock = FakeSystemClock()
|
val systemClock = FakeSystemClock()
|
||||||
val sut = createRustTimeline(
|
val sut = createRustTimeline(
|
||||||
inner = inner,
|
inner = inner,
|
||||||
|
|
@ -51,7 +51,7 @@ class RustTimelineTest {
|
||||||
runCurrent()
|
runCurrent()
|
||||||
inner.emitDiff(
|
inner.emitDiff(
|
||||||
listOf(
|
listOf(
|
||||||
FakeRustTimelineDiff(
|
FakeFfiTimelineDiff(
|
||||||
item = null,
|
item = null,
|
||||||
change = TimelineChange.RESET,
|
change = TimelineChange.RESET,
|
||||||
)
|
)
|
||||||
|
|
@ -106,7 +106,7 @@ private fun TestScope.createRustTimeline(
|
||||||
joinedRoom: JoinedRoom = FakeJoinedRoom().apply { givenRoomInfo(aRoomInfo()) },
|
joinedRoom: JoinedRoom = FakeJoinedRoom().apply { givenRoomInfo(aRoomInfo()) },
|
||||||
coroutineScope: CoroutineScope = backgroundScope,
|
coroutineScope: CoroutineScope = backgroundScope,
|
||||||
dispatcher: CoroutineDispatcher = testCoroutineDispatchers().io,
|
dispatcher: CoroutineDispatcher = testCoroutineDispatchers().io,
|
||||||
roomContentForwarder: RoomContentForwarder = RoomContentForwarder(FakeRustRoomListService()),
|
roomContentForwarder: RoomContentForwarder = RoomContentForwarder(FakeFfiRoomListService()),
|
||||||
featureFlagsService: FeatureFlagService = FakeFeatureFlagService(),
|
featureFlagsService: FeatureFlagService = FakeFeatureFlagService(),
|
||||||
onNewSyncedEvent: () -> Unit = {},
|
onNewSyncedEvent: () -> Unit = {},
|
||||||
): RustTimeline {
|
): RustTimeline {
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustEventTimelineItem
|
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustEventTimelineItem
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimeline
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimeline
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineDiff
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineDiff
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineItem
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineItem
|
||||||
import io.element.android.tests.testutils.lambda.lambdaError
|
import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import kotlinx.coroutines.CompletableDeferred
|
import kotlinx.coroutines.CompletableDeferred
|
||||||
|
|
@ -35,7 +35,7 @@ class TimelineItemsSubscriberTest {
|
||||||
fun `when timeline emits an empty list of items, the flow must emits an empty list`() = runTest {
|
fun `when timeline emits an empty list of items, the flow must emits an empty list`() = runTest {
|
||||||
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
||||||
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
||||||
val timeline = FakeRustTimeline()
|
val timeline = FakeFfiTimeline()
|
||||||
val timelineItemsSubscriber = createTimelineItemsSubscriber(
|
val timelineItemsSubscriber = createTimelineItemsSubscriber(
|
||||||
timeline = timeline,
|
timeline = timeline,
|
||||||
timelineItems = timelineItems,
|
timelineItems = timelineItems,
|
||||||
|
|
@ -44,7 +44,7 @@ class TimelineItemsSubscriberTest {
|
||||||
timelineItemsSubscriber.subscribeIfNeeded()
|
timelineItemsSubscriber.subscribeIfNeeded()
|
||||||
// Wait for the listener to be set.
|
// Wait for the listener to be set.
|
||||||
runCurrent()
|
runCurrent()
|
||||||
timeline.emitDiff(listOf(FakeRustTimelineDiff(item = null, change = TimelineChange.RESET)))
|
timeline.emitDiff(listOf(FakeFfiTimelineDiff(item = null, change = TimelineChange.RESET)))
|
||||||
val final = awaitItem()
|
val final = awaitItem()
|
||||||
assertThat(final).isEmpty()
|
assertThat(final).isEmpty()
|
||||||
timelineItemsSubscriber.unsubscribeIfNeeded()
|
timelineItemsSubscriber.unsubscribeIfNeeded()
|
||||||
|
|
@ -55,7 +55,7 @@ class TimelineItemsSubscriberTest {
|
||||||
fun `when timeline emits a non empty list of items, the flow must emits a non empty list`() = runTest {
|
fun `when timeline emits a non empty list of items, the flow must emits a non empty list`() = runTest {
|
||||||
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
||||||
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
||||||
val timeline = FakeRustTimeline()
|
val timeline = FakeFfiTimeline()
|
||||||
val timelineItemsSubscriber = createTimelineItemsSubscriber(
|
val timelineItemsSubscriber = createTimelineItemsSubscriber(
|
||||||
timeline = timeline,
|
timeline = timeline,
|
||||||
timelineItems = timelineItems,
|
timelineItems = timelineItems,
|
||||||
|
|
@ -64,7 +64,7 @@ class TimelineItemsSubscriberTest {
|
||||||
timelineItemsSubscriber.subscribeIfNeeded()
|
timelineItemsSubscriber.subscribeIfNeeded()
|
||||||
// Wait for the listener to be set.
|
// Wait for the listener to be set.
|
||||||
runCurrent()
|
runCurrent()
|
||||||
timeline.emitDiff(listOf(FakeRustTimelineDiff(item = FakeRustTimelineItem(), change = TimelineChange.RESET)))
|
timeline.emitDiff(listOf(FakeFfiTimelineDiff(item = FakeFfiTimelineItem(), change = TimelineChange.RESET)))
|
||||||
val final = awaitItem()
|
val final = awaitItem()
|
||||||
assertThat(final).isNotEmpty()
|
assertThat(final).isNotEmpty()
|
||||||
timelineItemsSubscriber.unsubscribeIfNeeded()
|
timelineItemsSubscriber.unsubscribeIfNeeded()
|
||||||
|
|
@ -75,7 +75,7 @@ class TimelineItemsSubscriberTest {
|
||||||
fun `when timeline emits an item with SYNC origin, the callback onNewSyncedEvent is invoked`() = runTest {
|
fun `when timeline emits an item with SYNC origin, the callback onNewSyncedEvent is invoked`() = runTest {
|
||||||
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
||||||
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
||||||
val timeline = FakeRustTimeline()
|
val timeline = FakeFfiTimeline()
|
||||||
val onNewSyncedEventRecorder = lambdaRecorder<Unit> { }
|
val onNewSyncedEventRecorder = lambdaRecorder<Unit> { }
|
||||||
val timelineItemsSubscriber = createTimelineItemsSubscriber(
|
val timelineItemsSubscriber = createTimelineItemsSubscriber(
|
||||||
timeline = timeline,
|
timeline = timeline,
|
||||||
|
|
@ -88,8 +88,8 @@ class TimelineItemsSubscriberTest {
|
||||||
runCurrent()
|
runCurrent()
|
||||||
timeline.emitDiff(
|
timeline.emitDiff(
|
||||||
listOf(
|
listOf(
|
||||||
FakeRustTimelineDiff(
|
FakeFfiTimelineDiff(
|
||||||
item = FakeRustTimelineItem(
|
item = FakeFfiTimelineItem(
|
||||||
asEventResult = aRustEventTimelineItem(origin = EventItemOrigin.SYNC),
|
asEventResult = aRustEventTimelineItem(origin = EventItemOrigin.SYNC),
|
||||||
),
|
),
|
||||||
change = TimelineChange.RESET,
|
change = TimelineChange.RESET,
|
||||||
|
|
@ -114,7 +114,7 @@ class TimelineItemsSubscriberTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createTimelineItemsSubscriber(
|
private fun TestScope.createTimelineItemsSubscriber(
|
||||||
timeline: Timeline = FakeRustTimeline(),
|
timeline: Timeline = FakeFfiTimeline(),
|
||||||
timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> = MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE),
|
timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> = MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE),
|
||||||
initLatch: CompletableDeferred<Unit> = CompletableDeferred(),
|
initLatch: CompletableDeferred<Unit> = CompletableDeferred(),
|
||||||
isTimelineInitialized: MutableStateFlow<Boolean> = MutableStateFlow(false),
|
isTimelineInitialized: MutableStateFlow<Boolean> = MutableStateFlow(false),
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import com.lemonappdev.konsist.api.ext.list.withAllParentsOf
|
||||||
import com.lemonappdev.konsist.api.ext.list.withAnnotationNamed
|
import com.lemonappdev.konsist.api.ext.list.withAnnotationNamed
|
||||||
import com.lemonappdev.konsist.api.ext.list.withNameContaining
|
import com.lemonappdev.konsist.api.ext.list.withNameContaining
|
||||||
import com.lemonappdev.konsist.api.ext.list.withNameEndingWith
|
import com.lemonappdev.konsist.api.ext.list.withNameEndingWith
|
||||||
|
import com.lemonappdev.konsist.api.ext.list.withPackage
|
||||||
import com.lemonappdev.konsist.api.ext.list.withoutName
|
import com.lemonappdev.konsist.api.ext.list.withoutName
|
||||||
import com.lemonappdev.konsist.api.ext.list.withoutNameStartingWith
|
import com.lemonappdev.konsist.api.ext.list.withoutNameStartingWith
|
||||||
import com.lemonappdev.konsist.api.verify.assertEmpty
|
import com.lemonappdev.konsist.api.verify.assertEmpty
|
||||||
|
|
@ -89,9 +90,9 @@ class KonsistClassNameTest {
|
||||||
)
|
)
|
||||||
.assertTrue {
|
.assertTrue {
|
||||||
val interfaceName = it.name
|
val interfaceName = it.name
|
||||||
.replace("FakeRust", "")
|
.replace("FakeFfi", "")
|
||||||
.replace("Fake", "")
|
.replace("Fake", "")
|
||||||
val result = (it.name.startsWith("Fake") || it.name.startsWith("FakeRust")) &&
|
val result = it.name.startsWith("Fake") &&
|
||||||
it.parents().any { parent ->
|
it.parents().any { parent ->
|
||||||
val parentName = parent.name.replace(".", "")
|
val parentName = parent.name.replace(".", "")
|
||||||
parentName == interfaceName
|
parentName == interfaceName
|
||||||
|
|
@ -106,6 +107,17 @@ class KonsistClassNameTest {
|
||||||
assertThat(failingCases).isEqualTo(failingCasesList.size)
|
assertThat(failingCases).isEqualTo(failingCasesList.size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `All Classes that override a class from the Ffi layer must have 'FakeFfi' prefix`() {
|
||||||
|
Konsist.scopeFromTest()
|
||||||
|
.classes()
|
||||||
|
.withPackage("io.element.android.libraries.matrix.impl.fixtures.fakes")
|
||||||
|
.assertTrue { klass ->
|
||||||
|
val parentName = klass.parents().firstOrNull()?.name.orEmpty()
|
||||||
|
klass.name == "FakeFfi$parentName"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Class implementing interface should have name not end with 'Impl' but start with 'Default'`() {
|
fun `Class implementing interface should have name not end with 'Impl' but start with 'Default'`() {
|
||||||
Konsist.scopeFromProject()
|
Konsist.scopeFromProject()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue