@@ -11,6 +11,7 @@ import kotlinx.serialization.builtins.MapSerializer
1111import kotlinx.serialization.builtins.serializer
1212import kotlinx.serialization.modules.SerializersModule
1313import kotlinx.serialization.modules.polymorphic
14+ import kotlin.jvm.JvmInline
1415import kotlin.test.Test
1516import kotlin.test.assertEquals
1617
@@ -55,6 +56,13 @@ data class NestedClass(
5556 val abstractMap : Map <AbstractClass , AbstractClass >
5657)
5758
59+ @Serializable
60+ @JvmInline
61+ value class ValueClass (val int : Int )
62+
63+ @Serializable
64+ data class ValueClassWrapper (val value : ValueClass )
65+
5866class EncodersTest {
5967
6068 @Test
@@ -191,6 +199,28 @@ class EncodersTest {
191199 assertEquals(nestedClass, decoded)
192200 }
193201
202+ @Test
203+ fun encodeDecodeValueClassWrapper () {
204+ val testValueClassWrapper = ValueClassWrapper (ValueClass (42 ))
205+ val encoded = encode(ValueClassWrapper .serializer(), testValueClassWrapper) { encodeDefaults = false }
206+
207+ nativeAssertEquals(nativeMapOf(" value" to 42 ), encoded)
208+
209+ val decoded = decode(ValueClassWrapper .serializer(), encoded)
210+ assertEquals(testValueClassWrapper, decoded)
211+ }
212+
213+ @Test
214+ fun encodeDecodeValueClass () {
215+ val testValueClass = ValueClass (42 )
216+ val encoded = encode(ValueClass .serializer(), testValueClass) { encodeDefaults = false }
217+
218+ nativeAssertEquals(42 , encoded)
219+
220+ val decoded = decode(ValueClass .serializer(), encoded)
221+ assertEquals(testValueClass, decoded)
222+ }
223+
194224 @Test
195225 fun reencodeTransformationList () {
196226 val reencoded = reencodeTransformation<List <String >>(nativeListOf(" One" , " Two" , " Three" )) {
0 commit comments