diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-05-05 19:07:20 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-05-05 19:07:20 -0700 |
commit | acd2e3885f494622c604c690e65e33138f2f2e2b (patch) | |
tree | 5646ca05d8ef359e19fd0367aa661b489eaf9f4a /src/test/java/com | |
parent | 620d88990975a96fef71546aed376d2ff46fc152 (diff) | |
download | jackson-databind-acd2e3885f494622c604c690e65e33138f2f2e2b.tar.gz |
Fix #1919
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/jsontype/TestSubtypes.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/jsontype/TestSubtypes.java b/src/test/java/com/fasterxml/jackson/databind/jsontype/TestSubtypes.java index c6fa2bb35..4557e0840 100644 --- a/src/test/java/com/fasterxml/jackson/databind/jsontype/TestSubtypes.java +++ b/src/test/java/com/fasterxml/jackson/databind/jsontype/TestSubtypes.java @@ -4,12 +4,9 @@ import com.fasterxml.jackson.core.Version; import java.util.*; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.JsonTypeInfo.As; -import com.fasterxml.jackson.databind.JsonMappingException; + import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.exc.InvalidTypeIdException; @@ -95,7 +92,9 @@ public class TestSubtypes extends com.fasterxml.jackson.databind.BaseMapTest @JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=As.PROPERTY, property="type") @JsonSubTypes({ @JsonSubTypes.Type(ImplX.class), - @JsonSubTypes.Type(ImplY.class) }) + @JsonSubTypes.Type(ImplY.class), + @JsonSubTypes.Type(ImplAbs.class) + }) static abstract class BaseX { } @JsonTypeName("x") @@ -111,6 +110,11 @@ public class TestSubtypes extends com.fasterxml.jackson.databind.BaseMapTest public int y; } + // for [databind#919] testing + @JsonTypeName("abs") + abstract static class ImplAbs extends BaseX { + } + // [databind#663] static class AtomicWrapper { public BaseX value; @@ -372,16 +376,16 @@ public class TestSubtypes extends com.fasterxml.jackson.databind.BaseMapTest bean = mapper.readValue("{\"#type\":\"foobar\"}", SuperTypeWithoutDefault.class); assertEquals(DefaultImpl505.class, bean.getClass()); assertEquals(0, ((DefaultImpl505) bean).a); - } - + public void testErrorMessage() throws Exception { ObjectMapper mapper = new ObjectMapper(); try { mapper.readValue("{ \"type\": \"z\"}", BaseX.class); fail("Should have failed"); - } catch (JsonMappingException e) { - verifyException(e, "known type ids ="); + } catch (InvalidTypeIdException e) { + verifyException(e, "Could not resolve type id 'z' as a subtype of"); + verifyException(e, "known type ids = [x, y]"); } } |