diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-05-19 13:01:18 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-05-19 13:01:18 -0700 |
commit | 1b5308e0651561c21b480eb7aca88a421275474f (patch) | |
tree | 9e154054e8105fb1abc1cfc5e44c44f0be77d5ce /src | |
parent | 4f4f69d9ee001c0a65bdc243195c400077bc0c4d (diff) | |
download | jackson-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.java | 56 |
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()); + } +} |