Repository: olingo-odata4
Updated Branches:
  refs/heads/master 6bdaed487 -> fb2d21d70


[OLINGO-1296] EdmDateTimeOffSet precision validation


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/fb2d21d7
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/fb2d21d7
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/fb2d21d7

Branch: refs/heads/master
Commit: fb2d21d70310815ce6f29a660ecca02fd9d11558
Parents: 6bdaed4
Author: Archana Rai <[email protected]>
Authored: Wed Sep 26 13:52:49 2018 +0530
Committer: Archana Rai <[email protected]>
Committed: Wed Sep 26 13:52:49 2018 +0530

----------------------------------------------------------------------
 .../commons/core/edm/primitivetype/EdmDateTimeOffset.java     | 2 +-
 .../commons/core/edm/primitivetype/EdmDateTimeOffsetTest.java | 7 ++++++-
 .../commons/core/edm/primitivetype/EdmTimeOfDayTest.java      | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fb2d21d7/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffset.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffset.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffset.java
index 5f4645d..bb1cbb0 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffset.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffset.java
@@ -261,7 +261,7 @@ public final class EdmDateTimeOffset extends 
SingletonPrimitiveType {
         nonSignificant++;
       }
 
-      if (precision == null || precision < (isNano ? 9 : 3) - nonSignificant) {
+      if (precision != null && precision < (isNano ? 9 : 3) - nonSignificant) {
         throw new IllegalArgumentException();
       }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fb2d21d7/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffsetTest.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffsetTest.java
 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffsetTest.java
index 4fe6bf1..f5150b1 100644
--- 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffsetTest.java
+++ 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDateTimeOffsetTest.java
@@ -63,15 +63,19 @@ public class EdmDateTimeOffsetTest extends 
PrimitiveTypeBaseTest {
     assertEquals("2012-02-29T01:02:03+11:00", instance.valueToString(dateTime, 
null, null, null, null, null));
 
     dateTime.set(Calendar.MILLISECOND, 503);
+    assertEquals("2012-02-29T01:02:03.503+11:00", 
instance.valueToString(dateTime, null, null, null, null, null));
     assertEquals("2012-02-29T01:02:03.503+11:00", 
instance.valueToString(dateTime, null, null, 3, null, null));
 
     dateTime.set(Calendar.MILLISECOND, 530);
+    assertEquals("2012-02-29T01:02:03.53+11:00", 
instance.valueToString(dateTime, null, null, null, null, null));
     assertEquals("2012-02-29T01:02:03.53+11:00", 
instance.valueToString(dateTime, null, null, 3, null, null));
 
     dateTime.set(Calendar.MILLISECOND, 53);
+    assertEquals("2012-02-29T01:02:03.053+11:00", 
instance.valueToString(dateTime, null, null, null, null, null));
     assertEquals("2012-02-29T01:02:03.053+11:00", 
instance.valueToString(dateTime, null, null, 3, null, null));
 
     final Long millis = 1330558323007L;
+    assertEquals("2012-02-29T23:32:03.007Z", instance.valueToString(millis, 
null, null, null, null, null));
     assertEquals("2012-02-29T23:32:03.007Z", instance.valueToString(millis, 
null, null, 3, null, null));
     assertEquals("1969-12-31T23:59:59.9Z", instance.valueToString(-100L, null, 
null, 1, null, null));
     assertEquals("1969-12-31T23:59:59.98Z", instance.valueToString(-20L, null, 
null, 2, null, null));
@@ -81,13 +85,14 @@ public class EdmDateTimeOffsetTest extends 
PrimitiveTypeBaseTest {
     assertEquals("1969-12-31T23:59:59.98Z", instance.valueToString(new 
Time(-20L), null, null, 2, null, null));
 
     final Date date = new Date(millis);
+    assertEquals("2012-02-29T23:32:03.007Z", instance.valueToString(date, 
null, null, null, null, null));
     assertEquals("2012-02-29T23:32:03.007Z", instance.valueToString(date, 
null, null, 3, null, null));
 
     Timestamp timestamp = new Timestamp(0);
     timestamp.setNanos(120);
+    assertEquals("1970-01-01T00:00:00.00000012Z", 
instance.valueToString(timestamp, null, null, null, null, null));
     assertEquals("1970-01-01T00:00:00.00000012Z", 
instance.valueToString(timestamp, null, null, 8, null, null));
 
-    expectFacetsErrorInValueToString(instance, millis, null, null, null, null, 
null);
     expectFacetsErrorInValueToString(instance, 3L, null, null, 2, null, null);
     expectFacetsErrorInValueToString(instance, timestamp, null, null, 7, null, 
null);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fb2d21d7/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmTimeOfDayTest.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmTimeOfDayTest.java
 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmTimeOfDayTest.java
index 14857c6..700a387 100644
--- 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmTimeOfDayTest.java
+++ 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmTimeOfDayTest.java
@@ -54,6 +54,7 @@ public class EdmTimeOfDayTest extends PrimitiveTypeBaseTest {
     assertEquals("04:05:06", instance.valueToString(dateTime, null, null, 
null, null, null));
 
     dateTime.add(Calendar.MILLISECOND, 42);
+    assertEquals("04:05:06.042", instance.valueToString(dateTime, null, null, 
null, null, null));
     assertEquals("04:05:06.042", instance.valueToString(dateTime, null, null, 
3, null, null));
     assertEquals("04:05:06.042", instance.valueToString(dateTime, null, null, 
4, null, null));
 
@@ -68,7 +69,6 @@ public class EdmTimeOfDayTest extends PrimitiveTypeBaseTest {
 
     assertEquals("05:59:23", 
instance.valueToString(dateTime2.getTimeInMillis(), null, null, null, null, 
null));
 
-    expectFacetsErrorInValueToString(instance, dateTime, null, null, null, 
null, null);
     expectFacetsErrorInValueToString(instance, dateTime, null, null, 2, null, 
null);
     Timestamp timestamp = new Timestamp(0);
     timestamp.setNanos(42);

Reply via email to