Skip to content

Commit 9093927

Browse files
committed
Add test
1 parent 598a543 commit 9093927

File tree

1 file changed

+73
-0
lines changed
  • src/test/kotlin/com/fasterxml/jackson/module/kotlin/test/github

1 file changed

+73
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package com.fasterxml.jackson.module.kotlin.test.github
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude
4+
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
5+
import com.fasterxml.jackson.module.kotlin.testPrettyWriter
6+
import org.junit.Test
7+
import kotlin.test.assertEquals
8+
import kotlin.test.assertNotEquals
9+
10+
class GitHub625 {
11+
@JvmInline
12+
value class Primitive(val v: Int)
13+
14+
@JvmInline
15+
value class NonNullObject(val v: String)
16+
17+
@JvmInline
18+
value class NullableObject(val v: String?)
19+
20+
@JsonInclude(value = JsonInclude.Include.NON_NULL, content = JsonInclude.Include.NON_NULL)
21+
data class Dto(
22+
val primitive: Primitive? = null,
23+
val nonNullObject: NonNullObject? = null,
24+
val nullableObject: NullableObject? = null
25+
) {
26+
fun getPrimitiveGetter(): Primitive? = null
27+
fun getNonNullObjectGetter(): NonNullObject? = null
28+
fun getNullableObjectGetter(): NullableObject? = null
29+
}
30+
31+
@Test
32+
fun test() {
33+
val mapper = jacksonObjectMapper()
34+
val dto = Dto()
35+
assertEquals("{}", mapper.writeValueAsString(dto))
36+
}
37+
38+
@JsonInclude(value = JsonInclude.Include.NON_EMPTY, content = JsonInclude.Include.NON_NULL)
39+
data class FailingDto(
40+
val nullableObject1: NullableObject = NullableObject(null),
41+
val nullableObject2: NullableObject? = NullableObject(null),
42+
val map: Map<Any, Any?> = mapOf("nullableObject" to NullableObject(null),)
43+
) {
44+
fun getNullableObjectGetter1(): NullableObject = NullableObject(null)
45+
fun getNullableObjectGetter2(): NullableObject? = NullableObject(null)
46+
fun getMapGetter(): Map<Any, Any?> = mapOf("nullableObject" to NullableObject(null))
47+
}
48+
49+
@Test
50+
fun failing() {
51+
val writer = jacksonObjectMapper().testPrettyWriter()
52+
val json = writer.writeValueAsString(FailingDto())
53+
54+
assertNotEquals("{ }", json)
55+
assertEquals(
56+
"""
57+
{
58+
"nullableObject1" : null,
59+
"nullableObject2" : null,
60+
"map" : {
61+
"nullableObject" : null
62+
},
63+
"mapGetter" : {
64+
"nullableObject" : null
65+
},
66+
"nullableObjectGetter2" : null,
67+
"nullableObjectGetter1" : null
68+
}
69+
""".trimIndent(),
70+
json
71+
)
72+
}
73+
}

0 commit comments

Comments
 (0)