aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-05-19 15:46:47 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-05-19 15:46:47 -0700
commit47f0080741a1833e4048ba54cb13d315a448e0e1 (patch)
tree87f5fb6470d2aebfae7c09e0f6b7ac446240eb09 /src/test
parent1b5308e0651561c21b480eb7aca88a421275474f (diff)
downloadjackson-databind-47f0080741a1833e4048ba54cb13d315a448e0e1.tar.gz
Fix #2725
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/deser/jdk/MapKeyDeserializationTest.java40
-rw-r--r--src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java56
2 files changed, 40 insertions, 56 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/MapKeyDeserializationTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/MapKeyDeserializationTest.java
index 0cd9773fb..9efee064d 100644
--- a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/MapKeyDeserializationTest.java
+++ b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/MapKeyDeserializationTest.java
@@ -1,11 +1,14 @@
package com.fasterxml.jackson.databind.deser.jdk;
+import java.util.Collections;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
+
import com.fasterxml.jackson.core.Base64Variants;
import com.fasterxml.jackson.core.type.TypeReference;
+
import com.fasterxml.jackson.databind.*;
import org.junit.Assert;
@@ -37,6 +40,31 @@ public class MapKeyDeserializationTest 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;
+ }
+ }
/*
/**********************************************************
/* Test methods, wrapper keys
@@ -138,4 +166,16 @@ public class MapKeyDeserializationTest extends BaseMapTest
byte[] key = entry.getKey();
Assert.assertArrayEquals(binary, key);
}
+
+ // [databind#2725]
+ public void testEnumWithCreatorMapKeyDeserialization() throws Exception
+ {
+ final Map<TestEnum2725, String> input = Collections.singletonMap(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());
+ }
}
diff --git a/src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java b/src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java
deleted file mode 100644
index 0a0558d28..000000000
--- a/src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java
+++ /dev/null
@@ -1,56 +0,0 @@
-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());
- }
-}