1
1
package com.fasterxml.jackson.module.kotlin.test
2
2
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
3
7
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
4
8
import com.fasterxml.jackson.module.kotlin.readValue
5
9
import org.junit.Test
@@ -42,4 +46,39 @@ class TestSequenceDeserializer {
42
46
val result = objectMapper.writeValueAsString(data)
43
47
assertEquals(" {\" value\" :[]}" , result)
44
48
}
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