|
|
@ -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, |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|