Skip to content

Commit b154640

Browse files
committed
add more tests
1 parent f681698 commit b154640

File tree

3 files changed

+41
-9
lines changed

3 files changed

+41
-9
lines changed

formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborArrayTest.kt

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package kotlinx.serialization.cbor
22

33
import kotlinx.serialization.*
4+
import kotlinx.serialization.cbor.CborIsoTest.DataClass
45
import kotlin.test.*
56

67

@@ -18,6 +19,10 @@ class CborArrayTest {
1819
val cbor = Cbor.CoseCompliant
1920
assertEquals(referenceHexString, cbor.encodeToHexString(ClassAs1Array.serializer(), reference))
2021
assertEquals(reference, cbor.decodeFromHexString(ClassAs1Array.serializer(), referenceHexString))
22+
23+
val struct = cbor.encodeToCbor(ClassAs1Array.serializer(), reference)
24+
assertEquals(reference, cbor.decodeFromCbor(ClassAs1Array.serializer(), struct))
25+
assertEquals(referenceHexString, cbor.encodeToHexString(CborElement.serializer(), struct))
2126
}
2227

2328
@Test
@@ -35,6 +40,10 @@ class CborArrayTest {
3540
val cbor = Cbor.CoseCompliant
3641
assertEquals(referenceHexString, cbor.encodeToHexString(ClassAs2Array.serializer(), reference))
3742
assertEquals(reference, cbor.decodeFromHexString(ClassAs2Array.serializer(), referenceHexString))
43+
44+
val struct = cbor.encodeToCbor(ClassAs2Array.serializer(), reference)
45+
assertEquals(reference, cbor.decodeFromCbor(ClassAs2Array.serializer(), struct))
46+
assertEquals(referenceHexString, cbor.encodeToHexString(CborElement.serializer(), struct))
3847
}
3948

4049
@Test
@@ -54,6 +63,10 @@ class CborArrayTest {
5463

5564
assertEquals(referenceHexString, cbor.encodeToHexString(ClassAs4ArrayNullable.serializer(), reference))
5665
assertEquals(reference, cbor.decodeFromHexString(ClassAs4ArrayNullable.serializer(), referenceHexString))
66+
67+
val struct = cbor.encodeToCbor(ClassAs4ArrayNullable.serializer(), reference)
68+
assertEquals(reference, cbor.decodeFromCbor(ClassAs4ArrayNullable.serializer(), struct))
69+
assertEquals(referenceHexString, cbor.encodeToHexString(CborElement.serializer(), struct))
5770
}
5871

5972
@Test
@@ -75,12 +88,10 @@ class CborArrayTest {
7588
assertEquals(referenceHexString, cbor.encodeToHexString(ClassWithArray.serializer(), reference))
7689
assertEquals(reference, cbor.decodeFromHexString(ClassWithArray.serializer(), referenceHexString))
7790

78-
println(
79-
cbor.encodeToHexString(
80-
DoubleTaggedClassWithArray.serializer(),
81-
DoubleTaggedClassWithArray(array = ClassAs2Array(alg = -7, kid = "bar"))
82-
)
83-
)
91+
92+
val struct = cbor.encodeToCbor(ClassWithArray.serializer(), reference)
93+
assertEquals(reference, cbor.decodeFromCbor(ClassWithArray.serializer(), struct))
94+
assertEquals(referenceHexString, cbor.encodeToHexString(CborElement.serializer(), struct))
8495
}
8596

8697

@@ -103,6 +114,10 @@ class CborArrayTest {
103114
val cbor = Cbor.CoseCompliant
104115
assertEquals(referenceHexString, cbor.encodeToHexString(DoubleTaggedClassWithArray.serializer(), reference))
105116
assertEquals(reference, cbor.decodeFromHexString(DoubleTaggedClassWithArray.serializer(), referenceHexString))
117+
118+
val struct = cbor.encodeToCbor(DoubleTaggedClassWithArray.serializer(), reference)
119+
assertEquals(reference, cbor.decodeFromCbor(DoubleTaggedClassWithArray.serializer(), struct))
120+
assertEquals(referenceHexString, cbor.encodeToHexString(CborElement.serializer(), struct))
106121
}
107122

108123
@CborArray

formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborDecoderTest.kt

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ class CborDecoderTest {
1818
@Test
1919
fun testDecodeSimpleObject() {
2020
val hex = "bf616163737472ff"
21-
assertEquals(Simple("str"), Cbor.decodeFromHexString(Simple.serializer(), hex))
21+
val reference = Simple("str")
22+
assertEquals(reference, Cbor.decodeFromHexString(Simple.serializer(), hex))
23+
2224
val struct = Cbor.decodeFromHexString<CborElement>(hex)
23-
assertEquals(Simple("str"), Cbor.decodeFromCbor(Simple.serializer(), struct))
25+
assertEquals(reference, Cbor.decodeFromCbor(Simple.serializer(), struct))
26+
27+
assertEquals(hex, Cbor.encodeToHexString(CborElement.serializer(), struct))
2428
}
2529

2630
@Test
@@ -50,14 +54,23 @@ class CborDecoderTest {
5054
assertEquals(Cbor.encodeToCbor(test), struct)
5155
assertEquals(test, Cbor.decodeFromCbor(TypesUmbrella.serializer(), struct))
5256

57+
assertEquals(hex, Cbor.encodeToHexString(CborElement.serializer(), struct))
58+
5359

5460
// with maps, lists & strings of definite length
61+
val hexDef =
62+
"a9646c6973748261616162686e756c6c61626c65f6636d6170a202f401f56169182a6a696e6e6572734c69737481a16161636b656b637374726d48656c6c6f2c20776f726c642165696e6e6572a16161636c6f6c6a62797465537472696e6742cafe6962797465417272617982383521"
5563
assertEquals(
5664
test, Cbor.decodeFromHexString(
5765
TypesUmbrella.serializer(),
58-
"a9646c6973748261616162686e756c6c61626c65f6636d6170a202f401f56169182a6a696e6e6572734c69737481a16161636b656b637374726d48656c6c6f2c20776f726c642165696e6e6572a16161636c6f6c6a62797465537472696e6742cafe6962797465417272617982383521"
66+
hexDef
5967
)
6068
)
69+
70+
val structDef = Cbor.decodeFromHexString<CborElement>(hexDef)
71+
assertEquals(Cbor.encodeToCbor(test), structDef)
72+
assertEquals(test, Cbor.decodeFromCbor(TypesUmbrella.serializer(), structDef))
73+
6174
}
6275

6376
@Test

formats/cbor/commonTest/src/kotlinx/serialization/cbor/CborIsoTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ class CborIsoTest {
2727
}
2828
assertEquals(reference, cbor.decodeFromHexString(DataClass.serializer(), referenceHexString))
2929
assertEquals(referenceHexString, cbor.encodeToHexString(DataClass.serializer(), reference))
30+
31+
val struct = cbor.encodeToCbor(DataClass.serializer(), reference)
32+
assertEquals(reference, cbor.decodeFromCbor(DataClass.serializer(), struct))
33+
assertEquals(referenceHexString, cbor.encodeToHexString(CborElement.serializer(), struct))
3034
}
3135

3236
@Serializable

0 commit comments

Comments
 (0)