Skip to content

Commit 5d404ea

Browse files
committed
Add tests
1 parent c9038f7 commit 5d404ea

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.fasterxml.jackson.module.kotlin
2+
3+
import com.fasterxml.jackson.core.JsonParser
4+
import com.fasterxml.jackson.databind.DeserializationContext
5+
import com.fasterxml.jackson.databind.JsonMappingException
6+
import com.fasterxml.jackson.databind.RuntimeJsonMappingException
7+
import com.fasterxml.jackson.databind.deser.std.StdDeserializer
8+
import com.fasterxml.jackson.databind.module.SimpleModule
9+
import org.junit.jupiter.api.Nested
10+
import org.junit.jupiter.api.Test
11+
import org.junit.jupiter.api.assertThrows
12+
import kotlin.test.assertEquals
13+
14+
class ReadValuesTest {
15+
class MyStrDeser : StdDeserializer<String>(String::class.java) {
16+
override fun deserialize(
17+
p: JsonParser,
18+
ctxt: DeserializationContext
19+
): String? = p.valueAsString.takeIf { it != "bar" }
20+
}
21+
22+
@Nested
23+
inner class CheckTypeMismatchTest {
24+
val mapper = jacksonObjectMapper().registerModule(
25+
object : SimpleModule() {
26+
init {
27+
addDeserializer(String::class.java, MyStrDeser())
28+
}
29+
}
30+
)!!
31+
32+
@Test
33+
fun readValuesJsonParserNext() {
34+
val src = mapper.createParser(""""foo"${"\n"}"bar"""")
35+
val itr = mapper.readValues<String>(src)
36+
37+
assertEquals("foo", itr.next())
38+
assertThrows<RuntimeJsonMappingException> {
39+
itr.next()
40+
}
41+
}
42+
43+
@Test
44+
fun readValuesJsonParserNextValue() {
45+
val src = mapper.createParser(""""foo"${"\n"}"bar"""")
46+
val itr = mapper.readValues<String>(src)
47+
48+
assertEquals("foo", itr.nextValue())
49+
assertThrows<JsonMappingException> {
50+
itr.nextValue()
51+
}
52+
}
53+
54+
@Test
55+
fun readValuesTypedJsonParser() {
56+
val reader = mapper.reader()
57+
val src = reader.createParser(""""foo"${"\n"}"bar"""")
58+
val itr = reader.readValuesTyped<String>(src)
59+
60+
assertEquals("foo", itr.next())
61+
assertThrows<JsonMappingException> {
62+
itr.next()
63+
}
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)