@@ -25,6 +25,9 @@ sealed class TestSealed {
25
25
data class ChildClass (val map : Map <String , String >, val bool : Boolean = false ): TestSealed()
26
26
}
27
27
28
+ @Serializable
29
+ data class TestSealedList (val list : List <TestSealed >)
30
+
28
31
class EncodersTest {
29
32
@Test
30
33
fun encodeMap () {
@@ -74,4 +77,35 @@ class EncodersTest {
74
77
val decoded = decode(TestSealed .serializer(), nativeMapOf(" type" to " child" , " map" to nativeMapOf(" key" to " value" ), " bool" to true ))
75
78
assertEquals(TestSealed .ChildClass (mapOf (" key" to " value" ), true ), decoded)
76
79
}
80
+
81
+ @Test
82
+ fun encodeDecodeSealedClass () {
83
+ val target = TestData (mapOf (" key" to " value" ), true )
84
+ val encoded = encode<TestData >(
85
+ TestData .serializer(),
86
+ target,
87
+ shouldEncodeElementDefault = false
88
+ )
89
+ val decoded = decode<TestData >(
90
+ TestData .serializer(),
91
+ encoded
92
+ )
93
+ nativeAssertEquals(target, decoded)
94
+ }
95
+
96
+ @Test
97
+ fun encodeDecodeSealedClassList () {
98
+ val target =
99
+ TestSealedList (list = listOf (TestSealed .ChildClass (map = emptyMap(), bool = false )))
100
+ val encoded = encode<TestSealedList >(
101
+ TestSealedList .serializer(),
102
+ target,
103
+ shouldEncodeElementDefault = true
104
+ )
105
+ val decoded = decode<TestSealedList >(
106
+ TestSealedList .serializer(),
107
+ encoded
108
+ )
109
+ nativeAssertEquals(target, decoded)
110
+ }
77
111
}
0 commit comments