You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/04/29 11:51:49 UTC

[05/11] [OLINGO-236] Refactor complete

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
deleted file mode 100644
index f57b443..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityCreateTestITCase.java
+++ /dev/null
@@ -1,484 +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.client.core.it.v3;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.Set;
-import org.apache.http.entity.ContentType;
-import org.apache.olingo.client.api.communication.header.HeaderName;
-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.cud.v3.UpdateType;
-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.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-import org.apache.olingo.client.api.http.NoContentException;
-import org.apache.olingo.client.api.uri.v3.URIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.v3.ODataProperty;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-
-import org.junit.Test;
-
-/**
- * This is the unit test class to check create entity operations.
- */
-public class EntityCreateTestITCase extends AbstractTestITCase {
-
-  protected String getServiceRoot() {
-    return testStaticServiceRootURL;
-  }
-
-  @Test
-  public void createAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final int id = 1;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    createEntity(getServiceRoot(), format, original, "Customer");
-    final ODataEntity actual = compareEntities(getServiceRoot(), format, original, id, null);
-
-    cleanAfterCreate(format, actual, false, getServiceRoot());
-  }
-
-  @Test
-  public void createAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final int id = 2;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    createEntity(getServiceRoot(), format, original, "Customer");
-    final ODataEntity actual = compareEntities(getServiceRoot(), format, original, id, null);
-
-    cleanAfterCreate(format, actual, false, getServiceRoot());
-  }
-
-  @Test
-  public void createWithInlineAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final int id = 3;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", true);
-
-    createEntity(getServiceRoot(), format, original, "Customer");
-    final ODataEntity actual =
-            compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
-
-    cleanAfterCreate(format, actual, true, getServiceRoot());
-  }
-
-  @Test
-  public void createWithInlineAsJSON() {
-    // this needs to be full, otherwise there is no mean to recognize links
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final int id = 4;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", true);
-
-    createEntity(getServiceRoot(), format, original, "Customer");
-    final ODataEntity actual =
-            compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
-
-    cleanAfterCreate(format, actual, true, getServiceRoot());
-  }
-
-  @Test
-  public void createInlineWithoutLinkAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final int id = 5;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    original.addLink(client.getObjectFactory().newDeepInsertEntity(
-            "Info", getSampleCustomerInfo(id, "Sample Customer_Info")));
-
-    createEntity(getServiceRoot(), format, original, "Customer");
-    final ODataEntity actual =
-            compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
-
-    boolean found = false;
-
-    for (ODataLink link : actual.getNavigationLinks()) {
-      assertNotNull(link.getLink());
-      if (link.getLink().toASCIIString().endsWith("Customer(" + id + ")/Info")) {
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-
-    cleanAfterCreate(format, actual, true, getServiceRoot());
-  }
-
-  @Test
-  public void createInlineWithoutLinkAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final int id = 6;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    original.addLink(client.getObjectFactory().newDeepInsertEntity(
-            "Info", getSampleCustomerInfo(id, "Sample Customer_Info")));
-
-    createEntity(getServiceRoot(), format, original, "Customer");
-    final ODataEntity actual =
-            compareEntities(getServiceRoot(), format, original, id, Collections.<String>singleton("Info"));
-
-    boolean found = false;
-
-    for (ODataLink link : actual.getNavigationLinks()) {
-      assertNotNull(link.getLink());
-      if (link.getLink().toASCIIString().endsWith("Customer(" + id + ")/Info")) {
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-
-    cleanAfterCreate(format, actual, true, getServiceRoot());
-  }
-
-  @Test
-  public void createWithNavigationAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity actual = createWithNavigationLink(format, 5);
-    cleanAfterCreate(format, actual, false, getServiceRoot());
-  }
-
-  @Test
-  public void createWithNavigationAsJSON() {
-    // this needs to be full, otherwise there is no mean to recognize links
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity actual = createWithNavigationLink(format, 6);
-    cleanAfterCreate(format, actual, false, getServiceRoot());
-  }
-
-  @Test
-  public void createWithFeedNavigationAsAtom() throws EdmPrimitiveTypeException {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity actual = createWithFeedNavigationLink(format, 7);
-    cleanAfterCreate(format, actual, false, getServiceRoot());
-  }
-
-  @Test
-  public void createWithFeedNavigationAsJSON() throws EdmPrimitiveTypeException {
-    // this needs to be full, otherwise there is no mean to recognize links
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity actual = createWithFeedNavigationLink(format, 8);
-    cleanAfterCreate(format, actual, false, getServiceRoot());
-  }
-
-  @Test
-  public void createWithBackNavigationAsAtom() throws EdmPrimitiveTypeException {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity actual = createWithBackNavigationLink(format, 9);
-    cleanAfterCreate(format, actual, true, getServiceRoot());
-  }
-
-  @Test
-  public void createWithBackNavigationAsJSON() throws EdmPrimitiveTypeException {
-    // this needs to be full, otherwise there is no mean to recognize links
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity actual = createWithBackNavigationLink(format, 10);
-    cleanAfterCreate(format, actual, true, getServiceRoot());
-  }
-
-  @Test
-  public void multiKeyAsAtom() {
-    multiKey(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void multiKeyAsJSON() {
-    multiKey(ODataPubFormat.JSON);
-  }
-
-  @Test
-  public void createReturnNoContent() {
-    final int id = 1;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    final ODataEntityCreateRequest<ODataEntity> createReq = client.getCUDRequestFactory().getEntityCreateRequest(
-            client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer").build(), original);
-    createReq.setPrefer(client.newPreferences().returnNoContent());
-
-    final ODataEntityCreateResponse<ODataEntity> createRes = createReq.execute();
-    assertEquals(204, createRes.getStatusCode());
-    assertEquals(client.newPreferences().returnNoContent(),
-            createRes.getHeader(HeaderName.preferenceApplied).iterator().next());
-
-    try {
-      createRes.getBody();
-      fail();
-    } catch (NoContentException e) {
-      assertNotNull(e);
-    }
-
-    final ODataDeleteResponse deleteRes = client.getCUDRequestFactory().getDeleteRequest(
-            client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer").appendKeySegment(id).build()).
-            execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-
-  @Test
-  public void issue135() {
-    final int id = 2;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer for issue 135", false);
-
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer");
-    final ODataEntityCreateRequest<ODataEntity> createReq =
-            client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), original);
-    createReq.setFormat(ODataPubFormat.JSON_FULL_METADATA);
-    createReq.setContentType(ContentType.APPLICATION_ATOM_XML.getMimeType());
-    createReq.setPrefer(client.newPreferences().returnContent());
-
-    try {
-      final ODataEntityCreateResponse createRes = createReq.execute();
-      assertEquals(201, createRes.getStatusCode());
-    } catch (Exception e) {
-      fail(e.getMessage());
-    } finally {
-      final ODataDeleteResponse deleteRes = client.getCUDRequestFactory().getDeleteRequest(
-              client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Customer").appendKeySegment(id).
-              build()).
-              execute();
-      assertEquals(204, deleteRes.getStatusCode());
-    }
-  }
-
-  private ODataEntity createWithFeedNavigationLink(final ODataPubFormat format, final int id)
-          throws EdmPrimitiveTypeException {
-
-    final String sampleName = "Sample customer";
-    final ODataEntity original = getSampleCustomerProfile(id, sampleName, false);
-
-    final Set<Integer> keys = new HashSet<Integer>();
-    keys.add(-100);
-    keys.add(-101);
-
-    for (Integer key : keys) {
-      final ODataEntity order = client.getObjectFactory().
-              newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.AstoriaDefaultService.Order"));
-
-      order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("OrderId",
-              client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(key)));
-      order.getProperties().add(client.getObjectFactory().newPrimitiveProperty("CustomerId",
-              client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-
-      final ODataEntityCreateRequest<ODataEntity> createReq = client.getCUDRequestFactory().getEntityCreateRequest(
-              client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Order").build(), order);
-      createReq.setFormat(format);
-
-      original.addLink(client.getObjectFactory().newEntitySetNavigationLink(
-              "Orders",
-              createReq.execute().getBody().getEditLink()));
-    }
-
-    final ODataEntity created = createEntity(getServiceRoot(), format, original, "Customer");
-    // now, compare the created one with the actual one and go deeply into the associated customer info.....
-    final ODataEntity actual = compareEntities(getServiceRoot(), format, created, id, null);
-
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
-    uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Orders");
-
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
-            getEntitySetRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-
-    final ODataEntitySet entitySet = res.getBody();
-    assertNotNull(entitySet);
-    assertEquals(2, entitySet.getCount());
-
-    for (ODataEntity entity : entitySet.getEntities()) {
-      final Integer key = entity.getProperty("OrderId").getPrimitiveValue().toCastValue(Integer.class);
-      final Integer customerId = entity.getProperty("CustomerId").getPrimitiveValue().toCastValue(Integer.class);
-      assertTrue(keys.contains(key));
-      assertEquals(Integer.valueOf(id), customerId);
-      keys.remove(key);
-
-      final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(
-              URIUtils.getURI(getServiceRoot(), entity.getEditLink().toASCIIString()));
-
-      deleteReq.setFormat(format);
-      assertEquals(204, deleteReq.execute().getStatusCode());
-    }
-
-    return actual;
-  }
-
-  private ODataEntity createWithNavigationLink(final ODataPubFormat format, final int id) {
-    final String sampleName = "Sample customer";
-
-    final ODataEntity original = getSampleCustomerProfile(id, sampleName, false);
-    original.addLink(client.getObjectFactory().newEntityNavigationLink(
-            "Info", URI.create(getServiceRoot() + "/CustomerInfo(12)")));
-
-    final ODataEntity created = createEntity(getServiceRoot(), format, original, "Customer");
-    // now, compare the created one with the actual one and go deeply into the associated customer info.....
-    final ODataEntity actual = compareEntities(getServiceRoot(), format, created, id, null);
-
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
-    uriBuilder.appendEntitySetSegment("Customer").appendKeySegment(id).appendEntitySetSegment("Info");
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-
-    final ODataEntity info = res.getBody();
-    assertNotNull(info);
-
-    boolean found = false;
-
-    for (ODataProperty prop : info.getProperties()) {
-      if ("CustomerInfoId".equals(prop.getName())) {
-        assertEquals("12", prop.getValue().toString());
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-
-    return actual;
-  }
-
-  private ODataEntity createWithBackNavigationLink(final ODataPubFormat format, final int id)
-          throws EdmPrimitiveTypeException {
-
-    final String sampleName = "Sample customer";
-
-    ODataEntity customer = getSampleCustomerProfile(id, sampleName, false);
-    customer = createEntity(getServiceRoot(), format, customer, "Customer");
-
-    ODataEntity order = client.getObjectFactory().newEntity(new FullQualifiedName(
-            "Microsoft.Test.OData.Services.AstoriaDefaultService.Order"));
-    getClient().getBinder().add(order,
-            client.getObjectFactory().newPrimitiveProperty("CustomerId",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-    getClient().getBinder().add(order,
-            client.getObjectFactory().newPrimitiveProperty("OrderId",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(id)));
-
-    order.addLink(client.getObjectFactory().newEntityNavigationLink(
-            "Customer", URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString())));
-
-    order = createEntity(getServiceRoot(), format, order, "Order");
-
-    final ODataEntity changes = client.getObjectFactory().newEntity(new FullQualifiedName(
-            "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"));
-    changes.setEditLink(customer.getEditLink());
-    changes.addLink(client.getObjectFactory().newEntitySetNavigationLink(
-            "Orders", URIUtils.getURI(getServiceRoot(), order.getEditLink().toASCIIString())));
-    update(UpdateType.PATCH, changes, format, null);
-
-    final ODataEntityRequest<ODataEntity> customerreq = client.getRetrieveRequestFactory().getEntityRequest(
-            URIUtils.getURI(getServiceRoot(), order.getEditLink().toASCIIString() + "/Customer"));
-    customerreq.setFormat(format);
-
-    customer = customerreq.execute().getBody();
-
-    assertEquals(Integer.valueOf(id),
-            customer.getProperty("CustomerId").getPrimitiveValue().toCastValue(Integer.class));
-
-    final ODataEntitySetRequest<ODataEntitySet> orderreq = client.getRetrieveRequestFactory().getEntitySetRequest(
-            URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString() + "/Orders"));
-    orderreq.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntitySet> orderres = orderreq.execute();
-    assertEquals(200, orderres.getStatusCode());
-
-    assertEquals(Integer.valueOf(id),
-            orderres.getBody().getEntities().get(0).getProperty("OrderId").getPrimitiveValue().
-            toCastValue(Integer.class));
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(
-            URIUtils.getURI(getServiceRoot(), customer.getEditLink().toASCIIString() + "?$expand=Orders"));
-    req.setFormat(format);
-
-    customer = req.execute().getBody();
-
-    boolean found = false;
-    for (ODataLink link : customer.getNavigationLinks()) {
-      if (link instanceof ODataInlineEntitySet && "Orders".equals(link.getName())) {
-        found = true;
-      }
-    }
-    assertTrue(found);
-
-    return customer;
-  }
-
-  private void multiKey(final ODataPubFormat format) {
-    final ODataEntity message = client.getObjectFactory().newEntity(new FullQualifiedName(
-            "Microsoft.Test.OData.Services.AstoriaDefaultService.Message"));
-
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("MessageId",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(1000)));
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("FromUsername",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildString("1")));
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("ToUsername",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildString("xlodhxzzusxecbzptxlfxprneoxkn")));
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("Subject",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test subject")));
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("Body",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildString("Test body")));
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("IsRead",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));
-
-    final URIBuilder builder =
-            client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Message");
-    final ODataEntityCreateRequest<ODataEntity> req = client.getCUDRequestFactory().
-            getEntityCreateRequest(builder.build(), message);
-    req.setFormat(format);
-
-    final ODataEntityCreateResponse<ODataEntity> res = req.execute();
-    assertNotNull(res);
-    assertEquals(201, res.getStatusCode());
-
-    final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
-    multiKey.put("FromUsername", "1");
-    multiKey.put("MessageId", 1000);
-
-    final ODataDeleteResponse deleteRes = client.getCUDRequestFactory().
-            getDeleteRequest(builder.appendKeySegment(multiKey).build()).execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
deleted file mode 100644
index de51167..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityRetrieveTestITCase.java
+++ /dev/null
@@ -1,242 +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.client.core.it.v3;
-
-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.util.LinkedHashMap;
-import java.util.List;
-import org.apache.commons.lang3.StringUtils;
-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.uri.CommonURIBuilder;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.CommonODataEntity;
-import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
-import org.apache.olingo.commons.api.domain.CommonODataProperty;
-import org.apache.olingo.commons.api.domain.ODataInlineEntity;
-import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
-import org.apache.olingo.commons.api.domain.ODataLink;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.commons.core.op.ResourceFactory;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check entity retrieve operations.
- */
-public class EntityRetrieveTestITCase extends AbstractTestITCase {
-
-  protected String getServiceRoot() {
-    return testStaticServiceRootURL;
-  }
-
-  private void withInlineEntry(final ODataPubFormat format) {
-    final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Customer").appendKeySegment(-10).expand("Info");
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
-
-    assertNotNull(entity);
-    assertEquals("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer", entity.getTypeName().toString());
-    assertEquals(getServiceRoot() + "/Customer(-10)", entity.getEditLink().toASCIIString());
-
-    assertEquals(5, entity.getNavigationLinks().size());
-    assertTrue(entity.getAssociationLinks().isEmpty());
-
-    boolean found = false;
-
-    for (ODataLink link : entity.getNavigationLinks()) {
-      if (link instanceof ODataInlineEntity) {
-        final CommonODataEntity inline = ((ODataInlineEntity) link).getEntity();
-        assertNotNull(inline);
-
-        debugEntity(client.getBinder().getEntity(
-                inline, ResourceFactory.entityClassForFormat(format == ODataPubFormat.ATOM)), "Just read");
-
-        final List<? extends CommonODataProperty> properties = inline.getProperties();
-        assertEquals(2, properties.size());
-
-        assertTrue(properties.get(0).getName().equals("CustomerInfoId")
-                || properties.get(1).getName().equals("CustomerInfoId"));
-        assertTrue(properties.get(0).getValue().toString().equals("11")
-                || properties.get(1).getValue().toString().equals("11"));
-
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-  }
-
-  @Test
-  public void withInlineEntryFromAtom() {
-    withInlineEntry(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void withInlineEntryFromJSON() {
-    // this needs to be full, otherwise there is no mean to recognize links
-    withInlineEntry(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  private void withInlineFeed(final ODataPubFormat format) {
-    final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Customer").appendKeySegment(-10).expand("Orders");
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
-    assertNotNull(entity);
-
-    boolean found = false;
-
-    for (ODataLink link : entity.getNavigationLinks()) {
-      if (link instanceof ODataInlineEntitySet) {
-        final CommonODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
-        assertNotNull(inline);
-
-        debugEntitySet(client.getBinder().getEntitySet(inline, ResourceFactory.entitySetClassForFormat(
-                format == ODataPubFormat.ATOM)), "Just read");
-
-        found = true;
-      }
-    }
-
-    assertTrue(found);
-  }
-
-  @Test
-  public void withInlineFeedFromAtom() {
-    withInlineFeed(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void withInlineFeedFromJSON() {
-    // this needs to be full, otherwise there is no mean to recognize links
-    withInlineFeed(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  private void rawRequest(final ODataPubFormat format) {
-    final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Car").appendKeySegment(16);
-
-    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
-    req.setFormat(format.toString(client.getServiceVersion()));
-
-    final ODataRawResponse res = req.execute();
-    assertNotNull(res);
-
-    final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
-    assertNull(entitySet);
-
-    final ResWrap<ODataEntity> entity = res.getBodyAs(ODataEntity.class);
-    assertNotNull(entity.getPayload());
-  }
-
-  @Test
-  public void rawRequestAsAtom() {
-    rawRequest(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void rawRequestAsJSON() {
-    // this needs to be full, otherwise actions will not be provided
-    rawRequest(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  private void multiKey(final ODataPubFormat format) throws EdmPrimitiveTypeException {
-    final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
-    multiKey.put("FromUsername", "1");
-    multiKey.put("MessageId", -10);
-
-    final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Message").appendKeySegment(multiKey);
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
-    assertNotNull(entity);
-    assertEquals("1", entity.getProperty("FromUsername").getPrimitiveValue().toCastValue(String.class));
-  }
-
-  @Test
-  public void multiKeyAsAtom() throws EdmPrimitiveTypeException {
-    multiKey(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void multiKeyAsJSON() throws EdmPrimitiveTypeException {
-    multiKey(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void checkForETagAsATOM() {
-    checkForETag(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void checkForETagAsJSON() {
-    checkForETag(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  private void checkForETag(final ODataPubFormat format) {
-    final CommonURIBuilder<?> uriBuilder =
-            client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Product").appendKeySegment(-10);
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-
-    final String etag = res.getETag();
-    assertTrue(StringUtils.isNotBlank(etag));
-
-    final CommonODataEntity product = res.getBody();
-    assertEquals(etag, product.getETag());
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void issue99() {
-    final CommonURIBuilder<?> uriBuilder = client.getURIBuilder(getServiceRoot()).appendEntitySetSegment("Car");
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(ODataPubFormat.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();
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
deleted file mode 100644
index 077a6b1..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntitySetTestITCase.java
+++ /dev/null
@@ -1,176 +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.client.core.it.v3;
-
-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.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.ODataEntitySetIterator;
-import org.apache.olingo.client.api.uri.v3.URIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.data.ResWrap;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.commons.core.op.ResourceFactory;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check basic feed operations.
- */
-public class EntitySetTestITCase extends AbstractTestITCase {
-
-  protected String getServiceRoot() {
-    return testStaticServiceRootURL;
-  }
-
-  @Test
-  public void rawRequestAsAtom() throws IOException {
-    rawRequest(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void rawRequestAsJSON() throws IOException {
-    rawRequest(ODataPubFormat.JSON);
-  }
-
-  @Test
-  public void readWithInlineCountAsJSON() throws IOException {
-    readWithInlineCount(ODataPubFormat.JSON);
-  }
-
-  @Test
-  public void readWithInlineCountAsAtom() throws IOException {
-    readWithInlineCount(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromAtom() {
-    readODataEntitySetIterator(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromJSON() {
-    readODataEntitySetIterator(ODataPubFormat.JSON);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromJSONFullMeta() {
-    readODataEntitySetIterator(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void readODataEntitySetIteratorFromJSONNoMeta() {
-    readODataEntitySetIterator(ODataPubFormat.JSON_NO_METADATA);
-  }
-
-  @Test
-  public void readODataEntitySetWithNextFromAtom() {
-    readEntitySetWithNextLink(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void readODataEntitySetWithNextFromJSON() {
-    readEntitySetWithNextLink(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  private void readEntitySetWithNextLink(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
-    uriBuilder.appendEntitySetSegment("Customer");
-
-    final ODataEntitySetRequest<ODataEntitySet> req = client.getRetrieveRequestFactory().
-            getEntitySetRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntitySet> res = req.execute();
-    final ODataEntitySet feed = res.getBody();
-
-    assertNotNull(feed);
-
-    debugEntitySet(client.getBinder().getEntitySet(feed, ResourceFactory.entitySetClassForFormat(
-            ODataPubFormat.ATOM == format)), "Just retrieved feed");
-
-    assertEquals(2, feed.getEntities().size());
-    assertNotNull(feed.getNext());
-
-    final URI expected = URI.create(getServiceRoot() + "/Customer?$skiptoken=-9");
-    final URI found = URIUtils.getURI(getServiceRoot(), feed.getNext().toASCIIString());
-
-    assertEquals(expected, found);
-  }
-
-  private void readODataEntitySetIterator(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
-    uriBuilder.appendEntitySetSegment("Customer");
-
-    final ODataEntitySetIteratorRequest<ODataEntitySet, ODataEntity> req =
-            client.getRetrieveRequestFactory().getEntitySetIteratorRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntitySetIterator<ODataEntitySet, ODataEntity>> res = req.execute();
-    final ODataEntitySetIterator<ODataEntitySet, ODataEntity> feedIterator = res.getBody();
-
-    assertNotNull(feedIterator);
-
-    int count = 0;
-
-    while (feedIterator.hasNext()) {
-      assertNotNull(feedIterator.next());
-      count++;
-    }
-    assertEquals(2, count);
-    assertTrue(feedIterator.getNext().toASCIIString().endsWith("Customer?$skiptoken=-9"));
-  }
-
-  private void readWithInlineCount(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
-    uriBuilder.appendEntitySetSegment("Product").inlineCount(URIBuilder.InlineCount.allpages);
-
-    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
-    req.setFormat(format.toString(client.getServiceVersion()));
-
-    final ODataRawResponse res = req.execute();
-    assertNotNull(res);
-
-    final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
-    assertEquals(10, entitySet.getPayload().getCount());
-  }
-
-  private void rawRequest(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(getServiceRoot());
-    uriBuilder.appendEntitySetSegment("Car");
-
-    final ODataRawRequest req = client.getRetrieveRequestFactory().getRawRequest(uriBuilder.build());
-    req.setFormat(format.toString(client.getServiceVersion()));
-
-    final ODataRawResponse res = req.execute();
-    assertNotNull(res);
-
-    final ResWrap<ODataEntitySet> entitySet = res.getBodyAs(ODataEntitySet.class);
-    assertNotNull(entitySet.getPayload());
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
deleted file mode 100644
index 750709c..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/EntityUpdateTestITCase.java
+++ /dev/null
@@ -1,242 +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.client.core.it.v3;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.util.LinkedHashMap;
-import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.client.api.communication.header.HeaderName;
-import org.apache.olingo.client.api.communication.request.cud.ODataEntityUpdateRequest;
-import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-
-import org.junit.Test;
-
-/**
- * This is the unit test class to check entity update operations.
- */
-public class EntityUpdateTestITCase extends AbstractTestITCase {
-
-  protected String getServiceRoot() {
-    return testStaticServiceRootURL;
-  }
-
-  @Test
-  public void mergeAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final URI uri = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Product").appendKeySegment(-10).build();
-    final String etag = getETag(uri);
-    final ODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
-    merge.setEditLink(uri);
-    updateEntityDescription(format, merge, UpdateType.MERGE, etag);
-  }
-
-  @Test
-  public void mergeAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final URI uri = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Product").appendKeySegment(-10).build();
-    final String etag = getETag(uri);
-    final ODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
-    merge.setEditLink(uri);
-    updateEntityDescription(format, merge, UpdateType.MERGE, etag);
-  }
-
-  @Test
-  public void patchAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final URI uri = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Product").appendKeySegment(-10).build();
-    final String etag = getETag(uri);
-    final ODataEntity patch = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
-    patch.setEditLink(uri);
-    updateEntityDescription(format, patch, UpdateType.PATCH, etag);
-  }
-
-  @Test
-  public void patchAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final URI uri = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Product").appendKeySegment(-10).build();
-    final String etag = getETag(uri);
-    final ODataEntity patch = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
-    patch.setEditLink(uri);
-    updateEntityDescription(format, patch, UpdateType.PATCH, etag);
-  }
-
-  @Test
-  public void replaceAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity changes = read(format, client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Car").appendKeySegment(14).build());
-    updateEntityDescription(format, changes, UpdateType.REPLACE);
-  }
-
-  @Test
-  public void replaceAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity changes = read(format, client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Car").appendKeySegment(14).build());
-    updateEntityDescription(format, changes, UpdateType.REPLACE);
-  }
-
-  @Test
-  public void patchLinkAsAtom() throws EdmPrimitiveTypeException {
-    patchLink(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void patchLinkAsJSON() throws EdmPrimitiveTypeException {
-    patchLink(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  public void patchLink(final ODataPubFormat format) throws EdmPrimitiveTypeException {
-    final URI uri = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Customer").appendKeySegment(-10).build();
-
-    final ODataEntity patch = client.getObjectFactory().
-            newEntity(new FullQualifiedName("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer"));
-    patch.setEditLink(uri);
-
-    // ---------------------------------------
-    // Update to CustomerInfo(12)
-    // ---------------------------------------
-    URI customerInfoURI = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("CustomerInfo").appendKeySegment(12).build();
-
-    patch.addLink(client.getObjectFactory().newEntityNavigationLink("Info", customerInfoURI));
-
-    update(UpdateType.PATCH, patch, format, null);
-
-    customerInfoURI = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Customer").appendKeySegment(-10).appendNavigationSegment("Info").build();
-
-    ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(customerInfoURI);
-    req.setFormat(format);
-
-    ODataEntity newInfo = req.execute().getBody();
-
-    assertEquals(Integer.valueOf(12),
-            newInfo.getProperty("CustomerInfoId").getPrimitiveValue().toCastValue(Integer.class));
-    // ---------------------------------------
-
-    // ---------------------------------------
-    // Restore to CustomerInfo(11)
-    // ---------------------------------------
-    patch.getNavigationLinks().clear();
-
-    customerInfoURI = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("CustomerInfo").appendKeySegment(11).build();
-    read(format, customerInfoURI);
-
-    patch.addLink(client.getObjectFactory().newEntityNavigationLink("Info", customerInfoURI));
-
-    update(UpdateType.PATCH, patch, format, null);
-
-    customerInfoURI = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Customer").appendKeySegment(-10).appendNavigationSegment("Info").build();
-
-    req = client.getRetrieveRequestFactory().getEntityRequest(customerInfoURI);
-    req.setFormat(format);
-
-    newInfo = req.execute().getBody();
-
-    assertEquals(Integer.valueOf(11),
-            newInfo.getProperty("CustomerInfoId").getPrimitiveValue().toCastValue(Integer.class));
-    // ---------------------------------------
-  }
-
-  private ODataEntityUpdateRequest<ODataEntity> buildMultiKeyUpdateReq(final ODataPubFormat format)
-          throws EdmPrimitiveTypeException {
-
-    final LinkedHashMap<String, Object> multiKey = new LinkedHashMap<String, Object>();
-    multiKey.put("FromUsername", "1");
-    multiKey.put("MessageId", -10);
-    final ODataEntity message = read(format, client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Message").appendKeySegment(multiKey).build());
-    message.getAssociationLinks().clear();
-    message.getNavigationLinks().clear();
-
-    final boolean before = message.getProperty("IsRead").getPrimitiveValue().toCastValue(Boolean.class);
-    message.getProperties().remove(message.getProperty("IsRead"));
-    getClient().getBinder().add(message,
-            client.getObjectFactory().newPrimitiveProperty("IsRead",
-                    client.getObjectFactory().newPrimitiveValueBuilder().buildBoolean(!before)));
-
-    return client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.MERGE, message);
-  }
-
-  private void mergeMultiKey(final ODataPubFormat format) throws EdmPrimitiveTypeException {
-    final ODataEntityUpdateResponse<ODataEntity> res = buildMultiKeyUpdateReq(format).execute();
-    assertEquals(204, res.getStatusCode());
-  }
-
-  @Test
-  public void mergeMultiKeyAsAtom() throws EdmPrimitiveTypeException {
-    mergeMultiKey(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void mergeMultiKeyAsJSON() throws EdmPrimitiveTypeException {
-    mergeMultiKey(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void updateReturnContent() throws EdmPrimitiveTypeException {
-    final ODataEntityUpdateRequest<ODataEntity> req =
-            buildMultiKeyUpdateReq(client.getConfiguration().getDefaultPubFormat());
-    req.setPrefer(client.newPreferences().returnContent());
-
-    final ODataEntityUpdateResponse<ODataEntity> res = req.execute();
-    assertEquals(200, res.getStatusCode());
-    assertEquals(client.newPreferences().returnContent(),
-            res.getHeader(HeaderName.preferenceApplied).iterator().next());
-    assertNotNull(res.getBody());
-  }
-
-  @Test
-  public void concurrentModification() {
-    final URI uri = client.getURIBuilder(getServiceRoot()).
-            appendEntitySetSegment("Product").appendKeySegment(-10).build();
-    String etag = getETag(uri);
-    final ODataEntity product = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
-    product.setEditLink(uri);
-    updateEntityStringProperty("BaseConcurrency",
-            client.getConfiguration().getDefaultPubFormat(), product, UpdateType.MERGE, etag);
-
-    try {
-      etag += "-invalidone";
-      updateEntityStringProperty("BaseConcurrency",
-              client.getConfiguration().getDefaultPubFormat(), product, UpdateType.MERGE, etag);
-      fail();
-    } catch (ODataClientErrorException e) {
-      assertEquals(412, e.getStatusLine().getStatusCode());
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
deleted file mode 100644
index d5d575d..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/ErrorTestITCase.java
+++ /dev/null
@@ -1,172 +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.client.core.it.v3;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.net.URI;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.olingo.client.api.communication.ODataClientErrorException;
-import org.apache.olingo.client.api.communication.request.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
-import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.client.api.uri.v3.URIBuilder;
-import org.apache.olingo.client.api.v3.ODataClient;
-import org.apache.olingo.client.core.communication.request.AbstractODataBasicRequest;
-import org.apache.olingo.client.core.communication.response.AbstractODataResponse;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmFunctionImport;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.junit.Test;
-
-/**
- * This is the unit test class to check basic entity operations.
- */
-public class ErrorTestITCase extends AbstractTestITCase {
-
-  private class ErrorGeneratingRequest
-          extends AbstractODataBasicRequest<ODataEntityCreateResponse<ODataEntity>, ODataPubFormat> {
-
-    public ErrorGeneratingRequest(final HttpMethod method, final URI uri) {
-      super(client, ODataPubFormat.class, method, uri);
-    }
-
-    @Override
-    protected InputStream getPayload() {
-      return new ByteArrayInputStream(new byte[0]);
-    }
-
-    @Override
-    public ODataEntityCreateResponse<ODataEntity> execute() {
-      final HttpResponse res = doExecute();
-      return new ErrorResponseImpl(client, httpClient, res);
-    }
-
-    private class ErrorResponseImpl extends AbstractODataResponse implements ODataEntityCreateResponse<ODataEntity> {
-
-      private final ODataClient odataClient;
-
-      public ErrorResponseImpl(final ODataClient odataClient, final HttpClient client, final HttpResponse res) {
-        super(client, res);
-        this.odataClient = odataClient;
-      }
-
-      @Override
-      public ODataEntity getBody() {
-        return odataClient.getObjectFactory().newEntity(new FullQualifiedName("Invalid.Invalid"));
-      }
-    }
-  }
-
-  private void stacktraceError(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL);
-    uriBuilder.appendEntitySetSegment("Customer");
-
-    final ErrorGeneratingRequest errorReq = new ErrorGeneratingRequest(HttpMethod.POST, uriBuilder.build());
-    errorReq.setFormat(format);
-
-    try {
-      errorReq.execute();
-      fail();
-    } catch (ODataClientErrorException e) {
-      LOG.error("ODataClientErrorException found", e);
-      assertEquals(400, e.getStatusLine().getStatusCode());
-      assertNotNull(e.getODataError());
-    }
-  }
-
-  @Test
-  public void xmlStacktraceError() {
-    stacktraceError(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void jsonStacktraceError() {
-    stacktraceError(ODataPubFormat.JSON);
-  }
-
-  private void notfoundError(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL);
-    uriBuilder.appendEntitySetSegment("Customer(154)");
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    try {
-      req.execute();
-      fail();
-    } catch (ODataClientErrorException e) {
-      LOG.error("ODataClientErrorException found", e);
-      assertEquals(404, e.getStatusLine().getStatusCode());
-      assertNull(e.getCause());
-      assertNotNull(e.getODataError());
-    }
-  }
-
-  @Test
-  public void xmlNotfoundError() {
-    notfoundError(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void jsonNotfoundError() {
-    notfoundError(ODataPubFormat.JSON);
-  }
-
-  private void instreamError(final ODataPubFormat format) {
-    final Edm metadata =
-            client.getRetrieveRequestFactory().getMetadataRequest(testStaticServiceRootURL).execute().getBody();
-    assertNotNull(metadata);
-
-    final EdmEntityContainer container = metadata.getSchemas().get(0).getEntityContainer();
-    final EdmFunctionImport funcImp = container.getFunctionImport("InStreamErrorGetCustomer");
-    final URIBuilder builder = client.getURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment(URIUtils.operationImportURISegment(container, funcImp.getName()));
-    final ODataInvokeRequest<ODataEntitySet> req =
-            client.getInvokeRequestFactory().getInvokeRequest(builder.build(), funcImp.getUnboundFunction(null));
-    req.setFormat(format);
-
-    final ODataInvokeResponse<ODataEntitySet> res = req.execute();
-    res.getBody();
-    fail("Shouldn't get here");
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void atomInstreamError() {
-    instreamError(ODataPubFormat.ATOM);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void jsonInstreamError() {
-    instreamError(ODataPubFormat.JSON);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
deleted file mode 100644
index 1422df8..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterFactoryTestITCase.java
+++ /dev/null
@@ -1,167 +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.client.core.it.v3;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
-import org.apache.olingo.client.api.uri.URIFilter;
-import org.apache.olingo.client.api.uri.v3.FilterArgFactory;
-import org.apache.olingo.client.api.uri.v3.FilterFactory;
-import org.apache.olingo.client.api.uri.v3.URIBuilder;
-import org.junit.Test;
-
-public class FilterFactoryTestITCase extends AbstractTestITCase {
-
-  private FilterFactory getFilterFactory() {
-    return getClient().getFilterFactory();
-  }
-
-  private FilterArgFactory getFilterArgFactory() {
-    return getFilterFactory().getArgFactory();
-  }
-
-  private void match(final String entitySet, final URIFilter filter, final int expected) {
-    final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment(entitySet).filter(filter);
-
-    final CommonODataEntitySet feed = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).
-            execute().getBody();
-    assertNotNull(feed);
-    assertEquals(expected, feed.getEntities().size());
-  }
-
-  @Test
-  public void simple() {
-    match("Car", getFilterFactory().lt("VIN", 16), 5);
-  }
-
-  @Test
-  public void and() {
-    final URIFilter filter =
-            getFilterFactory().and(
-            getFilterFactory().lt("VIN", 16),
-            getFilterFactory().gt("VIN", 12));
-
-    match("Car", filter, 3);
-  }
-
-  @Test
-  public void not() {
-    final URIFilter filter =
-            getFilterFactory().not(
-            getFilterFactory().or(
-            getFilterFactory().ge("VIN", 16),
-            getFilterFactory().le("VIN", 12)));
-
-    match("Car", filter, 3);
-  }
-
-  @Test
-  public void operator() {
-    URIFilter filter =
-            getFilterFactory().eq(
-            getFilterArgFactory().add(getFilterArgFactory().property("VIN"), getFilterArgFactory().
-            literal(1)),
-            getFilterArgFactory().literal(16));
-
-    match("Car", filter, 1);
-
-    filter =
-            getFilterFactory().eq(
-            getFilterArgFactory().add(getFilterArgFactory().literal(1), getFilterArgFactory().
-            property("VIN")),
-            getFilterArgFactory().literal(16));
-
-    match("Car", filter, 1);
-
-    filter =
-            getFilterFactory().eq(
-            getFilterArgFactory().literal(16),
-            getFilterArgFactory().add(getFilterArgFactory().literal(1), getFilterArgFactory().
-            property("VIN")));
-
-    match("Car", filter, 1);
-  }
-
-  @Test
-  public void function() {
-    final URIFilter filter =
-            getFilterFactory().match(
-            getFilterArgFactory().startswith(
-            getFilterArgFactory().property("Description"), getFilterArgFactory().literal("cen")));
-
-    match("Car", filter, 1);
-  }
-
-  @Test
-  public void composed() {
-    final URIFilter filter =
-            getFilterFactory().gt(
-            getFilterArgFactory().length(getFilterArgFactory().property("Description")),
-            getFilterArgFactory().add(getFilterArgFactory().property("VIN"), getFilterArgFactory().literal(
-            10)));
-
-    match("Car", filter, 5);
-  }
-
-  @Test
-  public void propertyPath() {
-    URIFilter filter =
-            getFilterFactory().eq(
-            getFilterArgFactory().indexof(
-            getFilterArgFactory().property("PrimaryContactInfo/HomePhone/PhoneNumber"),
-            getFilterArgFactory().literal("ODataJClient")),
-            getFilterArgFactory().literal(1));
-
-    match("Customer", filter, 0);
-
-    filter =
-            getFilterFactory().ne(
-            getFilterArgFactory().indexof(
-            getFilterArgFactory().property("PrimaryContactInfo/HomePhone/PhoneNumber"),
-            getFilterArgFactory().literal("lccvussrv")),
-            getFilterArgFactory().literal(-1));
-
-    match("Customer", filter, 2);
-  }
-
-  @Test
-  public void datetime() {
-    final URIFilter filter =
-            getFilterFactory().eq(
-            getFilterArgFactory().month(
-            getFilterArgFactory().property("PurchaseDate")),
-            getFilterArgFactory().literal(12));
-
-    match("ComputerDetail", filter, 1);
-  }
-
-  @Test
-  public void isof() {
-    final URIFilter filter =
-            getFilterFactory().match(
-            getFilterArgFactory().isof(
-            getFilterArgFactory().literal(
-            "Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee")));
-
-    match("Person", filter, 4);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
deleted file mode 100644
index 3204fb0..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/FilterTestITCase.java
+++ /dev/null
@@ -1,94 +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.client.core.it.v3;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.olingo.client.api.uri.v3.URIBuilder;
-import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
-import org.junit.Test;
-
-public class FilterTestITCase extends AbstractTestITCase {
-
-  private void filterQueryTest(final String entity, final String filter, final int expected) {
-    final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment(entity).filter(filter);
-    final ODataEntitySet entitySet = client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).
-            execute().getBody();
-    assertNotNull(entitySet);
-    assertEquals(expected, entitySet.getEntities().size());
-  }
-
-  @Test
-  public void withId() {
-    filterQueryTest("Customer", "CustomerId eq -10", 1);
-  }
-
-  @Test
-  public void logical() {
-    filterQueryTest("Customer", "CustomerId gt -10", 2);
-    filterQueryTest("Customer", "CustomerId lt -10", 0);
-    filterQueryTest("Customer", "not endswith(Name,'Chandan')", 2);
-    filterQueryTest("Car", "VIN le 18 and VIN gt 12", 6);
-  }
-
-  @Test
-  public void arithmetic() {
-    filterQueryTest("Car", "VIN add 5 lt 11", 0);
-    filterQueryTest("Car", "VIN div 2 le 8", 7);
-    filterQueryTest("Car", "VIN mul 2 le 30", 5);
-    filterQueryTest("Person", "PersonId sub 2 lt -10", 2);
-  }
-
-  @Test
-  public void stringOperations() {
-    filterQueryTest("Product", "length(Description) eq 7", 1);
-    filterQueryTest("Product", "length(Description) eq 7", 1);
-    filterQueryTest("Product", "substringof('kdcuklu', Description) eq true", 1);
-    filterQueryTest("Product", "startswith(Description, 'k') eq true", 2);
-    filterQueryTest("Product", "startswith(Description, 'k') eq true", 2);
-    filterQueryTest("Product", "indexof(Description, 'k') eq 0", 2);
-    filterQueryTest("Product", "toupper(Description) eq 'KDCUKLU'", 1);
-    filterQueryTest("Product", "concat(Description, ', newname') eq 'kdcuklu, newname'", 1);
-  }
-
-  @Test
-  public void math() {
-    filterQueryTest("Product", "round(Dimensions/Width) eq 7338", 1);
-    filterQueryTest("Product", "round(Dimensions/Width) eq 7338", 1);
-    filterQueryTest("Product", "floor(Dimensions/Width) eq 7337", 1);
-    filterQueryTest("Product", "ceiling(Dimensions/Width) eq 7338", 1);
-  }
-
-  @Test
-  public void date() {
-    filterQueryTest("ComputerDetail", "day(PurchaseDate) eq 15", 1);
-    filterQueryTest("ComputerDetail", "month(PurchaseDate) eq 12", 2);
-    filterQueryTest("ComputerDetail", "hour(PurchaseDate) eq 1", 1);
-    filterQueryTest("ComputerDetail", "minute(PurchaseDate) eq 33", 1);
-    filterQueryTest("ComputerDetail", "second(PurchaseDate) eq 35", 1);
-    filterQueryTest("ComputerDetail", "year(PurchaseDate) eq 2020", 1);
-  }
-
-  @Test
-  public void isOfTest() {
-    filterQueryTest("Customer", "isof(Name,'Edm.String') eq true", 2);
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/InvokeTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/InvokeTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/InvokeTestITCase.java
deleted file mode 100644
index e3daf11..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/InvokeTestITCase.java
+++ /dev/null
@@ -1,318 +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.client.core.it.v3;
-
-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.net.URI;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.apache.commons.lang3.StringUtils;
-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.invoke.ODataInvokeRequest;
-import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent;
-import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
-import org.apache.olingo.client.api.communication.response.ODataDeleteResponse;
-import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse;
-import org.apache.olingo.client.api.communication.response.ODataInvokeResponse;
-import org.apache.olingo.client.api.uri.v3.URIBuilder;
-import org.apache.olingo.client.core.uri.URIUtils;
-import org.apache.olingo.commons.api.domain.ODataOperation;
-import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
-import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.domain.v3.ODataEntitySet;
-import org.apache.olingo.commons.api.domain.v3.ODataProperty;
-import org.apache.olingo.commons.api.edm.Edm;
-import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmFunction;
-import org.apache.olingo.commons.api.edm.EdmFunctionImport;
-import org.apache.olingo.commons.api.edm.EdmParameter;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-import org.apache.olingo.commons.core.edm.EdmTypeInfo;
-import org.junit.Test;
-
-public class InvokeTestITCase extends AbstractTestITCase {
-
-  private void getWithNoParams(final ODataPubFormat format) {
-    final Edm edm = getClient().getRetrieveRequestFactory().
-            getMetadataRequest(testStaticServiceRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    final EdmEntityContainer container = edm.getSchemas().get(0).getEntityContainer();
-
-    // 1. get primitive value property
-    EdmFunctionImport funcImp = container.getFunctionImport("GetPrimitiveString");
-    EdmFunction func = funcImp.getUnboundFunction(null);
-
-    URIBuilder builder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment(URIUtils.operationImportURISegment(container, funcImp.getName()));
-
-    ODataInvokeRequest<ODataProperty> req = getClient().getInvokeRequestFactory().
-            getInvokeRequest(builder.build(), func);
-    req.setFormat(format);
-    ODataInvokeResponse<ODataProperty> res = req.execute();
-    assertNotNull(res);
-
-    ODataProperty property = res.getBody();
-    assertNotNull(property);
-    assertEquals("Foo", property.getPrimitiveValue().toString());
-
-    // 2. get collection of complex type property
-    funcImp = container.getFunctionImport("EntityProjectionReturnsCollectionOfComplexTypes");
-    func = funcImp.getUnboundFunction(null);
-
-    builder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment(URIUtils.operationImportURISegment(container, funcImp.getName()));
-
-    req = getClient().getInvokeRequestFactory().getInvokeRequest(builder.build(), func);
-    req.setFormat(format);
-    res = req.execute();
-    assertNotNull(res);
-
-    property = res.getBody();
-    assertNotNull(property);
-    assertTrue(property.hasCollectionValue());
-    assertFalse(property.getCollectionValue().isEmpty());
-  }
-
-  @Test
-  public void getWithNoParamsAsAtom() {
-    getWithNoParams(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void getWithNoParamsAsJSON() {
-    getWithNoParams(ODataPubFormat.JSON);
-  }
-
-  private void getWithParams(final ODataPubFormat format) throws EdmPrimitiveTypeException {
-    // 1. primitive result
-    final Edm edm = getClient().getRetrieveRequestFactory().
-            getMetadataRequest(testStaticServiceRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    final EdmEntityContainer container = edm.getSchemas().get(0).getEntityContainer();
-    EdmFunctionImport funcImp = container.getFunctionImport("GetArgumentPlusOne");
-
-    URIBuilder builder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment(URIUtils.operationImportURISegment(container, funcImp.getName()));
-
-    EdmFunction function = funcImp.getUnboundFunction(Collections.singletonList("arg1"));
-    EdmParameter param = function.getParameter(function.getParameterNames().get(0));
-    ODataPrimitiveValue paramValue = getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(param.getType()).
-            setValue(154).
-            build();
-
-    final ODataInvokeRequest<ODataProperty> primitiveReq = getClient().getInvokeRequestFactory().
-            getInvokeRequest(builder.build(), function,
-                    Collections.<String, ODataValue>singletonMap(param.getName(), paramValue));
-    primitiveReq.setFormat(format);
-
-    final ODataInvokeResponse<ODataProperty> primitiveRes = primitiveReq.execute();
-    assertNotNull(primitiveRes);
-
-    final ODataProperty property = primitiveRes.getBody();
-    assertNotNull(property);
-    assertEquals(Integer.valueOf(155), property.getPrimitiveValue().toCastValue(Integer.class));
-
-    // 2. feed result
-    funcImp = container.getFunctionImport("GetSpecificCustomer");
-
-    builder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendOperationCallSegment(URIUtils.operationImportURISegment(container, funcImp.getName()));
-
-    function = funcImp.getUnboundFunction(Collections.singletonList("Name"));
-    param = function.getParameter(function.getParameterNames().get(0));
-    paramValue = getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(param.getType()).
-            setValue(StringUtils.EMPTY).
-            build();
-
-    final ODataInvokeRequest<ODataEntitySet> feedReq = getClient().getInvokeRequestFactory().
-            getInvokeRequest(builder.build(), function,
-                    Collections.<String, ODataValue>singletonMap(param.getName(), paramValue));
-    feedReq.setFormat(format);
-
-    final ODataInvokeResponse<ODataEntitySet> feedRes = feedReq.execute();
-    assertNotNull(feedRes);
-
-    final ODataEntitySet feed = feedRes.getBody();
-    assertNotNull(feed);
-
-    final Set<Integer> customerIds = new HashSet<Integer>(feed.getEntities().size());
-    for (ODataEntity entity : feed.getEntities()) {
-      customerIds.add(entity.getProperty("CustomerId").getPrimitiveValue().toCastValue(Integer.class));
-    }
-    assertTrue(customerIds.contains(-8));
-  }
-
-  @Test
-  public void getWithParamsAsAtom() throws EdmPrimitiveTypeException {
-    getWithParams(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void getWithParamsAsJSON() throws EdmPrimitiveTypeException {
-    getWithParams(ODataPubFormat.JSON);
-  }
-
-  private ODataEntity createEmployee(final ODataPubFormat format) {
-    final ODataEntity employee = getClient().getObjectFactory().newEntity(new FullQualifiedName(
-            "Microsoft.Test.OData.Services.AstoriaDefaultService.Employee"));
-
-    employee.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("PersonId",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(1244)));
-    employee.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty("Name",
-            getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("Test employee")));
-    employee.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty(
-            "ManagersPersonId", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(3777)));
-    employee.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty(
-            "Salary", getClient().getObjectFactory().newPrimitiveValueBuilder().buildInt32(1000)));
-    employee.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty(
-            "Title", getClient().getObjectFactory().newPrimitiveValueBuilder().buildString("CEO")));
-
-    final URIBuilder uriBuilder = getClient().getURIBuilder(testStaticServiceRootURL).appendEntitySetSegment("Person");
-
-    final ODataEntityCreateRequest<ODataEntity> createReq =
-            getClient().getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), employee);
-    createReq.setFormat(format);
-    final ODataEntityCreateResponse<ODataEntity> createRes = createReq.execute();
-    assertEquals(201, createRes.getStatusCode());
-
-    final ODataEntityRequest<ODataEntity> req =
-            getClient().getRetrieveRequestFactory().getEntityRequest(uriBuilder.appendKeySegment(1244).build());
-    return req.execute().getBody();
-  }
-
-  private void deleteEmployee(final ODataPubFormat format, final Integer id) {
-    final URIBuilder uriBuilder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Person").appendKeySegment(id);
-
-    final ODataDeleteRequest deleteReq = getClient().getCUDRequestFactory().getDeleteRequest(uriBuilder.build());
-    deleteReq.setFormat(format);
-    final ODataDeleteResponse deleteRes = deleteReq.execute();
-    assertEquals(204, deleteRes.getStatusCode());
-  }
-
-  @Test
-  public void boundPost() throws EdmPrimitiveTypeException {
-    // 0. create an employee
-    final ODataEntity created = createEmployee(ODataPubFormat.JSON_FULL_METADATA);
-    assertNotNull(created);
-    final Integer createdId = created.getProperty("PersonId").getPrimitiveValue().toCastValue(Integer.class);
-    assertNotNull(createdId);
-
-    // 1. invoke action bound with the employee just created
-    final ODataOperation operation = created.getOperations().get(0);
-
-    final Edm edm = getClient().getRetrieveRequestFactory().
-            getMetadataRequest(testStaticServiceRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    final EdmEntityContainer container = edm.getSchemas().get(0).getEntityContainer();
-    final EdmAction action = edm.getBoundAction(
-            new FullQualifiedName(container.getNamespace(), operation.getTitle()),
-            created.getTypeName(), false);
-
-    final ODataInvokeRequest<ODataNoContent> req = getClient().getInvokeRequestFactory().
-            getInvokeRequest(operation.getTarget(), action);
-    req.setFormat(ODataPubFormat.JSON_FULL_METADATA);
-    final ODataInvokeResponse<ODataNoContent> res = req.execute();
-    assertNotNull(res);
-    assertEquals(204, res.getStatusCode());
-
-    // 2. check that invoked action has effectively run
-    final URIBuilder uriBuilder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Person").appendKeySegment(createdId);
-    final ODataEntityRequest<ODataEntity> retrieveRes =
-            getClient().getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    retrieveRes.setFormat(ODataPubFormat.JSON_FULL_METADATA);
-    final ODataEntity read = retrieveRes.execute().getBody();
-    assertEquals("0", read.getProperty("Salary").getPrimitiveValue().toString());
-    assertTrue(read.getProperty("Title").getPrimitiveValue().toString().endsWith("[Sacked]"));
-
-    // 3. remove the test employee
-    deleteEmployee(ODataPubFormat.JSON_FULL_METADATA, createdId);
-  }
-
-  @Test
-  public void boundPostWithParams() throws EdmPrimitiveTypeException {
-    // 1. read employees and store their current salary
-    final URIBuilder builder = getClient().getURIBuilder(testStaticServiceRootURL).
-            appendEntitySetSegment("Person").
-            appendEntitySetSegment("Microsoft.Test.OData.Services.AstoriaDefaultService.Employee");
-    final URI employeesURI = builder.build();
-    ODataEntitySet employees = getClient().getRetrieveRequestFactory().
-            getEntitySetRequest(employeesURI).execute().getBody();
-    assertFalse(employees.getEntities().isEmpty());
-    final Map<Integer, Integer> preSalaries = new HashMap<Integer, Integer>(employees.getCount());
-    for (ODataEntity employee : employees.getEntities()) {
-      preSalaries.put(employee.getProperty("PersonId").getPrimitiveValue().toCastValue(Integer.class),
-              employee.getProperty("Salary").getPrimitiveValue().toCastValue(Integer.class));
-    }
-    assertFalse(preSalaries.isEmpty());
-
-    // 2. invoke action bound, with additional parameter
-    final Edm edm = getClient().getRetrieveRequestFactory().
-            getMetadataRequest(testStaticServiceRootURL).execute().getBody();
-    assertNotNull(edm);
-
-    final EdmEntityContainer container = edm.getSchemas().get(0).getEntityContainer();
-
-    final EdmTypeInfo employeesTypeInfo = new EdmTypeInfo.Builder().setEdm(edm).
-            setTypeExpression("Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Employee)").build();
-    final EdmAction action = edm.getBoundAction(
-            new FullQualifiedName(container.getNamespace(), "IncreaseSalaries"),
-            employeesTypeInfo.getFullQualifiedName(), employeesTypeInfo.isCollection());
-
-    final EdmParameter param = action.getParameter(action.getParameterNames().get(1));
-    final ODataPrimitiveValue paramValue = getClient().getObjectFactory().newPrimitiveValueBuilder().
-            setType(param.getType()).
-            setValue(1).
-            build();
-
-    final ODataInvokeRequest<ODataNoContent> req = getClient().getInvokeRequestFactory().getInvokeRequest(
-            builder.appendOperationCallSegment(action.getName()).build(), action,
-            Collections.<String, ODataValue>singletonMap(param.getName(), paramValue));
-    final ODataInvokeResponse<ODataNoContent> res = req.execute();
-    assertNotNull(res);
-    assertEquals(204, res.getStatusCode());
-
-    // 3. check whether salaries were incremented
-    employees = getClient().getRetrieveRequestFactory().getEntitySetRequest(employeesURI).execute().getBody();
-    assertFalse(employees.getEntities().isEmpty());
-    for (ODataEntity employee : employees.getEntities()) {
-      assertTrue(
-              preSalaries.get(employee.getProperty("PersonId").getPrimitiveValue().toCastValue(Integer.class))
-              < employee.getProperty("Salary").getPrimitiveValue().toCastValue(Integer.class));
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8042913b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
deleted file mode 100644
index 547c3ff..0000000
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/it/v3/KeyAsSegmentTestITCase.java
+++ /dev/null
@@ -1,110 +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.client.core.it.v3;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.olingo.client.api.communication.request.cud.v3.UpdateType;
-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.uri.v3.URIBuilder;
-import org.apache.olingo.commons.api.domain.v3.ODataEntity;
-import org.apache.olingo.commons.api.format.ODataPubFormat;
-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);
-  }
-
-  private void read(final ODataPubFormat format) {
-    final URIBuilder uriBuilder = client.getURIBuilder(testKeyAsSegmentServiceRootURL).
-            appendEntitySetSegment("Customer").appendKeySegment(-10);
-
-    final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-    req.setFormat(format);
-
-    final ODataRetrieveResponse<ODataEntity> res = req.execute();
-    final ODataEntity entity = res.getBody();
-    assertNotNull(entity);
-
-    assertFalse(entity.getEditLink().toASCIIString().contains("("));
-    assertFalse(entity.getEditLink().toASCIIString().contains(")"));
-  }
-
-  @Test
-  public void fromAtom() {
-    read(ODataPubFormat.ATOM);
-  }
-
-  @Test
-  public void fromJSON() {
-    read(ODataPubFormat.JSON_FULL_METADATA);
-  }
-
-  @Test
-  public void createODataEntityAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final int id = 1;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    createEntity(testKeyAsSegmentServiceRootURL, format, original, "Customer");
-    final ODataEntity actual = compareEntities(testKeyAsSegmentServiceRootURL, format, original, id, null);
-
-    cleanAfterCreate(format, actual, false, testKeyAsSegmentServiceRootURL);
-  }
-
-  @Test
-  public void createODataEntityAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final int id = 2;
-    final ODataEntity original = getSampleCustomerProfile(id, "Sample customer", false);
-
-    createEntity(testKeyAsSegmentServiceRootURL, format, original, "Customer");
-    final ODataEntity actual = compareEntities(testKeyAsSegmentServiceRootURL, format, original, id, null);
-
-    cleanAfterCreate(format, actual, false, testKeyAsSegmentServiceRootURL);
-  }
-
-  @Test
-  public void replaceODataEntityAsAtom() {
-    final ODataPubFormat format = ODataPubFormat.ATOM;
-    final ODataEntity changes = read(format, client.getURIBuilder(testKeyAsSegmentServiceRootURL).
-            appendEntitySetSegment("Car").appendKeySegment(14).build());
-    updateEntityDescription(format, changes, UpdateType.REPLACE);
-  }
-
-  @Test
-  public void replaceODataEntityAsJSON() {
-    final ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-    final ODataEntity changes = read(format, client.getURIBuilder(testKeyAsSegmentServiceRootURL).
-            appendEntitySetSegment("Car").appendKeySegment(14).build());
-    updateEntityDescription(format, changes, UpdateType.REPLACE);
-  }
-
-  @AfterClass
-  public static void disableKeyAsSegment() {
-    client.getConfiguration().setKeyAsSegment(false);
-  }
-}