Skip to content

Commit 8e2c4cd

Browse files
committed
Failing tests for EnumMap serialization.
1 parent b28dac3 commit 8e2c4cd

File tree

1 file changed

+41
-4
lines changed

1 file changed

+41
-4
lines changed

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

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
11
package com.fasterxml.jackson.databind.ser;
22

3-
import java.io.*;
4-
import java.util.*;
3+
import java.io.IOException;
4+
import java.io.StringWriter;
5+
import java.util.EnumMap;
6+
import java.util.EnumSet;
7+
import java.util.HashMap;
8+
import java.util.Map;
9+
10+
import org.junit.Assert;
511

612
import com.fasterxml.jackson.annotation.JsonAnyGetter;
713
import com.fasterxml.jackson.annotation.JsonFormat;
814
import com.fasterxml.jackson.annotation.JsonFormat.Shape;
915
import com.fasterxml.jackson.annotation.JsonProperty;
1016
import com.fasterxml.jackson.annotation.JsonValue;
11-
import com.fasterxml.jackson.core.*;
12-
import com.fasterxml.jackson.databind.*;
17+
import com.fasterxml.jackson.core.JsonGenerator;
18+
import com.fasterxml.jackson.core.JsonProcessingException;
19+
import com.fasterxml.jackson.databind.BaseMapTest;
20+
import com.fasterxml.jackson.databind.JsonSerializable;
21+
import com.fasterxml.jackson.databind.JsonSerializer;
22+
import com.fasterxml.jackson.databind.ObjectMapper;
23+
import com.fasterxml.jackson.databind.SerializationFeature;
24+
import com.fasterxml.jackson.databind.SerializerProvider;
1325
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
1426
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
1527
import com.fasterxml.jackson.databind.module.SimpleModule;
@@ -371,6 +383,31 @@ public void testCustomEnumMapKeySerializer() throws Exception {
371383
String json = mapper.writeValueAsString(new MyBean661("abc"));
372384
assertEquals(aposToQuotes("{'X-FOO':'abc'}"), json);
373385
}
386+
387+
public void testEnumMapSerDefault() throws Exception {
388+
ObjectMapper mapper = new ObjectMapper();
389+
EnumMap<LowerCaseEnum, String> m = new EnumMap<LowerCaseEnum, String>(LowerCaseEnum.class);
390+
m.put(LowerCaseEnum.A, "value");
391+
Assert.assertEquals("{\"A\":\"value\"}", mapper.writeValueAsString(m));
392+
}
393+
394+
public void testEnumMapSerDisableToString() throws Exception {
395+
ObjectMapper mapper = new ObjectMapper();
396+
mapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, false);
397+
EnumMap<LowerCaseEnum, String> m = new EnumMap<LowerCaseEnum, String>(LowerCaseEnum.class);
398+
m.put(LowerCaseEnum.A, "value");
399+
Assert.assertEquals("{\"A\":\"value\"}", mapper.writeValueAsString(m));
400+
}
401+
402+
public void testEnumMapSerEnableToString() throws Exception {
403+
ObjectMapper mapper = new ObjectMapper();
404+
mapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
405+
EnumMap<LowerCaseEnum, String> m = new EnumMap<LowerCaseEnum, String>(LowerCaseEnum.class);
406+
m.put(LowerCaseEnum.A, "value");
407+
Assert.assertEquals("{\"a\":\"value\"}", mapper.writeValueAsString(m));
408+
}
409+
410+
374411
}
375412

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

0 commit comments

Comments
 (0)