aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/util
diff options
context:
space:
mode:
authorJerome Guibert <jerome.guibert@fullsix.com>2014-09-19 15:41:27 +0200
committerJerome Guibert <jerome.guibert@fullsix.com>2014-09-19 15:41:27 +0200
commit3c2d40901088f38eca41896f5b7410729e85ef70 (patch)
tree4c0e928bbf11a762c2a9c483e7ebe3c50c5abb76 /src/test/java/com/fasterxml/jackson/databind/util
parentf95a92786724c90bb33ec30eee6990831617eb23 (diff)
downloadjackson-databind-3c2d40901088f38eca41896f5b7410729e85ef70.tar.gz
extends iso8601 format to support parse according expression: [yyyy-MM-dd|yyyyMMdd][T(hh:mm[:ss[.sss]]|hhmm[ss[.sss]])]?[Z|[+-]hh:mm]]
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/util')
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/ISO8601UtilsTest.java104
1 files changed, 98 insertions, 6 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/util/ISO8601UtilsTest.java b/src/test/java/com/fasterxml/jackson/databind/util/ISO8601UtilsTest.java
index 21b9046d3..9c97807fc 100644
--- a/src/test/java/com/fasterxml/jackson/databind/util/ISO8601UtilsTest.java
+++ b/src/test/java/com/fasterxml/jackson/databind/util/ISO8601UtilsTest.java
@@ -1,28 +1,39 @@
package com.fasterxml.jackson.databind.util;
-import java.util.*;
+import java.text.ParseException;
import java.text.ParsePosition;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
import com.fasterxml.jackson.databind.BaseMapTest;
-import com.fasterxml.jackson.databind.util.ISO8601Utils;
/**
* @see ISO8601Utils
*/
-public class ISO8601UtilsTest extends BaseMapTest
-{
+public class ISO8601UtilsTest extends BaseMapTest {
private Date date;
+ private Date dateWithoutTime;
private Date dateZeroMillis;
+ private Date dateZeroSecondAndMillis;
@Override
- public void setUp()
- {
+ public void setUp() {
Calendar cal = new GregorianCalendar(2007, 8 - 1, 13, 19, 51, 23);
cal.setTimeZone(TimeZone.getTimeZone("GMT"));
cal.set(Calendar.MILLISECOND, 789);
date = cal.getTime();
cal.set(Calendar.MILLISECOND, 0);
dateZeroMillis = cal.getTime();
+ cal.set(Calendar.SECOND, 0);
+ dateZeroSecondAndMillis = cal.getTime();
+
+ cal = new GregorianCalendar(2007, 8 - 1, 13, 0, 0, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ dateWithoutTime = cal.getTime();
+
}
public void testFormat() {
@@ -58,4 +69,85 @@ public class ISO8601UtilsTest extends BaseMapTest
assertEquals(date, d);
}
+ public void testParseShortDate() throws java.text.ParseException {
+ Date d = ISO8601Utils.parse("20070813T19:51:23.789Z", new ParsePosition(0));
+ assertEquals(date, d);
+
+ d = ISO8601Utils.parse("20070813T19:51:23Z", new ParsePosition(0));
+ assertEquals(dateZeroMillis, d);
+
+ d = ISO8601Utils.parse("20070813T21:51:23.789+02:00", new ParsePosition(0));
+ assertEquals(date, d);
+ }
+
+ public void testParseShortTime() throws java.text.ParseException {
+ Date d = ISO8601Utils.parse("2007-08-13T195123.789Z", new ParsePosition(0));
+ assertEquals(date, d);
+
+ d = ISO8601Utils.parse("2007-08-13T195123Z", new ParsePosition(0));
+ assertEquals(dateZeroMillis, d);
+
+ d = ISO8601Utils.parse("2007-08-13T215123.789+02:00", new ParsePosition(0));
+ assertEquals(date, d);
+ }
+
+ public void testParseShortDateTime() throws java.text.ParseException {
+ Date d = ISO8601Utils.parse("20070813T195123.789Z", new ParsePosition(0));
+ assertEquals(date, d);
+
+ d = ISO8601Utils.parse("20070813T195123Z", new ParsePosition(0));
+ assertEquals(dateZeroMillis, d);
+
+ d = ISO8601Utils.parse("20070813T215123.789+02:00", new ParsePosition(0));
+ assertEquals(date, d);
+ }
+
+ public void testParseWithoutTime() throws ParseException {
+ Date d = ISO8601Utils.parse("2007-08-13Z", new ParsePosition(0));
+ assertEquals(dateWithoutTime, d);
+
+ d = ISO8601Utils.parse("20070813Z", new ParsePosition(0));
+ assertEquals(dateWithoutTime, d);
+
+ d = ISO8601Utils.parse("2007-08-13+00:00", new ParsePosition(0));
+ assertEquals(dateWithoutTime, d);
+
+ d = ISO8601Utils.parse("20070813+00:00", new ParsePosition(0));
+ assertEquals(dateWithoutTime, d);
+ }
+
+ public void testParseWithoutTimeAndTimeZoneMustFail() {
+ try {
+ ISO8601Utils.parse("2007-08-13", new ParsePosition(0));
+ fail();
+ } catch (ParseException p) {
+ }
+ try {
+ ISO8601Utils.parse("20070813", new ParsePosition(0));
+ fail();
+ } catch (ParseException p) {
+ }
+ try {
+ ISO8601Utils.parse("2007-08-13", new ParsePosition(0));
+ fail();
+ } catch (ParseException p) {
+ }
+ try {
+ ISO8601Utils.parse("20070813", new ParsePosition(0));
+ fail();
+ } catch (ParseException p) {
+ }
+ }
+
+
+ public void testParseOptional() throws java.text.ParseException {
+ Date d = ISO8601Utils.parse("2007-08-13T19:51Z", new ParsePosition(0));
+ assertEquals(dateZeroSecondAndMillis, d);
+
+ d = ISO8601Utils.parse("2007-08-13T1951Z", new ParsePosition(0));
+ assertEquals(dateZeroSecondAndMillis, d);
+
+ d = ISO8601Utils.parse("2007-08-13T21:51+02:00", new ParsePosition(0));
+ assertEquals(dateZeroSecondAndMillis, d);
+ }
}