LwwMergerTest.kt
119 lignes · 3000 octets
package fr.ebii.card2vcf.sync import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test class LwwMergerTest { @Test fun pickLww_remoteNewerWins() { val result = LwwMerger.pickLww( local = "local-value", localTs = 100L, remote = "remote-value", remoteTs = 200L, ) assertEquals("remote-value", result) } @Test fun pickLww_localNewerWins() { val result = LwwMerger.pickLww( local = "local-value", localTs = 300L, remote = "remote-value", remoteTs = 200L, ) assertEquals("local-value", result) } @Test fun pickLww_equalTimestampsRemoteWins() { val result = LwwMerger.pickLww( local = "local-value", localTs = 100L, remote = "remote-value", remoteTs = 100L, ) assertEquals("remote-value", result) } @Test fun pickTaskMove_remoteNewerWins() { val local = LwwMerger.TaskPlacement( colonneId = "todo", ordre = 1, updatedAt = 100L, ) val remote = LwwMerger.TaskPlacement( colonneId = "done", ordre = 2, updatedAt = 200L, ) val result = LwwMerger.pickTaskMove(local, remote) assertEquals(remote, result) } @Test fun pickTaskMove_localNewerWins() { val local = LwwMerger.TaskPlacement( colonneId = "todo", ordre = 1, updatedAt = 300L, ) val remote = LwwMerger.TaskPlacement( colonneId = "done", ordre = 2, updatedAt = 200L, ) val result = LwwMerger.pickTaskMove(local, remote) assertEquals(local, result) } @Test fun pickTaskMove_equalTimestampsRemoteWins() { val local = LwwMerger.TaskPlacement( colonneId = "todo", ordre = 1, updatedAt = 100L, ) val remote = LwwMerger.TaskPlacement( colonneId = "done", ordre = 2, updatedAt = 100L, ) val result = LwwMerger.pickTaskMove(local, remote) assertEquals(remote, result) } @Test fun shouldInsertInteraction_whenUnknownServerId() { val existing = setOf("srv-1", "srv-2") assertTrue(LwwMerger.shouldInsertInteraction(existing, "srv-3")) } @Test fun shouldInsertInteraction_whenKnownServerId() { val existing = setOf("srv-1", "srv-2") assertFalse(LwwMerger.shouldInsertInteraction(existing, "srv-1")) } @Test fun applyTombstoneIds_removesMatchingIds() { val local = setOf("a", "b", "c") val tombstones = setOf("b", "d") val remaining = LwwMerger.applyTombstoneIds(local, tombstones) assertEquals(setOf("a", "c"), remaining) } }
GitRust