From ed1cb24c28494203c8ebf9427c49f410584a8a24 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 2 Oct 2024 21:20:59 +0200 Subject: [PATCH] Fix tests, replace outdated SDK fixtures --- .../fixtures/factories/EventTimelineItem.kt | 59 +++++++++++++++++++ .../factories/EventTimelineItemContent.kt | 24 ++++++++ .../fakes/FakeRustEventShieldsProvider.kt | 18 ++++++ .../fakes/FakeRustEventTimelineItem.kt | 44 -------------- ...eRustEventTimelineItemDebugInfoProvider.kt | 19 ++++++ .../fakes/FakeRustTimelineItemContent.kt | 18 ------ .../timeline/TimelineItemsSubscriberTest.kt | 4 +- 7 files changed, 122 insertions(+), 64 deletions(-) create mode 100644 libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt create mode 100644 libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt create mode 100644 libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventShieldsProvider.kt delete mode 100644 libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItem.kt create mode 100644 libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItemDebugInfoProvider.kt delete mode 100644 libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustTimelineItemContent.kt diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt new file mode 100644 index 0000000000..1b8c7152ff --- /dev/null +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt @@ -0,0 +1,59 @@ +/* + * Copyright 2024 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only + * Please see LICENSE in the repository root for full details. + */ + +package io.element.android.libraries.matrix.impl.fixtures.factories + +import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustEventShieldsProvider +import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustEventTimelineItemDebugInfoProvider +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 +import org.matrix.rustcomponents.sdk.EventSendState +import org.matrix.rustcomponents.sdk.EventTimelineItem +import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfo +import org.matrix.rustcomponents.sdk.ProfileDetails +import org.matrix.rustcomponents.sdk.Reaction +import org.matrix.rustcomponents.sdk.Receipt +import org.matrix.rustcomponents.sdk.ShieldState +import org.matrix.rustcomponents.sdk.TimelineItemContent +import uniffi.matrix_sdk_ui.EventItemOrigin + +fun aRustEventTimelineItem( + isLocal: Boolean = false, + isRemote: Boolean = true, + eventOrTransactionId: EventOrTransactionId = EventOrTransactionId.EventId(AN_EVENT_ID.value), + sender: String = A_USER_ID.value, + senderProfile: ProfileDetails = ProfileDetails.Unavailable, + isOwn: Boolean = true, + isEditable: Boolean = true, + content: TimelineItemContent = aRustTimelineItemMessageContent(), + timestamp: ULong = 0uL, + reactions: List = emptyList(), + debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(), + localSendState: EventSendState? = null, + readReceipts: Map = emptyMap(), + origin: EventItemOrigin? = EventItemOrigin.SYNC, + canBeRepliedTo: Boolean = true, + shieldsState: ShieldState? = null, +) = EventTimelineItem( + isLocal = isLocal, + isRemote = isRemote, + eventOrTransactionId = eventOrTransactionId, + sender = sender, + senderProfile = senderProfile, + timestamp = timestamp, + isOwn = isOwn, + isEditable = isEditable, + canBeRepliedTo = canBeRepliedTo, + content = content, + debugInfoProvider = FakeRustEventTimelineItemDebugInfoProvider(debugInfo), + shieldsProvider = FakeRustEventShieldsProvider(shieldsState), + localSendState = localSendState, + reactions = reactions, + readReceipts = readReceipts, + origin = origin, +) diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt new file mode 100644 index 0000000000..2fc711b591 --- /dev/null +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only + * Please see LICENSE in the repository root for full details. + */ + +package io.element.android.libraries.matrix.impl.fixtures.factories + +import org.matrix.rustcomponents.sdk.MessageContent +import org.matrix.rustcomponents.sdk.MessageType +import org.matrix.rustcomponents.sdk.TextMessageContent +import org.matrix.rustcomponents.sdk.TimelineItemContent + +fun aRustTimelineItemMessageContent(body: String = "Hello") = TimelineItemContent.Message( + content = MessageContent( + msgType = MessageType.Text(content = TextMessageContent(body = body, formatted = null)), + body = body, + inReplyTo = null, + threadRoot = null, + isEdited = false, + mentions = null, + ) +) diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventShieldsProvider.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventShieldsProvider.kt new file mode 100644 index 0000000000..93f1e5162b --- /dev/null +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventShieldsProvider.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2024 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only + * Please see LICENSE in the repository root for full details. + */ + +package io.element.android.libraries.matrix.impl.fixtures.fakes + +import org.matrix.rustcomponents.sdk.EventShieldsProvider +import org.matrix.rustcomponents.sdk.NoPointer +import org.matrix.rustcomponents.sdk.ShieldState + +class FakeRustEventShieldsProvider( + private val shieldsState: ShieldState? = null, +) : EventShieldsProvider(NoPointer) { + override fun getShields(strict: Boolean): ShieldState? = shieldsState +} diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItem.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItem.kt deleted file mode 100644 index f40d0ffbea..0000000000 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItem.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2024 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only - * Please see LICENSE in the repository root for full details. - */ - -package io.element.android.libraries.matrix.impl.fixtures.fakes - -import io.element.android.libraries.matrix.impl.fixtures.factories.anEventTimelineItemDebugInfo -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.EventSendState -import org.matrix.rustcomponents.sdk.EventTimelineItem -import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfo -import org.matrix.rustcomponents.sdk.NoPointer -import org.matrix.rustcomponents.sdk.ProfileDetails -import org.matrix.rustcomponents.sdk.Reaction -import org.matrix.rustcomponents.sdk.Receipt -import org.matrix.rustcomponents.sdk.ShieldState -import org.matrix.rustcomponents.sdk.TimelineItemContent -import uniffi.matrix_sdk_ui.EventItemOrigin - -class FakeRustEventTimelineItem( - private val origin: EventItemOrigin? = null, -) : EventTimelineItem(NoPointer) { - override fun origin(): EventItemOrigin? = origin - override fun eventId(): String = AN_EVENT_ID.value - override fun transactionId(): String? = null - override fun isEditable(): Boolean = false - override fun canBeRepliedTo(): Boolean = false - override fun isLocal(): Boolean = false - override fun isOwn(): Boolean = false - override fun isRemote(): Boolean = false - override fun localSendState(): EventSendState? = null - override fun reactions(): List = emptyList() - override fun readReceipts(): Map = emptyMap() - override fun sender(): String = A_USER_ID.value - override fun senderProfile(): ProfileDetails = ProfileDetails.Unavailable - override fun timestamp(): ULong = 0u - override fun content(): TimelineItemContent = FakeRustTimelineItemContent() - override fun debugInfo(): EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo() - override fun getShield(strict: Boolean): ShieldState? = null -} diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItemDebugInfoProvider.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItemDebugInfoProvider.kt new file mode 100644 index 0000000000..93ac66318b --- /dev/null +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustEventTimelineItemDebugInfoProvider.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2024 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only + * Please see LICENSE in the repository root for full details. + */ + +package io.element.android.libraries.matrix.impl.fixtures.fakes + +import io.element.android.libraries.matrix.impl.fixtures.factories.anEventTimelineItemDebugInfo +import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfo +import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfoProvider +import org.matrix.rustcomponents.sdk.NoPointer + +class FakeRustEventTimelineItemDebugInfoProvider( + private val debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(), +) : EventTimelineItemDebugInfoProvider(NoPointer) { + override fun get(): EventTimelineItemDebugInfo = debugInfo +} diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustTimelineItemContent.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustTimelineItemContent.kt deleted file mode 100644 index 14bdde0682..0000000000 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/fakes/FakeRustTimelineItemContent.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2024 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only - * Please see LICENSE in the repository root for full details. - */ - -package io.element.android.libraries.matrix.impl.fixtures.fakes - -import org.matrix.rustcomponents.sdk.Message -import org.matrix.rustcomponents.sdk.NoPointer -import org.matrix.rustcomponents.sdk.TimelineItemContent -import org.matrix.rustcomponents.sdk.TimelineItemContentKind - -class FakeRustTimelineItemContent : TimelineItemContent(NoPointer) { - override fun asMessage(): Message? = null - override fun kind(): TimelineItemContentKind = TimelineItemContentKind.Message -} diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/timeline/TimelineItemsSubscriberTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/timeline/TimelineItemsSubscriberTest.kt index 4333525fe0..3816c77a9d 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/timeline/TimelineItemsSubscriberTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/timeline/TimelineItemsSubscriberTest.kt @@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.impl.timeline 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.fakes.FakeRustEventTimelineItem +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 @@ -94,7 +94,7 @@ class TimelineItemsSubscriberTest { listOf( FakeRustTimelineDiff( item = FakeRustTimelineItem( - asEventResult = FakeRustEventTimelineItem(origin = EventItemOrigin.SYNC) + asEventResult = aRustEventTimelineItem(origin = EventItemOrigin.SYNC), ), change = TimelineChange.RESET, )