aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/jsontype
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-05-05 19:07:20 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-05-05 19:07:20 -0700
commitacd2e3885f494622c604c690e65e33138f2f2e2b (patch)
tree5646ca05d8ef359e19fd0367aa661b489eaf9f4a /src/test/java/com/fasterxml/jackson/databind/jsontype
parent620d88990975a96fef71546aed376d2ff46fc152 (diff)
downloadjackson-databind-acd2e3885f494622c604c690e65e33138f2f2e2b.tar.gz
Fix #1919
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/jsontype')
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/jsontype/TestSubtypes.java24
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]");
}
}