Browse Source

Extract createMatrixTimelineDiffProcessor from class.

pull/3554/head
Benoit Marty 3 weeks ago
parent
commit
738ac54be5
  1. 30
      libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/timeline/MatrixTimelineDiffProcessorTest.kt

30
libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/timeline/MatrixTimelineDiffProcessorTest.kt

@ -31,7 +31,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Append adds new entries at the end of the list`() = runTest { fun `Append adds new entries at the end of the list`() = runTest {
timelineItems.value = listOf(anEvent) timelineItems.value = listOf(anEvent)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.APPEND))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.APPEND)))
assertThat(timelineItems.value.count()).isEqualTo(2) assertThat(timelineItems.value.count()).isEqualTo(2)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -43,7 +43,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `PushBack adds a new entry at the end of the list`() = runTest { fun `PushBack adds a new entry at the end of the list`() = runTest {
timelineItems.value = listOf(anEvent) timelineItems.value = listOf(anEvent)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.PUSH_BACK))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.PUSH_BACK)))
assertThat(timelineItems.value.count()).isEqualTo(2) assertThat(timelineItems.value.count()).isEqualTo(2)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -55,7 +55,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `PushFront inserts a new entry at the start of the list`() = runTest { fun `PushFront inserts a new entry at the start of the list`() = runTest {
timelineItems.value = listOf(anEvent) timelineItems.value = listOf(anEvent)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.PUSH_FRONT))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.PUSH_FRONT)))
assertThat(timelineItems.value.count()).isEqualTo(2) assertThat(timelineItems.value.count()).isEqualTo(2)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -67,7 +67,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Set replaces an entry at some index`() = runTest { fun `Set replaces an entry at some index`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2) timelineItems.value = listOf(anEvent, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.SET))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.SET)))
assertThat(timelineItems.value.count()).isEqualTo(2) assertThat(timelineItems.value.count()).isEqualTo(2)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -79,7 +79,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Insert inserts a new entry at the provided index`() = runTest { fun `Insert inserts a new entry at the provided index`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2) timelineItems.value = listOf(anEvent, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.INSERT))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.INSERT)))
assertThat(timelineItems.value.count()).isEqualTo(3) assertThat(timelineItems.value.count()).isEqualTo(3)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -92,7 +92,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Remove removes an entry at some index`() = runTest { fun `Remove removes an entry at some index`() = runTest {
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2) timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.REMOVE))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.REMOVE)))
assertThat(timelineItems.value.count()).isEqualTo(2) assertThat(timelineItems.value.count()).isEqualTo(2)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -104,7 +104,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `PopBack removes an entry at the end of the list`() = runTest { fun `PopBack removes an entry at the end of the list`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2) timelineItems.value = listOf(anEvent, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.POP_BACK))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.POP_BACK)))
assertThat(timelineItems.value.count()).isEqualTo(1) assertThat(timelineItems.value.count()).isEqualTo(1)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -115,7 +115,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `PopFront removes an entry at the start of the list`() = runTest { fun `PopFront removes an entry at the start of the list`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2) timelineItems.value = listOf(anEvent, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.POP_FRONT))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.POP_FRONT)))
assertThat(timelineItems.value.count()).isEqualTo(1) assertThat(timelineItems.value.count()).isEqualTo(1)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -126,7 +126,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Clear removes all the entries`() = runTest { fun `Clear removes all the entries`() = runTest {
timelineItems.value = listOf(anEvent, anEvent2) timelineItems.value = listOf(anEvent, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.CLEAR))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.CLEAR)))
assertThat(timelineItems.value).isEmpty() assertThat(timelineItems.value).isEmpty()
} }
@ -134,7 +134,7 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Truncate removes all entries after the provided length`() = runTest { fun `Truncate removes all entries after the provided length`() = runTest {
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2) timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.TRUNCATE))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.TRUNCATE)))
assertThat(timelineItems.value.count()).isEqualTo(1) assertThat(timelineItems.value.count()).isEqualTo(1)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
@ -145,15 +145,18 @@ class MatrixTimelineDiffProcessorTest {
@Test @Test
fun `Reset removes all entries and add the provided ones`() = runTest { fun `Reset removes all entries and add the provided ones`() = runTest {
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2) timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
val processor = createProcessor() val processor = createMatrixTimelineDiffProcessor(timelineItems)
processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.RESET))) processor.postDiffs(listOf(FakeRustTimelineDiff(change = TimelineChange.RESET)))
assertThat(timelineItems.value.count()).isEqualTo(1) assertThat(timelineItems.value.count()).isEqualTo(1)
assertThat(timelineItems.value).containsExactly( assertThat(timelineItems.value).containsExactly(
MatrixTimelineItem.Other, MatrixTimelineItem.Other,
) )
} }
}
private fun TestScope.createProcessor(): MatrixTimelineDiffProcessor { internal fun TestScope.createMatrixTimelineDiffProcessor(
timelineItems: MutableStateFlow<List<MatrixTimelineItem>>,
): MatrixTimelineDiffProcessor {
val timelineEventContentMapper = TimelineEventContentMapper() val timelineEventContentMapper = TimelineEventContentMapper()
val timelineItemMapper = MatrixTimelineItemMapper( val timelineItemMapper = MatrixTimelineItemMapper(
fetchDetailsForEvent = { _ -> Result.success(Unit) }, fetchDetailsForEvent = { _ -> Result.success(Unit) },
@ -164,8 +167,7 @@ class MatrixTimelineDiffProcessorTest {
) )
) )
return MatrixTimelineDiffProcessor( return MatrixTimelineDiffProcessor(
timelineItems, timelineItems = timelineItems,
timelineItemFactory = timelineItemMapper, timelineItemFactory = timelineItemMapper,
) )
}
} }

Loading…
Cancel
Save