From 606cd3efc3d39b5c20ea85e93ced35073b835946 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 9 Feb 2023 17:44:15 +0100 Subject: [PATCH] Cleanup and centralize test data. --- .../changeserver/ChangeServerPresenterTest.kt | 2 +- .../login/root/LoginRootPresenterTest.kt | 22 +++++----- .../logout/LogoutPreferencePresenterTest.kt | 2 +- .../messages/MessagesPresenterTest.kt | 18 ++++---- .../actionlist/ActionListPresenterTest.kt | 12 +++--- .../MessageComposerPresenterTest.kt | 33 ++++++++------- .../timeline/TimelinePresenterTest.kt | 11 +++-- .../roomlist/RoomListPresenterTests.kt | 38 ++++++++++++++--- .../libraries/matrixtest/FakeMatrixClient.kt | 9 ++-- .../android/libraries/matrixtest/TestData.kt | 41 +++++++++++++++++++ .../auth/FakeAuthenticationService.kt | 9 +--- .../matrixtest/core/RoomIdFixture.kt | 22 ---------- .../matrixtest/room/FakeMatrixRoom.kt | 3 +- .../matrixtest/room/RoomSummaryFixture.kt | 9 ++-- .../matrixtest/timeline/FakeMatrixTimeline.kt | 5 --- 15 files changed, 135 insertions(+), 101 deletions(-) create mode 100644 libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/TestData.kt delete mode 100644 libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/core/RoomIdFixture.kt diff --git a/features/login/src/test/kotlin/io/element/android/features/login/changeserver/ChangeServerPresenterTest.kt b/features/login/src/test/kotlin/io/element/android/features/login/changeserver/ChangeServerPresenterTest.kt index c8ff3de1ae..b22c03dc35 100644 --- a/features/login/src/test/kotlin/io/element/android/features/login/changeserver/ChangeServerPresenterTest.kt +++ b/features/login/src/test/kotlin/io/element/android/features/login/changeserver/ChangeServerPresenterTest.kt @@ -23,7 +23,7 @@ import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.libraries.architecture.Async -import io.element.android.libraries.matrixtest.auth.A_HOMESERVER +import io.element.android.libraries.matrixtest.A_HOMESERVER import io.element.android.libraries.matrixtest.auth.FakeAuthenticationService import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest diff --git a/features/login/src/test/kotlin/io/element/android/features/login/root/LoginRootPresenterTest.kt b/features/login/src/test/kotlin/io/element/android/features/login/root/LoginRootPresenterTest.kt index ba3b5e644a..f9eed8d66f 100644 --- a/features/login/src/test/kotlin/io/element/android/features/login/root/LoginRootPresenterTest.kt +++ b/features/login/src/test/kotlin/io/element/android/features/login/root/LoginRootPresenterTest.kt @@ -23,12 +23,12 @@ import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.core.SessionId -import io.element.android.libraries.matrixtest.auth.A_FAILURE -import io.element.android.libraries.matrixtest.auth.A_HOMESERVER -import io.element.android.libraries.matrixtest.auth.A_HOMESERVER_2 -import io.element.android.libraries.matrixtest.auth.A_LOGIN -import io.element.android.libraries.matrixtest.auth.A_PASSWORD -import io.element.android.libraries.matrixtest.auth.A_SESSION_ID +import io.element.android.libraries.matrixtest.A_FAILURE +import io.element.android.libraries.matrixtest.A_HOMESERVER +import io.element.android.libraries.matrixtest.A_HOMESERVER_2 +import io.element.android.libraries.matrixtest.A_PASSWORD +import io.element.android.libraries.matrixtest.A_SESSION_ID +import io.element.android.libraries.matrixtest.A_USER_NAME import io.element.android.libraries.matrixtest.auth.FakeAuthenticationService import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest @@ -60,13 +60,13 @@ class LoginRootPresenterTest { presenter.present() }.test { val initialState = awaitItem() - initialState.eventSink.invoke(LoginRootEvents.SetLogin(A_LOGIN)) + initialState.eventSink.invoke(LoginRootEvents.SetLogin(A_USER_NAME)) val loginState = awaitItem() - assertThat(loginState.formState).isEqualTo(LoginFormState(login = A_LOGIN, password = "")) + assertThat(loginState.formState).isEqualTo(LoginFormState(login = A_USER_NAME, password = "")) assertThat(loginState.submitEnabled).isFalse() initialState.eventSink.invoke(LoginRootEvents.SetPassword(A_PASSWORD)) val loginAndPasswordState = awaitItem() - assertThat(loginAndPasswordState.formState).isEqualTo(LoginFormState(login = A_LOGIN, password = A_PASSWORD)) + assertThat(loginAndPasswordState.formState).isEqualTo(LoginFormState(login = A_USER_NAME, password = A_PASSWORD)) assertThat(loginAndPasswordState.submitEnabled).isTrue() } } @@ -80,7 +80,7 @@ class LoginRootPresenterTest { presenter.present() }.test { val initialState = awaitItem() - initialState.eventSink.invoke(LoginRootEvents.SetLogin(A_LOGIN)) + initialState.eventSink.invoke(LoginRootEvents.SetLogin(A_USER_NAME)) initialState.eventSink.invoke(LoginRootEvents.SetPassword(A_PASSWORD)) skipItems(1) val loginAndPasswordState = awaitItem() @@ -102,7 +102,7 @@ class LoginRootPresenterTest { presenter.present() }.test { val initialState = awaitItem() - initialState.eventSink.invoke(LoginRootEvents.SetLogin(A_LOGIN)) + initialState.eventSink.invoke(LoginRootEvents.SetLogin(A_USER_NAME)) initialState.eventSink.invoke(LoginRootEvents.SetPassword(A_PASSWORD)) skipItems(1) val loginAndPasswordState = awaitItem() diff --git a/features/logout/src/test/kotlin/io/element/android/features/logout/LogoutPreferencePresenterTest.kt b/features/logout/src/test/kotlin/io/element/android/features/logout/LogoutPreferencePresenterTest.kt index 1f1643d981..5367c21e4d 100644 --- a/features/logout/src/test/kotlin/io/element/android/features/logout/LogoutPreferencePresenterTest.kt +++ b/features/logout/src/test/kotlin/io/element/android/features/logout/LogoutPreferencePresenterTest.kt @@ -24,8 +24,8 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.libraries.architecture.Async import io.element.android.libraries.matrix.core.SessionId +import io.element.android.libraries.matrixtest.A_FAILURE import io.element.android.libraries.matrixtest.FakeMatrixClient -import io.element.android.libraries.matrixtest.auth.A_FAILURE import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Test diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/MessagesPresenterTest.kt b/features/messages/src/test/kotlin/io/element/android/features/messages/MessagesPresenterTest.kt index fdd0a29923..a16d9f7eb1 100644 --- a/features/messages/src/test/kotlin/io/element/android/features/messages/MessagesPresenterTest.kt +++ b/features/messages/src/test/kotlin/io/element/android/features/messages/MessagesPresenterTest.kt @@ -33,13 +33,13 @@ import io.element.android.features.messages.timeline.model.content.TimelineItemT import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.matrix.room.MatrixRoom +import io.element.android.libraries.matrixtest.AN_EVENT_ID +import io.element.android.libraries.matrixtest.A_MESSAGE +import io.element.android.libraries.matrixtest.A_ROOM_ID +import io.element.android.libraries.matrixtest.A_USER_ID +import io.element.android.libraries.matrixtest.A_USER_NAME import io.element.android.libraries.matrixtest.FakeMatrixClient -import io.element.android.libraries.matrixtest.core.A_ROOM_ID -import io.element.android.libraries.matrixtest.room.A_MESSAGE import io.element.android.libraries.matrixtest.room.FakeMatrixRoom -import io.element.android.libraries.matrixtest.timeline.AN_EVENT_ID -import io.element.android.libraries.matrixtest.timeline.A_SENDER_ID -import io.element.android.libraries.matrixtest.timeline.A_SENDER_NAME import io.element.android.libraries.textcomposer.MessageComposerMode import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -119,7 +119,7 @@ class MessagesPresenterTest { @Test fun `present - handle action redact`() = runTest { - val matrixRoom = FakeMatrixRoom(A_ROOM_ID) + val matrixRoom = FakeMatrixRoom() val presenter = createMessagePresenter(matrixRoom) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -132,7 +132,7 @@ class MessagesPresenterTest { } private fun TestScope.createMessagePresenter( - matrixRoom: MatrixRoom = FakeMatrixRoom(A_ROOM_ID) + matrixRoom: MatrixRoom = FakeMatrixRoom() ): MessagesPresenter { val matrixClient = FakeMatrixClient() val messageComposerPresenter = MessageComposerPresenter( @@ -168,8 +168,8 @@ private fun aMessageEvent( content: TimelineItemContent = TimelineItemTextContent(body = A_MESSAGE, htmlDocument = null), ) = TimelineItem.MessageEvent( id = AN_EVENT_ID, - senderId = A_SENDER_ID, - senderDisplayName = A_SENDER_NAME, + senderId = A_USER_ID.value, + senderDisplayName = A_USER_NAME, senderAvatar = AvatarData(), content = content, sentTime = "", diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/actionlist/ActionListPresenterTest.kt b/features/messages/src/test/kotlin/io/element/android/features/messages/actionlist/ActionListPresenterTest.kt index 742463d5ed..06d1486293 100644 --- a/features/messages/src/test/kotlin/io/element/android/features/messages/actionlist/ActionListPresenterTest.kt +++ b/features/messages/src/test/kotlin/io/element/android/features/messages/actionlist/ActionListPresenterTest.kt @@ -29,10 +29,10 @@ import io.element.android.features.messages.timeline.model.content.TimelineItemC import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent import io.element.android.features.messages.timeline.model.content.TimelineItemTextContent import io.element.android.libraries.designsystem.components.avatar.AvatarData -import io.element.android.libraries.matrixtest.room.A_MESSAGE -import io.element.android.libraries.matrixtest.timeline.AN_EVENT_ID -import io.element.android.libraries.matrixtest.timeline.A_SENDER_ID -import io.element.android.libraries.matrixtest.timeline.A_SENDER_NAME +import io.element.android.libraries.matrixtest.AN_EVENT_ID +import io.element.android.libraries.matrixtest.A_MESSAGE +import io.element.android.libraries.matrixtest.A_USER_ID +import io.element.android.libraries.matrixtest.A_USER_NAME import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest @@ -166,8 +166,8 @@ private fun aMessageEvent( content: TimelineItemContent, ) = TimelineItem.MessageEvent( id = AN_EVENT_ID, - senderId = A_SENDER_ID, - senderDisplayName = A_SENDER_NAME, + senderId = A_USER_ID.value, + senderDisplayName = A_USER_NAME, senderAvatar = AvatarData(), content = content, sentTime = "", diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/textcomposer/MessageComposerPresenterTest.kt b/features/messages/src/test/kotlin/io/element/android/features/messages/textcomposer/MessageComposerPresenterTest.kt index 9a0123b044..8278acd13e 100644 --- a/features/messages/src/test/kotlin/io/element/android/features/messages/textcomposer/MessageComposerPresenterTest.kt +++ b/features/messages/src/test/kotlin/io/element/android/features/messages/textcomposer/MessageComposerPresenterTest.kt @@ -24,13 +24,12 @@ import app.cash.turbine.ReceiveTurbine import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.libraries.core.data.StableCharSequence -import io.element.android.libraries.matrixtest.core.A_ROOM_ID -import io.element.android.libraries.matrixtest.room.ANOTHER_MESSAGE -import io.element.android.libraries.matrixtest.room.A_MESSAGE -import io.element.android.libraries.matrixtest.room.A_REPLY +import io.element.android.libraries.matrixtest.ANOTHER_MESSAGE +import io.element.android.libraries.matrixtest.AN_EVENT_ID +import io.element.android.libraries.matrixtest.A_MESSAGE +import io.element.android.libraries.matrixtest.A_REPLY +import io.element.android.libraries.matrixtest.A_USER_NAME import io.element.android.libraries.matrixtest.room.FakeMatrixRoom -import io.element.android.libraries.matrixtest.timeline.AN_EVENT_ID -import io.element.android.libraries.matrixtest.timeline.A_SENDER_NAME import io.element.android.libraries.textcomposer.MessageComposerMode import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest @@ -41,7 +40,7 @@ class MessageComposerPresenterTest { fun `present - initial state`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -58,7 +57,7 @@ class MessageComposerPresenterTest { fun `present - toggle fullscreen`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -77,7 +76,7 @@ class MessageComposerPresenterTest { fun `present - change message`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -98,7 +97,7 @@ class MessageComposerPresenterTest { fun `present - change mode to edit`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -128,7 +127,7 @@ class MessageComposerPresenterTest { fun `present - change mode to reply`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -148,7 +147,7 @@ class MessageComposerPresenterTest { fun `present - change mode to quote`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -168,7 +167,7 @@ class MessageComposerPresenterTest { fun `present - send message`() = runTest { val presenter = MessageComposerPresenter( this, - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -187,7 +186,7 @@ class MessageComposerPresenterTest { @Test fun `present - edit message`() = runTest { - val fakeMatrixRoom = FakeMatrixRoom(A_ROOM_ID) + val fakeMatrixRoom = FakeMatrixRoom() val presenter = MessageComposerPresenter( this, fakeMatrixRoom @@ -218,7 +217,7 @@ class MessageComposerPresenterTest { @Test fun `present - reply message`() = runTest { - val fakeMatrixRoom = FakeMatrixRoom(A_ROOM_ID) + val fakeMatrixRoom = FakeMatrixRoom() val presenter = MessageComposerPresenter( this, fakeMatrixRoom @@ -230,7 +229,7 @@ class MessageComposerPresenterTest { assertThat(initialState.text).isEqualTo(StableCharSequence("")) val mode = aReplyMode() initialState.eventSink.invoke(MessageComposerEvents.SetMode(mode)) - var state = awaitItem() + val state = awaitItem() assertThat(state.mode).isEqualTo(mode) assertThat(state.text).isEqualTo(StableCharSequence("")) assertThat(state.isSendButtonVisible).isFalse() @@ -249,5 +248,5 @@ class MessageComposerPresenterTest { } fun anEditMode() = MessageComposerMode.Edit(AN_EVENT_ID, A_MESSAGE) -fun aReplyMode() = MessageComposerMode.Reply(A_SENDER_NAME, AN_EVENT_ID, A_MESSAGE) +fun aReplyMode() = MessageComposerMode.Reply(A_USER_NAME, AN_EVENT_ID, A_MESSAGE) fun aQuoteMode() = MessageComposerMode.Quote(AN_EVENT_ID, A_MESSAGE) diff --git a/features/messages/src/test/kotlin/io/element/android/features/messages/timeline/TimelinePresenterTest.kt b/features/messages/src/test/kotlin/io/element/android/features/messages/timeline/TimelinePresenterTest.kt index 1234c8619c..ee73dc260b 100644 --- a/features/messages/src/test/kotlin/io/element/android/features/messages/timeline/TimelinePresenterTest.kt +++ b/features/messages/src/test/kotlin/io/element/android/features/messages/timeline/TimelinePresenterTest.kt @@ -24,10 +24,9 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.libraries.matrix.timeline.MatrixTimelineItem +import io.element.android.libraries.matrixtest.AN_EVENT_ID import io.element.android.libraries.matrixtest.FakeMatrixClient -import io.element.android.libraries.matrixtest.core.A_ROOM_ID import io.element.android.libraries.matrixtest.room.FakeMatrixRoom -import io.element.android.libraries.matrixtest.timeline.AN_EVENT_ID import io.element.android.libraries.matrixtest.timeline.FakeMatrixTimeline import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest @@ -39,7 +38,7 @@ class TimelinePresenterTest { val presenter = TimelinePresenter( testCoroutineDispatchers(), FakeMatrixClient(), - FakeMatrixRoom(A_ROOM_ID) + FakeMatrixRoom() ) moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -52,7 +51,7 @@ class TimelinePresenterTest { @Test fun `present - load more`() = runTest { val matrixTimeline = FakeMatrixTimeline() - val matrixRoom = FakeMatrixRoom(A_ROOM_ID, matrixTimeline = matrixTimeline) + val matrixRoom = FakeMatrixRoom(matrixTimeline = matrixTimeline) val presenter = TimelinePresenter( testCoroutineDispatchers(), FakeMatrixClient(), @@ -73,7 +72,7 @@ class TimelinePresenterTest { @Test fun `present - set highlighted event`() = runTest { val matrixTimeline = FakeMatrixTimeline() - val matrixRoom = FakeMatrixRoom(A_ROOM_ID, matrixTimeline = matrixTimeline) + val matrixRoom = FakeMatrixRoom(matrixTimeline = matrixTimeline) val presenter = TimelinePresenter( testCoroutineDispatchers(), FakeMatrixClient(), @@ -96,7 +95,7 @@ class TimelinePresenterTest { @Test fun `present - test callback`() = runTest { val matrixTimeline = FakeMatrixTimeline() - val matrixRoom = FakeMatrixRoom(A_ROOM_ID, matrixTimeline = matrixTimeline) + val matrixRoom = FakeMatrixRoom(matrixTimeline = matrixTimeline) val presenter = TimelinePresenter( testCoroutineDispatchers(), FakeMatrixClient(), diff --git a/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt b/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt index ad2e02fb51..e15c08fecc 100644 --- a/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt +++ b/features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt @@ -27,11 +27,13 @@ import io.element.android.features.roomlist.model.RoomListRoomSummary import io.element.android.libraries.dateformatter.LastMessageFormatter import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.matrix.core.SessionId +import io.element.android.libraries.matrixtest.AN_AVATAR_URL +import io.element.android.libraries.matrixtest.A_MESSAGE +import io.element.android.libraries.matrixtest.A_ROOM_ID +import io.element.android.libraries.matrixtest.A_ROOM_NAME +import io.element.android.libraries.matrixtest.A_USER_ID +import io.element.android.libraries.matrixtest.A_USER_NAME import io.element.android.libraries.matrixtest.FakeMatrixClient -import io.element.android.libraries.matrixtest.core.A_ROOM_ID -import io.element.android.libraries.matrixtest.core.A_ROOM_ID_VALUE -import io.element.android.libraries.matrixtest.room.A_MESSAGE -import io.element.android.libraries.matrixtest.room.A_ROOM_NAME import io.element.android.libraries.matrixtest.room.FakeRoomSummaryDataSource import io.element.android.libraries.matrixtest.room.aRoomSummaryFilled import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -55,6 +57,32 @@ class RoomListPresenterTests { assertThat(initialState.matrixUser).isNull() val withUserState = awaitItem() assertThat(withUserState.matrixUser).isNotNull() + assertThat(withUserState.matrixUser!!.id).isEqualTo(A_USER_ID) + assertThat(withUserState.matrixUser!!.username).isEqualTo(A_USER_NAME) + assertThat(withUserState.matrixUser!!.avatarData.name).isEqualTo(A_USER_NAME) + assertThat(withUserState.matrixUser!!.avatarData.url).isEqualTo(AN_AVATAR_URL) + } + } + + @Test + fun `present - should start with no user and then load user with error`() = runTest { + val presenter = RoomListPresenter( + FakeMatrixClient( + SessionId("sessionId"), + userDisplayName = Result.failure(Exception("Error")), + userAvatarURLString = Result.failure(Exception("Error")), + ), + createDateFormatter() + ) + moleculeFlow(RecompositionClock.Immediate) { + presenter.present() + }.test { + val initialState = awaitItem() + assertThat(initialState.matrixUser).isNull() + val withUserState = awaitItem() + assertThat(withUserState.matrixUser).isNotNull() + // username fallback to user id value + assertThat(withUserState.matrixUser!!.username).isEqualTo(A_USER_ID.value) } } @@ -182,7 +210,7 @@ class RoomListPresenterTests { private const val A_FORMATTED_DATE = "formatted_date" private val aRoomListRoomSummary = RoomListRoomSummary( - id = A_ROOM_ID_VALUE, + id = A_ROOM_ID.value, roomId = A_ROOM_ID, name = A_ROOM_NAME, hasUnread = true, diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/FakeMatrixClient.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/FakeMatrixClient.kt index c7aab0952a..aedc0fd1a2 100644 --- a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/FakeMatrixClient.kt +++ b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/FakeMatrixClient.kt @@ -23,7 +23,6 @@ import io.element.android.libraries.matrix.core.UserId import io.element.android.libraries.matrix.media.MediaResolver import io.element.android.libraries.matrix.room.MatrixRoom import io.element.android.libraries.matrix.room.RoomSummaryDataSource -import io.element.android.libraries.matrixtest.auth.A_SESSION_ID import io.element.android.libraries.matrixtest.media.FakeMediaResolver import io.element.android.libraries.matrixtest.room.FakeMatrixRoom import io.element.android.libraries.matrixtest.room.FakeRoomSummaryDataSource @@ -32,6 +31,8 @@ import org.matrix.rustcomponents.sdk.MediaSource class FakeMatrixClient( override val sessionId: SessionId = SessionId(A_SESSION_ID), + private val userDisplayName: Result = Result.success(A_USER_NAME), + private val userAvatarURLString: Result = Result.success(AN_AVATAR_URL), val roomSummaryDataSource: RoomSummaryDataSource = FakeRoomSummaryDataSource() ) : MatrixClient { @@ -62,14 +63,14 @@ class FakeMatrixClient( logoutFailure?.let { throw it } } - override fun userId(): UserId = UserId("") + override fun userId(): UserId = A_USER_ID override suspend fun loadUserDisplayName(): Result { - return Result.success("") + return userDisplayName } override suspend fun loadUserAvatarURLString(): Result { - return Result.success("") + return userAvatarURLString } override suspend fun loadMediaContentForSource(source: MediaSource): Result { diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/TestData.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/TestData.kt new file mode 100644 index 0000000000..cd186c50c2 --- /dev/null +++ b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/TestData.kt @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrixtest + +import io.element.android.libraries.matrix.core.EventId +import io.element.android.libraries.matrix.core.RoomId +import io.element.android.libraries.matrix.core.UserId + +const val A_USER_NAME = "alice" +const val A_PASSWORD = "password" + +val A_USER_ID = UserId("@alice:server.org") +val A_ROOM_ID = RoomId("!aRoomId") +val AN_EVENT_ID = EventId("\$anEventId") + +const val A_ROOM_NAME = "A room name" +const val A_MESSAGE = "Hello world!" +const val A_REPLY = "OK, I'll be there!" +const val ANOTHER_MESSAGE = "Hello universe!" + +const val A_HOMESERVER = "matrix.org" +const val A_HOMESERVER_2 = "matrix-client.org" +const val A_SESSION_ID = "sessionId" + +const val AN_AVATAR_URL = "mxc://data" + +val A_FAILURE = Throwable("error") diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/auth/FakeAuthenticationService.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/auth/FakeAuthenticationService.kt index 936bd01545..ab4935ede3 100644 --- a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/auth/FakeAuthenticationService.kt +++ b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/auth/FakeAuthenticationService.kt @@ -19,17 +19,12 @@ package io.element.android.libraries.matrixtest.auth import io.element.android.libraries.matrix.MatrixClient import io.element.android.libraries.matrix.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.core.SessionId +import io.element.android.libraries.matrixtest.A_HOMESERVER +import io.element.android.libraries.matrixtest.A_SESSION_ID import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flowOf -const val A_HOMESERVER = "matrix.org" -const val A_HOMESERVER_2 = "matrix-client.org" -const val A_SESSION_ID = "sessionId" -const val A_LOGIN = "login" -const val A_PASSWORD = "password" -val A_FAILURE = Throwable("error") - class FakeAuthenticationService : MatrixAuthenticationService { private var homeserver: String = A_HOMESERVER private var loginError: Throwable? = null diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/core/RoomIdFixture.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/core/RoomIdFixture.kt deleted file mode 100644 index 5b62ad383a..0000000000 --- a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/core/RoomIdFixture.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.element.android.libraries.matrixtest.core - -import io.element.android.libraries.matrix.core.RoomId - -const val A_ROOM_ID_VALUE = "!aRoomId" -val A_ROOM_ID = RoomId(A_ROOM_ID_VALUE) diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/FakeMatrixRoom.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/FakeMatrixRoom.kt index 6600b0be9a..18e033b87d 100644 --- a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/FakeMatrixRoom.kt +++ b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/FakeMatrixRoom.kt @@ -20,13 +20,14 @@ import io.element.android.libraries.matrix.core.EventId import io.element.android.libraries.matrix.core.RoomId import io.element.android.libraries.matrix.room.MatrixRoom import io.element.android.libraries.matrix.timeline.MatrixTimeline +import io.element.android.libraries.matrixtest.A_ROOM_ID import io.element.android.libraries.matrixtest.timeline.FakeMatrixTimeline import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow class FakeMatrixRoom( - override val roomId: RoomId, + override val roomId: RoomId = A_ROOM_ID, override val name: String? = null, override val bestName: String = "", override val displayName: String = "", diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/RoomSummaryFixture.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/RoomSummaryFixture.kt index 6e7fb1de32..41d9f6d524 100644 --- a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/RoomSummaryFixture.kt +++ b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/RoomSummaryFixture.kt @@ -19,12 +19,9 @@ package io.element.android.libraries.matrixtest.room import io.element.android.libraries.matrix.core.RoomId import io.element.android.libraries.matrix.room.RoomSummary import io.element.android.libraries.matrix.room.RoomSummaryDetails -import io.element.android.libraries.matrixtest.core.A_ROOM_ID - -const val A_ROOM_NAME = "aRoomName" -const val A_MESSAGE = "Hello world!" -const val A_REPLY = "OK, I'll be there!" -const val ANOTHER_MESSAGE = "Hello universe!" +import io.element.android.libraries.matrixtest.A_MESSAGE +import io.element.android.libraries.matrixtest.A_ROOM_ID +import io.element.android.libraries.matrixtest.A_ROOM_NAME fun aRoomSummaryFilled( roomId: RoomId = A_ROOM_ID, diff --git a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/timeline/FakeMatrixTimeline.kt b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/timeline/FakeMatrixTimeline.kt index 417489dc83..c768a46ad7 100644 --- a/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/timeline/FakeMatrixTimeline.kt +++ b/libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/timeline/FakeMatrixTimeline.kt @@ -24,11 +24,6 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow import org.matrix.rustcomponents.sdk.TimelineListener -const val A_SENDER_NAME = "Alice" -const val A_SENDER_ID = "@alice:server.org" -const val AN_EVENT_ID_VALUE = "!anEventId" -val AN_EVENT_ID = EventId(AN_EVENT_ID_VALUE) - class FakeMatrixTimeline : MatrixTimeline { override var callback: MatrixTimeline.Callback? = null