@@ -18,6 +18,9 @@ package im.vector.app.features.home
18
18
19
19
import android.widget.ImageView
20
20
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
21
+ import androidx.lifecycle.LiveData
22
+ import androidx.lifecycle.liveData
23
+ import androidx.paging.PagedList
21
24
import com.airbnb.mvrx.test.MavericksTestRule
22
25
import im.vector.app.R
23
26
import im.vector.app.core.platform.StateView
@@ -35,6 +38,7 @@ import im.vector.app.test.fakes.FakeStringProvider
35
38
import im.vector.app.test.fixtures.RoomSummaryFixture.aRoomSummary
36
39
import im.vector.app.test.test
37
40
import io.mockk.every
41
+ import io.mockk.mockk
38
42
import io.mockk.mockkStatic
39
43
import kotlinx.coroutines.flow.flowOf
40
44
import kotlinx.coroutines.test.runTest
@@ -43,7 +47,12 @@ import org.junit.Rule
43
47
import org.junit.Test
44
48
import org.matrix.android.sdk.api.query.SpaceFilter
45
49
import org.matrix.android.sdk.api.session.getUserOrDefault
50
+ import org.matrix.android.sdk.api.session.room.ResultBoundaries
51
+ import org.matrix.android.sdk.api.session.room.RoomSortOrder
52
+ import org.matrix.android.sdk.api.session.room.RoomSummaryQueryParams
53
+ import org.matrix.android.sdk.api.session.room.UpdatableLivePageResult
46
54
import org.matrix.android.sdk.api.session.room.model.Membership
55
+ import org.matrix.android.sdk.api.session.room.model.RoomSummary
47
56
import org.matrix.android.sdk.api.util.Optional
48
57
import org.matrix.android.sdk.api.util.toMatrixItem
49
58
import org.matrix.android.sdk.flow.FlowSession
@@ -81,16 +90,31 @@ class RoomsListViewModelTest {
81
90
val roomC = aRoomSummary(" room_c" )
82
91
val allRooms = listOf (roomA, roomB, roomC)
83
92
93
+ val mockPagedList = mockk<PagedList <RoomSummary >>().apply {
94
+ every { get(any<Int >()) } answers {
95
+ allRooms[firstArg()]
96
+ }
97
+
98
+ every { loadedCount } returns allRooms.size
99
+ }
100
+
84
101
every {
85
- fakeFLowSession.liveRoomSummaries (
102
+ fakeSession.fakeRoomService.getFilteredPagedRoomSummariesLive (
86
103
match {
87
104
it.roomCategoryFilter == null &&
88
105
it.roomTagQueryFilter == null &&
89
106
it.memberships == listOf (Membership .JOIN ) &&
90
107
it.spaceFilter is SpaceFilter .NoFilter
91
- }, any()
108
+ }, any(), any()
92
109
)
93
- } returns flowOf(allRooms)
110
+ } returns object : UpdatableLivePageResult {
111
+ override val livePagedList: LiveData <PagedList <RoomSummary >>
112
+ get() = liveData { emit(mockPagedList) }
113
+ override val liveBoundaries: LiveData <ResultBoundaries >
114
+ get() = liveData { emit(ResultBoundaries (true , true , false )) }
115
+ override var queryParams = RoomSummaryQueryParams .Builder ().build()
116
+ override var sortOrder = RoomSortOrder .ACTIVITY
117
+ }
94
118
95
119
viewModelWith(initialState)
96
120
}
0 commit comments