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()