From 81c694b11cb9987047b961a8b5cba8f878be89e0 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Fri, 18 Nov 2016 14:55:28 -0800 Subject: [PATCH] add preliminary test scaffolding for #204 --- .../databind/deser/std/StdDeserializer.java | 2 +- .../deser/jdk/DateAdjustment204Test.java | 57 +++++++++++++++++++ .../deser/jdk/DateDeserializationTest.java | 1 - 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateAdjustment204Test.java diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdDeserializer.java index 8b2b51e13e..90bd549fa2 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdDeserializer.java @@ -797,7 +797,7 @@ protected java.util.Date _parseDate(JsonParser p, DeserializationContext ctxt) } return parsed; } - return (java.util.Date) ctxt.handleUnexpectedToken(_valueClass, p); + return (java.util.Date) ctxt.handleUnexpectedToken(_valueClass, p); } /** diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateAdjustment204Test.java b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateAdjustment204Test.java new file mode 100644 index 0000000000..c112d94be9 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateAdjustment204Test.java @@ -0,0 +1,57 @@ +package com.fasterxml.jackson.databind.deser.jdk; + +import java.util.Calendar; +import java.util.TimeZone; + +import com.fasterxml.jackson.databind.*; + +public class DateAdjustment204Test extends BaseMapTest +{ + /* + /********************************************************** + /* Unit tests + /********************************************************** + */ + + private final ObjectMapper MAPPER = new ObjectMapper(); + + // for [databind#204] + public void testContextTimezone() throws Exception + { + String inputStr = "1997-07-16T19:20:30.45+0100"; + + // this is enabled by default: + assertTrue(MAPPER.isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)); + final ObjectReader r = MAPPER + .readerFor(Calendar.class) + .with(TimeZone.getTimeZone("PST")); + + // by default use contextual timezone: + Calendar cal = r.readValue(quote(inputStr)); + TimeZone tz = cal.getTimeZone(); + assertEquals("PST", tz.getID()); + + assertEquals(1997, cal.get(Calendar.YEAR)); + assertEquals(Calendar.JULY, cal.get(Calendar.MONTH)); + assertEquals(16, cal.get(Calendar.DAY_OF_MONTH)); + + // Translated from original into PST differs: + assertEquals(11, cal.get(Calendar.HOUR_OF_DAY)); + assertEquals(20, cal.get(Calendar.MINUTE)); + assertEquals(30, cal.get(Calendar.SECOND)); + + // but if disabled, should use what's been sent in: + cal = r.without(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE) + .readValue(quote(inputStr)); + + + // !!! TODO: would not yet pass +/* + System.err.println("CAL/2 == "+cal); + + System.err.println("tz == "+cal.getTimeZone()); + */ + + } + +} diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateDeserializationTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateDeserializationTest.java index 3f976ff42b..7b111f508e 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateDeserializationTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateDeserializationTest.java @@ -398,7 +398,6 @@ public void testDatesWithEmptyStrings() throws Exception assertNull(MAPPER.readValue(quote(""), java.sql.Date.class)); } - // for [JACKSON-334] public void test8601DateTimeNoMilliSecs() throws Exception { // ok, Zebra, no milliseconds