| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.ode.utils; |
| |
| import java.text.ParseException; |
| import java.util.Date; |
| import java.util.Calendar; |
| import java.util.TimeZone; |
| |
| import junit.framework.TestCase; |
| |
| public class ISO8601DateParserTest extends TestCase { |
| |
| public void test1() throws ParseException { |
| String in = "2004-05-31T09:19:31-05:00"; |
| |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2004, 5, 31, 9, 19, 31, 0, "GMT-5"); |
| } |
| |
| public void test2() throws ParseException { |
| String in = "2004-06-23T17:25:31-00:00"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2004, 6, 23, 17, 25, 31, 0, "GMT"); |
| } |
| |
| public void test3() throws ParseException { |
| String in = "2004-06-23T17:25-00:00"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2004, 6, 23, 17, 25, 0, 0, "GMT"); |
| } |
| |
| public void test4() throws ParseException { |
| String in = "2002-10-02T10:00:00-05:00"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2002, 10, 2, 10, 0, 0, 0, "GMT-5"); |
| } |
| |
| public void test5() throws ParseException { |
| String in = "2008-02-15T18:44:54.9-08:00"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2008, 2, 15, 18, 44, 54, 9, "GMT-8"); |
| } |
| |
| public void test6() throws ParseException { |
| String in = "2008-02-15T18:44:54.109-08:00"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2008, 2, 15, 18, 44, 54, 109, "GMT-8"); |
| } |
| |
| public void test7() throws ParseException { |
| String in = "2004-06-23T17:25:31.6"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2004, 6, 23, 17, 25, 31, 6, null); |
| } |
| |
| public void test8() throws ParseException { |
| String in = "2004-06-23T17:25:10.826"; |
| Date d = ISO8601DateParser.parse(in); |
| assertDate(d, 2004, 6, 23, 17, 25, 10, 826, null); |
| } |
| |
| private void assertDate(Date d, int year, int month, int day, |
| int hour, int minute, int second, int ms, String tz) { |
| Calendar cal = Calendar.getInstance(); |
| cal.setTime(d); |
| if (tz != null) cal.setTimeZone(TimeZone.getTimeZone(tz)); |
| |
| assertEquals(year, cal.get(Calendar.YEAR)); |
| assertEquals(month - 1, cal.get(Calendar.MONTH)); |
| assertEquals(day, cal.get(Calendar.DAY_OF_MONTH)); |
| assertEquals(hour, cal.get(Calendar.HOUR_OF_DAY)); |
| assertEquals(minute, cal.get(Calendar.MINUTE)); |
| assertEquals(second, cal.get(Calendar.SECOND)); |
| assertEquals(ms, cal.get(Calendar.MILLISECOND)); |
| } |
| |
| } |