diff options
author | Sergey Shanshin <sergey.shanshin@jetbrains.com> | 2023-02-06 17:42:42 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-06 17:42:42 +0300 |
commit | 2cb7f7dce26764a751b5a63b20eb359a44183ba7 (patch) | |
tree | 59b252281976890c1490ef1ccc70be89704356ee /formats/json-tests/commonTest | |
parent | b454f34b5991d25d46c3be3c402933bd297e7db2 (diff) | |
download | kotlinx.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.kt | 15 |
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) + } } |