Skip to content

Commit c4a0032

Browse files
committed
Add a unit test for #359
1 parent a748091 commit c4a0032

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.fasterxml.jackson.failing;
2+
3+
import java.io.IOException;
4+
import java.util.*;
5+
6+
import com.fasterxml.jackson.core.JsonGenerator;
7+
import com.fasterxml.jackson.databind.*;
8+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
9+
import com.fasterxml.jackson.databind.util.StdConverter;
10+
11+
public class TestConvertingSerializer
12+
extends com.fasterxml.jackson.databind.BaseMapTest
13+
{
14+
// [Issue#357]
15+
static class A { }
16+
17+
static class B {
18+
@JsonSerialize(contentConverter = AToStringConverter.class)
19+
public List<A> list = Arrays.asList(new A());
20+
}
21+
22+
static class AToStringConverter extends StdConverter<A, List<String>> {
23+
@Override
24+
public List<String> convert(A value) {
25+
return Arrays.asList("Hello world!");
26+
}
27+
}
28+
29+
// [Issue#359]
30+
31+
static class Bean359 {
32+
@JsonSerialize(as = List.class, contentAs = Source.class)
33+
public List<Source> stuff = Arrays.asList(new Source());
34+
}
35+
36+
@JsonSerialize(using = TargetSerializer.class)
37+
static class Target {
38+
public String unexpected = "Bye.";
39+
}
40+
41+
@JsonSerialize(converter = SourceToTargetConverter.class)
42+
static class Source { }
43+
44+
static class SourceToTargetConverter extends StdConverter<Source, Target> {
45+
@Override
46+
public Target convert(Source value) {
47+
return new Target();
48+
}
49+
}
50+
51+
static class TargetSerializer extends JsonSerializer<TargetSerializer>
52+
{
53+
@Override
54+
public void serialize(TargetSerializer a, JsonGenerator jsonGenerator, SerializerProvider provider)
55+
throws IOException {
56+
jsonGenerator.writeString("Target");
57+
}
58+
}
59+
60+
/*
61+
/**********************************************************
62+
/* Test methods
63+
/**********************************************************
64+
*/
65+
66+
// [Issue#357]
67+
public void testConverterForList357() throws Exception {
68+
String json = objectWriter().writeValueAsString(new B());
69+
assertEquals("{\"list\":[[\"Hello world!\"]]}", json);
70+
}
71+
72+
// [Issue#359]
73+
public void testIssue359() throws Exception
74+
{
75+
String json = objectWriter().writeValueAsString(new Bean359());
76+
assertNotNull(json);
77+
assertEquals("{\"stuff\":[\"Target\"]}", json);
78+
}
79+
80+
}

src/test/java/com/fasterxml/jackson/failing/TestIssueGH113.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
import com.fasterxml.jackson.databind.*;
66

7+
/**
8+
* Test(s) for [Issue#113], problems with polymorphic types, JsonCreator.
9+
*/
710
public class TestIssueGH113 extends BaseMapTest
811
{
912
@JsonIgnoreProperties(ignoreUnknown = true)

0 commit comments

Comments
 (0)