summaryrefslogtreecommitdiff
path: root/formats/json-tests/commonTest/src/kotlinx/serialization/features/UseSerializersTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'formats/json-tests/commonTest/src/kotlinx/serialization/features/UseSerializersTest.kt')
-rw-r--r--formats/json-tests/commonTest/src/kotlinx/serialization/features/UseSerializersTest.kt32
1 files changed, 32 insertions, 0 deletions
diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/features/UseSerializersTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/features/UseSerializersTest.kt
new file mode 100644
index 00000000..b5f332d7
--- /dev/null
+++ b/formats/json-tests/commonTest/src/kotlinx/serialization/features/UseSerializersTest.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2017-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+@file:UseSerializers(MultiplyingIntHolderSerializer::class, MultiplyingIntSerializer::class)
+
+package kotlinx.serialization.features
+
+import kotlinx.serialization.*
+import kotlinx.serialization.json.*
+import kotlin.test.*
+
+@Serializable
+data class Carrier2(
+ val a: IntHolder,
+ val i: Int,
+ val nullable: Int?,
+ val nullableIntHolder: IntHolder?,
+ val nullableIntList: List<Int?> = emptyList(),
+ val nullableIntHolderNullableList: List<IntHolder?>? = null
+)
+
+class UseSerializersTest {
+ @Test
+ fun testOnFile() {
+ val str = Json { encodeDefaults = true }.encodeToString(
+ Carrier2.serializer(),
+ Carrier2(IntHolder(42), 2, 2, IntHolder(42))
+ )
+ assertEquals("""{"a":84,"i":4,"nullable":4,"nullableIntHolder":84,"nullableIntList":[],"nullableIntHolderNullableList":null}""", str)
+ }
+}