diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/enums/EnumDeserializer5271Test.java b/src/test/java/com/fasterxml/jackson/databind/deser/enums/EnumDeserializer5271Test.java new file mode 100644 index 0000000000..1f52925174 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/deser/enums/EnumDeserializer5271Test.java @@ -0,0 +1,43 @@ +package com.fasterxml.jackson.databind.deser.enums; + +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.json.JsonMapper; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +public class EnumDeserializer5271Test +{ + public enum MyEnum { + T10("10%"), T20("20%"), T30("30%"); + + private final String code; + + MyEnum(String code) { + this.code = code; + } + + @JsonValue + public String getCode() { + return code; + } + } + + @Test + void convertStringToEnum() { + _testConvert(JsonMapper.builder().disable(DeserializationFeature.READ_ENUMS_USING_TO_STRING) + .build() + ); + _testConvert(JsonMapper.builder().enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING) + .build() + ); + } + + private void _testConvert(JsonMapper mapper) { + assertThat(mapper.convertValue("10%", MyEnum.class)) + .isEqualTo(MyEnum.T10); + } + +} \ No newline at end of file diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/EnumAsMapKeyTest.java b/src/test/java/com/fasterxml/jackson/databind/ser/EnumAsMapKeyTest.java index c7f4685fa7..d84d381628 100644 --- a/src/test/java/com/fasterxml/jackson/databind/ser/EnumAsMapKeyTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/ser/EnumAsMapKeyTest.java @@ -130,6 +130,8 @@ public void testCustomEnumMapKeySerializer() throws Exception { public void testJsonValueForEnumMapKey() throws Exception { assertEquals(a2q("{'stuff':{'longValue':'foo'}}"), MAPPER.writeValueAsString(new MyStuff594("foo"))); + MyStuff594 ff = MAPPER.readValue(a2q("{'stuff':{'longValue':'foo'}}"), MyStuff594.class); + System.out.println(); } // [databind#2129]