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/02/13 10:37:51 UTC
olingo-odata4 git commit: [OLINGO-545] Added data to TecSvc
Repository: olingo-odata4
Updated Branches:
refs/heads/master 200981df8 -> 0a1c1298e
[OLINGO-545] Added data to TecSvc
Signed-off-by: Michael Bolz <mi...@sap.com>
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/0a1c1298
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/0a1c1298
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/0a1c1298
Branch: refs/heads/master
Commit: 0a1c1298ef80924ee39299fe5133c3deb66d4834
Parents: 200981d
Author: Christian Holzer <c....@sap.com>
Authored: Tue Jan 27 13:47:19 2015 +0100
Committer: Michael Bolz <mi...@sap.com>
Committed: Fri Feb 13 10:31:16 2015 +0100
----------------------------------------------------------------------
.../olingo/fit/tecsvc/client/BasicITCase.java | 23 +-
.../olingo/server/tecsvc/data/DataCreator.java | 244 ++++++++++++++++++-
.../olingo/server/tecsvc/data/DataProvider.java | 2 +-
.../tecsvc/provider/ContainerProvider.java | 127 +++++++++-
.../serializer/xml/MetadataDocumentTest.java | 2 +-
5 files changed, 382 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/0a1c1298/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
index 2507909..17a0e29 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java
@@ -67,7 +67,6 @@ import org.apache.olingo.commons.api.http.HttpHeader;
import org.apache.olingo.commons.api.http.HttpStatusCode;
import org.apache.olingo.fit.AbstractBaseTestITCase;
import org.apache.olingo.fit.tecsvc.TecSvcConst;
-import org.junit.Ignore;
import org.junit.Test;
public class BasicITCase extends AbstractBaseTestITCase {
@@ -327,13 +326,25 @@ public class BasicITCase extends AbstractBaseTestITCase {
}
@Test
- @Ignore("Currently this test is not possible due to nullable=false in all available complex types")
public void updateEntityWithComplex() throws Exception {
final ODataClient client = getClient();
final ODataObjectFactory factory = client.getObjectFactory();
- ODataEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETCompComp"));
- newEntity.getProperties().add(factory.newComplexProperty("PropertyComp", null));
- final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESCompComp").appendKeySegment(1).build();
+ ODataEntity newEntity = factory.newEntity(new FullQualifiedName("olingo.odata.test1", "ETKeyNav"));
+ newEntity.getProperties().add(factory.newComplexProperty("PropertyCompComp", null));
+ // The following properties must not be null
+ newEntity.getProperties().add(factory.newPrimitiveProperty("PropertyString",
+ factory.newPrimitiveValueBuilder().buildString("Test")));
+ newEntity.getProperties().add(
+ factory.newComplexProperty("PropertyCompTwoPrim",
+ factory.newComplexValue("CTTwoPrim")
+ .add(factory.newPrimitiveProperty(
+ "PropertyInt16",
+ factory.newPrimitiveValueBuilder().buildInt16((short) 1)))
+ .add(factory.newPrimitiveProperty(
+ "PropertyString",
+ factory.newPrimitiveValueBuilder().buildString("Test2")))));
+
+ final URI uri = client.newURIBuilder(SERVICE_URI).appendEntitySetSegment("ESKeyNav").appendKeySegment(1).build();
final ODataEntityUpdateRequest<ODataEntity> request = client.getCUDRequestFactory().getEntityUpdateRequest(
uri, UpdateType.REPLACE, newEntity);
final ODataEntityUpdateResponse<ODataEntity> response = request.execute();
@@ -347,7 +358,7 @@ public class BasicITCase extends AbstractBaseTestITCase {
assertEquals(HttpStatusCode.OK.getStatusCode(), entityResponse.getStatusCode());
final ODataEntity entity = entityResponse.getBody();
assertNotNull(entity);
- final ODataLinkedComplexValue complex = entity.getProperty("PropertyComp").getLinkedComplexValue()
+ final ODataLinkedComplexValue complex = entity.getProperty("PropertyCompComp").getLinkedComplexValue()
.get("PropertyComp").getLinkedComplexValue();
assertNotNull(complex);
final ODataProperty property = complex.get("PropertyInt16");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/0a1c1298/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
index b692257..70eb220 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
@@ -57,15 +57,193 @@ public class DataCreator {
data.put("ESAllKey", createESAllKey());
data.put("ESCompComp", createESCompComp());
data.put("ESMedia", createESMedia());
-
+ data.put("ESKeyNav", createESKeyNav());
+ data.put("ESTwoKeyNav", createESTwoKeyNav());
+ data.put("ESCompCollComp", createESCompCollComp());
+ data.put("ESServerSidePaging", createESServerSidePaging());
+
linkESTwoPrim(data);
linkESAllPrim(data);
+ linkESKeyNav(data);
+ linkESTwoKeyNav(data);
+ }
+
+ private EntitySet createESServerSidePaging() {
+ EntitySet entitySet = new EntitySetImpl();
+
+ for(int i = 1; i <= 503; i++) {
+ entitySet.getEntities().add(new EntityImpl()
+ .addProperty(createPrimitive("PropertyInt16", i))
+ .addProperty(createPrimitive("PropertyString", "Number:" + i))
+ );
+ }
+
+ return entitySet;
}
Map<String, EntitySet> getData() {
return data;
}
+
+ private EntitySet createESKeyNav() {
+ final EntitySet entitySet = new EntitySetImpl();
+
+ entitySet.getEntities().add(createETKeyNavEntity(1, "I am String Property 1"));
+ entitySet.getEntities().add(createETKeyNavEntity(2, "I am String Property 2"));
+ entitySet.getEntities().add(createETKeyNavEntity(3, "I am String Property 3"));
+
+ return entitySet;
+ }
+
+ private Entity createETKeyNavEntity(int propertyInt16, String propertyString) {
+ // PropertyCompAllPrim
+ LinkedComplexValue cvCompAllPrim = createKeyNavAllPrimComplexValue();
+
+ // CollPropertyComp
+ List<LinkedComplexValue> ccComp = new ArrayList<LinkedComplexValue>();
+ ccComp.add(createCTPrimCompValue(1));
+ ccComp.add(createCTPrimCompValue(2));
+ ccComp.add(createCTPrimCompValue(3));
+
+ return new EntityImpl()
+ .addProperty(createPrimitive("PropertyInt16", propertyInt16))
+ .addProperty(createPrimitive("PropertyString", propertyString))
+ .addProperty(createComplex("PropertyComp",
+ createPrimitive("PropertyInt16", 1)))
+ .addProperty(new PropertyImpl(null, "PropertyCompAllPrim", ValueType.LINKED_COMPLEX, cvCompAllPrim))
+ .addProperty(createComplex("PropertyCompTwoPrim",
+ createPrimitive("PropertyInt16", 16),
+ createPrimitive("PropertyString", "Test123")))
+ .addProperty(createPrimitiveCollection("CollPropertyString",
+ "Employee1@company.example",
+ "Employee2@company.example",
+ "Employee3@company.example"))
+ .addProperty(createPrimitiveCollection("CollPropertyInt16", 1000, 2000, 30112))
+ .addProperty(new PropertyImpl(null, "CollPropertyComp", ValueType.COLLECTION_LINKED_COMPLEX, ccComp))
+ .addProperty(createComplex("PropertyCompComp",
+ createPrimitive("PropertyString", "1"),
+ createComplex("PropertyComp", createPrimitive("PropertyInt16", 1))));
+ }
+
+ private LinkedComplexValue createCTPrimCompValue(int properyInt16) {
+ final LinkedComplexValue cvBasePrimCompNav = new LinkedComplexValueImpl();
+ final LinkedComplexValue cvAllPrim = createKeyNavAllPrimComplexValue();
+
+ cvBasePrimCompNav.getValue().add(createPrimitive("PropertyInt16", properyInt16));
+ cvBasePrimCompNav.getValue().add(new PropertyImpl(null, "PropertyComp", ValueType.LINKED_COMPLEX, cvAllPrim));
+
+ return cvBasePrimCompNav;
+ }
+
+ private EntitySet createESTwoKeyNav() {
+ final EntitySet entitySet = new EntitySetImpl();
+
+ entitySet.getEntities().add(createESTwoKeyNavEntity(1, "1"));
+ entitySet.getEntities().add(createESTwoKeyNavEntity(1, "2"));
+ entitySet.getEntities().add(createESTwoKeyNavEntity(2, "1"));
+ entitySet.getEntities().add(createESTwoKeyNavEntity(3, "1"));
+
+ return entitySet;
+ }
+
+ @SuppressWarnings("unchecked")
+ private Entity createESTwoKeyNavEntity(int propertyInt16, String propertyString) {
+ return new EntityImpl()
+ .addProperty(createPrimitive("PropertyInt16", propertyInt16))
+ .addProperty(createPrimitive("PropertyString", propertyString))
+ .addProperty(createComplex("PropertyComp",
+ createPrimitive("PropertyInt16", 11),
+ createComplex("PropertyComp",
+ createPrimitive("PropertyString", "StringValue"),
+ createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 }),
+ createPrimitive("PropertyBoolean", true),
+ createPrimitive("PropertyByte", 255),
+ createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)),
+ createPrimitive("PropertyDecimal", 34),
+ createPrimitive("PropertySingle", 179000000000000000000D),
+ createPrimitive("PropertyDouble", -179000000000000000000D),
+ createPrimitive("PropertyDuration", 6),
+ createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")),
+ createPrimitive("PropertyInt16", Short.MAX_VALUE),
+ createPrimitive("PropertyInt32", Integer.MAX_VALUE),
+ createPrimitive("PropertyInt64", Long.MAX_VALUE),
+ createPrimitive("PropertySByte", Byte.MAX_VALUE),
+ createPrimitive("PropertyTimeOfDay", getTime(21, 05, 59))
+ )
+ ))
+ .addProperty(new PropertyImpl(null, "PropertyCompNav", ValueType.LINKED_COMPLEX, createCTPrimCompValue(1)))
+ .addProperty(new PropertyImpl(null, "CollPropertyComp", ValueType.COLLECTION_LINKED_COMPLEX,
+ new ArrayList<LinkedComplexValue>()))
+ .addProperty(createComplexCollection("CollPropertyCompNav",
+ Arrays.asList(createPrimitive("PropertyInt16", 1))))
+ .addProperty(createPrimitiveCollection("CollPropertyString", 1, 2))
+ .addProperty(createComplex("PropertyCompTwoPrim",
+ createPrimitive("PropertyInt16", 11),
+ createPrimitive("PropertyString", "11")
+ ));
+ }
+ private LinkedComplexValue createKeyNavAllPrimComplexValue() {
+ LinkedComplexValue cvAllPrim;
+ cvAllPrim = new LinkedComplexValueImpl();
+ cvAllPrim.getValue().add(createPrimitive("PropertyString", "First Resource - positive values"));
+ cvAllPrim.getValue().add(createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 } ));
+ cvAllPrim.getValue().add(createPrimitive("PropertyBoolean", true));
+ cvAllPrim.getValue().add(createPrimitive("PropertyByte", 255));
+ cvAllPrim.getValue().add(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)));
+ cvAllPrim.getValue().add(createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 12, 3, 7, 16, 23, 0)));
+ cvAllPrim.getValue().add(createPrimitive("PropertyDecimal", 34));
+ cvAllPrim.getValue().add(createPrimitive("PropertySingle", 179000000000000000000D));
+ cvAllPrim.getValue().add(createPrimitive("PropertyDouble", -179000000000000000000D));
+ cvAllPrim.getValue().add(createPrimitive("PropertyDuration", 6));
+ cvAllPrim.getValue().add(createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")));
+ cvAllPrim.getValue().add(createPrimitive("PropertyInt16", Short.MAX_VALUE));
+ cvAllPrim.getValue().add(createPrimitive("PropertyInt32", Integer.MAX_VALUE));
+ cvAllPrim.getValue().add(createPrimitive("PropertyInt64", Long.MAX_VALUE));
+ cvAllPrim.getValue().add(createPrimitive("PropertySByte", Byte.MAX_VALUE));
+ cvAllPrim.getValue().add(createPrimitive("PropertyTimeOfDay", getTime(21, 05, 59)));
+
+ return cvAllPrim;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ private EntitySet createESCompCollComp() {
+ final EntitySet entitySet = new EntitySetImpl();
+
+ entitySet.getEntities().add(new EntityImpl()
+ .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE))
+ .addProperty(createComplex("PropertyComp",
+ createComplexCollection("CollPropertyComp",
+ Arrays.asList(
+ createPrimitive("PropertyInt16", 555),
+ createPrimitive("PropertyString", "1 Test Complex in Complex Property")),
+ Arrays.asList(
+ createPrimitive("PropertyInt16", 666),
+ createPrimitive("PropertyString", "2 Test Complex in Complex Property")),
+ Arrays.asList(
+ createPrimitive("PropertyInt16", 777),
+ createPrimitive("PropertyString", "3 Test Complex in Complex Property"))
+ ))));
+
+ entitySet.getEntities().add(new EntityImpl()
+ .addProperty(createPrimitive("PropertyInt16", 12345))
+ .addProperty(createComplex("PropertyComp",
+ createComplexCollection("CollPropertyComp",
+ Arrays.asList(
+ createPrimitive("PropertyInt16", 888),
+ createPrimitive("PropertyString", "11 Test Complex in Complex Property")),
+ Arrays.asList(
+ createPrimitive("PropertyInt16", 999),
+ createPrimitive("PropertyString", "12 Test Complex in Complex Property")),
+ Arrays.asList(
+ createPrimitive("PropertyInt16", 0),
+ createPrimitive("PropertyString", "13 Test Complex in Complex Property"))
+ ))));
+
+ return entitySet;
+ }
+
private EntitySet createESTwoPrim() {
EntitySet entitySet = new EntitySetImpl();
@@ -411,7 +589,7 @@ public class DataCreator {
}
private void linkESTwoPrim(Map<String, EntitySet> data) {
- EntitySet entitySet = data.get("ESTwoPrim");
+ final EntitySet entitySet = data.get("ESTwoPrim");
final List<Entity> targetEntities = data.get("ESAllPrim").getEntities();
setLinks(entitySet.getEntities().get(1), "NavPropertyETAllPrimMany", targetEntities.subList(1, 3));
@@ -420,7 +598,7 @@ public class DataCreator {
}
private void linkESAllPrim(Map<String, EntitySet> data) {
- EntitySet entitySet = data.get("ESAllPrim");
+ final EntitySet entitySet = data.get("ESAllPrim");
final List<Entity> targetEntities = data.get("ESTwoPrim").getEntities();
setLinks(entitySet.getEntities().get(0), "NavPropertyETTwoPrimMany", targetEntities.subList(1, 2));
@@ -429,7 +607,67 @@ public class DataCreator {
setLinks(entitySet.getEntities().get(2), "NavPropertyETTwoPrimMany",
Arrays.asList(targetEntities.get(0), targetEntities.get(2), targetEntities.get(3)));
}
+
+
+ private void linkESKeyNav(Map<String, EntitySet> data) {
+ final EntitySet entitySet = data.get("ESKeyNav");
+ final List<Entity> esKeyNavTargets = data.get("ESKeyNav").getEntities();
+ final List<Entity> esTwoKeyNavTargets = data.get("ESTwoKeyNav").getEntities();
+ final List<Entity> esMediaTargets = data.get("ESMedia").getEntities();
+
+ // NavPropertyETKeyNavMany
+ setLinks(entitySet.getEntities().get(0), "NavPropertyETKeyNavMany", esKeyNavTargets.subList(0, 2));
+ setLinks(entitySet.getEntities().get(1), "NavPropertyETKeyNavMany", esKeyNavTargets.subList(1, 3));
+
+ // NavPropertyETKeyNavOne
+ setLink(entitySet.getEntities().get(0), "NavPropertyETKeyNavOne", esKeyNavTargets.get(1));
+ setLink(entitySet.getEntities().get(1), "NavPropertyETKeyNavOne", esKeyNavTargets.get(2));
+
+ // NavPropertyETTwoKeyNavOne
+ setLink(entitySet.getEntities().get(0), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(0));
+ setLink(entitySet.getEntities().get(1), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(1));
+ setLink(entitySet.getEntities().get(2), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(2));
+
+ // NavPropertyETTwoKeyNavMany
+ setLinks(entitySet.getEntities().get(0), "NavPropertyETTwoKeyNavMany", esTwoKeyNavTargets.subList(0, 2));
+ setLinks(entitySet.getEntities().get(1), "NavPropertyETTwoKeyNavMany", esTwoKeyNavTargets.subList(2, 3));
+ setLinks(entitySet.getEntities().get(2), "NavPropertyETTwoKeyNavMany", esTwoKeyNavTargets.subList(3, 4));
+
+ // NavPropertyETMediaOne
+ setLink(entitySet.getEntities().get(0), "NavPropertyETMediaOne", esMediaTargets.get(0));
+ setLink(entitySet.getEntities().get(1), "NavPropertyETMediaOne", esMediaTargets.get(1));
+ setLink(entitySet.getEntities().get(2), "NavPropertyETMediaOne", esMediaTargets.get(2));
+ }
+
+
+ private void linkESTwoKeyNav(Map<String, EntitySet> data2) {
+ final EntitySet entitySet = data.get("ESTwoKeyNav");
+ final List<Entity> esKeyNavTargets = data.get("ESKeyNav").getEntities();
+ final List<Entity> esTwoKeyNavTargets = data.get("ESTwoKeyNav").getEntities();
+
+ // NavPropertyETKeyNavOne
+ setLink(entitySet.getEntities().get(0), "NavPropertyETKeyNavOne", esKeyNavTargets.get(0));
+ setLink(entitySet.getEntities().get(1), "NavPropertyETKeyNavOne", esKeyNavTargets.get(0));
+ setLink(entitySet.getEntities().get(2), "NavPropertyETKeyNavOne", esKeyNavTargets.get(1));
+ setLink(entitySet.getEntities().get(3), "NavPropertyETKeyNavOne", esKeyNavTargets.get(2));
+
+ // NavPropertyETKeyNavMany
+ setLinks(entitySet.getEntities().get(0), "NavPropertyETKeyNavMany", esKeyNavTargets.subList(0, 2));
+ setLinks(entitySet.getEntities().get(1), "NavPropertyETKeyNavMany", esKeyNavTargets.subList(0, 2));
+ setLinks(entitySet.getEntities().get(2), "NavPropertyETKeyNavMany", esKeyNavTargets.subList(1, 3));
+
+ // NavPropertyETTwoKeyNavOne
+ setLink(entitySet.getEntities().get(0), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(0));
+ setLink(entitySet.getEntities().get(2), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(1));
+ setLink(entitySet.getEntities().get(3), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(2));
+
+ // NavPropertyETTwoKeyNavMany
+ setLinks(entitySet.getEntities().get(0), "NavPropertyETTwoKeyNavMany", esKeyNavTargets.subList(0, 2));
+ setLinks(entitySet.getEntities().get(1), "NavPropertyETTwoKeyNavMany", esKeyNavTargets.subList(0, 1));
+ setLinks(entitySet.getEntities().get(2), "NavPropertyETTwoKeyNavMany", esKeyNavTargets.subList(1, 2));
+ }
+
protected static Property createPrimitive(final String name, final Object value) {
return new PropertyImpl(null, name, ValueType.PRIMITIVE, value);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/0a1c1298/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
index 7a4384b..c35ba86 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
@@ -204,7 +204,7 @@ public class DataProvider {
if (newProperty != null && !newProperty.asLinkedComplex().getValue().isEmpty()) {
throw new DataProviderException("Update of a complex-collection property not supported!");
} else {
- property.asLinkedComplex().getValue().clear();
+ property.asCollection().clear();
}
} else {
final EdmComplexType type = (EdmComplexType) edmProperty.getType();
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/0a1c1298/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
index 7cf15fa..d219657 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
@@ -146,7 +146,15 @@ public class ContainerProvider {
if (name.equals("ESAllPrim")) {
return new EntitySet()
.setName("ESAllPrim")
- .setType(EntityTypeProvider.nameETAllPrim);
+ .setType(EntityTypeProvider.nameETAllPrim)
+ .setNavigationPropertyBindings(Arrays.asList(
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoPrimOne")
+ .setTarget(new Target().setTargetName("ESTwoPrim")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoPrimMany")
+ .setTarget(new Target().setTargetName("ESTwoPrim"))
+ ));
} else if (name.equals("ESCollAllPrim")) {
return new EntitySet()
@@ -156,7 +164,15 @@ public class ContainerProvider {
} else if (name.equals("ESTwoPrim")) {
return new EntitySet()
.setName("ESTwoPrim")
- .setType(EntityTypeProvider.nameETTwoPrim);
+ .setType(EntityTypeProvider.nameETTwoPrim)
+ .setNavigationPropertyBindings(Arrays.asList(
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETAllPrimOne")
+ .setTarget(new Target().setTargetName("ESAllPrim")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETAllPrimMany")
+ .setTarget(new Target().setTargetName("ESAllPrim"))
+ ));
} else if (name.equals("ESMixPrimCollComp")) {
return new EntitySet()
@@ -240,14 +256,115 @@ public class ContainerProvider {
.setType(EntityTypeProvider.nameETAllNullable);
} else if (name.equals("ESKeyNav")) {
+
return new EntitySet()
.setName("ESKeyNav")
- .setType(EntityTypeProvider.nameETKeyNav);
-
+ .setType(EntityTypeProvider.nameETKeyNav)
+ .setNavigationPropertyBindings(Arrays.asList(
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETKeyNavOne")
+ .setTarget(new Target().setTargetName("ESKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETKeyNavMany")
+ .setTarget(new Target().setTargetName("ESKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoKeyNavOne")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETMediaOne")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETMediaMany")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOn")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETMediaOne")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETMediaMany")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavOne")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaOne")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaMany")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/com.corp.odata.test1.CTNavFiveProp/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav"))
+ ));
+
} else if (name.equals("ESTwoKeyNav")) {
return new EntitySet()
.setName("ESTwoKeyNav")
- .setType(EntityTypeProvider.nameETTwoKeyNav);
+ .setType(EntityTypeProvider.nameETTwoKeyNav)
+ .setNavigationPropertyBindings(Arrays.asList(
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETKeyNavOne")
+ .setTarget(new Target().setTargetName("ESKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETKeyNavMany")
+ .setTarget(new Target().setTargetName("ESKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoKeyNavOne")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOne")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETKeyNavOne")
+ .setTarget(new Target().setTargetName("ESKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("PropertyCompNav/NavPropertyETKeyNavMany")
+ .setTarget(new Target().setTargetName("ESKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavOne")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("CollPropertyCompNav/NavPropertyETMediaOne")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("CollPropertyCompNav/NavPropertyETMediaMany")
+ .setTarget(new Target().setTargetName("ESMedia")),
+ new NavigationPropertyBinding()
+ .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
+ .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertyETTwoBaseTwoKeyNavOne")
+ .setTarget(new Target().setTargetName("ESBaseTwoKeyNav")),
+ new NavigationPropertyBinding()
+ .setPath("NavPropertySINav")
+ .setTarget(new Target().setTargetName("SINav"))
+ ));
} else if (name.equals("ESBaseTwoKeyNav")) {
return new EntitySet()
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/0a1c1298/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
index c438d00..01ab436 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
@@ -112,7 +112,7 @@ public class MetadataDocumentTest {
assertThat(metadata, containsString("<EntityContainer Name=\"Container\">"));
assertThat(metadata,
- containsString("<EntitySet Name=\"ESTwoPrim\" EntityType=\"Namespace1_Alias.ETTwoPrim\"/>"));
+ containsString("<EntitySet Name=\"ESTwoPrim\" EntityType=\"Namespace1_Alias.ETTwoPrim\">"));
assertThat(metadata,
containsString("<Singleton Name=\"SINav\" EntityType=\"Namespace1_Alias.ETTwoKeyNav\">"