Add test for TimelinePresenter
This commit is contained in:
parent
58c59efebf
commit
333f9e9709
7 changed files with 166 additions and 13 deletions
|
|
@ -23,6 +23,7 @@ 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
|
||||
|
|
@ -30,7 +31,7 @@ import kotlinx.coroutines.delay
|
|||
import org.matrix.rustcomponents.sdk.MediaSource
|
||||
|
||||
class FakeMatrixClient(
|
||||
override val sessionId: SessionId,
|
||||
override val sessionId: SessionId = SessionId(A_SESSION_ID),
|
||||
val roomSummaryDataSource: RoomSummaryDataSource = FakeRoomSummaryDataSource()
|
||||
) : MatrixClient {
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ class FakeMatrixRoom(
|
|||
override val bestName: String = "",
|
||||
override val displayName: String = "",
|
||||
override val topic: String? = null,
|
||||
override val avatarUrl: String? = null
|
||||
override val avatarUrl: String? = null,
|
||||
private val matrixTimeline: MatrixTimeline = FakeMatrixTimeline(),
|
||||
) : MatrixRoom {
|
||||
|
||||
override fun syncUpdateFlow(): Flow<Long> {
|
||||
|
|
@ -38,7 +39,7 @@ class FakeMatrixRoom(
|
|||
}
|
||||
|
||||
override fun timeline(): MatrixTimeline {
|
||||
return FakeMatrixTimeline()
|
||||
return matrixTimeline
|
||||
}
|
||||
|
||||
override suspend fun userDisplayName(userId: String): Result<String?> {
|
||||
|
|
|
|||
|
|
@ -19,24 +19,35 @@ package io.element.android.libraries.matrixtest.timeline
|
|||
import io.element.android.libraries.matrix.core.EventId
|
||||
import io.element.android.libraries.matrix.timeline.MatrixTimeline
|
||||
import io.element.android.libraries.matrix.timeline.MatrixTimelineItem
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.emptyFlow
|
||||
import org.matrix.rustcomponents.sdk.TimelineListener
|
||||
|
||||
const val AN_EVENT_ID_VALUE = "!anEventId"
|
||||
val AN_EVENT_ID = EventId(AN_EVENT_ID_VALUE)
|
||||
|
||||
class FakeMatrixTimeline : MatrixTimeline {
|
||||
|
||||
override var callback: MatrixTimeline.Callback?
|
||||
get() = null
|
||||
set(value) {}
|
||||
|
||||
private var hasMoreToLoadValue: Boolean = true
|
||||
|
||||
fun givenHasMoreToLoad(hasMoreToLoad: Boolean) {
|
||||
this.hasMoreToLoadValue = hasMoreToLoad
|
||||
}
|
||||
|
||||
override val hasMoreToLoad: Boolean
|
||||
get() = true
|
||||
get() = hasMoreToLoadValue
|
||||
|
||||
override fun timelineItems(): Flow<List<MatrixTimelineItem>> {
|
||||
return emptyFlow()
|
||||
}
|
||||
|
||||
override suspend fun paginateBackwards(count: Int): Result<Unit> {
|
||||
delay(100)
|
||||
return Result.success(Unit)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue