tests moved to common

This commit is contained in:
sergeych committed 2023-03-12 23:27:21 +01:00
1 parent be03163a96
commit ee2c958445
1 file changed
+5 -7
@@ -0,0 +1,67 @@
package bipack
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.sergeych.bintools.toDump
import net.sergeych.bipack.*
import kotlin.test.*
@Serializable
data class Foobar1N(val bar: Int, val foo: Int = 117)
@Serializable
@ExtendableFormat
data class Foobar1(val bar: Int, val foo: Int = 117)
@Serializable
@ExtendableFormat
data class Foobar2(val bar: Int, val foo: Int,val other: Int = -1)
@Serializable
@Framed
@ExtendableFormat
data class FoobarF1(val bar: Int, val foo: Int = 117)
@Serializable
@Framed
@ExtendableFormat
@SerialName("bipack.FoobarF1")
data class FoobarF2(val bar: Int, val foo: Int,val other: Int = -1)
@Serializable
@Framed
@ExtendableFormat
data class FoobarF3(val bar: Int, val foo: Int,val other: Int = -1)
class BipackEncoderTest {
@Test
fun encodeSimple() {
val a = Foobar1(42)//, "bum")
println(BipackEncoder.encode(a).toDump())
val b = BipackDecoder.decode<Foobar1>(BipackEncoder.encode(a))
assertEquals(a, b)
val c = BipackDecoder.decode<Foobar2>(BipackEncoder.encode(a))
assertEquals(-1, c.other)
assertEquals(a.bar, c.bar)
}
@Test
fun encodeFramed() {
val a = FoobarF1(42)//, "bum")
println(BipackEncoder.encode(a).toDump())
val b = BipackDecoder.decode<FoobarF1>(BipackEncoder.encode(a))
assertEquals(a, b)
val c = BipackDecoder.decode<FoobarF2>(BipackEncoder.encode(a))
assertEquals(-1, c.other)
assertEquals(a.bar, c.bar)
assertFailsWith(InvalidFrameException::class) {
BipackDecoder.decode<FoobarF3>(BipackEncoder.encode(a))
}
}
@Test
fun encodeNonExtendable() {
val a = Foobar1N(42)//, "bum")
println(BipackEncoder.encode(a).toDump())
val b = BipackDecoder.decode<Foobar1N>(BipackEncoder.encode(a))
assertEquals(a, b)
}
}