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 2015/07/03 15:52:19 UTC
olingo-odata2 git commit: [OLINGO-723] Fixed missing multiplicity for
EDMX read
Repository: olingo-odata2
Updated Branches:
refs/heads/master dd0625e3f -> 2b3bce1ea
[OLINGO-723] Fixed missing multiplicity for EDMX read
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/2b3bce1e
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/2b3bce1e
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/2b3bce1e
Branch: refs/heads/master
Commit: 2b3bce1ea5472ae13d395da6fb4e0f6b5c0ec68b
Parents: dd0625e
Author: Michael Bolz <mi...@sap.com>
Authored: Fri Jul 3 13:08:56 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Fri Jul 3 15:31:42 2015 +0200
----------------------------------------------------------------------
.../core/ep/consumer/XmlMetadataConsumer.java | 2 ++
.../ep/consumer/XmlMetadataConsumerTest.java | 26 ++++++++++++++++----
2 files changed, 23 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/2b3bce1e/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 686d579..2bcc2e6 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
@@ -269,6 +269,8 @@ public class XmlMetadataConsumer {
if (returnTypeString.startsWith("Collection") || returnTypeString.startsWith("collection")) {
returnType.setMultiplicity(EdmMultiplicity.MANY);
returnTypeString = returnTypeString.substring(returnTypeString.indexOf("(") + 1, returnTypeString.length() - 1);
+ } else {
+ returnType.setMultiplicity(EdmMultiplicity.ONE);
}
FullQualifiedName fqName = extractFQName(returnTypeString);
returnType.setTypeName(fqName);
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/2b3bce1e/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 4077c68..83d234f 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
@@ -39,6 +39,7 @@ import org.apache.olingo.odata2.api.edm.EdmContentKind;
import org.apache.olingo.odata2.api.edm.EdmFacets;
import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
+import org.apache.olingo.odata2.api.edm.FullQualifiedName;
import org.apache.olingo.odata2.api.edm.provider.AnnotationAttribute;
import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
import org.apache.olingo.odata2.api.edm.provider.Association;
@@ -704,6 +705,9 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
+ "</FunctionImport>"
+ "<FunctionImport Name=\"NoReturn\" " +
"EntitySet=\"Rooms\" m:HttpMethod=\"GET\"/>"
+ + "<FunctionImport Name=\"SingleRoomReturnType\" ReturnType=\"RefScenario.Room\" " +
+ "EntitySet=\"Rooms\" m:HttpMethod=\"GET\">"
+ + "</FunctionImport>"
+ "</EntityContainer>" + "</Schema>" + "</edmx:DataServices>" + "</edmx:Edmx>";
XmlMetadataConsumer parser = new XmlMetadataConsumer();
XMLStreamReader reader = createStreamReader(xmWithEntityContainer);
@@ -713,7 +717,7 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
assertEquals("Container1", container.getName());
assertEquals(Boolean.TRUE, container.isDefaultEntityContainer());
- assertEquals(4, container.getFunctionImports().size());
+ assertEquals(5, container.getFunctionImports().size());
FunctionImport functionImport1 = container.getFunctionImports().get(0);
assertEquals("EmployeeSearch", functionImport1.getName());
@@ -732,8 +736,8 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
assertEquals(EdmSimpleTypeKind.Int32, functionImport1.getParameters().get(1).getType());
assertEquals(Boolean.FALSE, functionImport1.getParameters().get(1).getFacets().isNullable());
- FunctionImport functionImport2 = container.getFunctionImports().get(1);
+ FunctionImport functionImport2 = container.getFunctionImports().get(1);
assertEquals("RoomSearch", functionImport2.getName());
assertEquals("Rooms", functionImport2.getEntitySet());
assertEquals(NAMESPACE, functionImport2.getReturnType().getTypeName().getNamespace());
@@ -741,12 +745,15 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
assertEquals(EdmMultiplicity.MANY, functionImport2.getReturnType().getMultiplicity());
assertEquals("GET", functionImport2.getHttpMethod());
assertEquals(2, functionImport2.getParameters().size());
+ assertEquals(new FullQualifiedName("RefScenario","Room"),
+ functionImport2.getReturnType().getTypeName());
+ assertEquals(EdmMultiplicity.MANY, functionImport2.getReturnType().getMultiplicity());
FunctionImportParameter functionImportParameter = functionImport2.getParameters().get(0);
- assertEquals("q1", functionImportParameter.getName());
+ assertEquals("q1", functionImportParameter.getName());
assertEquals(EdmSimpleTypeKind.String, functionImport2.getParameters().get(0).getType());
assertEquals(Boolean.TRUE, functionImport2.getParameters().get(0).getFacets().isNullable());
- assertEquals("In", functionImportParameter.getMode());
+ assertEquals("In", functionImportParameter.getMode());
assertEquals("q2", functionImport2.getParameters().get(1).getName());
assertEquals(EdmSimpleTypeKind.Int32, functionImport2.getParameters().get(1).getType());
@@ -754,7 +761,6 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
assertEquals(null, functionImport2.getParameters().get(1).getMode());
FunctionImport functionImport3 = container.getFunctionImports().get(2);
-
assertEquals("NoParamters", functionImport3.getName());
List<FunctionImportParameter> parameters3 = functionImport3.getParameters();
assertNotNull(parameters3);
@@ -766,6 +772,16 @@ public class XmlMetadataConsumerTest extends AbstractXmlConsumerTest {
assertNotNull(parameters4);
assertEquals(0, parameters4.size());
assertNull(functionImport4.getReturnType());
+
+ FunctionImport functionImport5 = container.getFunctionImports().get(4);
+ assertEquals("SingleRoomReturnType", functionImport5.getName());
+ List<FunctionImportParameter> parameters5 = functionImport5.getParameters();
+ assertNotNull(parameters5);
+ assertEquals(0, parameters5.size());
+ assertEquals(new FullQualifiedName("RefScenario", "Room"),
+ functionImport5.getReturnType().getTypeName());
+ assertEquals(EdmMultiplicity.ONE, functionImport5.getReturnType().getMultiplicity());
+
}
}
}