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:
Benoit Marty 2025-06-04 16:13:57 +02:00 committed by GitHub
parent 0953789231
commit 390e5cf20d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
43 changed files with 155 additions and 143 deletions

View file

@ -7,11 +7,11 @@
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
class FakeClientBuilderProvider : ClientBuilderProvider {
override fun provide(): ClientBuilder {
return FakeRustClientBuilder()
return FakeFfiClientBuilder()
}
}

View file

@ -9,8 +9,8 @@ package io.element.android.libraries.matrix.impl
import com.google.common.truth.Truth.assertThat
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.FakeRustSyncService
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
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.test.A_DEVICE_ID
import io.element.android.libraries.matrix.test.A_USER_ID
@ -40,7 +40,7 @@ class RustMatrixClientTest {
val clearCachesResult = lambdaRecorder<Unit> { }
val closeResult = lambdaRecorder<Unit> { }
val client = createRustMatrixClient(
client = FakeRustClient(
client = FakeFfiClient(
clearCachesResult = clearCachesResult,
closeResult = closeResult,
)
@ -52,7 +52,7 @@ class RustMatrixClientTest {
}
private fun TestScope.createRustMatrixClient(
client: Client = FakeRustClient(),
client: Client = FakeFfiClient(),
sessionStore: SessionStore = InMemorySessionStore(),
) = RustMatrixClient(
innerClient = client,
@ -62,7 +62,7 @@ class RustMatrixClientTest {
sessionDelegate = aRustClientSessionDelegate(
sessionStore = sessionStore,
),
innerSyncService = FakeRustSyncService(),
innerSyncService = FakeFfiSyncService(),
dispatchers = testCoroutineDispatchers(),
baseCacheDirectory = File(""),
clock = FakeSystemClock(),

View file

@ -9,14 +9,14 @@ package io.element.android.libraries.matrix.impl.auth
import com.google.common.truth.Truth.assertThat
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
class HomeserverDetailsKtTest {
@Test
fun `map should be correct`() {
// Given
val homeserverLoginDetails = FakeRustHomeserverLoginDetails(
val homeserverLoginDetails = FakeFfiHomeserverLoginDetails(
url = "https://example.org",
supportsPasswordLogin = true,
supportsOidcLogin = false

View file

@ -8,7 +8,7 @@
package io.element.android.libraries.matrix.impl.auth.qrlogin
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 org.junit.Test
@ -16,7 +16,7 @@ class SdkQrCodeLoginDataTest {
@Test
fun `getServer reads the value from the Rust side, null case`() {
val sut = SdkQrCodeLoginData(
rustQrCodeData = FakeQrCodeData(
rustQrCodeData = FakeFfiQrCodeData(
serverNameResult = { null },
),
)
@ -26,7 +26,7 @@ class SdkQrCodeLoginDataTest {
@Test
fun `getServer reads the value from the Rust side`() {
val sut = SdkQrCodeLoginData(
rustQrCodeData = FakeQrCodeData(
rustQrCodeData = FakeFfiQrCodeData(
serverNameResult = { A_HOMESERVER_URL },
),
)

View file

@ -7,7 +7,7 @@
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.A_USER_ID
import org.matrix.rustcomponents.sdk.EventOrTransactionId
@ -50,7 +50,7 @@ fun aRustEventTimelineItem(
readReceipts = readReceipts,
origin = origin,
localCreatedAt = localCreatedAt,
lazyProvider = FakeRustLazyTimelineItemProvider(
lazyProvider = FakeFfiLazyTimelineItemProvider(
debugInfo = debugInfo,
shieldsState = shieldsState,
)

View file

@ -8,7 +8,7 @@
package io.element.android.libraries.matrix.impl.fixtures.factories
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_USER_NAME
import org.matrix.rustcomponents.sdk.JoinRule
@ -65,7 +65,7 @@ fun aRustNotificationRoomInfo(
)
fun aRustNotificationEventTimeline(
event: TimelineEvent = FakeRustTimelineEvent(),
event: TimelineEvent = FakeFfiTimelineEvent(),
) = NotificationEvent.Timeline(
event = event,
)

View file

@ -30,12 +30,12 @@ import org.matrix.rustcomponents.sdk.TaskHandle
import org.matrix.rustcomponents.sdk.UnableToDecryptDelegate
import org.matrix.rustcomponents.sdk.UserProfile
class FakeRustClient(
class FakeFfiClient(
private val userId: String = A_USER_ID.value,
private val deviceId: String = A_DEVICE_ID.value,
private val notificationClient: NotificationClient = FakeRustNotificationClient(),
private val notificationSettings: NotificationSettings = FakeRustNotificationSettings(),
private val encryption: Encryption = FakeRustEncryption(),
private val notificationClient: NotificationClient = FakeFfiNotificationClient(),
private val notificationSettings: NotificationSettings = FakeFfiNotificationSettings(),
private val encryption: Encryption = FakeFfiEncryption(),
private val session: Session = aRustSession(),
private val clearCachesResult: () -> Unit = { lambdaError() },
private val withUtdHook: (UnableToDecryptDelegate) -> Unit = { lambdaError() },
@ -47,11 +47,11 @@ class FakeRustClient(
override suspend fun getNotificationSettings(): NotificationSettings = notificationSettings
override fun encryption(): Encryption = encryption
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 restoreSession(session: Session) = Unit
override fun syncService(): SyncServiceBuilder = FakeRustSyncServiceBuilder()
override fun roomDirectorySearch(): RoomDirectorySearch = FakeRustRoomDirectorySearch()
override fun syncService(): SyncServiceBuilder = FakeFfiSyncServiceBuilder()
override fun roomDirectorySearch(): RoomDirectorySearch = FakeFfiRoomDirectorySearch()
override suspend fun setPusher(
identifiers: PusherIdentifiers,
kind: PusherKind,
@ -64,12 +64,12 @@ class FakeRustClient(
override suspend fun deletePusher(identifiers: PusherIdentifiers) = Unit
override suspend fun clearCaches() = simulateLongTask { clearCachesResult() }
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> {
return emptyList()
}
override fun subscribeToIgnoredUsers(listener: IgnoredUsersListener): TaskHandle {
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
override suspend fun getProfile(userId: String): UserProfile {

View file

@ -20,7 +20,7 @@ import uniffi.matrix_sdk.BackupDownloadStrategy
import uniffi.matrix_sdk_crypto.CollectStrategy
import uniffi.matrix_sdk_crypto.TrustRequirement
class FakeRustClientBuilder : ClientBuilder(NoPointer) {
class FakeFfiClientBuilder : ClientBuilder(NoPointer) {
override fun addRootCertificates(certificates: List<ByteArray>) = this
override fun autoEnableBackups(autoEnableBackups: Boolean) = this
override fun autoEnableCrossSigning(autoEnableCrossSigning: Boolean) = this
@ -43,10 +43,10 @@ class FakeRustClientBuilder : ClientBuilder(NoPointer) {
override fun username(username: String) = this
override suspend fun buildWithQrCode(qrCodeData: QrCodeData, oidcConfiguration: OidcConfiguration, progressListener: QrLoginProgressListener): Client {
return FakeRustClient()
return FakeFfiClient()
}
override suspend fun build(): Client {
return FakeRustClient(withUtdHook = {})
return FakeFfiClient(withUtdHook = {})
}
}

View file

@ -17,13 +17,13 @@ import org.matrix.rustcomponents.sdk.RecoveryStateListener
import org.matrix.rustcomponents.sdk.TaskHandle
import org.matrix.rustcomponents.sdk.VerificationStateListener
class FakeRustEncryption : Encryption(NoPointer) {
class FakeFfiEncryption : Encryption(NoPointer) {
override fun verificationStateListener(listener: VerificationStateListener): TaskHandle {
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
override fun recoveryStateListener(listener: RecoveryStateListener): TaskHandle {
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
override suspend fun waitForE2eeInitializationTasks() = simulateLongTask {}
@ -41,6 +41,6 @@ class FakeRustEncryption : Encryption(NoPointer) {
}
override fun backupStateListener(listener: BackupStateListener): TaskHandle {
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
}

View file

@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
import org.matrix.rustcomponents.sdk.NoPointer
class FakeRustHomeserverLoginDetails(
class FakeFfiHomeserverLoginDetails(
private val url: String = "https://example.org",
private val supportsPasswordLogin: Boolean = true,
private val supportsOidcLogin: Boolean = false

View file

@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.SendHandle
import org.matrix.rustcomponents.sdk.ShieldState
class FakeRustLazyTimelineItemProvider(
class FakeFfiLazyTimelineItemProvider(
private val debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(),
private val shieldsState: ShieldState? = null,
) : LazyTimelineItemProvider(NoPointer) {

View file

@ -12,7 +12,7 @@ import org.matrix.rustcomponents.sdk.NotificationClient
import org.matrix.rustcomponents.sdk.NotificationItem
import org.matrix.rustcomponents.sdk.NotificationItemsRequest
class FakeRustNotificationClient(
class FakeFfiNotificationClient(
var notificationItemResult: Map<String, NotificationItem> = emptyMap(),
) : NotificationClient(NoPointer) {
override suspend fun getNotifications(requests: List<NotificationItemsRequest>): Map<String, NotificationItem> {

View file

@ -13,7 +13,7 @@ import org.matrix.rustcomponents.sdk.NotificationSettings
import org.matrix.rustcomponents.sdk.NotificationSettingsDelegate
import org.matrix.rustcomponents.sdk.RoomNotificationSettings
class FakeRustNotificationSettings(
class FakeFfiNotificationSettings(
private val roomNotificationSettings: RoomNotificationSettings = aRustRoomNotificationSettings(),
) : NotificationSettings(NoPointer) {
private var delegate: NotificationSettingsDelegate? = null

View file

@ -11,7 +11,7 @@ import io.element.android.tests.testutils.lambda.lambdaError
import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.QrCodeData
class FakeQrCodeData(
class FakeFfiQrCodeData(
private val serverNameResult: () -> String? = { lambdaError() },
) : QrCodeData(NoPointer) {
override fun serverName(): String? {

View file

@ -17,7 +17,7 @@ import org.matrix.rustcomponents.sdk.Room
import org.matrix.rustcomponents.sdk.RoomInfo
import org.matrix.rustcomponents.sdk.RoomMembersIterator
class FakeRustRoom(
class FakeFfiRoom(
private val roomId: RoomId = A_ROOM_ID,
private val getMembers: () -> RoomMembersIterator = { lambdaError() },
private val getMembersNoSync: () -> RoomMembersIterator = { lambdaError() },

View file

@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntriesListener
import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
import org.matrix.rustcomponents.sdk.TaskHandle
class FakeRustRoomDirectorySearch(
class FakeFfiRoomDirectorySearch(
var isAtLastPage: Boolean = false,
) : RoomDirectorySearch(NoPointer) {
override suspend fun isAtLastPage(): Boolean {
@ -28,7 +28,7 @@ class FakeRustRoomDirectorySearch(
override suspend fun results(listener: RoomDirectorySearchEntriesListener): TaskHandle {
this.listener = listener
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
fun emitResult(roomEntriesUpdate: List<RoomDirectorySearchEntryUpdate>) {

View file

@ -10,4 +10,4 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.RoomList
class FakeRustRoomList : RoomList(NoPointer)
class FakeFfiRoomList : RoomList(NoPointer)

View file

@ -15,9 +15,9 @@ import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicator
import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicatorListener
import org.matrix.rustcomponents.sdk.TaskHandle
class FakeRustRoomListService : RoomListService(NoPointer) {
class FakeFfiRoomListService : RoomListService(NoPointer) {
override suspend fun allRooms(): RoomList {
return FakeRustRoomList()
return FakeFfiRoomList()
}
private var listener: RoomListServiceSyncIndicatorListener? = null
@ -27,7 +27,7 @@ class FakeRustRoomListService : RoomListService(NoPointer) {
listener: RoomListServiceSyncIndicatorListener,
): TaskHandle {
this.listener = listener
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
fun emitRoomListServiceSyncIndicator(syncIndicator: RoomListServiceSyncIndicator) {
@ -35,6 +35,6 @@ class FakeRustRoomListService : RoomListService(NoPointer) {
}
override fun state(listener: RoomListServiceStateListener): TaskHandle {
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
}

View file

@ -11,7 +11,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.RoomMember
import org.matrix.rustcomponents.sdk.RoomMembersIterator
class FakeRustRoomMembersIterator(
class FakeFfiRoomMembersIterator(
private var members: List<RoomMember>? = null
) : RoomMembersIterator(NoPointer) {
override fun len(): UInt {

View file

@ -11,6 +11,6 @@ import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.SessionVerificationController
import org.matrix.rustcomponents.sdk.SessionVerificationControllerDelegate
class FakeRustSessionVerificationController : SessionVerificationController(NoPointer) {
class FakeFfiSessionVerificationController : SessionVerificationController(NoPointer) {
override fun setDelegate(delegate: SessionVerificationControllerDelegate?) {}
}

View file

@ -13,12 +13,12 @@ import org.matrix.rustcomponents.sdk.SyncService
import org.matrix.rustcomponents.sdk.SyncServiceStateObserver
import org.matrix.rustcomponents.sdk.TaskHandle
class FakeRustSyncService(
private val roomListService: RoomListService = FakeRustRoomListService(),
class FakeFfiSyncService(
private val roomListService: RoomListService = FakeFfiRoomListService(),
) : SyncService(NoPointer) {
override fun roomListService(): RoomListService = roomListService
override fun state(listener: SyncServiceStateObserver): TaskHandle {
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
override suspend fun stop() {}
}

View file

@ -11,7 +11,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.SyncService
import org.matrix.rustcomponents.sdk.SyncServiceBuilder
class FakeRustSyncServiceBuilder : SyncServiceBuilder(NoPointer) {
class FakeFfiSyncServiceBuilder : SyncServiceBuilder(NoPointer) {
override fun withOfflineMode(): SyncServiceBuilder = this
override suspend fun finish(): SyncService = FakeRustSyncService()
override suspend fun finish(): SyncService = FakeFfiSyncService()
}

View file

@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.TaskHandle
class FakeRustTaskHandle : TaskHandle(NoPointer) {
class FakeFfiTaskHandle : TaskHandle(NoPointer) {
override fun cancel() = Unit
override fun destroy() = Unit
}

View file

@ -15,11 +15,11 @@ import org.matrix.rustcomponents.sdk.TimelineDiff
import org.matrix.rustcomponents.sdk.TimelineListener
import uniffi.matrix_sdk.RoomPaginationStatus
class FakeRustTimeline : Timeline(NoPointer) {
class FakeFfiTimeline : Timeline(NoPointer) {
private var listener: TimelineListener? = null
override suspend fun addListener(listener: TimelineListener): TaskHandle {
this.listener = listener
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
fun emitDiff(diff: List<TimelineDiff>) {
@ -29,7 +29,7 @@ class FakeRustTimeline : Timeline(NoPointer) {
private var paginationStatusListener: PaginationStatusListener? = null
override suspend fun subscribeToBackPaginationStatus(listener: PaginationStatusListener): TaskHandle {
this.paginationStatusListener = listener
return FakeRustTaskHandle()
return FakeFfiTaskHandle()
}
fun emitPaginationStatus(status: RoomPaginationStatus) {

View file

@ -14,9 +14,9 @@ import org.matrix.rustcomponents.sdk.TimelineChange
import org.matrix.rustcomponents.sdk.TimelineDiff
import org.matrix.rustcomponents.sdk.TimelineItem
class FakeRustTimelineDiff(
class FakeFfiTimelineDiff(
private val change: TimelineChange,
private val item: TimelineItem? = FakeRustTimelineItem()
private val item: TimelineItem? = FakeFfiTimelineItem()
) : TimelineDiff(NoPointer) {
override fun change() = change
override fun append(): List<TimelineItem>? = item?.let { listOf(it) }

View file

@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.TimelineEvent
import org.matrix.rustcomponents.sdk.TimelineEventType
class FakeRustTimelineEvent(
class FakeFfiTimelineEvent(
val timestamp: ULong = A_FAKE_TIMESTAMP.toULong(),
val timelineEventType: TimelineEventType = aRustTimelineEventTypeMessageLike(),
val senderId: String = A_USER_ID_2.value,

View file

@ -10,4 +10,4 @@ package io.element.android.libraries.matrix.impl.fixtures.fakes
import org.matrix.rustcomponents.sdk.NoPointer
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
class FakeRustTimelineEventTypeFilter : TimelineEventTypeFilter(NoPointer)
class FakeFfiTimelineEventTypeFilter : TimelineEventTypeFilter(NoPointer)

View file

@ -13,7 +13,7 @@ import org.matrix.rustcomponents.sdk.TimelineItem
import org.matrix.rustcomponents.sdk.TimelineUniqueId
import org.matrix.rustcomponents.sdk.VirtualTimelineItem
class FakeRustTimelineItem(
class FakeFfiTimelineItem(
private val asEventResult: EventTimelineItem? = null,
) : TimelineItem(NoPointer) {
override fun asEvent(): EventTimelineItem? = asEventResult

View file

@ -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.timeline.item.event.TextMessageType
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.A_MESSAGE
import io.element.android.libraries.matrix.test.A_ROOM_ID
@ -28,7 +28,7 @@ import org.matrix.rustcomponents.sdk.NotificationClient
class RustNotificationServiceTest {
@Test
fun test() = runTest {
val notificationClient = FakeRustNotificationClient(
val notificationClient = FakeFfiNotificationClient(
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustNotificationItem()),
)
val sut = createRustNotificationService(
@ -48,7 +48,7 @@ class RustNotificationServiceTest {
}
private fun TestScope.createRustNotificationService(
notificationClient: NotificationClient = FakeRustNotificationClient(),
notificationClient: NotificationClient = FakeFfiNotificationClient(),
clock: SystemClock = FakeSystemClock(),
) =
RustNotificationService(

View file

@ -9,8 +9,8 @@ package io.element.android.libraries.matrix.impl.notificationsettings
import com.google.common.truth.Truth.assertThat
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.FakeRustNotificationSettings
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiNotificationSettings
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.tests.testutils.testCoroutineDispatchers
import kotlinx.coroutines.test.TestScope
@ -32,9 +32,9 @@ class RustNotificationSettingsServiceTest {
}
private fun TestScope.createRustNotificationSettingsService(
notificationSettings: NotificationSettings = FakeRustNotificationSettings(),
notificationSettings: NotificationSettings = FakeFfiNotificationSettings(),
) = RustNotificationSettingsService(
client = FakeRustClient(
client = FakeFfiClient(
notificationSettings = notificationSettings,
),
sessionCoroutineScope = this,

View file

@ -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.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 kotlinx.coroutines.test.runTest
import org.junit.Test
@ -18,7 +18,7 @@ class RustPushersServiceTest {
@Test
fun `setPusher should invoke the client method`() = runTest {
val sut = RustPushersService(
client = FakeRustClient(),
client = FakeFfiClient(),
dispatchers = testCoroutineDispatchers()
)
sut.setHttpPusher(
@ -29,7 +29,7 @@ class RustPushersServiceTest {
@Test
fun `unsetPusher should invoke the client method`() = runTest {
val sut = RustPushersService(
client = FakeRustClient(),
client = FakeFfiClient(),
dispatchers = testCoroutineDispatchers()
)
sut.unsetHttpPusher(

View file

@ -8,11 +8,11 @@
package io.element.android.libraries.matrix.impl.room
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
class FakeTimelineEventTypeFilterFactory : TimelineEventTypeFilterFactory {
override fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter {
return FakeRustTimelineEventTypeFilter()
return FakeFfiTimelineEventTypeFilter()
}
}

View file

@ -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.RoomMembershipObserver
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.FakeRustRoomListService
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoom
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_SESSION_ID
import io.element.android.libraries.matrix.test.room.aRoomInfo
@ -41,7 +41,7 @@ class RustBaseRoomTest {
val roomMembershipObserver = RoomMembershipObserver()
val rustBaseRoom = createRustBaseRoom(
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.JOINED),
innerRoom = FakeRustRoom(
innerRoom = FakeFfiRoom(
leaveLambda = {
// Simulate a successful leave
}
@ -61,7 +61,7 @@ class RustBaseRoomTest {
val roomMembershipObserver = RoomMembershipObserver()
val rustBaseRoom = createRustBaseRoom(
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.KNOCKED),
innerRoom = FakeRustRoom(
innerRoom = FakeFfiRoom(
leaveLambda = {
// Simulate a successful leave
}
@ -81,7 +81,7 @@ class RustBaseRoomTest {
val roomMembershipObserver = RoomMembershipObserver()
val rustBaseRoom = createRustBaseRoom(
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.INVITED),
innerRoom = FakeRustRoom(
innerRoom = FakeFfiRoom(
leaveLambda = {
// Simulate a successful leave
}
@ -101,7 +101,7 @@ class RustBaseRoomTest {
val roomMembershipObserver = RoomMembershipObserver()
val rustBaseRoom = createRustBaseRoom(
initialRoomInfo = aRoomInfo(currentUserMembership = CurrentUserMembership.INVITED),
innerRoom = FakeRustRoom(
innerRoom = FakeFfiRoom(
leaveLambda = { error("Leave failed") }
),
roomMembershipObserver = roomMembershipObserver,
@ -127,7 +127,7 @@ class RustBaseRoomTest {
private fun TestScope.createRustBaseRoom(
initialRoomInfo: RoomInfo = aRoomInfo(),
innerRoom: FakeRustRoom = FakeRustRoom(),
innerRoom: FakeFfiRoom = FakeFfiRoom(),
roomMembershipObserver: RoomMembershipObserver = RoomMembershipObserver(),
): RustBaseRoom {
val dispatchers = testCoroutineDispatchers()
@ -137,7 +137,7 @@ class RustBaseRoomTest {
innerRoom = innerRoom,
coroutineDispatchers = dispatchers,
roomSyncSubscriber = RoomSyncSubscriber(
roomListService = FakeRustRoomListService(),
roomListService = FakeFfiRoomListService(),
dispatchers = dispatchers,
),
roomMembershipObserver = roomMembershipObserver,

View file

@ -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.roomMembers
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.FakeRustRoomMembersIterator
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoom
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_AND_SERVER
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher.Source.SERVER
@ -28,8 +28,8 @@ import org.junit.Test
class RoomMemberListFetcherTest {
@Test
fun `fetchRoomMembers with CACHE source - emits cached members, if any`() = runTest {
val room = FakeRustRoom(getMembersNoSync = {
FakeRustRoomMembersIterator(
val room = FakeFfiRoom(getMembersNoSync = {
FakeFfiRoomMembersIterator(
listOf(
aRustRoomMember(A_USER_ID),
aRustRoomMember(A_USER_ID_2),
@ -55,8 +55,8 @@ class RoomMemberListFetcherTest {
@Test
fun `fetchRoomMembers with CACHE source - emits empty list, if no members exist`() = runTest {
val room = FakeRustRoom(getMembersNoSync = {
FakeRustRoomMembersIterator(emptyList())
val room = FakeFfiRoom(getMembersNoSync = {
FakeFfiRoomMembersIterator(emptyList())
})
val fetcher = RoomMemberListFetcher(room, Dispatchers.Default)
@ -70,7 +70,7 @@ class RoomMemberListFetcherTest {
@Test
fun `fetchRoomMembers with CACHE source - emits Error on error found`() = runTest {
val room = FakeRustRoom(getMembersNoSync = {
val room = FakeFfiRoom(getMembersNoSync = {
error("Some unexpected issue")
})
@ -85,8 +85,8 @@ class RoomMemberListFetcherTest {
@Test
fun `fetchRoomMembers with CACHE source - emits all items at once`() = runTest {
val room = FakeRustRoom(getMembersNoSync = {
FakeRustRoomMembersIterator(
val room = FakeFfiRoom(getMembersNoSync = {
FakeFfiRoomMembersIterator(
listOf(
aRustRoomMember(A_USER_ID),
aRustRoomMember(A_USER_ID_2),
@ -112,8 +112,8 @@ class RoomMemberListFetcherTest {
@Test
fun `fetchRoomMembers with SERVER source - emits only new members, if any`() = runTest {
val room = FakeRustRoom(getMembers = {
FakeRustRoomMembersIterator(
val room = FakeFfiRoom(getMembers = {
FakeFfiRoomMembersIterator(
listOf(
aRustRoomMember(A_USER_ID),
aRustRoomMember(A_USER_ID_2),
@ -134,7 +134,7 @@ class RoomMemberListFetcherTest {
@Test
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)
fetcher.membersFlow.test {
@ -148,12 +148,12 @@ class RoomMemberListFetcherTest {
@Test
fun `fetchRoomMembers with CACHE_AND_SERVER source - returns cached items first, then new ones`() = runTest {
val room = FakeRustRoom(
val room = FakeFfiRoom(
getMembersNoSync = {
FakeRustRoomMembersIterator(listOf(aRustRoomMember(A_USER_ID_4)))
FakeFfiRoomMembersIterator(listOf(aRustRoomMember(A_USER_ID_4)))
},
getMembers = {
FakeRustRoomMembersIterator(
FakeFfiRoomMembersIterator(
listOf(
aRustRoomMember(A_USER_ID),
aRustRoomMember(A_USER_ID_2),

View file

@ -11,7 +11,7 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
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.fakes.FakeRustRoomDirectorySearch
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomDirectorySearch
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.StandardTestDispatcher
@ -26,7 +26,7 @@ import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
class RustBaseRoomDirectoryListTest {
@Test
fun `check that the state emits the expected values`() = runTest {
val roomDirectorySearch = FakeRustRoomDirectorySearch()
val roomDirectorySearch = FakeFfiRoomDirectorySearch()
val mapper = RoomDescriptionMapper()
val sut = createRustRoomDirectoryList(
roomDirectorySearch = roomDirectorySearch,
@ -78,7 +78,7 @@ class RustBaseRoomDirectoryListTest {
}
private fun TestScope.createRustRoomDirectoryList(
roomDirectorySearch: RoomDirectorySearch = FakeRustRoomDirectorySearch(),
roomDirectorySearch: RoomDirectorySearch = FakeFfiRoomDirectorySearch(),
) = RustRoomDirectoryList(
inner = roomDirectorySearch,
coroutineScope = backgroundScope,

View file

@ -7,7 +7,7 @@
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.runTest
import org.junit.Test
@ -15,7 +15,7 @@ import org.junit.Test
class RustBaseRoomDirectoryServiceTest {
@Test
fun test() = runTest {
val client = FakeRustClient()
val client = FakeFfiClient()
val sut = RustRoomDirectoryService(
client = client,
sessionDispatcher = StandardTestDispatcher(testScheduler),

View file

@ -7,8 +7,8 @@
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.FakeRustRoomListService
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomList
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
import kotlinx.coroutines.test.runTest
import org.junit.Test
import kotlin.coroutines.EmptyCoroutineContext
@ -17,14 +17,14 @@ class RoomListFactoryTest {
@Test
fun `createRoomList should work`() = runTest {
val sut = RoomListFactory(
innerRoomListService = FakeRustRoomListService(),
innerRoomListService = FakeFfiRoomListService(),
sessionCoroutineScope = backgroundScope,
)
sut.createRoomList(
pageSize = 10,
coroutineContext = EmptyCoroutineContext,
) {
FakeRustRoomList()
FakeFfiRoomList()
}
}
}

View file

@ -10,8 +10,8 @@ package io.element.android.libraries.matrix.impl.roomlist
import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.matrix.api.core.RoomId
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.FakeRustRoomListService
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoom
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_2
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)
}
private fun aRustRoom(roomId: RoomId = A_ROOM_ID) = FakeRustRoom(
private fun aRustRoom(roomId: RoomId = A_ROOM_ID) = FakeFfiRoom(
roomId = roomId,
latestEventLambda = { null },
)
private fun TestScope.createProcessor() = RoomSummaryListProcessor(
summaries,
FakeRustRoomListService(),
FakeFfiRoomListService(),
coroutineContext = StandardTestDispatcher(testScheduler),
roomSummaryDetailsFactory = RoomSummaryFactory(),
)

View file

@ -9,7 +9,7 @@ package io.element.android.libraries.matrix.impl.roomlist
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
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.tests.testutils.testCoroutineDispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -25,7 +25,7 @@ import org.matrix.rustcomponents.sdk.RoomListService as RustRoomListService
class RustBaseRoomListServiceTest {
@Test
fun `syncIndicator should emit the expected values`() = runTest {
val roomListService = FakeRustRoomListService()
val roomListService = FakeFfiRoomListService()
val sut = createRustRoomListService(
roomListService = roomListService,
)
@ -42,7 +42,7 @@ class RustBaseRoomListServiceTest {
}
private fun TestScope.createRustRoomListService(
roomListService: RustRoomListService = FakeRustRoomListService(),
roomListService: RustRoomListService = FakeFfiRoomListService(),
) = RustRoomListService(
innerRoomListService = roomListService,
sessionDispatcher = StandardTestDispatcher(testScheduler),

View file

@ -9,7 +9,7 @@ package io.element.android.libraries.matrix.impl.timeline
import com.google.common.truth.Truth.assertThat
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.TimelineEventContentMapper
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 {
timelineItems.value = listOf(anEvent)
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).containsExactly(
anEvent,
@ -45,7 +45,7 @@ class MatrixTimelineDiffProcessorTest {
fun `PushBack adds a new entry at the end of the list`() = runTest {
timelineItems.value = listOf(anEvent)
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).containsExactly(
anEvent,
@ -57,7 +57,7 @@ class MatrixTimelineDiffProcessorTest {
fun `PushFront inserts a new entry at the start of the list`() = runTest {
timelineItems.value = listOf(anEvent)
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).containsExactly(
MatrixTimelineItem.Other,
@ -69,7 +69,7 @@ class MatrixTimelineDiffProcessorTest {
fun `Set replaces an entry at some index`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2)
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).containsExactly(
anEvent,
@ -81,7 +81,7 @@ class MatrixTimelineDiffProcessorTest {
fun `Insert inserts a new entry at the provided index`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2)
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).containsExactly(
anEvent,
@ -94,7 +94,7 @@ class MatrixTimelineDiffProcessorTest {
fun `Remove removes an entry at some index`() = runTest {
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
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).containsExactly(
anEvent,
@ -106,7 +106,7 @@ class MatrixTimelineDiffProcessorTest {
fun `PopBack removes an entry at the end of the list`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2)
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).containsExactly(
anEvent,
@ -117,7 +117,7 @@ class MatrixTimelineDiffProcessorTest {
fun `PopFront removes an entry at the start of the list`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2)
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).containsExactly(
anEvent2,
@ -128,7 +128,7 @@ class MatrixTimelineDiffProcessorTest {
fun `Clear removes all the entries`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2)
val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.CLEAR)))
processor.postDiffs(listOf(FakeFfiTimelineDiff(change = TimelineChange.CLEAR)))
assertThat(timelineItems.value).isEmpty()
}
@ -136,7 +136,7 @@ class MatrixTimelineDiffProcessorTest {
fun `Truncate removes all entries after the provided length`() = runTest {
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
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).containsExactly(
anEvent,
@ -147,7 +147,7 @@ class MatrixTimelineDiffProcessorTest {
fun `Reset removes all entries and add the provided ones`() = runTest {
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
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).containsExactly(
MatrixTimelineItem.Other,

View file

@ -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.Timeline
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.FakeRustTimeline
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineDiff
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimeline
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.test.room.FakeJoinedRoom
import io.element.android.libraries.matrix.test.room.aRoomInfo
@ -40,7 +40,7 @@ import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
class RustTimelineTest {
@Test
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 sut = createRustTimeline(
inner = inner,
@ -51,7 +51,7 @@ class RustTimelineTest {
runCurrent()
inner.emitDiff(
listOf(
FakeRustTimelineDiff(
FakeFfiTimelineDiff(
item = null,
change = TimelineChange.RESET,
)
@ -106,7 +106,7 @@ private fun TestScope.createRustTimeline(
joinedRoom: JoinedRoom = FakeJoinedRoom().apply { givenRoomInfo(aRoomInfo()) },
coroutineScope: CoroutineScope = backgroundScope,
dispatcher: CoroutineDispatcher = testCoroutineDispatchers().io,
roomContentForwarder: RoomContentForwarder = RoomContentForwarder(FakeRustRoomListService()),
roomContentForwarder: RoomContentForwarder = RoomContentForwarder(FakeFfiRoomListService()),
featureFlagsService: FeatureFlagService = FakeFeatureFlagService(),
onNewSyncedEvent: () -> Unit = {},
): RustTimeline {

View file

@ -11,9 +11,9 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
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.fakes.FakeRustTimeline
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineDiff
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineItem
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimeline
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineDiff
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.lambdaRecorder
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 {
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
val timeline = FakeRustTimeline()
val timeline = FakeFfiTimeline()
val timelineItemsSubscriber = createTimelineItemsSubscriber(
timeline = timeline,
timelineItems = timelineItems,
@ -44,7 +44,7 @@ class TimelineItemsSubscriberTest {
timelineItemsSubscriber.subscribeIfNeeded()
// Wait for the listener to be set.
runCurrent()
timeline.emitDiff(listOf(FakeRustTimelineDiff(item = null, change = TimelineChange.RESET)))
timeline.emitDiff(listOf(FakeFfiTimelineDiff(item = null, change = TimelineChange.RESET)))
val final = awaitItem()
assertThat(final).isEmpty()
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 {
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
val timeline = FakeRustTimeline()
val timeline = FakeFfiTimeline()
val timelineItemsSubscriber = createTimelineItemsSubscriber(
timeline = timeline,
timelineItems = timelineItems,
@ -64,7 +64,7 @@ class TimelineItemsSubscriberTest {
timelineItemsSubscriber.subscribeIfNeeded()
// Wait for the listener to be set.
runCurrent()
timeline.emitDiff(listOf(FakeRustTimelineDiff(item = FakeRustTimelineItem(), change = TimelineChange.RESET)))
timeline.emitDiff(listOf(FakeFfiTimelineDiff(item = FakeFfiTimelineItem(), change = TimelineChange.RESET)))
val final = awaitItem()
assertThat(final).isNotEmpty()
timelineItemsSubscriber.unsubscribeIfNeeded()
@ -75,7 +75,7 @@ class TimelineItemsSubscriberTest {
fun `when timeline emits an item with SYNC origin, the callback onNewSyncedEvent is invoked`() = runTest {
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
val timeline = FakeRustTimeline()
val timeline = FakeFfiTimeline()
val onNewSyncedEventRecorder = lambdaRecorder<Unit> { }
val timelineItemsSubscriber = createTimelineItemsSubscriber(
timeline = timeline,
@ -88,8 +88,8 @@ class TimelineItemsSubscriberTest {
runCurrent()
timeline.emitDiff(
listOf(
FakeRustTimelineDiff(
item = FakeRustTimelineItem(
FakeFfiTimelineDiff(
item = FakeFfiTimelineItem(
asEventResult = aRustEventTimelineItem(origin = EventItemOrigin.SYNC),
),
change = TimelineChange.RESET,
@ -114,7 +114,7 @@ class TimelineItemsSubscriberTest {
}
private fun TestScope.createTimelineItemsSubscriber(
timeline: Timeline = FakeRustTimeline(),
timeline: Timeline = FakeFfiTimeline(),
timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> = MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE),
initLatch: CompletableDeferred<Unit> = CompletableDeferred(),
isTimelineInitialized: MutableStateFlow<Boolean> = MutableStateFlow(false),

View file

@ -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.withNameContaining
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.withoutNameStartingWith
import com.lemonappdev.konsist.api.verify.assertEmpty
@ -89,9 +90,9 @@ class KonsistClassNameTest {
)
.assertTrue {
val interfaceName = it.name
.replace("FakeRust", "")
.replace("FakeFfi", "")
.replace("Fake", "")
val result = (it.name.startsWith("Fake") || it.name.startsWith("FakeRust")) &&
val result = it.name.startsWith("Fake") &&
it.parents().any { parent ->
val parentName = parent.name.replace(".", "")
parentName == interfaceName
@ -106,6 +107,17 @@ class KonsistClassNameTest {
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
fun `Class implementing interface should have name not end with 'Impl' but start with 'Default'`() {
Konsist.scopeFromProject()