summaryrefslogtreecommitdiff
path: root/formats/json/commonTest
diff options
context:
space:
mode:
authorVsevolod Tolstopyatov <qwwdfsad@gmail.com>2021-06-15 16:23:44 +0300
committerGitHub <noreply@github.com>2021-06-15 16:23:44 +0300
commitb051cb3f846dbcfc8cdcdd863c5f4d5978fa7941 (patch)
tree2c03e18cfab0a96df9530dbdf21b6286e52e27f9 /formats/json/commonTest
parent2ef890c8a2c7367c741efb4613aa3195eebe24e1 (diff)
downloadkotlinx.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.kt15
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) }
+ }
}