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/09/01 14:45:04 UTC
[02/31] olingo-odata4 git commit: [OLINGO-659] Removed v4 from
package and class names
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
deleted file mode 100644
index dc2c246..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DeltaTestITCase.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.olingo.client.api.communication.request.retrieve.ODataDeltaRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.domain.ClientDelta;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class DeltaTestITCase extends AbstractTestITCase {
-
- private void parse(final ContentType format) {
- final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().getEntitySetRequest(
- client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Customers").build());
- req.setPrefer(client.newPreferences().trackChanges());
-
- final ClientEntitySet customers = req.execute().getBody();
- assertNotNull(customers);
- assertNotNull(customers.getDeltaLink());
-
- final ODataDeltaRequest deltaReq = client.getRetrieveRequestFactory().getDeltaRequest(customers.getDeltaLink());
- deltaReq.setFormat(format);
-
- final ClientDelta delta = deltaReq.execute().getBody();
- assertNotNull(delta);
-
- assertNotNull(delta.getDeltaLink());
- assertTrue(delta.getDeltaLink().isAbsolute());
- assertEquals(5, delta.getCount(), 0);
-
- assertEquals(1, delta.getDeletedEntities().size());
- assertTrue(delta.getDeletedEntities().get(0).getId().isAbsolute());
- assertTrue(delta.getDeletedEntities().get(0).getId().toASCIIString().endsWith("Customers('ANTON')"));
-
- assertEquals(1, delta.getAddedLinks().size());
- assertTrue(delta.getAddedLinks().get(0).getSource().isAbsolute());
- assertTrue(delta.getAddedLinks().get(0).getSource().toASCIIString().endsWith("Customers('BOTTM')"));
- assertEquals("Orders", delta.getAddedLinks().get(0).getRelationship());
-
- assertEquals(1, delta.getDeletedLinks().size());
- assertTrue(delta.getDeletedLinks().get(0).getSource().isAbsolute());
- assertTrue(delta.getDeletedLinks().get(0).getSource().toASCIIString().endsWith("Customers('ALFKI')"));
- assertEquals("Orders", delta.getDeletedLinks().get(0).getRelationship());
-
- assertEquals(2, delta.getEntities().size());
- ClientProperty property = delta.getEntities().get(0).getProperty("ContactName");
- assertNotNull(property);
- assertTrue(property.hasPrimitiveValue());
- property = delta.getEntities().get(1).getProperty("ShippingAddress");
- assertNotNull(property);
- assertTrue(property.hasComplexValue());
- }
-
- @Test
- public void atomParse() {
- parse(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonParse() {
- parse(ContentType.JSON);
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
deleted file mode 100644
index 47e71e0..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/DerivedTypeTestITCase.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import java.math.BigDecimal;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.domain.ClientComplexValue;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientValuable;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class DerivedTypeTestITCase extends AbstractTestITCase {
-
- private void read(final ContentType contentType) {
- // 1. entity set
- URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("People").
- appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.Customer");
- ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
- getEntitySetRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- for (ClientEntity customer : req.execute().getBody().getEntities()) {
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", customer.getTypeName().toString());
- }
-
- // 2. contained entity set
- uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Accounts").appendKeySegment(101).
- appendNavigationSegment("MyPaymentInstruments").
- appendDerivedEntityTypeSegment("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI");
- req = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- for (ClientEntity customer : req.execute().getBody().getEntities()) {
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CreditCardPI", customer.getTypeName().toString());
- }
- }
-
- @Test
- public void readfromAtom() {
- read(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void readfromJSON() {
- read(ContentType.JSON_FULL_METADATA);
- }
-
- private void createDelete(final ContentType conentType) {
- final ClientEntity customer = client.getObjectFactory().
- newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
-
- customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("PersonID",
- client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(976)));
- customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("FirstName",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
- customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("LastName",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test")));
-
- final ClientComplexValue homeAddress =
- client.getObjectFactory().newComplexValue("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress");
- homeAddress.add(client.getObjectFactory().newPrimitiveProperty("Street",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("V.le Gabriele D'Annunzio")));
- homeAddress.add(client.getObjectFactory().newPrimitiveProperty("City",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
- homeAddress.add(client.getObjectFactory().newPrimitiveProperty("PostalCode",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("65127")));
- homeAddress.add(client.getObjectFactory().newPrimitiveProperty("CompanyName",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("Tirasa")));
- customer.getProperties().add(client.getObjectFactory().newComplexProperty("HomeAddress", homeAddress));
-
- customer.getProperties().add(client.getObjectFactory().newCollectionProperty("Numbers",
- client.getObjectFactory().newCollectionValue("Edm.String")));
- customer.getProperties().add(client.getObjectFactory().newCollectionProperty("Emails",
- client.getObjectFactory().newCollectionValue("Edm.String")));
- customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("City",
- client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara")));
- final Calendar dateTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
- dateTime.set(1977, 8, 8, 0, 0, 0);
- customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Birthday",
- client.getObjectFactory().newPrimitiveValueBuilder().
- setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(dateTime).build()));
- customer.getProperties().add(client.getObjectFactory().newPrimitiveProperty("TimeBetweenLastTwoOrders",
- client.getObjectFactory().newPrimitiveValueBuilder().
- setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
-
- final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
- getEntityCreateRequest(
- client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People").build(),
- customer);
- createReq.setFormat(conentType);
-
- final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
- assertEquals(201, createRes.getStatusCode());
-
- final ODataEntityRequest<ClientEntity> fetchReq = client.getRetrieveRequestFactory().
- getEntityRequest(client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("People").appendKeySegment(976).build());
- fetchReq.setFormat(conentType);
-
- final ClientEntity actual = fetchReq.execute().getBody();
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", actual.getTypeName().toString());
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.CompanyAddress",
- ((ClientValuable) actual.getProperty("HomeAddress")).getValue().getTypeName());
-
- final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(actual.getEditLink());
- assertEquals(204, deleteReq.execute().getStatusCode());
- }
-
- @Test
- public void createDeleteAsAtom() {
- createDelete(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void createDeleteAsJSON() {
- createDelete(ContentType.JSON_FULL_METADATA);
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
deleted file mode 100644
index 7813966..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityCreateTestITCase.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-import java.util.Calendar;
-
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityCreateRequest;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class EntityCreateTestITCase extends AbstractTestITCase {
-
- @Test
- public void atomCreateAndDelete() {
- createAndDeleteOrder(testStaticServiceRootURL, ContentType.APPLICATION_ATOM_XML, 1000);
- }
-
- @Test
- public void jsonCreateAndDelete() {
- createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON, 1001);
- createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON_NO_METADATA, 1001);
- createAndDeleteOrder(testStaticServiceRootURL, ContentType.JSON_FULL_METADATA, 1001);
- }
-
- private void onContained(final ContentType contentType) {
- final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Accounts").
- appendKeySegment(101).appendNavigationSegment("MyPaymentInstruments").build();
-
- // 1. read contained collection before any operation
- ClientEntitySet instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
- assertNotNull(instruments);
- final int sizeBefore = instruments.getCount();
-
- // 2. instantiate an ODataEntity of the same type as the collection above
- final ClientEntity instrument = getClient().getObjectFactory().
- newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
-
- int id = RandomUtils.nextInt(101999, 105000);
- instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("PaymentInstrumentID",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
- instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("New one")));
- instrument.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("CreatedDate",
- getClient().getObjectFactory().newPrimitiveValueBuilder().
- setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build()));
-
- // 3. create it as contained entity
- final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
- getEntityCreateRequest(uri, instrument);
- req.setFormat(contentType);
-
- final ODataEntityCreateResponse<ClientEntity> res = req.execute();
- assertEquals(201, res.getStatusCode());
-
- // 4. verify that the contained collection effectively grew
- instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
- assertNotNull(instruments);
- final int sizeAfter = instruments.getCount();
- assertEquals(sizeBefore + 1, sizeAfter);
-
- // 5. remove the contained entity created above
- final ODataDeleteResponse deleteRes = getClient().getCUDRequestFactory().
- getDeleteRequest(getClient().newURIBuilder(uri.toASCIIString()).appendKeySegment(id).build()).execute();
- assertEquals(204, deleteRes.getStatusCode());
-
- // 6. verify that the contained collection effectively reduced
- instruments = getClient().getRetrieveRequestFactory().getEntitySetRequest(uri).execute().getBody();
- assertNotNull(instruments);
- final int sizeEnd = instruments.getCount();
- assertEquals(sizeBefore, sizeEnd);
- }
-
- @Test
- public void atomOnContained() {
- onContained(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonOnContained() {
- onContained(ContentType.JSON);
- }
-
- private void deepInsert(final ContentType contentType, final int productId, final int productDetailId)
- throws EdmPrimitiveTypeException {
-
- final ClientEntity product = getClient().getObjectFactory().
- newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Product"));
- product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
- product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Name",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("Latte")));
- product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityPerUnit",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("100g Bag")));
- product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("UnitPrice",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildSingle(3.24f)));
- product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("QuantityInStock",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(100)));
- product.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Discontinued",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));
- product.getProperties().add(getClient().getObjectFactory().newEnumProperty("UserAccess",
- getClient().getObjectFactory().
- newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.AccessLevel", "Execute")));
- product.getProperties().add(getClient().getObjectFactory().newEnumProperty("SkinColor",
- getClient().getObjectFactory().
- newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Blue")));
- product.getProperties().add(getClient().getObjectFactory().newCollectionProperty("CoverColors",
- getClient().getObjectFactory().
- newCollectionValue("Microsoft.Test.OData.Services.ODataWCFService.Color")));
- product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
- newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Green"));
- product.getProperty("CoverColors").getCollectionValue().add(getClient().getObjectFactory().
- newEnumValue("Microsoft.Test.OData.Services.ODataWCFService.Color", "Red"));
-
- final ClientEntity detail = getClient().getObjectFactory().
- newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.ProductDetail"));
- detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductID",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productId)));
- detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductDetailID",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(productDetailId)));
- detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ProductName",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("LatteHQ")));
- detail.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Description",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("High-Quality Milk")));
-
- final ClientEntitySet details = getClient().getObjectFactory().newEntitySet();
- details.getEntities().add(detail);
-
- final ClientInlineEntitySet inlineDetails = getClient().getObjectFactory().
- newDeepInsertEntitySet("Details", details);
- product.addLink(inlineDetails);
-
- final ODataEntityCreateRequest<ClientEntity> req = getClient().getCUDRequestFactory().getEntityCreateRequest(
- getClient().newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Products").build(), product);
- req.setFormat(contentType);
- final ODataEntityCreateResponse<ClientEntity> res = req.execute();
- assertEquals(201, res.getStatusCode());
-
- final ClientEntity createdProduct = res.getBody();
- assertEquals(productId,
- createdProduct.getProperty("ProductID").getPrimitiveValue().toCastValue(Integer.class), 0);
-
- final ClientLink createdLink = createdProduct.getNavigationLink("Details");
- assertNotNull(createdLink);
-
- final ClientEntitySet createdProductDetails =
- getClient().getRetrieveRequestFactory().getEntitySetRequest(createdLink.getLink()).execute().getBody();
- assertNotNull(createdProductDetails);
- assertEquals(productDetailId, createdProductDetails.getEntities().iterator().next().
- getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class), 0);
- }
-
- @Test
- public void atomDeepInsert() throws EdmPrimitiveTypeException {
- deepInsert(ContentType.APPLICATION_ATOM_XML, 10, 10);
- }
-
- @Test
- public void jsonDeepInsert() throws EdmPrimitiveTypeException {
- deepInsert(ContentType.JSON_FULL_METADATA, 11, 11);
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
deleted file mode 100644
index 53f8492..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.sql.Timestamp;
-import java.util.LinkedHashMap;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.EdmEnabledODataClient;
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
-import org.apache.olingo.client.api.communication.response.ODataRawResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientInlineEntity;
-import org.apache.olingo.client.api.domain.ClientInlineEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.client.api.domain.ClientLinkType;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Ignore;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check entity retrieve operations.
- */
-public class EntityRetrieveTestITCase extends AbstractTestITCase {
-
- private void withInlineEntity(final ODataClient client, final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company");
-
- final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
- getEntityRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
- final ClientEntity entity = res.getBody();
-
- assertNotNull(entity);
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
- assertTrue(entity.getProperty("Home").hasPrimitiveValue());
- assertEquals("Edm.GeographyPoint", entity.getProperty("Home").getPrimitiveValue().getTypeName());
-
- // In JSON with minimal metadata, links are not provided
- if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC)
- || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML)
- || (contentType.isCompatible(ContentType.JSON)
- && ContentType.VALUE_ODATA_METADATA_FULL
- .equals(contentType.getParameter(ContentType.PARAMETER_ODATA_METADATA)))) {
- assertEquals(testStaticServiceRootURL + "/Customers(1)", entity.getEditLink().toASCIIString());
- assertEquals(3, entity.getNavigationLinks().size());
-
- if (ContentType.APPLICATION_ATOM_XML == contentType) {
- assertTrue(entity.getAssociationLinks().isEmpty());
- // In JSON, association links for each $ref link will exist.
- }
-
- boolean found = false;
-
- for (ClientLink link : entity.getNavigationLinks()) {
- if (link instanceof ClientInlineEntity) {
- final ClientEntity inline = ((ClientInlineEntity) link).getEntity();
- assertNotNull(inline);
-
- final List<? extends ClientProperty> properties = inline.getProperties();
- assertEquals(5, properties.size());
-
- assertTrue(properties.get(0).getName().equals("CompanyID")
- || properties.get(1).getName().equals("CompanyID")
- || properties.get(2).getName().equals("CompanyID")
- || properties.get(3).getName().equals("CompanyID")
- || properties.get(4).getName().equals("CompanyID"));
- assertTrue(properties.get(0).getValue().toString().equals("0")
- || properties.get(1).getValue().toString().equals("0")
- || properties.get(2).getValue().toString().equals("0")
- || properties.get(3).getValue().toString().equals("0")
- || properties.get(4).getValue().toString().equals("0"));
-
- found = true;
- }
- }
-
- assertTrue(found);
- }
- }
-
- @Ignore
- @Test
- public void withInlineEntityFromAtom() {
- withInlineEntity(client, ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void withInlineEntityFromFullJSON() {
- withInlineEntity(client, ContentType.JSON_FULL_METADATA);
- }
-
- @Test
- public void withInlineEntityFromJSON() {
- withInlineEntity(edmClient, ContentType.JSON);
- }
-
- private void withInlineEntitySet(final ODataClient client, final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Customers").appendKeySegment(1).expand("Orders");
-
- final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().
- getEntityRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Customer", entity.getTypeName().toString());
-
- // In JSON with minimal metadata, links are not provided
- if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || contentType.equals(ContentType.JSON_FULL_METADATA)) {
- boolean found = false;
- for (ClientLink link : entity.getNavigationLinks()) {
- if (link instanceof ClientInlineEntitySet) {
- final ClientEntitySet inline = ((ClientInlineEntitySet) link).getEntitySet();
- assertNotNull(inline);
-
- found = true;
- }
- }
- assertTrue(found);
- }
- }
-
- @Ignore
- @Test
- public void withInlineEntitySetFromAtom() {
- withInlineEntitySet(client, ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void withInlineEntitySetFromFullJSON() {
- withInlineEntitySet(client, ContentType.JSON_FULL_METADATA);
- }
-
- @Test
- public void withInlineEntitySetFromJSON() {
- withInlineEntitySet(edmClient, ContentType.JSON);
- }
-
- private void rawRequest(final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("People").appendKeySegment(5);
-
- final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
- req.setFormat(contentType.toContentTypeString());
-
- final ODataRawResponse res = req.execute();
- assertNotNull(res);
-
- final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
- assertNull(entitySet);
-
- final ResWrap<ClientEntity> entity = res.getBodyAs(ClientEntity.class);
- assertTrue(entity.getPayload().getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/People(5)"));
- }
-
- @Test
- public void rawRequestAsAtom() {
- rawRequest(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void rawRequestAsJSON() {
- // this needs to be full, otherwise reference will not be provided
- rawRequest(ContentType.JSON_FULL_METADATA);
- }
-
- private void multiKey(final ContentType contentType) throws EdmPrimitiveTypeException {
- final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
- multiKey.put("ProductID", "6");
- multiKey.put("ProductDetailID", 1);
-
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("ProductDetails").appendKeySegment(multiKey);
-
- final ODataEntityRequest<ClientEntity> req =
- client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
- assertEquals(Integer.valueOf(1),
- entity.getProperty("ProductDetailID").getPrimitiveValue().toCastValue(Integer.class));
- }
-
- @Test
- public void multiKeyAsAtom() throws EdmPrimitiveTypeException {
- multiKey(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void multiKeyAsJSON() throws EdmPrimitiveTypeException {
- multiKey(ContentType.JSON_FULL_METADATA);
- }
-
- private void checkForETag(final ODataClient client, final ContentType contentType) {
- final URIBuilder uriBuilder =
- client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders").appendKeySegment(8);
-
- final ODataEntityRequest<ClientEntity> req =
- client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
- assertEquals(200, res.getStatusCode());
-
- final String etag = res.getETag();
- assertTrue(StringUtils.isNotBlank(etag));
-
- final ClientEntity order = res.getBody();
- assertEquals(etag, order.getETag());
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Order", order.getTypeName().toString());
- assertEquals("Edm.Int32", order.getProperty("OrderID").getPrimitiveValue().getTypeName());
- assertEquals("Edm.DateTimeOffset", order.getProperty("OrderDate").getPrimitiveValue().getTypeName());
- assertEquals("Edm.Duration", order.getProperty("ShelfLife").getPrimitiveValue().getTypeName());
- assertEquals("Collection(Edm.Duration)", order.getProperty("OrderShelfLifes").getCollectionValue().getTypeName());
- }
-
- @Test
- public void checkForETagAsAtom() {
- checkForETag(client, ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void checkForETagAsFullJSON() {
- checkForETag(client, ContentType.JSON_FULL_METADATA);
- }
-
- @Test
- public void checkForETagAsJSON() {
- checkForETag(edmClient, ContentType.JSON);
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void issue99() {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Orders");
-
- final ODataEntityRequest<ClientEntity> req =
- client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
- req.setFormat(ContentType.JSON);
-
- // this statement should cause an IllegalArgumentException bearing JsonParseException
- // since we are attempting to parse an EntitySet as if it was an Entity
- req.execute().getBody();
- }
-
- private void reference(final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Orders").appendKeySegment(8).appendNavigationSegment("CustomerForOrder").
- appendRefSegment();
-
- ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- ODataRetrieveResponse<ClientEntity> res = req.execute();
- assertNotNull(res);
-
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
- assertTrue(entity.getId().toASCIIString().endsWith("/StaticService/V40/Static.svc/Customers(PersonID=1)"));
-
- final URI referenceURI = client.newURIBuilder(testStaticServiceRootURL).
- appendEntityIdSegment(entity.getId().toASCIIString()).build();
-
- req = client.getRetrieveRequestFactory().getEntityRequest(referenceURI);
- req.setFormat(contentType);
-
- res = req.execute();
- assertNotNull(res);
- assertNotNull(res.getBody());
- }
-
- @Test
- public void atomReference() {
- reference(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonReference() {
- reference(ContentType.JSON_FULL_METADATA);
- }
-
- private void contained(final ODataClient client, final ContentType contentType) throws EdmPrimitiveTypeException {
- final URI uri = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Accounts").appendKeySegment(101).
- appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101902).build();
- final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
- req.setFormat(contentType);
-
- final ClientEntity contained = req.execute().getBody();
- assertNotNull(contained);
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", contained.getTypeName().toString());
- assertEquals(101902,
- contained.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
- assertEquals("Edm.DateTimeOffset", contained.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
- assertNotNull(contained.getProperty("CreatedDate").getPrimitiveValue().toCastValue(Timestamp.class));
- }
-
- @Test
- public void containedFromAtom() throws EdmPrimitiveTypeException {
- contained(client, ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void containedFromFullJSON() throws EdmPrimitiveTypeException {
- contained(client, ContentType.JSON_FULL_METADATA);
- }
-
- @Test
- public void containedFromJSON() throws EdmPrimitiveTypeException {
- contained(edmClient, ContentType.JSON);
- }
-
- private void entitySetNavigationLink(final ODataClient client, final ContentType contentType) {
- final URI uri = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Accounts").appendKeySegment(101).build();
- final ODataEntityRequest<ClientEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uri);
- req.setFormat(contentType);
-
- final ClientEntity entity = req.execute().getBody();
- assertNotNull(entity);
-
- // With JSON, entity set navigation links are only recognizable via Edm
- if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || client instanceof EdmEnabledODataClient) {
- assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
- assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
- }
- }
-
- @Test
- public void entitySetNavigationLinkFromAtom() {
- entitySetNavigationLink(client, ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void entitySetNavigationLinkFromJSON() {
- // only JSON_FULL_METADATA has links, only Edm can recognize entity set navigation
- entitySetNavigationLink(edmClient, ContentType.JSON_FULL_METADATA);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
deleted file mode 100644
index 64d425b..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntitySetTestITCase.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.URI;
-
-import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetIteratorRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataRawRequest;
-import org.apache.olingo.client.api.communication.response.ODataRawResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientEntitySetIterator;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check basic feed operations.
- */
-public class EntitySetTestITCase extends AbstractTestITCase {
-
- private void rawRequest(final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
- final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
- req.setFormat(contentType.toContentTypeString());
-
- final ODataRawResponse res = req.execute();
- assertNotNull(res);
-
- final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
- assertNotNull(entitySet.getPayload());
- assertTrue(entitySet.getContextURL().toASCIIString().endsWith("$metadata#People"));
- }
-
- @Test
- public void rawRequestAsAtom() throws IOException {
- rawRequest(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void rawRequestAsJSON() throws IOException {
- rawRequest(ContentType.JSON);
- }
-
- private void readWithInlineCount(final ODataClient client, final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("People").count(true);
-
- final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
- req.setFormat(contentType.toContentTypeString());
-
- final ODataRawResponse res = req.execute();
- assertNotNull(res);
-
- final ResWrap<ClientEntitySet> entitySet = res.getBodyAs(ClientEntitySet.class);
- assertEquals(5, entitySet.getPayload().getEntities().size());
-
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.Address",
- entitySet.getPayload().getEntities().get(2).getProperty("HomeAddress").getComplexValue().getTypeName());
- }
-
- @Test
- public void readWithInlineCountAsJSON() throws IOException {
- readWithInlineCount(edmClient, ContentType.JSON);
- }
-
- @Test
- public void readWithInlineCountAsFullJSON() throws IOException {
- readWithInlineCount(client, ContentType.JSON_FULL_METADATA);
- }
-
- @Test
- public void readWithInlineCountAsAtom() throws IOException {
- readWithInlineCount(client, ContentType.APPLICATION_ATOM_XML);
- }
-
- private void readODataEntitySetIterator(final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
- final ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> req =
- client.getRetrieveRequestFactory().getEntitySetIteratorRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- final ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> res = req.execute();
- final ClientEntitySetIterator<ClientEntitySet, ClientEntity> feedIterator = res.getBody();
-
- assertNotNull(feedIterator);
-
- int count = 0;
-
- while (feedIterator.hasNext()) {
- assertNotNull(feedIterator.next());
- count++;
- }
- assertEquals(5, count);
- assertTrue(feedIterator.getNext().toASCIIString().endsWith("People?$skiptoken=5"));
- }
-
- @Test
- public void readODataEntitySetIteratorFromAtom() {
- readODataEntitySetIterator(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void readODataEntitySetIteratorFromJSON() {
- readODataEntitySetIterator(ContentType.JSON);
- }
-
- @Test
- public void readODataEntitySetIteratorFromJSONFull() {
- readODataEntitySetIterator(ContentType.JSON_FULL_METADATA);
- }
-
- @Test
- public void readODataEntitySetIteratorFromJSONNo() {
- readODataEntitySetIterator(ContentType.JSON_NO_METADATA);
- }
-
- private void readWithNext(final ContentType format) {
- final URIBuilder uriBuilder = client.newURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("People");
-
- final ODataEntitySetRequest<ClientEntitySet> req = client.getRetrieveRequestFactory().
- getEntitySetRequest(uriBuilder.build());
- req.setFormat(format);
- req.setPrefer(client.newPreferences().maxPageSize(5));
-
- final ODataRetrieveResponse<ClientEntitySet> res = req.execute();
- final ClientEntitySet feed = res.getBody();
-
- assertNotNull(feed);
-
- assertEquals(5, feed.getEntities().size());
- assertNotNull(feed.getNext());
-
- final URI expected = URI.create(testStaticServiceRootURL + "/People?$skiptoken=5");
- final URI found = URIUtils.getURI(testStaticServiceRootURL, feed.getNext().toASCIIString());
-
- assertEquals(expected, found);
- }
-
- @Test
- public void readWithNextFromAtom() {
- readWithNext(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void readWithNextFromJSON() {
- readWithNext(ContentType.JSON_FULL_METADATA);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
deleted file mode 100644
index 8750348..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityUpdateTestITCase.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.TimeZone;
-import java.util.UUID;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.ODataReferenceAddingRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataReferenceAddingResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class EntityUpdateTestITCase extends AbstractTestITCase {
-
- private void upsert(final UpdateType updateType, final ContentType contentType) {
- final ClientEntity order = getClient().getObjectFactory().
- newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Order"));
-
- order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderID",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(9)));
- order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("OrderDate",
- getClient().getObjectFactory().newPrimitiveValueBuilder()
- .setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(
- Calendar.getInstance(TimeZone.getTimeZone("GMT"))).build()));
- order.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("ShelfLife",
- getClient().getObjectFactory().newPrimitiveValueBuilder().
- setType(EdmPrimitiveTypeKind.Duration).setValue(new BigDecimal("0.0000002")).build()));
-
- final URI upsertURI = getClient().newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Orders").appendKeySegment(9).build();
- final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
- getEntityUpdateRequest(upsertURI, updateType, order);
- req.setFormat(contentType);
-
- req.execute();
- try {
- final ClientEntity read = read(contentType, upsertURI);
- assertNotNull(read);
- assertEquals(order.getProperty("OrderID"), read.getProperty("OrderID"));
- assertEquals(order.getProperty("OrderDate").getPrimitiveValue().toString(),
- read.getProperty("OrderDate").getPrimitiveValue().toString());
- assertEquals(order.getProperty("ShelfLife").getPrimitiveValue().toString(),
- read.getProperty("ShelfLife").getPrimitiveValue().toString());
- } finally {
- getClient().getCUDRequestFactory().getDeleteRequest(upsertURI).execute();
- }
- }
-
- @Test
- @Ignore
- public void testUpateSingleValuedNavtiogationReference() throws Exception {
- URI targetURI =
- getClient().newURIBuilder(testStaticServiceRootURL)
- .appendEntitySetSegment("People")
- .appendKeySegment(1)
- .appendNavigationSegment("Parent")
- .build();
-
- URI reference = getClient().newURIBuilder(testStaticServiceRootURL)
- .appendEntitySetSegment("People")
- .appendKeySegment(0)
- .build();
-
- final ODataReferenceAddingRequest request =
- getClient().getCUDRequestFactory().getReferenceSingleChangeRequest(new URI(testStaticServiceRootURL),
- targetURI, reference);
-
- final ODataReferenceAddingResponse response = request.execute();
-
- assertEquals(204, response.getStatusCode());
- }
-
- @Test
- public void atomUpsert() {
- upsert(UpdateType.PATCH, ContentType.APPLICATION_ATOM_XML);
- upsert(UpdateType.REPLACE, ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonUpsert() {
- upsert(UpdateType.PATCH, ContentType.JSON);
- upsert(UpdateType.REPLACE, ContentType.JSON);
- }
-
- private void onContained(final ContentType contentType) {
- final String newName = UUID.randomUUID().toString();
- final ClientEntity changes = getClient().getObjectFactory().newEntity(
- new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument"));
- changes.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("FriendlyName",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString(newName)));
-
- final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Accounts").appendKeySegment(101).
- appendNavigationSegment("MyPaymentInstruments").appendKeySegment(101901).build();
- final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
- getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
- req.setFormat(contentType);
-
- final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
- assertEquals(204, res.getStatusCode());
-
- final ClientEntity actual = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
- assertNotNull(actual);
- assertEquals(newName, actual.getProperty("FriendlyName").getPrimitiveValue().toString());
- }
-
- @Test
- public void atomOnContained() {
- onContained(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonOnContained() {
- onContained(ContentType.JSON);
- }
-
- private void bindOperation(final ContentType contentType) throws EdmPrimitiveTypeException {
- final ClientEntity changes = getClient().getObjectFactory().newEntity(
- new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
- final ClientLink parent = getClient().getObjectFactory().newEntityNavigationLink("Parent",
- getClient().newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("People").appendKeySegment(1).build());
- changes.getNavigationLinks().add(parent);
-
- final URI uri = getClient().newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("People").appendKeySegment(5).build();
- final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
- getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
- req.setFormat(contentType);
-
- final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
- assertEquals(204, res.getStatusCode());
-
- final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
- assertNotNull(updated);
- final ClientLink updatedLink = updated.getNavigationLink("Parent");
- assertNotNull(updatedLink);
-
- final ClientEntity updatedEntity = getClient().getRetrieveRequestFactory().getEntityRequest(updatedLink.getLink()).
- execute().getBody();
- assertNotNull(updatedEntity);
- assertEquals(1, updatedEntity.getProperty("PersonID").getPrimitiveValue().toCastValue(Integer.class), 0);
- }
-
- @Test
- public void atomBindOperation() throws EdmPrimitiveTypeException {
- bindOperation(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonBindOperation() throws EdmPrimitiveTypeException {
- bindOperation(ContentType.JSON);
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
deleted file mode 100644
index b241ef6..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/ErrorResponseTestITCase.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.util.Map;
-
-import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.commons.api.ex.ODataError;
-import org.apache.olingo.commons.api.ex.ODataErrorDetail;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class ErrorResponseTestITCase extends AbstractTestITCase {
-
- @Test
- public void jsonError() {
- final URI readURI = getClient().newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Customers").appendKeySegment(32).
- build();
-
- try {
- read(ContentType.JSON, readURI);
- fail("should have got exception");
- } catch (Exception ex) {
- final ODataError err = ((ODataClientErrorException) ex).getODataError();
-
- // verify details
- final ODataErrorDetail detail = err.getDetails().get(0);
- assertEquals("Code should be correct", "301", detail.getCode());
- assertEquals("Target should be correct", "$search", detail.getTarget());
- assertEquals("Message should be correct", "$search query option not supported", detail.getMessage());
-
- // verify inner error dictionary
- final Map<String, String> innerErr = err.getInnerError();
- assertEquals("innerError dictionary size should be correct", 2, innerErr.size());
- assertEquals("innerError['context'] should be correct",
- "{\"key1\":\"for debug deployment only\"}", innerErr.get("context"));
- assertEquals("innerError['trace'] should be correct",
- "[\"callmethod1 etc\",\"callmethod2 etc\"]", innerErr.get("trace"));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
deleted file mode 100644
index f25cfd3..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/FilterFactoryTestITCase.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.uri.FilterArgFactory;
-import org.apache.olingo.client.api.uri.FilterFactory;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-public class FilterFactoryTestITCase extends AbstractTestITCase {
-
- private FilterFactory getFilterFactory() {
- return getClient().getFilterFactory();
- }
-
- private FilterArgFactory getFilterArgFactory() {
- return getFilterFactory().getArgFactory();
- }
-
- @Test
- public void crossjoin() {
- final URIFilter filter = getFilterFactory().eq(
- getFilterArgFactory().property("Orders/OrderID"), getFilterArgFactory().property("Customers/Order"));
-
- final URIBuilder uriBuilder =
- client.newURIBuilder(testStaticServiceRootURL).appendCrossjoinSegment("Customers", "Orders").filter(filter);
-
- final ODataEntitySetRequest<ClientEntitySet> req =
- client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build());
- req.setFormat(ContentType.JSON_FULL_METADATA);
-
- final ClientEntitySet feed = req.execute().getBody();
- assertEquals(3, feed.getEntities().size());
-
- for (ClientEntity entity : feed.getEntities()) {
- assertEquals(2, entity.getNavigationLinks().size());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
deleted file mode 100644
index f738ed4..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/JSONFormatConformanceTestITCase.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.math.BigDecimal;
-import java.net.URI;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientAnnotation;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientEntitySet;
-import org.apache.olingo.client.api.domain.ClientLink;
-import org.apache.olingo.client.api.domain.ClientLinkType;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.commons.api.data.Entity;
-import org.apache.olingo.commons.api.data.EntityCollection;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.Test;
-
-/**
- * The test cases in this class are inspired by client conformance criteria defined in the <a
- * href="http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html#_Toc372793094">specs
- * </a>.
- */
-public class JSONFormatConformanceTestITCase extends AbstractTestITCase {
-
- /**
- * MUST either:
- * <ol>
- * <li>understand <tt>odata.metadata=minimal</tt> (section 3.1.1) or</li>
- * <li>explicitly specify <tt>odata.metadata=none</tt>(section 3.1.3) or <tt>odata.metadata=full</tt> (section 3.1.2)
- * in the request (client)</li>
- * </ol>
- * .
- */
- @Test
- public void item1() throws EdmPrimitiveTypeException {
- final URI uri = edmClient.newURIBuilder().
- appendEntitySetSegment("Accounts").appendKeySegment(102).
- appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
- final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
-
- // request format (via Accept header) is set to minimal by default
- assertEquals("application/json;odata.metadata=minimal", req.getAccept());
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
-
- // response is odata.metadata=minimal
- assertFalse(res.getContentType().contains("odata.metadata=none"));
- assertFalse(res.getContentType().contains("odata.metadata=full"));
-
- // response payload is understood
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
- assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
- assertEquals("Edm.DateTimeOffset", entity.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
- }
-
- /**
- * MUST be prepared to consume a response with full metadata.
- */
- @Test
- public void item2() {
- final URI uri = edmClient.newURIBuilder(testStaticServiceRootURL).
- appendEntitySetSegment("Accounts").appendKeySegment(102).build();
- final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
- req.setFormat(ContentType.JSON_FULL_METADATA);
-
- // request format (via Accept header) is set to full metadata
- assertEquals("application/json;odata.metadata=full", req.getAccept());
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
-
- // response is odata.metadata=full
- assertTrue(res.getContentType().contains("odata.metadata=full"));
-
- // response payload is understood (including links, only returned with full metadata)
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
- assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("MyPaymentInstruments").getType());
- assertEquals(ClientLinkType.ENTITY_SET_NAVIGATION, entity.getNavigationLink("ActiveSubscriptions").getType());
- }
-
- /**
- * MUST be prepared to receive all data types (section 7.1)
- * <ol>
- * <li>defined in this specification (client)</li>
- * <li>exposed by the service (service)</li>
- * </ol>
- * .
- */
- @Test
- public void item3() throws Exception {
- final String fromSection71 = "{"
- + "\"NullValue\": null,"
- + "\"TrueValue\": true,"
- + "\"FalseValue\": false,"
- + "\"BinaryValue@odata.type\": \"Binary\","
- + "\"BinaryValue\": \"T0RhdGE\","
- + "\"IntegerValue\": -128,"
- + "\"DoubleValue\": 3.1415926535897931,"
- + "\"SingleValue@odata.type\": \"Single\","
- + "\"SingleValue\": \"INF\","
- + "\"DecimalValue@odata.type\": \"Decimal\","
- + "\"DecimalValue\": 34.95,"
- + "\"StringValue\": \"Say \\\"Hello\\\",\\nthen go\","
- + "\"DateValue@odata.type\": \"Date\","
- + "\"DateValue\": \"2012-12-03\","
- + "\"DateTimeOffsetValue@odata.type\": \"DateTimeOffset\","
- + "\"DateTimeOffsetValue\": \"2012-12-03T07:16:23Z\","
- + "\"DurationValue@odata.type\": \"Duration\","
- + "\"DurationValue\": \"P12DT23H59M59.999999999999S\","
- + "\"TimeOfDayValue@odata.type\": \"TimeOfDay\","
- + "\"TimeOfDayValue\": \"07:59:59.999\","
- + "\"GuidValue@odata.type\": \"Guid\","
- + "\"GuidValue\": \"01234567-89ab-cdef-0123-456789abcdef\","
- + "\"Int64Value@odata.type\": \"Int64\","
- + "\"Int64Value\": 0,"
- + "\"ColorEnumValue@odata.type\": \"Test.Color\","
- + "\"ColorEnumValue\": \"Yellow\","
- + "\"GeographyPoint\": {\"type\": \"Point\",\"coordinates\":[142.1,64.1]}"
- + "}";
-
- final ClientEntity entity = client.getReader().readEntity(IOUtils.toInputStream(fromSection71), ContentType.JSON);
-
- assertTrue(entity.getProperty("NullValue").hasNullValue());
-
- assertEquals(EdmPrimitiveTypeKind.Boolean, entity.getProperty("TrueValue").getPrimitiveValue().getTypeKind());
- assertEquals(Boolean.TRUE, entity.getProperty("TrueValue").getPrimitiveValue().toCastValue(Boolean.class));
-
- assertEquals(EdmPrimitiveTypeKind.Boolean, entity.getProperty("FalseValue").getPrimitiveValue().getTypeKind());
- assertEquals(Boolean.FALSE, entity.getProperty("FalseValue").getPrimitiveValue().toCastValue(Boolean.class));
-
- assertEquals(EdmPrimitiveTypeKind.Binary, entity.getProperty("BinaryValue").getPrimitiveValue().getTypeKind());
-
- assertEquals(EdmPrimitiveTypeKind.Int32, entity.getProperty("IntegerValue").getPrimitiveValue().getTypeKind());
- assertEquals(-128, entity.getProperty("IntegerValue").getPrimitiveValue().toCastValue(Integer.class), 0);
-
- assertEquals(EdmPrimitiveTypeKind.Double, entity.getProperty("DoubleValue").getPrimitiveValue().getTypeKind());
- assertEquals(3.1415926535897931,
- entity.getProperty("DoubleValue").getPrimitiveValue().toCastValue(Double.class), 0);
-
- assertEquals(EdmPrimitiveTypeKind.Single, entity.getProperty("SingleValue").getPrimitiveValue().getTypeKind());
- assertEquals(Float.POSITIVE_INFINITY,
- entity.getProperty("SingleValue").getPrimitiveValue().toCastValue(Float.class), 0);
-
- assertEquals(EdmPrimitiveTypeKind.Decimal, entity.getProperty("DecimalValue").getPrimitiveValue().getTypeKind());
- assertEquals(BigDecimal.valueOf(34.95),
- entity.getProperty("DecimalValue").getPrimitiveValue().toCastValue(BigDecimal.class));
-
- assertEquals(EdmPrimitiveTypeKind.String, entity.getProperty("StringValue").getPrimitiveValue().getTypeKind());
- assertEquals("Say \"Hello\",\nthen go",
- entity.getProperty("StringValue").getPrimitiveValue().toCastValue(String.class));
-
- assertEquals(EdmPrimitiveTypeKind.Date, entity.getProperty("DateValue").getPrimitiveValue().getTypeKind());
-
- assertEquals(EdmPrimitiveTypeKind.DateTimeOffset,
- entity.getProperty("DateTimeOffsetValue").getPrimitiveValue().getTypeKind());
-
- assertEquals(EdmPrimitiveTypeKind.Duration, entity.getProperty("DurationValue").getPrimitiveValue().getTypeKind());
-
- assertEquals(EdmPrimitiveTypeKind.TimeOfDay,
- entity.getProperty("TimeOfDayValue").getPrimitiveValue().getTypeKind());
-
- assertEquals(EdmPrimitiveTypeKind.Guid, entity.getProperty("GuidValue").getPrimitiveValue().getTypeKind());
-
- assertEquals(EdmPrimitiveTypeKind.Int64, entity.getProperty("Int64Value").getPrimitiveValue().getTypeKind());
-
- assertTrue(entity.getProperty("ColorEnumValue").hasEnumValue());
-
- assertEquals(EdmPrimitiveTypeKind.GeographyPoint,
- entity.getProperty("GeographyPoint").getPrimitiveValue().getTypeKind());
- }
-
- /**
- * MUST interpret all odata annotations defined according to the OData-Version header of the payload (section 4.5).
- */
- @Test
- public void item4() throws Exception {
- final String fromSection45_1 = "{"
- + "\"@odata.context\": \"http://host/service/$metadata#Customers/$entity\","
- + "\"@odata.metadataEtag\": \"W/\\\"A1FF3E230954908F\\\"\","
- + "\"@odata.etag\": \"W/\\\"A1FF3E230954908G\\\"\","
- + "\"@odata.type\": \"#Model.VipCustomer\","
- + "\"@odata.id\": \"http://host/service/Employees(PersonID=3)\","
- + "\"@odata.editLink\": \"People(976)\","
- + "\"@odata.mediaEditLink\": \"Employees(1)/$value\","
- + "\"@odata.mediaContentType\": \"image/jpeg\","
- + "\"@odata.mediaEtag\": \"W/\\\"A1FF3E230954908H\\\"\","
- + "\"Parent@odata.navigationLink\": \"People(976)/Parent\","
- + "\"Parent@odata.associationLink\": \"People(976)/Parent\""
- + "}";
-
- final ResWrap<Entity> entity =
- client.getDeserializer(ContentType.JSON).toEntity(IOUtils.toInputStream(fromSection45_1));
-
- assertEquals("http://host/service/$metadata#Customers/$entity", entity.getContextURL().toASCIIString());
- assertEquals("W/\"A1FF3E230954908F\"", entity.getMetadataETag());
- assertEquals("W/\"A1FF3E230954908G\"", entity.getPayload().getETag());
- assertEquals("Model.VipCustomer", entity.getPayload().getType());
- assertEquals("http://host/service/Employees(PersonID=3)", entity.getPayload().getId().toASCIIString());
- assertEquals("People(976)", entity.getPayload().getEditLink().getHref());
- assertEquals("Employees(1)/$value", entity.getPayload().getMediaContentSource().toASCIIString());
- assertEquals("image/jpeg", entity.getPayload().getMediaContentType());
- assertEquals("W/\"A1FF3E230954908H\"", entity.getPayload().getMediaETag());
- assertEquals("People(976)/Parent", entity.getPayload().getNavigationLink("Parent").getHref());
- assertEquals("People(976)/Parent", entity.getPayload().getAssociationLink("Parent").getHref());
-
- final String fromSection45_2 = "{"
- + " \"@odata.count\": 5,"
- + " \"value\": [],"
- + " \"@odata.nextLink\": \"Customers?$expand=Orders&$skipToken=5\","
- + " \"@odata.deltaLink\": \"Customers?$expand=Orders&$deltatoken=8015\""
- + "}";
-
- final ResWrap<EntityCollection> entitySet =
- client.getDeserializer(ContentType.JSON).toEntitySet(IOUtils.toInputStream(fromSection45_2));
-
- assertEquals(5, entitySet.getPayload().getCount(), 0);
- assertEquals("Customers?$expand=Orders&$skipToken=5", entitySet.getPayload().getNext().toASCIIString());
- assertEquals("Customers?$expand=Orders&$deltatoken=8015", entitySet.getPayload().getDeltaLink().toASCIIString());
- }
-
- /**
- * MUST be prepared to receive any annotations, including custom annotations and <tt>odata</tt> annotations not
- * defined in the <tt>OData-Version</tt> header of the payload (section 20).
- */
- @Test
- public void item5() throws Exception {
- final String sample = "{"
- + " \"@odata.context\": \"http://host/service/$metadata#Customers\","
- + " \"@odata.notdefined\": 11,"
- + " \"@com.contoso.customer.setkind\": \"VIPs\","
- + " \"value\": ["
- + " {"
- + " \"@com.contoso.display.highlight\": true,"
- + " \"ID\": \"ALFKI\","
- + " \"CompanyName@com.contoso.display.style\": { \"title\": true, \"order\": 1 },"
- + " \"CompanyName\": \"Alfreds Futterkiste\","
- + " \"Orders@com.contoso.display.style\": { \"order\": 2 },"
- + " \"Orders@odata.navigationLink\": \"People(976)/Orders\""
- + " }"
- + " ]"
- + "}";
-
- final ClientEntitySet entitySet = client.getReader().
- readEntitySet(IOUtils.toInputStream(sample), ContentType.JSON);
-
- assertEquals(2, entitySet.getAnnotations().size());
-
- final ClientAnnotation notdefined = entitySet.getAnnotations().get(0);
- assertEquals("odata.notdefined", notdefined.getTerm());
- assertEquals(11, notdefined.getPrimitiveValue().toCastValue(Integer.class), 0);
-
- final ClientAnnotation setkind = entitySet.getAnnotations().get(1);
- assertEquals("com.contoso.customer.setkind", setkind.getTerm());
- assertEquals("VIPs", setkind.getPrimitiveValue().toCastValue(String.class));
-
- final ClientEntity entity = entitySet.getEntities().get(0);
- assertEquals(1, entity.getAnnotations().size());
-
- final ClientAnnotation highlight = entity.getAnnotations().get(0);
- assertEquals("com.contoso.display.highlight", highlight.getTerm());
- assertEquals(Boolean.TRUE, highlight.getPrimitiveValue().toCastValue(Boolean.class));
-
- final ClientProperty property = entity.getProperty("CompanyName");
- assertEquals(1, property.getAnnotations().size());
-
- final ClientAnnotation style = property.getAnnotations().get(0);
- assertEquals("com.contoso.display.style", style.getTerm());
- assertTrue(style.hasComplexValue());
- assertEquals(Boolean.TRUE, style.getComplexValue().get("title").getPrimitiveValue().toCastValue(Boolean.class));
- assertEquals(1, style.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
-
- final ClientLink orders = entity.getNavigationLink("Orders");
- assertEquals(1, orders.getAnnotations().size());
-
- final ClientAnnotation style2 = orders.getAnnotations().get(0);
- assertEquals("com.contoso.display.style", style2.getTerm());
- assertTrue(style2.hasComplexValue());
- assertEquals(2, style2.getComplexValue().get("order").getPrimitiveValue().toCastValue(Integer.class), 0);
- }
-
- /**
- * MUST NOT require <tt>odata.streaming=true</tt> in the <tt>Content-Type</tt> header (section 4.4).
- */
- @Test
- public void item6() throws EdmPrimitiveTypeException {
- final URI uri = edmClient.newURIBuilder().
- appendEntitySetSegment("Accounts").appendKeySegment(102).
- appendNavigationSegment("MyPaymentInstruments").appendKeySegment(102902).build();
- final ODataEntityRequest<ClientEntity> req = edmClient.getRetrieveRequestFactory().getEntityRequest(uri);
-
- // request format (via Accept header) does not contain odata.streaming=true
- assertEquals("application/json;odata.metadata=minimal", req.getAccept());
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
-
- // response payload is understood
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
- assertEquals("Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument", entity.getTypeName().toString());
- assertEquals(102902, entity.getProperty("PaymentInstrumentID").getPrimitiveValue().toCastValue(Integer.class), 0);
- assertEquals("Edm.DateTimeOffset", entity.getProperty("CreatedDate").getPrimitiveValue().getTypeName());
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/78a9539e/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
deleted file mode 100644
index 54206fb..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/v4/KeyAsSegmentTestITCase.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.fit.v4;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.domain.ClientEntity;
-import org.apache.olingo.client.api.domain.ClientProperty;
-import org.apache.olingo.client.api.uri.URIBuilder;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ContentType;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class KeyAsSegmentTestITCase extends AbstractTestITCase {
-
- @BeforeClass
- public static void enableKeyAsSegment() {
- client.getConfiguration().setKeyAsSegment(true);
- }
-
- @AfterClass
- public static void disableKeyAsSegment() {
- client.getConfiguration().setKeyAsSegment(false);
- }
-
- private void read(final ContentType contentType) {
- final URIBuilder uriBuilder = client.newURIBuilder(testKeyAsSegmentServiceRootURL).
- appendEntitySetSegment("Accounts").appendKeySegment(101);
-
- final ODataEntityRequest<ClientEntity> req =
- client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
- req.setFormat(contentType);
-
- final ODataRetrieveResponse<ClientEntity> res = req.execute();
- final ClientEntity entity = res.getBody();
- assertNotNull(entity);
-
- // In JSON with minimal metadata, links are not provided
- if (contentType.equals(ContentType.APPLICATION_ATOM_XML) || contentType.equals(ContentType.JSON_FULL_METADATA)) {
- assertFalse(entity.getEditLink().toASCIIString().contains("("));
- assertFalse(entity.getEditLink().toASCIIString().contains(")"));
- }
- }
-
- @Test
- public void atomRead() {
- read(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonRead() {
- read(ContentType.JSON);
- }
-
- @Test
- public void atomCreateAndDelete() {
- createAndDeleteOrder(testKeyAsSegmentServiceRootURL, ContentType.APPLICATION_ATOM_XML, 1000);
- }
-
- @Test
- public void jsonCreateAndDelete() {
- createAndDeleteOrder(testKeyAsSegmentServiceRootURL, ContentType.JSON_FULL_METADATA, 1001);
- }
-
- private void update(final ContentType contentType) {
- final ClientEntity changes = getClient().getObjectFactory().newEntity(
- new FullQualifiedName("Microsoft.Test.OData.Services.ODataWCFService.Customer"));
- final ClientProperty middleName = getClient().getObjectFactory().newPrimitiveProperty("MiddleName",
- getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("middle"));
- changes.getProperties().add(middleName);
-
- final URI uri = getClient().newURIBuilder(testKeyAsSegmentServiceRootURL).
- appendEntitySetSegment("People").appendKeySegment(5).build();
- final ODataEntityUpdateRequest<ClientEntity> req = getClient().getCUDRequestFactory().
- getEntityUpdateRequest(uri, UpdateType.PATCH, changes);
- req.setFormat(contentType);
-
- final ODataEntityUpdateResponse<ClientEntity> res = req.execute();
- assertEquals(204, res.getStatusCode());
-
- final ClientEntity updated = getClient().getRetrieveRequestFactory().getEntityRequest(uri).execute().getBody();
- assertNotNull(updated);
- assertFalse(updated.getEditLink().toASCIIString().contains("("));
- assertFalse(updated.getEditLink().toASCIIString().contains(")"));
-
- final ClientProperty updatedMiddleName = updated.getProperty("MiddleName");
- assertNotNull(updatedMiddleName);
- assertEquals("middle", updatedMiddleName.getPrimitiveValue().toString());
- }
-
- @Test
- public void atomUpdate() {
- update(ContentType.APPLICATION_ATOM_XML);
- }
-
- @Test
- public void jsonUpdate() {
- update(ContentType.JSON);
- }
-}