Skip to content

Commit 64213dc

Browse files
committed
Add test cases
1 parent 4f3b782 commit 64213dc

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

src/test/kotlin/com/fasterxml/jackson/module/kotlin/test/SequenceSerdesTests.kt

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package com.fasterxml.jackson.module.kotlin.test
22

3+
import com.fasterxml.jackson.core.JsonGenerator
4+
import com.fasterxml.jackson.databind.SerializerProvider
5+
import com.fasterxml.jackson.databind.annotation.JsonSerialize
6+
import com.fasterxml.jackson.databind.ser.std.StdSerializer
37
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
48
import com.fasterxml.jackson.module.kotlin.readValue
59
import org.junit.Test
@@ -42,4 +46,39 @@ class TestSequenceDeserializer {
4246
val result = objectMapper.writeValueAsString(data)
4347
assertEquals("{\"value\":[]}", result)
4448
}
45-
}
49+
50+
class ContentSer : StdSerializer<String>(String::class.java) {
51+
override fun serialize(value: String, gen: JsonGenerator, provider: SerializerProvider) {
52+
provider.defaultSerializeValue("$value-ser", gen)
53+
}
54+
}
55+
56+
data class ListWrapper(
57+
@JsonSerialize(contentUsing = ContentSer::class) val value: List<String>
58+
)
59+
60+
data class SequenceWrapper(
61+
@JsonSerialize(contentUsing = ContentSer::class)
62+
val value: Sequence<String>
63+
)
64+
65+
@Test
66+
fun contentUsingTest() {
67+
val mapper = jacksonObjectMapper()
68+
69+
val listResult = mapper.writeValueAsString(ListWrapper(listOf("foo")))
70+
val sequenceResult = mapper.writeValueAsString(SequenceWrapper(sequenceOf("foo")))
71+
72+
assertEquals("""{"value":["foo-ser"]}""", sequenceResult)
73+
assertEquals(listResult, sequenceResult)
74+
}
75+
76+
// @see #674
77+
@Test
78+
fun sequenceOfTest() {
79+
val mapper = jacksonObjectMapper()
80+
val result = mapper.writeValueAsString(sequenceOf("foo"))
81+
82+
assertEquals("""["foo"]""", result)
83+
}
84+
}

0 commit comments

Comments
 (0)