aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-05-19 13:01:18 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-05-19 13:01:18 -0700
commit1b5308e0651561c21b480eb7aca88a421275474f (patch)
tree9e154054e8105fb1abc1cfc5e44c44f0be77d5ce /src
parent4f4f69d9ee001c0a65bdc243195c400077bc0c4d (diff)
downloadjackson-databind-1b5308e0651561c21b480eb7aca88a421275474f.tar.gz
Add a failing test for #2725
Diffstat (limited to 'src')
-rw-r--r--src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java b/src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java
new file mode 100644
index 000000000..0a0558d28
--- /dev/null
+++ b/src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java
@@ -0,0 +1,56 @@
+package com.fasterxml.jackson.failing;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.BaseMapTest;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class EnumAsMapKey2725Test extends BaseMapTest
+{
+ // [databind#2725]
+ enum TestEnum2725 {
+ FOO(1);
+
+ private final int i;
+
+ TestEnum2725(final int i) {
+ this.i = i;
+ }
+
+ @JsonValue
+ public int getI() {
+ return i;
+ }
+
+ @JsonCreator
+ public static TestEnum2725 getByIntegerId(final Integer id) {
+ return id == FOO.i ? FOO : null;
+ }
+
+ @JsonCreator
+ public static TestEnum2725 getByStringId(final String id) {
+ return Integer.parseInt(id) == FOO.i ? FOO : null;
+ }
+ }
+
+ private final ObjectMapper MAPPER = newJsonMapper();
+
+ // [databind#2725]
+ public void testEnumAsMapKey2725() throws Exception
+ {
+ final Map<TestEnum2725, String> input = new HashMap<>();
+ input.put(TestEnum2725.FOO, "Hello");
+
+ final String json = MAPPER.writeValueAsString(input);
+
+ final Map<TestEnum2725, String> output = MAPPER.readValue(json,
+ new TypeReference<Map<TestEnum2725, String>>() { });
+
+ assertNotNull(output);
+ assertEquals(1, output.size());
+ }
+}