summaryrefslogtreecommitdiff
path: root/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt')
-rw-r--r--formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt15
1 files changed, 14 insertions, 1 deletions
diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt
index fd8d516c..ecb946cb 100644
--- a/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt
+++ b/formats/json-tests/commonTest/src/kotlinx/serialization/json/JsonCoerceInputValuesTest.kt
@@ -5,7 +5,6 @@
package kotlinx.serialization.json
import kotlinx.serialization.*
-import kotlinx.serialization.json.internal.*
import kotlinx.serialization.test.assertFailsWithSerial
import kotlin.test.*
@@ -25,6 +24,11 @@ class JsonCoerceInputValuesTest : JsonTestBase() {
val foo: String
)
+ @Serializable
+ data class NullableEnumHolder(
+ val enum: SampleEnum?
+ )
+
val json = Json {
coerceInputValues = true
isLenient = true
@@ -99,4 +103,13 @@ class JsonCoerceInputValuesTest : JsonTestBase() {
assertEquals(expected, json.decodeFromString(MultipleValues.serializer(), input), "Failed on input: $input")
}
}
+
+ @Test
+ fun testNullSupportForEnums() = parametrizedTest(json) {
+ var decoded = decodeFromString<NullableEnumHolder>("""{"enum": null}""")
+ assertNull(decoded.enum)
+
+ decoded = decodeFromString<NullableEnumHolder>("""{"enum": OptionA}""")
+ assertEquals(SampleEnum.OptionA, decoded.enum)
+ }
}