diff options
author | Vsevolod Tolstopyatov <qwwdfsad@gmail.com> | 2021-06-15 16:23:44 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-15 16:23:44 +0300 |
commit | b051cb3f846dbcfc8cdcdd863c5f4d5978fa7941 (patch) | |
tree | 2c03e18cfab0a96df9530dbdf21b6286e52e27f9 /formats/json/commonTest | |
parent | 2ef890c8a2c7367c741efb4613aa3195eebe24e1 (diff) | |
download | kotlinx.serialization-b051cb3f846dbcfc8cdcdd863c5f4d5978fa7941.tar.gz |
Throw JsonDecodingException instead of ClassCastException during unexpected null in TreeJsonDecoder (#1550)
Diffstat (limited to 'formats/json/commonTest')
-rw-r--r-- | formats/json/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/formats/json/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt b/formats/json/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt index e9ac4375..87b0f358 100644 --- a/formats/json/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt +++ b/formats/json/commonTest/src/kotlinx/serialization/json/JsonParserFailureModesTest.kt @@ -143,4 +143,19 @@ class JsonParserFailureModesTest : JsonTestBase() { assertFailsWith<JsonDecodingException> { default.decodeFromString<Holder>("""{"id":a}""", it) } assertFailsWith<JsonDecodingException> { default.decodeFromString<Holder>("""{"id":-a}""", it) } } + + + @Serializable + data class BooleanWrapper(val b: Boolean) + + @Serializable + data class StringWrapper(val s: String) + + @Test + fun testUnexpectedNull() = parametrizedTest { + assertFailsWith<JsonDecodingException> { default.decodeFromString<BooleanWrapper>("""{"b":{"b":"b"}}""", it) } + assertFailsWith<JsonDecodingException> { default.decodeFromString<BooleanWrapper>("""{"b":null}""", it) } + assertFailsWith<JsonDecodingException> { default.decodeFromString<StringWrapper>("""{"s":{"s":"s"}}""", it) } + assertFailsWith<JsonDecodingException> { default.decodeFromString<StringWrapper>("""{"s":null}""", it) } + } } |