/* * Copyright (C) 2014 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.commons.utils; import junit.framework.TestCase; import java.util.Calendar; /** * @author <a href="mailto:nfilotto@exoplatform.com">Nicolas Filotto</a> * @version $Id$ * */ public class TestISO8601 extends TestCase { public void testParseNFormat() throws Exception { String dateStr = "1997"; Calendar date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith(dateStr + "-01-01T00:00:00.000")); dateStr = "1997-07"; date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith(dateStr + "-01T00:00:00.000")); dateStr = "1997-07-16"; date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith(dateStr + "T00:00:00.000")); dateStr = "1997-07-16T19:20"; date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith(dateStr + ":00.000")); dateStr = "1997-07-16T19:20:30"; date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith(dateStr + ".000")); dateStr = "1997-07-16T19:20:30.45"; date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith("1997-07-16T19:20:30.045")); dateStr = "1997-07-16T19:20:30.450"; date = ISO8601.parseEx(dateStr); assertTrue(ISO8601.format(date).startsWith(dateStr)); dateStr = "1997-07-16T19:20:30.450+01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr, ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.450-01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr, ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.450+0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 2) + ":00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.450-0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 2) + ":00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.450+01"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr + ":00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.450-01"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr + ":00", ISO8601.format(date)); dateStr = "1997-07-16T19:20+0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 5) + ":00.000+01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20-0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 5) + ":00.000-01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20+01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 6) + ":00.000+01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20-01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 6) + ":00.000-01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30+0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 5) + ".000+01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30-0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 5) + ".000-01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30+01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 6) + ".000+01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30-01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 6) + ".000-01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.045+0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 5) + "+01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.045-0100"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 5) + "-01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.45+01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 8) + "045+01:00", ISO8601.format(date)); dateStr = "1997-07-16T19:20:30.45-01:00"; date = ISO8601.parseEx(dateStr); assertEquals(dateStr.substring(0, dateStr.length() - 8) + "045-01:00", ISO8601.format(date)); } }