Repository: olingo-odata2
Updated Branches:
  refs/heads/master e04ea6a00 -> 96c28146e


[OLINGO-689] Fixed name validation pattern for EdmNamed


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

Branch: refs/heads/master
Commit: 96c28146e9b02c7fbd670813e7b6c43e15fe5050
Parents: e04ea6a
Author: Michael Bolz <[email protected]>
Authored: Wed Jun 10 09:48:16 2015 +0200
Committer: Michael Bolz <[email protected]>
Committed: Wed Jun 10 10:13:02 2015 +0200

----------------------------------------------------------------------
 .../core/edm/provider/EdmNamedImplProv.java     | 14 +++---
 .../EdmEntityContainerImplProvTest.java         |  8 +--
 .../core/edm/provider/EdmNamedImplProvTest.java | 52 ++++++++++++++++++++
 3 files changed, 62 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/96c28146/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProv.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProv.java
 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProv.java
index 81ae907..f8b231c 100644
--- 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProv.java
+++ 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProv.java
@@ -26,14 +26,12 @@ import org.apache.olingo.odata2.api.edm.EdmNamed;
 
 public abstract class EdmNamedImplProv implements EdmNamed {
 
-  private static final Pattern PATTERN_VALID_NAME = Pattern
-      
.compile("^[:A-Z_a-z\\u00C0\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02ff\\u0370-\\u037d"
-          + 
"\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff"
-          + "\\uf900-\\ufdcf\\ufdf0-\\ufffd\\x10000-\\xEFFFF]"
-          + "[:A-Z_a-z\\u00C0\\u00D6\\u00D8-\\u00F6"
-          + 
"\\u00F8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f"
-          + 
"\\u2c00-\\u2fef\\u3001-\\udfff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\-\\.0-9"
-          + "\\u00b7\\u0300-\\u036f\\u203f-\\u2040]*\\Z");
+  private static final Pattern PATTERN_VALID_NAME = Pattern.compile(
+      
"\\A[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02ff\\u0370-\\u037d\\u200c\\u200d\\u2070-\\u218f"
+      + 
"\\u037f-\\u1fff\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]"
+      + 
"[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02ff\\u0370-\\u037d\\u200c\\u200d\\u2070-\\u218f"
+      + 
"\\u037f-\\u1fff\\u2c00-\\u2fef\\u3001-\\udfff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\-\\.0-9\\u00b7\\u0300-\\u036f]*"
+      + "\\Z");
   protected EdmImplProv edm;
   private String name;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/96c28146/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProvTest.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProvTest.java
 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProvTest.java
index 1661308..ca58152 100644
--- 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProvTest.java
+++ 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProvTest.java
@@ -102,12 +102,12 @@ public class EdmEntityContainerImplProvTest extends 
BaseTest {
     entitySets.add(entitySetBar);
     when(edmProvider.getEntitySet(containerName, 
"bar")).thenReturn(entitySetBar);
 
-    AssociationSet associationSet = new AssociationSet().setName("4711");
+    AssociationSet associationSet = new AssociationSet().setName("Name4711");
     FullQualifiedName assocFQName = new FullQualifiedName("AssocNs", 
"AssocName");
     associationSets.add(associationSet);
     when(edmProvider.getAssociationSet(containerName, assocFQName, "foo", 
"fromRole")).thenReturn(associationSet);
 
-    AssociationSet parentAssociationSet = new AssociationSet().setName("42");
+    AssociationSet parentAssociationSet = new 
AssociationSet().setName("Name42");
     FullQualifiedName parentAssocFQName = new FullQualifiedName("AssocNs", 
"AssocNameParent");
     when(edmProvider.getAssociationSet(containerParentName,
         parentAssocFQName, "fooFromParent", 
"fromParentRole")).thenReturn(parentAssociationSet);
@@ -214,8 +214,8 @@ public class EdmEntityContainerImplProvTest extends 
BaseTest {
 
     for (EdmAssociationSet assoSet : associationSets) {
       String name = assoSet.getName();
-      boolean expectedName = "4711".equals(name)
-          || "42".equals(name);
+      boolean expectedName = "Name4711".equals(name)
+          || "Name42".equals(name);
       assertTrue("Found not expected name: " + name, expectedName);
     }
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/96c28146/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProvTest.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProvTest.java
 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProvTest.java
index 0691e97..9a6fe72 100644
--- 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProvTest.java
+++ 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmNamedImplProvTest.java
@@ -18,6 +18,7 @@
  
******************************************************************************/
 package org.apache.olingo.odata2.core.edm.provider;
 
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 
 import org.apache.olingo.odata2.api.edm.EdmException;
@@ -38,4 +39,55 @@ public class EdmNamedImplProvTest extends BaseTest {
     SimpleProperty propertySimple = new 
SimpleProperty().setName("Prop;ertyName").setType(EdmSimpleTypeKind.String);
     new EdmSimplePropertyImplProv(edmImplProv, propertySimple);
   }
+
+  @Test(expected = EdmException.class)
+  public void testPropertyIllegalStartWithNumber() throws Exception {
+
+    EdmProvider edmProvider = mock(EdmProvider.class);
+    EdmImplProv edmImplProv = new EdmImplProv(edmProvider);
+
+    SimpleProperty propertySimple = new 
SimpleProperty().setName("1_PropertyName").setType(EdmSimpleTypeKind.String);
+    new EdmSimplePropertyImplProv(edmImplProv, propertySimple);
+  }
+
+  @Test
+  public void testPropertyWithNumber() throws Exception {
+
+    EdmProvider edmProvider = mock(EdmProvider.class);
+    EdmImplProv edmImplProv = new EdmImplProv(edmProvider);
+
+    SimpleProperty propertySimple = new 
SimpleProperty().setName("Prop_1_Name").setType(EdmSimpleTypeKind
+        .String);
+    new EdmSimplePropertyImplProv(edmImplProv, propertySimple);
+    assertEquals("Prop_1_Name", new EdmSimplePropertyImplProv(edmImplProv, 
propertySimple).getName());
+  }
+
+  @Test
+  public void testPropertyUmlaut() throws Exception {
+    EdmProvider edmProvider = mock(EdmProvider.class);
+    EdmImplProv edmImplProv = new EdmImplProv(edmProvider);
+
+    SimpleProperty propertySimple = new 
SimpleProperty().setName("ÄropertyName").setType(EdmSimpleTypeKind.String);
+    assertEquals("ÄropertyName", new EdmSimplePropertyImplProv(edmImplProv, 
propertySimple).getName());
+  }
+
+  @Test
+  public void testPropertyUnicode() throws Exception {
+    EdmProvider edmProvider = mock(EdmProvider.class);
+    EdmImplProv edmImplProv = new EdmImplProv(edmProvider);
+
+    SimpleProperty propertySimple = new 
SimpleProperty().setName("\u00C0roperty\u00C1ame\u00C0\u00D5\u00D6")
+        .setType(EdmSimpleTypeKind.String);
+    assertEquals("ÀropertyÁameÀÕÖ", new 
EdmSimplePropertyImplProv(edmImplProv, propertySimple).getName());
+  }
+
+  @Test
+  public void testPropertyUnicodeTwo() throws Exception {
+    EdmProvider edmProvider = mock(EdmProvider.class);
+    EdmImplProv edmImplProv = new EdmImplProv(edmProvider);
+
+    SimpleProperty propertySimple = new 
SimpleProperty().setName("Содержание")
+        .setType(EdmSimpleTypeKind.String);
+    assertEquals("Содержание", new 
EdmSimplePropertyImplProv(edmImplProv, propertySimple).getName());
+  }
 }

Reply via email to