Skip to content

Commit 36b227a

Browse files
committed
Add a test for #661; now works (assuming writeString() changed to writeFieldName())
1 parent 28c4ada commit 36b227a

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/test/java/com/fasterxml/jackson/databind/ser/TestEnumSerialization.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.*;
44
import java.util.*;
55

6+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
67
import com.fasterxml.jackson.annotation.JsonFormat;
78
import com.fasterxml.jackson.annotation.JsonFormat.Shape;
89
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -182,6 +183,30 @@ public MyStuff594(String value) {
182183
}
183184
}
184185

186+
public class MyBean661 {
187+
private Map<Foo661, String> foo = new EnumMap<Foo661, String>(Foo661.class);
188+
189+
public MyBean661(String value) {
190+
foo.put(Foo661.FOO, value);
191+
}
192+
193+
@JsonAnyGetter
194+
@JsonSerialize(keyUsing = Foo661.Serializer.class)
195+
public Map<Foo661, String> getFoo() {
196+
return foo;
197+
}
198+
}
199+
200+
enum Foo661 {
201+
FOO;
202+
public static class Serializer extends JsonSerializer<Foo661> {
203+
@Override
204+
public void serialize(Foo661 value, JsonGenerator jgen, SerializerProvider provider)
205+
throws IOException {
206+
jgen.writeFieldName("X-"+value.name());
207+
}
208+
}
209+
}
185210
/*
186211
/**********************************************************
187212
/* Tests
@@ -340,6 +365,12 @@ public void testJsonValueForEnumMapKey() throws Exception {
340365
assertEquals(aposToQuotes("{'stuff':{'longValue':'foo'}}"),
341366
mapper.writeValueAsString(new MyStuff594("foo")));
342367
}
368+
369+
// [databind#661]
370+
public void testCustomEnumMapKeySerializer() throws Exception {
371+
String json = mapper.writeValueAsString(new MyBean661("abc"));
372+
assertEquals(aposToQuotes("{'X-FOO':'abc'}"), json);
373+
}
343374
}
344375

345376
// [JACKSON-757], non-inner enum

0 commit comments

Comments
 (0)