diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-05-19 15:46:47 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-05-19 15:46:47 -0700 |
commit | 47f0080741a1833e4048ba54cb13d315a448e0e1 (patch) | |
tree | 87f5fb6470d2aebfae7c09e0f6b7ac446240eb09 /src/test | |
parent | 1b5308e0651561c21b480eb7aca88a421275474f (diff) | |
download | jackson-databind-47f0080741a1833e4048ba54cb13d315a448e0e1.tar.gz |
Fix #2725
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/deser/jdk/MapKeyDeserializationTest.java | 40 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/failing/EnumAsMapKey2725Test.java | 56 |
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()); - } -} |