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/10/09 13:30:45 UTC
git commit: [OLINGO-447] Better key access in technical service
Repository: olingo-odata4
Updated Branches:
refs/heads/master bc0129490 -> 169651531
[OLINGO-447] Better key access in technical service
Change-Id: I8a953aedc7f05d10c239e45655760df879122027
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/16965153
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/16965153
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/16965153
Branch: refs/heads/master
Commit: 169651531cee38b25dbfec648e217b0943808609
Parents: bc01294
Author: Klaus Straubinger <kl...@sap.com>
Authored: Thu Oct 9 09:30:38 2014 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Thu Oct 9 09:47:38 2014 +0200
----------------------------------------------------------------------
.../olingo/server/tecsvc/data/DataProvider.java | 5 +-
.../server/tecsvc/data/DataProviderTest.java | 57 +++++++++++++-------
2 files changed, 42 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/16965153/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 e8deff3..6010e95 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
@@ -87,9 +87,10 @@ public class DataProvider {
final EdmProperty property = (EdmProperty) entityType.getProperty(key.getName());
final EdmPrimitiveType type = (EdmPrimitiveType) property.getType();
final Object value = entity.getProperty(key.getName()).getValue();
- final Object keyValue = type.valueOfString(key.getText(),
+ final Object keyValue = type.valueOfString(type.fromUriLiteral(key.getText()),
property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
- property.isUnicode(), value.getClass());
+ property.isUnicode(),
+ Calendar.class.isAssignableFrom(value.getClass()) ? Calendar.class : value.getClass());
if (!value.equals(keyValue)) {
found = false;
break;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/16965153/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java b/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
index c42daa5..943b589 100644
--- a/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
+++ b/lib/server-tecsvc/src/test/java/org/apache/olingo/server/tecsvc/data/DataProviderTest.java
@@ -42,28 +42,42 @@ public class DataProviderTest {
private final EdmEntityContainer entityContainer = edm.getEntityContainer(
new FullQualifiedName("olingo.odata.test1", "Container"));
- private final EdmEntitySet esAllPrim;
- private final EdmEntitySet esCompAllPrim;
- private final EdmEntitySet esCollAllPrim;
- private final EdmEntitySet esMixPrimCollAllPrim;
-
- public DataProviderTest() {
- esAllPrim = entityContainer.getEntitySet("ESAllPrim");
- esCompAllPrim = entityContainer.getEntitySet("ESCompAllPrim");
- esCollAllPrim = entityContainer.getEntitySet("ESCollAllPrim");
- esMixPrimCollAllPrim = entityContainer.getEntitySet("ESMixPrimCollComp");
- }
+ private final EdmEntitySet esAllPrim = entityContainer.getEntitySet("ESAllPrim");
+ private final EdmEntitySet esAllKey = entityContainer.getEntitySet("ESAllKey");
+ private final EdmEntitySet esCompAllPrim = entityContainer.getEntitySet("ESCompAllPrim");
+ private final EdmEntitySet esCollAllPrim = entityContainer.getEntitySet("ESCollAllPrim");
+ private final EdmEntitySet esMixPrimCollComp = entityContainer.getEntitySet("ESMixPrimCollComp");
@Test
public void esAllPrimEntity() throws Exception {
final DataProvider dataProvider = new DataProvider();
- Entity first = dataProvider.readAll(esAllPrim).getEntities().get(2);
- Assert.assertEquals(16, first.getProperties().size());
+ final Entity entity = dataProvider.readAll(esAllPrim).getEntities().get(2);
+ Assert.assertEquals(16, entity.getProperties().size());
- UriParameter parameter = Mockito.mock(UriParameter.class);
- Mockito.when(parameter.getName()).thenReturn("PropertyInt16");
- Mockito.when(parameter.getText()).thenReturn("-0");
- Assert.assertEquals(first, dataProvider.read(esAllPrim, Arrays.asList(parameter)));
+ Assert.assertEquals(entity,
+ dataProvider.read(esAllPrim, Arrays.asList(mockParameter("PropertyInt16", "-0"))));
+ }
+
+ @Test
+ public void esAllKeyEntity() throws Exception {
+ final DataProvider dataProvider = new DataProvider();
+ final Entity entity = dataProvider.readAll(esAllKey).getEntities().get(0);
+ Assert.assertEquals(13, entity.getProperties().size());
+
+ Assert.assertEquals(entity, dataProvider.read(esAllKey, Arrays.asList(
+ mockParameter("PropertyBoolean", "true"),
+ mockParameter("PropertyByte", "255"),
+ mockParameter("PropertyDate", "2012-12-03"),
+ mockParameter("PropertyDateTimeOffset", "2012-12-03T07:16:23Z"),
+ mockParameter("PropertyDecimal", "34"),
+ mockParameter("PropertyDuration", "duration'PT6S'"),
+ mockParameter("PropertyGuid", "01234567-89AB-CDEF-0123-456789ABCDEF"),
+ mockParameter("PropertyInt16", "32767"),
+ mockParameter("PropertyInt32", "2147483647"),
+ mockParameter("PropertyInt64", "9223372036854775807"),
+ mockParameter("PropertySByte", "127"),
+ mockParameter("PropertyString", "'First'"),
+ mockParameter("PropertyTimeOfDay", "02:48:21"))));
}
@Test
@@ -114,7 +128,7 @@ public class DataProviderTest {
@Test
public void esMixPrimCollComp() throws Exception {
- EntitySet outSet = new DataProvider().readAll(esMixPrimCollAllPrim);
+ EntitySet outSet = new DataProvider().readAll(esMixPrimCollComp);
Assert.assertEquals(3, outSet.getEntities().size());
Assert.assertEquals(4, outSet.getEntities().get(0).getProperties().size());
@@ -134,4 +148,11 @@ public class DataProviderTest {
Assert.assertEquals(4, outSet.getEntities().get(1).getProperties().size());
Assert.assertEquals(4, outSet.getEntities().get(2).getProperties().size());
}
+
+ private static UriParameter mockParameter(final String name, final String text) {
+ UriParameter parameter = Mockito.mock(UriParameter.class);
+ Mockito.when(parameter.getName()).thenReturn(name);
+ Mockito.when(parameter.getText()).thenReturn(text);
+ return parameter;
+ }
}