You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/09/02 13:49:45 UTC

[25/50] [abbrv] git commit: [OLINGO-334] fix function import parameter bug

[OLINGO-334] fix function import parameter bug


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

Branch: refs/heads/Olingo-129_PocJpaDataStore
Commit: 0faf34bf39a289af757f0c08ee75b11a3125395d
Parents: 84a47f9
Author: Stephan Klevenz <sk...@apache.org>
Authored: Tue Jul 1 14:33:30 2014 +0200
Committer: Stephan Klevenz <sk...@apache.org>
Committed: Tue Jul 1 14:34:21 2014 +0200

----------------------------------------------------------------------
 .../core/ep/consumer/XmlMetadataConsumer.java   |  2 +-
 .../ep/consumer/XmlMetadataConsumerTest.java    | 63 +++++++++++++++-----
 2 files changed, 48 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/0faf34bf/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
index e8677a1..4239c6d 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
@@ -306,7 +306,7 @@ public class XmlMetadataConsumer {
     functionParameter.setAnnotationAttributes(readAnnotationAttribute(reader));
     while (reader.hasNext()
         && !(reader.isEndElement() && edmNamespace.equals(reader.getNamespaceURI())
-        && XmlMetadataConstants.EDM_FUNCTION_IMPORT.equals(reader.getLocalName()))) {
+        && XmlMetadataConstants.EDM_FUNCTION_PARAMETER.equals(reader.getLocalName()))) {
       reader.next();
       if (reader.isStartElement()) {
         extractNamespaces(reader);

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/0faf34bf/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
index c8ad5ff..e939f3a 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
@@ -560,8 +560,15 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
             + "<EntitySet Name=\"Employees\" EntityType=\"RefScenario.Employee\"/>"
             + "<FunctionImport Name=\"EmployeeSearch\" ReturnType=\"Collection(RefScenario.Employee)\" " +
             "EntitySet=\"Employees\" m:HttpMethod=\"GET\">"
-            + "<Parameter Name=\"q\" Type=\"Edm.String\" Nullable=\"true\" />"
-            + "</FunctionImport>" + "</EntityContainer>" + "</Schema>" + "</edmx:DataServices>" + "</edmx:Edmx>";
+            + "<Parameter Name=\"q1\" Type=\"Edm.String\" Nullable=\"true\" />"
+            + "<Parameter Name=\"q2\" Type=\"Edm.Int32\" Nullable=\"false\" />"
+            + "</FunctionImport>"
+            + "<FunctionImport Name=\"RoomSearch\" ReturnType=\"Collection(RefScenario.Room)\" " +
+            "EntitySet=\"Rooms\" m:HttpMethod=\"GET\">"
+            + "<Parameter Name=\"q1\" Type=\"Edm.String\" Nullable=\"true\" />"
+            + "<Parameter Name=\"q2\" Type=\"Edm.Int32\" Nullable=\"false\" />"
+            + "</FunctionImport>"
+            + "</EntityContainer>" + "</Schema>" + "</edmx:DataServices>" + "</edmx:Edmx>";
     XmlMetadataConsumer parser = new XmlMetadataConsumer();
     XMLStreamReader reader = createStreamReader(xmWithEntityContainer);
     DataServices result = parser.readMetadata(reader, true);
@@ -569,22 +576,46 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
       for (EntityContainer container : schema.getEntityContainers()) {
         assertEquals("Container1", container.getName());
         assertEquals(Boolean.TRUE, container.isDefaultEntityContainer());
-        for (FunctionImport functionImport : container.getFunctionImports()) {
-          assertEquals("EmployeeSearch", functionImport.getName());
-          assertEquals("Employees", functionImport.getEntitySet());
-          assertEquals(NAMESPACE, functionImport.getReturnType().getTypeName().getNamespace());
-          assertEquals("Employee", functionImport.getReturnType().getTypeName().getName());
-          assertEquals(EdmMultiplicity.MANY, functionImport.getReturnType().getMultiplicity());
-          assertEquals("GET", functionImport.getHttpMethod());
-          for (FunctionImportParameter parameter : functionImport.getParameters()) {
-            assertEquals("q", parameter.getName());
-            assertEquals(EdmSimpleTypeKind.String, parameter.getType());
-            assertEquals(Boolean.TRUE, parameter.getFacets().isNullable());
-          }
-        }
+
+        assertEquals(2, container.getFunctionImports().size());
+        FunctionImport functionImport1 = container.getFunctionImports().get(0);
+
+        assertEquals("EmployeeSearch", functionImport1.getName());
+        assertEquals("Employees", functionImport1.getEntitySet());
+        assertEquals(NAMESPACE, functionImport1.getReturnType().getTypeName().getNamespace());
+        assertEquals("Employee", functionImport1.getReturnType().getTypeName().getName());
+        assertEquals(EdmMultiplicity.MANY, functionImport1.getReturnType().getMultiplicity());
+        assertEquals("GET", functionImport1.getHttpMethod());
+        assertEquals(2, functionImport1.getParameters().size());
+
+        assertEquals("q1", functionImport1.getParameters().get(0).getName());
+        assertEquals(EdmSimpleTypeKind.String, functionImport1.getParameters().get(0).getType());
+        assertEquals(Boolean.TRUE, functionImport1.getParameters().get(0).getFacets().isNullable());
+
+        assertEquals("q2", functionImport1.getParameters().get(1).getName());
+        assertEquals(EdmSimpleTypeKind.Int32, functionImport1.getParameters().get(1).getType());
+        assertEquals(Boolean.FALSE, functionImport1.getParameters().get(1).getFacets().isNullable());
+
+        FunctionImport functionImport2 = container.getFunctionImports().get(1);
+
+        assertEquals("RoomSearch", functionImport2.getName());
+        assertEquals("Rooms", functionImport2.getEntitySet());
+        assertEquals(NAMESPACE, functionImport2.getReturnType().getTypeName().getNamespace());
+        assertEquals("Room", functionImport2.getReturnType().getTypeName().getName());
+        assertEquals(EdmMultiplicity.MANY, functionImport2.getReturnType().getMultiplicity());
+        assertEquals("GET", functionImport2.getHttpMethod());
+        assertEquals(2, functionImport2.getParameters().size());
+
+        assertEquals("q1", functionImport2.getParameters().get(0).getName());
+        assertEquals(EdmSimpleTypeKind.String, functionImport2.getParameters().get(0).getType());
+        assertEquals(Boolean.TRUE, functionImport2.getParameters().get(0).getFacets().isNullable());
+
+        assertEquals("q2", functionImport2.getParameters().get(1).getName());
+        assertEquals(EdmSimpleTypeKind.Int32, functionImport2.getParameters().get(1).getType());
+        assertEquals(Boolean.FALSE, functionImport2.getParameters().get(1).getFacets().isNullable());
+
       }
     }
-
   }
 
   @Test()