summaryrefslogtreecommitdiff
path: root/formats/json-tests/commonTest
diff options
context:
space:
mode:
authorSergey Shanshin <sergey.shanshin@jetbrains.com>2023-02-06 17:42:42 +0300
committerGitHub <noreply@github.com>2023-02-06 17:42:42 +0300
commit2cb7f7dce26764a751b5a63b20eb359a44183ba7 (patch)
tree59b252281976890c1490ef1ccc70be89704356ee /formats/json-tests/commonTest
parentb454f34b5991d25d46c3be3c402933bd297e7db2 (diff)
downloadkotlinx.serialization-2cb7f7dce26764a751b5a63b20eb359a44183ba7.tar.gz
Added support for null values for nullable enums in lanient mode (#2176)
Fixed #2170 Co-authored-by: Leonid Startsev <sandwwraith@users.noreply.github.com>
Diffstat (limited to 'formats/json-tests/commonTest')
-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)
+ }
}