Skip to content

Commit d6a61f1

Browse files
committed
adds failing sealed class list encoding / decoding
1 parent b50dcf2 commit d6a61f1

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

firebase-common/src/commonTest/kotlin/dev/gitlive/firebase/EncodersTest.kt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ sealed class TestSealed {
2525
data class ChildClass(val map: Map<String, String>, val bool: Boolean = false): TestSealed()
2626
}
2727

28+
@Serializable
29+
data class TestSealedList(val list: List<TestSealed>)
30+
2831
class EncodersTest {
2932
@Test
3033
fun encodeMap() {
@@ -74,4 +77,35 @@ class EncodersTest {
7477
val decoded = decode(TestSealed.serializer(), nativeMapOf("type" to "child", "map" to nativeMapOf("key" to "value"), "bool" to true))
7578
assertEquals(TestSealed.ChildClass(mapOf("key" to "value"), true), decoded)
7679
}
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+
}
77111
}

0 commit comments

Comments
 (0)