You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ra...@apache.org on 2021/03/05 05:28:14 UTC

[olingo-odata2] branch master updated: [OLINGO-1516]Revert-Improved decimal validation

This is an automated email from the ASF dual-hosted git repository.

ramyav pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata2.git


The following commit(s) were added to refs/heads/master by this push:
     new 991604d  [OLINGO-1516]Revert-Improved decimal validation
991604d is described below

commit 991604d2e74b3becab9240329e305948042c496d
Author: ramya vasanth <ra...@sap.com>
AuthorDate: Fri Mar 5 10:58:04 2021 +0530

    [OLINGO-1516]Revert-Improved decimal validation
---
 .../apache/olingo/odata2/core/edm/EdmDecimal.java  | 10 +++---
 .../olingo/odata2/core/edm/EdmSimpleTypeTest.java  | 42 +++++++++-------------
 2 files changed, 20 insertions(+), 32 deletions(-)

diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmDecimal.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmDecimal.java
index 341200c..52f7c70 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmDecimal.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/EdmDecimal.java
@@ -6,9 +6,9 @@
  * 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
@@ -30,7 +30,7 @@ import org.apache.olingo.odata2.api.edm.EdmSimpleTypeException;
 
 /**
  * Implementation of the EDM simple type Decimal.
- *
+ * 
  */
 public class EdmDecimal extends AbstractSimpleType {
 
@@ -93,9 +93,7 @@ public class EdmDecimal extends AbstractSimpleType {
     matcher.matches();
     final int significantIntegerDigits = "0".equals(matcher.group(1)) ? 0 : matcher.group(1).length();
     final int decimals = matcher.group(2) == null ? 0 : matcher.group(2).length();
-    return (facets.getPrecision() == null ||
-            (facets.getScale() == null ? (facets.getPrecision() >= significantIntegerDigits + decimals) :
-            (facets.getPrecision() - facets.getScale() >= significantIntegerDigits)))
+    return (facets.getPrecision() == null || facets.getPrecision() >= significantIntegerDigits + decimals)
         && (facets.getScale() == null || facets.getScale() >= decimals);
   }
 
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java
index 15c137d..602d70b 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/EdmSimpleTypeTest.java
@@ -6,9 +6,9 @@
  * 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
@@ -48,7 +48,7 @@ import org.apache.olingo.odata2.testutil.fit.BaseTest;
 import org.junit.Test;
 
 /**
- *
+ *  
  */
 public class EdmSimpleTypeTest extends BaseTest {
 
@@ -657,7 +657,7 @@ public class EdmSimpleTypeTest extends BaseTest {
     		, instance.valueToString(timestamp, EdmLiteralKind.JSON, null));
     assertEquals("datetimeoffset'2012-02-29T23:32:03.007111Z'"
     		, instance.valueToString(timestamp, EdmLiteralKind.URI, null));
-
+    
     timestamp.setNanos(42);
     expectErrorInValueToString(instance, timestamp, EdmLiteralKind.DEFAULT, getPrecisionScaleFacets(8, null),
         EdmSimpleTypeException.VALUE_FACETS_NOT_MATCHED);
@@ -666,7 +666,7 @@ public class EdmSimpleTypeTest extends BaseTest {
         EdmSimpleTypeException.VALUE_TYPE_NOT_SUPPORTED);
     expectErrorInValueToString(instance, dateTime, null, null, EdmSimpleTypeException.LITERAL_KIND_MISSING);
   }
-
+  
   @Test
   public void valueToStringDecimal() throws Exception {
     final EdmSimpleType instance = EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance();
@@ -1149,7 +1149,7 @@ public class EdmSimpleTypeTest extends BaseTest {
         Date.class));
     assertEquals(dateTime, instance.valueOfString("datetime'2012-02-29T23:32:03.001'", EdmLiteralKind.URI, null,
         Calendar.class));
-
+    
     //OLINGO-883 prefix is case insensitive
     assertEquals(dateTime, instance.valueOfString("DaTeTiMe'2012-02-29T23:32:03.001'", EdmLiteralKind.URI, null,
         Calendar.class));
@@ -1240,11 +1240,11 @@ public class EdmSimpleTypeTest extends BaseTest {
     assertEquals(dateTime, instance.valueOfString("datetimeoffset'2012-02-29T01:02:03Z'", EdmLiteralKind.URI, null,
         Calendar.class));
 
-    assertEquals(Long.parseLong("1454889571199"), instance.valueOfString("/Date(1454889571199)/",
+    assertEquals(Long.parseLong("1454889571199"), instance.valueOfString("/Date(1454889571199)/", 
         EdmLiteralKind.JSON, null, Timestamp.class).getTime());
-    assertEquals(Long.parseLong("145488957119912456"), instance.valueOfString("/Date(145488957119912456)/",
+    assertEquals(Long.parseLong("145488957119912456"), instance.valueOfString("/Date(145488957119912456)/", 
         EdmLiteralKind.JSON, null, Timestamp.class).getTime());
-
+        
     dateTime.clear();
     dateTime.setTimeZone(TimeZone.getTimeZone("GMT-01:30"));
     dateTime.set(2012, 1, 29, 1, 2, 3);
@@ -1254,12 +1254,12 @@ public class EdmSimpleTypeTest extends BaseTest {
         Calendar.class));
     assertEquals(dateTime, instance.valueOfString("datetimeoffset'2012-02-29T01:02:03-01:30'", EdmLiteralKind.URI,
         null, Calendar.class));
-
+    
     //OLINGO-883 prefix is case insensitive
     assertEquals(dateTime, instance.valueOfString("DaTeTiMeoFFset'2012-02-29T01:02:03-01:30'", EdmLiteralKind.URI,
         null, Calendar.class));
-
-
+    
+    
     dateTime.clear();
     dateTime.setTimeZone(TimeZone.getTimeZone("GMT+11:00"));
     dateTime.set(2012, 1, 29, 1, 2, 3);
@@ -1462,11 +1462,11 @@ public class EdmSimpleTypeTest extends BaseTest {
         UUID.class));
     assertEquals(uuid, instance.valueOfString("guid'AABBCCDD-aabb-ccdd-eeff-AABBCCDDEEFF'", EdmLiteralKind.URI, null,
         UUID.class));
-
+    
     //OLINGO-883 prefix is case insensitive
     assertEquals(uuid, instance.valueOfString("GuId'AABBCCDD-aabb-ccdd-eeff-AABBCCDDEEFF'", EdmLiteralKind.URI, null,
         UUID.class));
-
+    
     expectErrorInValueOfString(instance, "AABBCCDDAABBCCDDEEFFAABBCCDDEEFF", EdmLiteralKind.DEFAULT, null,
         EdmSimpleTypeException.LITERAL_ILLEGAL_CONTENT);
     expectErrorInValueOfString(instance, "uid'AABBCCDD-aabb-ccdd-eeff-AABBCCDDEEFF'", EdmLiteralKind.URI, null,
@@ -1680,10 +1680,10 @@ public class EdmSimpleTypeTest extends BaseTest {
     assertEquals(dateTime, instance.valueOfString("PT23H32M3.001S", EdmLiteralKind.DEFAULT, null, Calendar.class));
     assertEquals(dateTime, instance.valueOfString("PT23H32M3.001S", EdmLiteralKind.JSON, null, Calendar.class));
     assertEquals(dateTime, instance.valueOfString("time'PT23H32M3.001S'", EdmLiteralKind.URI, null, Calendar.class));
-
+    
     //OLINGO-883 prefix is case insensitive
     assertEquals(dateTime, instance.valueOfString("TiMe'PT23H32M3.001S'", EdmLiteralKind.URI, null, Calendar.class));
-
+    
     dateTime.add(Calendar.MILLISECOND, -1);
     assertEquals(dateTime, instance.valueOfString("PT23H32M3S", EdmLiteralKind.DEFAULT,
         getPrecisionScaleFacets(0, null), Calendar.class));
@@ -1788,15 +1788,5 @@ public class EdmSimpleTypeTest extends BaseTest {
         getPrecisionScaleFacets(null, null)));
     assertFalse(EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance().validate("1.2", EdmLiteralKind.DEFAULT,
         getPrecisionScaleFacets(null, 0)));
-    assertTrue(EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance().validate("1.2", EdmLiteralKind.DEFAULT,
-        getPrecisionScaleFacets(2, null)));
-    assertFalse(EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance().validate("10.2", EdmLiteralKind.DEFAULT,
-        getPrecisionScaleFacets(2, null)));
-    assertTrue(EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance().validate("1.2", EdmLiteralKind.DEFAULT,
-        getPrecisionScaleFacets(3, 1)));
-    assertTrue(EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance().validate("10.2", EdmLiteralKind.DEFAULT,
-        getPrecisionScaleFacets(3, 1)));
-    assertFalse(EdmSimpleTypeKind.Decimal.getEdmSimpleTypeInstance().validate("100", EdmLiteralKind.DEFAULT,
-        getPrecisionScaleFacets(3, 1)));
   }
 }