package link.roadio.riff.userstate import link.roadio.riff.userstate.model.FileHeaderModel import org.junit.Assert.assertThrows import org.junit.Test class UserStateIngressTest { private val headers = mapOf((1 to 1) to FileHeaderModel(profileSlot = 1)) @Test fun gapsAndChangedRetransmissionPayloadAreRejectedWithoutConsumingTheSequence() { val ingress = UserStateIngress() ingress.open(11, headers) assertThrows(IllegalArgumentException::class.java) { ingress.check(11, 1, 1, 2, 51) } ingress.check(11, 1, 1, 1, 51) ingress.applied(1, 1, 1, 51) ingress.check(11, 1, 1, 1, 51) assertThrows(IllegalArgumentException::class.java) { ingress.check(11, 1, 1, 1, 52) } ingress.check(11, 1, 1, 2, 52) } @Test fun confirmedNoOpPrefixCanResumeAfterOwnerDeathWhileOldWriterIsFenced() { val ingress = UserStateIngress() ingress.open(11, headers, mapOf((1 to 1) to 4L)) ingress.check(11, 1, 1, 5, 51) ingress.open(12, headers) assertThrows(IllegalArgumentException::class.java) { ingress.check(11, 1, 1, 5, 51) } ingress.check(12, 1, 1, 1, 52) } }