Move RoomListRoomSummary factory to a dedicated file, more tests will be added.
This commit is contained in:
parent
ca91b23512
commit
330e760386
3 changed files with 57 additions and 26 deletions
|
|
@ -32,11 +32,10 @@ import io.element.android.features.roomlist.impl.datasource.RoomListDataSource
|
||||||
import io.element.android.features.roomlist.impl.datasource.RoomListRoomSummaryFactory
|
import io.element.android.features.roomlist.impl.datasource.RoomListRoomSummaryFactory
|
||||||
import io.element.android.features.roomlist.impl.migration.InMemoryMigrationScreenStore
|
import io.element.android.features.roomlist.impl.migration.InMemoryMigrationScreenStore
|
||||||
import io.element.android.features.roomlist.impl.migration.MigrationScreenPresenter
|
import io.element.android.features.roomlist.impl.migration.MigrationScreenPresenter
|
||||||
import io.element.android.features.roomlist.impl.model.RoomListRoomSummary
|
import io.element.android.features.roomlist.impl.model.createRoomListRoomSummary
|
||||||
import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormatter
|
import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormatter
|
||||||
|
import io.element.android.libraries.dateformatter.test.A_FORMATTED_DATE
|
||||||
import io.element.android.libraries.dateformatter.test.FakeLastMessageTimestampFormatter
|
import io.element.android.libraries.dateformatter.test.FakeLastMessageTimestampFormatter
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|
||||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||||
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
|
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
|
||||||
import io.element.android.libraries.eventformatter.test.FakeRoomLastMessageFormatter
|
import io.element.android.libraries.eventformatter.test.FakeRoomLastMessageFormatter
|
||||||
|
|
@ -184,7 +183,7 @@ class RoomListPresenterTests {
|
||||||
val withRoomStateItems = withRoomState.roomList.dataOrNull().orEmpty()
|
val withRoomStateItems = withRoomState.roomList.dataOrNull().orEmpty()
|
||||||
assertThat(withRoomStateItems.size).isEqualTo(1)
|
assertThat(withRoomStateItems.size).isEqualTo(1)
|
||||||
assertThat(withRoomStateItems.first())
|
assertThat(withRoomStateItems.first())
|
||||||
.isEqualTo(aRoomListRoomSummary)
|
.isEqualTo(createRoomListRoomSummary())
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -212,7 +211,7 @@ class RoomListPresenterTests {
|
||||||
assertThat(withFilteredRoomState.filter).isEqualTo(A_ROOM_NAME.substring(0, 3))
|
assertThat(withFilteredRoomState.filter).isEqualTo(A_ROOM_NAME.substring(0, 3))
|
||||||
assertThat(withFilteredRoomState.filteredRoomList.size).isEqualTo(1)
|
assertThat(withFilteredRoomState.filteredRoomList.size).isEqualTo(1)
|
||||||
assertThat(withFilteredRoomState.filteredRoomList.first())
|
assertThat(withFilteredRoomState.filteredRoomList.first())
|
||||||
.isEqualTo(aRoomListRoomSummary)
|
.isEqualTo(createRoomListRoomSummary())
|
||||||
// Test filtering without result
|
// Test filtering without result
|
||||||
withFilteredRoomState.eventSink.invoke(RoomListEvents.UpdateFilter("tada"))
|
withFilteredRoomState.eventSink.invoke(RoomListEvents.UpdateFilter("tada"))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -326,7 +325,7 @@ class RoomListPresenterTests {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
val summary = aRoomListRoomSummary
|
val summary = createRoomListRoomSummary()
|
||||||
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
||||||
|
|
||||||
val shownState = awaitItem()
|
val shownState = awaitItem()
|
||||||
|
|
@ -352,7 +351,7 @@ class RoomListPresenterTests {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
val summary = aRoomListRoomSummary
|
val summary = createRoomListRoomSummary()
|
||||||
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
||||||
|
|
||||||
val shownState = awaitItem()
|
val shownState = awaitItem()
|
||||||
|
|
@ -527,22 +526,3 @@ class RoomListPresenterTests {
|
||||||
sessionPreferencesStore = sessionPreferencesStore,
|
sessionPreferencesStore = sessionPreferencesStore,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private const val A_FORMATTED_DATE = "formatted_date"
|
|
||||||
|
|
||||||
private val aRoomListRoomSummary = RoomListRoomSummary(
|
|
||||||
id = A_ROOM_ID.value,
|
|
||||||
roomId = A_ROOM_ID,
|
|
||||||
name = A_ROOM_NAME,
|
|
||||||
numberOfUnreadMentions = 1,
|
|
||||||
numberOfUnreadMessages = 2,
|
|
||||||
numberOfUnreadNotifications = 0,
|
|
||||||
isMarkedUnread = false,
|
|
||||||
timestamp = A_FORMATTED_DATE,
|
|
||||||
lastMessage = "",
|
|
||||||
avatarData = AvatarData(id = A_ROOM_ID.value, name = A_ROOM_NAME, size = AvatarSize.RoomListItem),
|
|
||||||
isPlaceholder = false,
|
|
||||||
userDefinedNotificationMode = null,
|
|
||||||
hasRoomCall = false,
|
|
||||||
isDm = false,
|
|
||||||
)
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2024 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.features.roomlist.impl.model
|
||||||
|
|
||||||
|
import io.element.android.libraries.dateformatter.test.A_FORMATTED_DATE
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
|
import io.element.android.libraries.matrix.test.A_ROOM_NAME
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class RoomListRoomSummaryTest {
|
||||||
|
@Test
|
||||||
|
fun `todo`() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun createRoomListRoomSummary(
|
||||||
|
) = RoomListRoomSummary(
|
||||||
|
id = A_ROOM_ID.value,
|
||||||
|
roomId = A_ROOM_ID,
|
||||||
|
name = A_ROOM_NAME,
|
||||||
|
numberOfUnreadMentions = 1,
|
||||||
|
numberOfUnreadMessages = 2,
|
||||||
|
numberOfUnreadNotifications = 0,
|
||||||
|
isMarkedUnread = false,
|
||||||
|
timestamp = A_FORMATTED_DATE,
|
||||||
|
lastMessage = "",
|
||||||
|
avatarData = AvatarData(id = A_ROOM_ID.value, name = A_ROOM_NAME, size = AvatarSize.RoomListItem),
|
||||||
|
isPlaceholder = false,
|
||||||
|
userDefinedNotificationMode = null,
|
||||||
|
hasRoomCall = false,
|
||||||
|
isDm = false,
|
||||||
|
)
|
||||||
|
|
@ -18,6 +18,8 @@ package io.element.android.libraries.dateformatter.test
|
||||||
|
|
||||||
import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormatter
|
import io.element.android.libraries.dateformatter.api.LastMessageTimestampFormatter
|
||||||
|
|
||||||
|
const val A_FORMATTED_DATE = "formatted_date"
|
||||||
|
|
||||||
class FakeLastMessageTimestampFormatter : LastMessageTimestampFormatter {
|
class FakeLastMessageTimestampFormatter : LastMessageTimestampFormatter {
|
||||||
private var format = ""
|
private var format = ""
|
||||||
fun givenFormat(format: String) {
|
fun givenFormat(format: String) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue