From b5dc929fe88346304f8ba66c8f320dc4db63bffb Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Thu, 28 Jan 2016 13:31:06 -0800 Subject: [PATCH] Add a failing test for #1102 --- .../failing/DeprecatedTypeHandlingTest.java | 50 +++++++++++++++++++ .../failing/ExternalTypeId999Test.java | 3 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/fasterxml/jackson/failing/DeprecatedTypeHandlingTest.java diff --git a/src/test/java/com/fasterxml/jackson/failing/DeprecatedTypeHandlingTest.java b/src/test/java/com/fasterxml/jackson/failing/DeprecatedTypeHandlingTest.java new file mode 100644 index 0000000000..eba5203ee7 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/DeprecatedTypeHandlingTest.java @@ -0,0 +1,50 @@ +package com.fasterxml.jackson.failing; + +import java.util.List; + +import com.fasterxml.jackson.databind.*; +import com.fasterxml.jackson.databind.type.CollectionType; +import com.fasterxml.jackson.databind.type.SimpleType; + +/** + * Set of tests to ensure that changes between 2.6 and 2.7 can + * be handled somewhat gracefully. + */ +public class DeprecatedTypeHandlingTest extends BaseMapTest +{ + static class Point { + public int x; + + int _y; + + public void setY(int y0) { _y = y0; } + public int getY() { return _y; } + } + + final ObjectMapper MAPPER = objectMapper(); + + @SuppressWarnings("deprecation") + public void testExplicitCollectionType() throws Exception + { + JavaType elem = SimpleType.construct(Point.class); + + Point p = MAPPER.readValue(aposToQuotes("{'x':1,'y':2}"), elem); + assertNotNull(p); + assertEquals(1, p.x); + assertEquals(2, p.getY()); + + final String json = aposToQuotes("[ {'x':1,'y':2}, {'x':3,'y':6 }]"); + + System.err.println("ELEM -> "+elem); +System.err.println("ELEM.raw -> "+elem.getRawClass()); + JavaType t = CollectionType.construct(List.class, elem); + List l = MAPPER.readValue(json, t); + assertNotNull(l); + assertEquals(2, l.size()); + Object ob = l.get(0); + assertEquals(Point.class, ob.getClass()); + p = (Point) ob; + assertEquals(1, p.x); + assertEquals(2, p.getY()); + } +} diff --git a/src/test/java/com/fasterxml/jackson/failing/ExternalTypeId999Test.java b/src/test/java/com/fasterxml/jackson/failing/ExternalTypeId999Test.java index bf6856677f..1c7404f990 100644 --- a/src/test/java/com/fasterxml/jackson/failing/ExternalTypeId999Test.java +++ b/src/test/java/com/fasterxml/jackson/failing/ExternalTypeId999Test.java @@ -16,7 +16,8 @@ public static class BarPayload implements Payload { } public static class Message

{ - private final String type; + final String type; + @JsonTypeInfo(visible = true, use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, property = "type") @JsonSubTypes({