diff options
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateJava8FallbacksTest.java | 43 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/jsontype/TestWithGenerics.java | 2 |
2 files changed, 44 insertions, 1 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateJava8FallbacksTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateJava8FallbacksTest.java new file mode 100644 index 000000000..41d9fa4f0 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateJava8FallbacksTest.java @@ -0,0 +1,43 @@ +package com.fasterxml.jackson.databind.deser.jdk; + +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +import com.fasterxml.jackson.databind.*; +import com.fasterxml.jackson.databind.exc.InvalidDefinitionException; + +// [databind#2683]: add fallback handling for Java 8 date/time types, to +// prevent accidental serialzization as POJOs, as well as give more information +// on deserialization attempts +public class DateJava8FallbacksTest extends BaseMapTest +{ + private final ObjectMapper MAPPER = newJsonMapper(); + + private final OffsetDateTime DATETIME_EPOCH = OffsetDateTime.ofInstant(Instant.ofEpochSecond(0L), + ZoneOffset.of("Z")); + + // Test to prevent serialization as POJO, without Java 8 date/time module: + public void testPreventSerialization() throws Exception + { + try { + String json = MAPPER.writerWithDefaultPrettyPrinter() + .writeValueAsString(DATETIME_EPOCH); + fail("Should not pass, wrote out as\n: "+json); + } catch (InvalidDefinitionException e) { + verifyException(e, "Java 8 date/time type `java.time.OffsetDateTime` not supported by default"); + verifyException(e, "please register module `jackson-datatype-jsr310`"); + } + } + + public void testBetterDeserializationError() throws Exception + { + try { + OffsetDateTime result = MAPPER.readValue(" 0 ", OffsetDateTime.class); + fail("Not expecting to pass, resulted in: "+result); + } catch (InvalidDefinitionException e) { + verifyException(e, "Java 8 date/time type `java.time.OffsetDateTime` not supported by default"); + verifyException(e, "please register module `jackson-datatype-jsr310`"); + } + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/jsontype/TestWithGenerics.java b/src/test/java/com/fasterxml/jackson/databind/jsontype/TestWithGenerics.java index 15d95f82d..8a066f6d2 100644 --- a/src/test/java/com/fasterxml/jackson/databind/jsontype/TestWithGenerics.java +++ b/src/test/java/com/fasterxml/jackson/databind/jsontype/TestWithGenerics.java @@ -126,7 +126,7 @@ public class TestWithGenerics extends BaseMapTest otherAnimal = a2; } } - + /* /********************************************************** /* Unit tests |