You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2019/11/14 13:18:20 UTC

svn commit: r1869793 - in /jackrabbit/trunk/jackrabbit-jcr-commons: pom.xml src/test/java/org/apache/jackrabbit/util/ISO8601Test.java

Author: reschke
Date: Thu Nov 14 13:18:19 2019
New Revision: 1869793

URL: http://svn.apache.org/viewvc?rev=1869793&view=rev
Log:
JCR-4501: jcr-commons: add test coverage for ISO8601 util

Added:
    jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/ISO8601Test.java   (with props)
Modified:
    jackrabbit/trunk/jackrabbit-jcr-commons/pom.xml

Modified: jackrabbit/trunk/jackrabbit-jcr-commons/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/pom.xml?rev=1869793&r1=1869792&r2=1869793&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/pom.xml (original)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/pom.xml Thu Nov 14 13:18:19 2019
@@ -36,8 +36,8 @@
 
   <properties>
       <skip.coverage>false</skip.coverage>
-      <minimum.line.coverage>0.23</minimum.line.coverage>
-      <minimum.branch.coverage>0.15</minimum.branch.coverage>
+      <minimum.line.coverage>0.24</minimum.line.coverage>
+      <minimum.branch.coverage>0.16</minimum.branch.coverage>
   </properties>
 
   <build>

Added: jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/ISO8601Test.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/ISO8601Test.java?rev=1869793&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/ISO8601Test.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/ISO8601Test.java Thu Nov 14 13:18:19 2019
@@ -0,0 +1,125 @@
+/*
+ * 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.jackrabbit.util;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.SimpleTimeZone;
+import java.util.TimeZone;
+
+import junit.framework.TestCase;
+
+public class ISO8601Test extends TestCase {
+
+    private TimeZone customPlus = new SimpleTimeZone(83 * 60 * 1000, "test");
+    private TimeZone customMinus = new SimpleTimeZone(-1202 * 60 * 1000, "test");
+
+    public void testFormatThrowsIllegalArgumentException() {
+        try {
+            ISO8601.format(null);
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testParseThrowsIllegalArgumentException() {
+        try {
+            ISO8601.parse(null);
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testFormatUTC() {
+        Calendar c = Calendar.getInstance();
+        c.setTimeZone(TimeZone.getTimeZone("UTC"));
+
+        c.setTimeInMillis(0);
+        assertEquals("1970-01-01T00:00:00.000Z", ISO8601.format(c));
+
+        c.setTimeInMillis(123456789012L);
+        assertEquals("1973-11-29T21:33:09.012Z", ISO8601.format(c));
+    }
+
+    public void testFormatCustomTz() {
+        Calendar c = Calendar.getInstance();
+        c.setTimeZone(customPlus);
+
+        c.setTimeInMillis(0);
+        assertEquals("1970-01-01T01:23:00.000+01:23", ISO8601.format(c));
+
+        c.setTimeInMillis(123456789012L);
+        assertEquals("1973-11-29T22:56:09.012+01:23", ISO8601.format(c));
+
+        c.setTimeZone(customMinus);
+
+        c.setTimeInMillis(0);
+        assertEquals("1969-12-31T03:58:00.000-20:02", ISO8601.format(c));
+
+        c.setTimeInMillis(123456789012L);
+        assertEquals("1973-11-29T01:31:09.012-20:02", ISO8601.format(c));
+    }
+
+    public void testParseUTC() {
+        Calendar c = ISO8601.parse("1970-01-01T00:00:00.000Z");
+        assertEquals(0, c.getTimeInMillis());
+        assertEquals(0, c.getTimeZone().getRawOffset());
+
+        c = ISO8601.parse("1973-11-29T21:33:09.012Z");
+        assertEquals(123456789012L, c.getTimeInMillis());
+        assertEquals(0, c.getTimeZone().getRawOffset());
+    }
+
+    public void testParseCustomTZ() {
+        Calendar c = ISO8601.parse("1970-01-01T01:23:00.000+01:23");
+        assertEquals(0, c.getTimeInMillis());
+        assertEquals(customPlus.getRawOffset(), c.getTimeZone().getRawOffset());
+
+        c = ISO8601.parse("1973-11-29T22:56:09.012+01:23");
+        assertEquals(123456789012L, c.getTimeInMillis());
+        assertEquals(customPlus.getRawOffset(), c.getTimeZone().getRawOffset());
+
+        c = ISO8601.parse("1969-12-31T03:58:00.000-20:02");
+        assertEquals(0, c.getTimeInMillis());
+        assertEquals(customMinus.getRawOffset(), c.getTimeZone().getRawOffset());
+
+        c = ISO8601.parse("1973-11-29T01:31:09.012-20:02");
+        assertEquals(123456789012L, c.getTimeInMillis());
+        assertEquals(customMinus.getRawOffset(), c.getTimeZone().getRawOffset());
+    }
+
+    public void testBC() {
+        Calendar c = ISO8601.parse("-0001-01-01T00:00:00.000Z");
+        assertEquals(2, c.get(Calendar.YEAR));
+        assertEquals(GregorianCalendar.BC, c.get(Calendar.ERA));
+    }
+
+    public void testAD() {
+        Calendar c = ISO8601.parse("+1970-01-01T00:00:00.000Z");
+        assertEquals(1970, c.get(Calendar.YEAR));
+        assertEquals(GregorianCalendar.AD, c.get(Calendar.ERA));
+    }
+
+    public void testParseErrors() {
+        assertNull(ISO8601.parse(""));
+        assertNull(ISO8601.parse("x"));
+        assertNull(ISO8601.parse("19701211100908Z"));
+        assertNull(ISO8601.parse("1970-1211100908Z"));
+        assertNull(ISO8601.parse("1970-12-11100908Z"));
+        assertNull(ISO8601.parse("1970-12-11T100908Z"));
+        assertNull(ISO8601.parse("1970-12-11T10:0908Z"));
+        assertNull(ISO8601.parse("1970-12-11T10:09:08Z"));
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/ISO8601Test.java
------------------------------------------------------------------------------
    svn:eol-style = native