@@ -16,6 +16,7 @@ import io.element.android.libraries.matrix.impl.timeline.item.virtual.VirtualTim
1616import io.element.android.libraries.matrix.test.A_UNIQUE_ID
1717import io.element.android.libraries.matrix.test.A_UNIQUE_ID_2
1818import io.element.android.libraries.matrix.test.timeline.anEventTimelineItem
19+ import kotlinx.coroutines.flow.MutableSharedFlow
1920import kotlinx.coroutines.flow.MutableStateFlow
2021import kotlinx.coroutines.test.TestScope
2122import kotlinx.coroutines.test.runTest
@@ -31,7 +32,7 @@ class MatrixTimelineDiffProcessorTest {
3132 @Test
3233 fun `Append adds new entries at the end of the list` () = runTest {
3334 timelineItems.value = listOf (anEvent)
34- val processor = createProcessor( )
35+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
3536 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .APPEND )))
3637 assertThat(timelineItems.value.count()).isEqualTo(2 )
3738 assertThat(timelineItems.value).containsExactly(
@@ -43,7 +44,7 @@ class MatrixTimelineDiffProcessorTest {
4344 @Test
4445 fun `PushBack adds a new entry at the end of the list` () = runTest {
4546 timelineItems.value = listOf (anEvent)
46- val processor = createProcessor( )
47+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
4748 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .PUSH_BACK )))
4849 assertThat(timelineItems.value.count()).isEqualTo(2 )
4950 assertThat(timelineItems.value).containsExactly(
@@ -55,7 +56,7 @@ class MatrixTimelineDiffProcessorTest {
5556 @Test
5657 fun `PushFront inserts a new entry at the start of the list` () = runTest {
5758 timelineItems.value = listOf (anEvent)
58- val processor = createProcessor( )
59+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
5960 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .PUSH_FRONT )))
6061 assertThat(timelineItems.value.count()).isEqualTo(2 )
6162 assertThat(timelineItems.value).containsExactly(
@@ -67,7 +68,7 @@ class MatrixTimelineDiffProcessorTest {
6768 @Test
6869 fun `Set replaces an entry at some index` () = runTest {
6970 timelineItems.value = listOf (anEvent, anEvent2)
70- val processor = createProcessor( )
71+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
7172 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .SET )))
7273 assertThat(timelineItems.value.count()).isEqualTo(2 )
7374 assertThat(timelineItems.value).containsExactly(
@@ -79,7 +80,7 @@ class MatrixTimelineDiffProcessorTest {
7980 @Test
8081 fun `Insert inserts a new entry at the provided index` () = runTest {
8182 timelineItems.value = listOf (anEvent, anEvent2)
82- val processor = createProcessor( )
83+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
8384 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .INSERT )))
8485 assertThat(timelineItems.value.count()).isEqualTo(3 )
8586 assertThat(timelineItems.value).containsExactly(
@@ -92,7 +93,7 @@ class MatrixTimelineDiffProcessorTest {
9293 @Test
9394 fun `Remove removes an entry at some index` () = runTest {
9495 timelineItems.value = listOf (anEvent, MatrixTimelineItem .Other , anEvent2)
95- val processor = createProcessor( )
96+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
9697 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .REMOVE )))
9798 assertThat(timelineItems.value.count()).isEqualTo(2 )
9899 assertThat(timelineItems.value).containsExactly(
@@ -104,7 +105,7 @@ class MatrixTimelineDiffProcessorTest {
104105 @Test
105106 fun `PopBack removes an entry at the end of the list` () = runTest {
106107 timelineItems.value = listOf (anEvent, anEvent2)
107- val processor = createProcessor( )
108+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
108109 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .POP_BACK )))
109110 assertThat(timelineItems.value.count()).isEqualTo(1 )
110111 assertThat(timelineItems.value).containsExactly(
@@ -115,7 +116,7 @@ class MatrixTimelineDiffProcessorTest {
115116 @Test
116117 fun `PopFront removes an entry at the start of the list` () = runTest {
117118 timelineItems.value = listOf (anEvent, anEvent2)
118- val processor = createProcessor( )
119+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
119120 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .POP_FRONT )))
120121 assertThat(timelineItems.value.count()).isEqualTo(1 )
121122 assertThat(timelineItems.value).containsExactly(
@@ -126,15 +127,15 @@ class MatrixTimelineDiffProcessorTest {
126127 @Test
127128 fun `Clear removes all the entries` () = runTest {
128129 timelineItems.value = listOf (anEvent, anEvent2)
129- val processor = createProcessor( )
130+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
130131 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .CLEAR )))
131132 assertThat(timelineItems.value).isEmpty()
132133 }
133134
134135 @Test
135136 fun `Truncate removes all entries after the provided length` () = runTest {
136137 timelineItems.value = listOf (anEvent, MatrixTimelineItem .Other , anEvent2)
137- val processor = createProcessor( )
138+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
138139 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .TRUNCATE )))
139140 assertThat(timelineItems.value.count()).isEqualTo(1 )
140141 assertThat(timelineItems.value).containsExactly(
@@ -145,27 +146,29 @@ class MatrixTimelineDiffProcessorTest {
145146 @Test
146147 fun `Reset removes all entries and add the provided ones` () = runTest {
147148 timelineItems.value = listOf (anEvent, MatrixTimelineItem .Other , anEvent2)
148- val processor = createProcessor( )
149+ val processor = createMatrixTimelineDiffProcessor(timelineItems )
149150 processor.postDiffs(listOf (FakeRustTimelineDiff (change = TimelineChange .RESET )))
150151 assertThat(timelineItems.value.count()).isEqualTo(1 )
151152 assertThat(timelineItems.value).containsExactly(
152153 MatrixTimelineItem .Other ,
153154 )
154155 }
156+ }
155157
156- private fun TestScope.createProcessor (): MatrixTimelineDiffProcessor {
157- val timelineEventContentMapper = TimelineEventContentMapper ()
158- val timelineItemMapper = MatrixTimelineItemMapper (
159- fetchDetailsForEvent = { _ -> Result .success(Unit ) },
160- coroutineScope = this ,
161- virtualTimelineItemMapper = VirtualTimelineItemMapper (),
162- eventTimelineItemMapper = EventTimelineItemMapper (
163- contentMapper = timelineEventContentMapper
164- )
165- )
166- return MatrixTimelineDiffProcessor (
167- timelineItems,
168- timelineItemFactory = timelineItemMapper,
158+ internal fun TestScope.createMatrixTimelineDiffProcessor (
159+ timelineItems : MutableSharedFlow <List <MatrixTimelineItem >>,
160+ ): MatrixTimelineDiffProcessor {
161+ val timelineEventContentMapper = TimelineEventContentMapper ()
162+ val timelineItemMapper = MatrixTimelineItemMapper (
163+ fetchDetailsForEvent = { _ -> Result .success(Unit ) },
164+ coroutineScope = this ,
165+ virtualTimelineItemMapper = VirtualTimelineItemMapper (),
166+ eventTimelineItemMapper = EventTimelineItemMapper (
167+ contentMapper = timelineEventContentMapper
169168 )
170- }
169+ )
170+ return MatrixTimelineDiffProcessor (
171+ timelineItems = timelineItems,
172+ timelineItemFactory = timelineItemMapper,
173+ )
171174}
0 commit comments