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/05/22 13:43:40 UTC

[32/51] [abbrv] [partial] Removing /ODataJClient: merge complete

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AbstractTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AbstractTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AbstractTestITCase.java
deleted file mode 100644
index 70643f0..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AbstractTestITCase.java
+++ /dev/null
@@ -1,605 +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 com.msopentech.odatajclient.engine.it;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import com.msopentech.odatajclient.engine.client.http.HttpMethod;
-import com.msopentech.odatajclient.engine.communication.ODataClientErrorException;
-import com.msopentech.odatajclient.engine.communication.request.UpdateType;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataDeleteRequest;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataEntityCreateRequest;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataEntityUpdateRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataEntityRequest;
-import com.msopentech.odatajclient.engine.communication.response.ODataDeleteResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataEntityCreateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataEntityUpdateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataRetrieveResponse;
-import com.msopentech.odatajclient.engine.data.ODataCollectionValue;
-import com.msopentech.odatajclient.engine.data.ODataComplexValue;
-import com.msopentech.odatajclient.engine.data.ODataProperty;
-import com.msopentech.odatajclient.engine.data.ODataValue;
-import com.msopentech.odatajclient.engine.metadata.edm.EdmSimpleType;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import com.msopentech.odatajclient.engine.data.Entry;
-import com.msopentech.odatajclient.engine.data.Feed;
-import com.msopentech.odatajclient.engine.data.ODataEntity;
-import com.msopentech.odatajclient.engine.data.ODataInlineEntity;
-import com.msopentech.odatajclient.engine.data.ODataLink;
-import com.msopentech.odatajclient.engine.data.impl.v3.AtomEntry;
-import com.msopentech.odatajclient.engine.data.impl.v3.JSONEntry;
-import com.msopentech.odatajclient.engine.data.ODataEntitySet;
-import com.msopentech.odatajclient.engine.data.ODataInlineEntitySet;
-import com.msopentech.odatajclient.engine.uri.URIBuilder;
-import com.msopentech.odatajclient.engine.format.ODataPubFormat;
-import com.msopentech.odatajclient.engine.client.ODataClientFactory;
-import com.msopentech.odatajclient.engine.client.ODataV3Client;
-import com.msopentech.odatajclient.engine.utils.URIUtils;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.net.URI;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.Set;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.junit.BeforeClass;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class AbstractTestITCase {
-
-    /**
-     * Logger.
-     */
-    protected static final Logger LOG = LoggerFactory.getLogger(AbstractTestITCase.class);
-
-    protected static final String TEST_PRODUCT_TYPE = "Microsoft.Test.OData.Services.AstoriaDefaultService.Product";
-
-    protected static final String servicesODataServiceRootURL =
-            "http://services.odata.org/V3/(S(csquyjnoaywmz5xcdbfhlc1p))/OData/OData.svc/";
-
-    protected static ODataV3Client client;
-
-    protected static String testDefaultServiceRootURL;
-
-    protected static String testStaticServiceRootURL;
-
-    protected static String testActionOverloadingServiceRootURL;
-
-    protected static String testKeyAsSegmentServiceRootURL;
-
-//    protected static String testODataWriterDefaultServiceRootURL;
-    protected static String testOpenTypeServiceRootURL;
-
-    protected static String testPrimitiveKeysServiceRootURL;
-
-    protected static String testLargeModelServiceRootURL;
-
-    protected static String testAuthServiceRootURL;
-
-    @BeforeClass
-    public static void setUpODataServiceRoot() throws IOException {
-        String testBaseURL = null;
-
-        InputStream propStream = null;
-        try {
-            propStream = AbstractTestITCase.class.getResourceAsStream("/test.properties");
-            final Properties props = new Properties();
-            props.load(propStream);
-
-            testBaseURL = props.getProperty("test.base.url");
-        } catch (Exception e) {
-            LOG.error("Could not load test.properties", e);
-        } finally {
-            if (propStream != null) {
-                propStream.close();
-            }
-        }
-        assertNotNull("Check value for the 'test.base.url' property", testBaseURL);
-
-        testDefaultServiceRootURL = testBaseURL + "/DefaultService.svc";
-        testStaticServiceRootURL = "http://localhost:9080/StaticService/V3/Static.svc";
-        testActionOverloadingServiceRootURL = testBaseURL + "/ActionOverloadingService.svc";
-        testKeyAsSegmentServiceRootURL = testBaseURL + "/KeyAsSegmentService.svc";
-//        testODataWriterDefaultServiceRootURL = testBaseURL + "/ODataWriterDefaultService.svc";
-        testOpenTypeServiceRootURL = testBaseURL + "/OpenTypeService.svc";
-        testPrimitiveKeysServiceRootURL = "http://localhost:9080/StaticService/V3/Static.svc";
-        testLargeModelServiceRootURL = "http://localhost:9080/StaticService/V3/Static.svc/large";
-        testAuthServiceRootURL = "http://localhost:9080/DefaultService.svc";
-    }
-
-    /**
-     * This is needed for correct number handling (Double, for example).
-     */
-    @BeforeClass
-    public static void setEnglishLocale() {
-        Locale.setDefault(Locale.ENGLISH);
-    }
-
-    @BeforeClass
-    public static void setClientInstance() {
-        client = ODataClientFactory.getV3();
-    }
-
-    protected void checkLinks(final Collection<ODataLink> original, final Collection<ODataLink> actual) {
-        assertTrue(original.size() <= actual.size());
-
-        for (ODataLink originalLink : original) {
-            ODataLink foundOriginal = null;
-            ODataLink foundActual = null;
-
-            for (ODataLink actualLink : actual) {
-
-                if (actualLink.getType() == originalLink.getType()
-                        && (originalLink.getLink() == null
-                        || actualLink.getLink().toASCIIString().endsWith(originalLink.getLink().toASCIIString()))
-                        && actualLink.getName().equals(originalLink.getName())) {
-
-                    foundOriginal = originalLink;
-                    foundActual = actualLink;
-                }
-            }
-
-            assertNotNull(foundOriginal);
-            assertNotNull(foundActual);
-
-            if (foundOriginal instanceof ODataInlineEntity && foundActual instanceof ODataInlineEntity) {
-                final ODataEntity originalInline = ((ODataInlineEntity) foundOriginal).getEntity();
-                assertNotNull(originalInline);
-
-                final ODataEntity actualInline = ((ODataInlineEntity) foundActual).getEntity();
-                assertNotNull(actualInline);
-
-                checkProperties(originalInline.getProperties(), actualInline.getProperties());
-            }
-        }
-    }
-
-    protected void checkProperties(final Collection<ODataProperty> original, final Collection<ODataProperty> actual) {
-        assertTrue(original.size() <= actual.size());
-
-        // re-organize actual properties into a Map<String, ODataProperty>
-        final Map<String, ODataProperty> actualProps = new HashMap<String, ODataProperty>(actual.size());
-
-        for (ODataProperty prop : actual) {
-            assertFalse(actualProps.containsKey(prop.getName()));
-            actualProps.put(prop.getName(), prop);
-        }
-
-        assertTrue(actual.size() <= actualProps.size());
-
-        for (ODataProperty prop : original) {
-            assertNotNull(prop);
-            if (actualProps.containsKey(prop.getName())) {
-                final ODataProperty actualProp = actualProps.get(prop.getName());
-                assertNotNull(actualProp);
-
-                if (prop.getValue() != null && actualProp.getValue() != null) {
-                    checkPropertyValue(prop.getName(), prop.getValue(), actualProp.getValue());
-                }
-            } else {
-                // nothing ... maybe :FC_KeepInContent="false"
-                // ..... no assert can be done ....
-            }
-        }
-    }
-
-    protected void checkPropertyValue(final String propertyName,
-            final ODataValue original, final ODataValue actual) {
-
-        assertNotNull("Null original value for " + propertyName, original);
-        assertNotNull("Null actual value for " + propertyName, actual);
-
-        assertEquals("Type mismatch for '" + propertyName + "': "
-                + original.getClass().getSimpleName() + "-" + actual.getClass().getSimpleName(),
-                original.getClass().getSimpleName(), actual.getClass().getSimpleName());
-
-        if (original.isComplex()) {
-            final List<ODataProperty> originalFileds = new ArrayList<ODataProperty>();
-            for (ODataProperty prop : original.asComplex()) {
-                originalFileds.add(prop);
-            }
-
-            final List<ODataProperty> actualFileds = new ArrayList<ODataProperty>();
-            for (ODataProperty prop : (ODataComplexValue) actual) {
-                actualFileds.add(prop);
-            }
-
-            checkProperties(originalFileds, actualFileds);
-        } else if (original.isCollection()) {
-            assertTrue(original.asCollection().size() <= actual.asCollection().size());
-
-            boolean found = original.asCollection().isEmpty();
-
-            for (ODataValue originalValue : original.asCollection()) {
-                for (ODataValue actualValue : actual.asCollection()) {
-                    try {
-                        checkPropertyValue(propertyName, originalValue, actualValue);
-                        found = true;
-                    } catch (AssertionError ignore) {
-                        // ignore
-                    }
-                }
-            }
-
-            assertTrue("Found " + actual + " but expected " + original, found);
-        } else {
-            assertTrue("Primitive value for '" + propertyName + "' type mismatch: " + original.asPrimitive().
-                    getTypeName() + "-" + actual.asPrimitive().getTypeName(),
-                    original.asPrimitive().getTypeName().equals(actual.asPrimitive().getTypeName()));
-
-            assertEquals("Primitive value for '" + propertyName + "' mismatch: " + original.asPrimitive().toString()
-                    + "-" + actual.asPrimitive().toString(),
-                    original.asPrimitive().toString(), actual.asPrimitive().toString());
-        }
-    }
-
-    protected ODataEntity getSampleCustomerInfo(final int id, final String sampleinfo) {
-        final ODataEntity entity =
-                client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo");
-        entity.setMediaEntity(true);
-
-        entity.addProperty(client.getObjectFactory().newPrimitiveProperty("Information",
-                client.getPrimitiveValueBuilder().setText(sampleinfo).setType(
-                EdmSimpleType.String).build()));
-
-        return entity;
-    }
-
-    protected ODataEntity getSampleCustomerProfile(
-            final int id, final String sampleName, final boolean withInlineInfo) {
-
-        final ODataEntity entity =
-                client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer");
-
-        // add name attribute
-        entity.addProperty(client.getObjectFactory().newPrimitiveProperty("Name",
-                client.getPrimitiveValueBuilder().setText(sampleName).setType(
-                EdmSimpleType.String).build()));
-
-        // add key attribute
-        entity.addProperty(client.getObjectFactory().newPrimitiveProperty("CustomerId",
-                client.getPrimitiveValueBuilder().setText(String.valueOf(id)).setType(
-                EdmSimpleType.Int32).build()));
-
-        // add BackupContactInfo attribute (collection)
-        final ODataCollectionValue backupContactInfoValue = new ODataCollectionValue(
-                "Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails)");
-        entity.addProperty(client.getObjectFactory().newCollectionProperty("BackupContactInfo",
-                backupContactInfoValue));
-
-        // add BackupContactInfo.ContactDetails attribute (complex)
-        final ODataComplexValue contactDetails = new ODataComplexValue(
-                "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails");
-        backupContactInfoValue.add(contactDetails);
-
-        // add BackupContactInfo.ContactDetails.AlternativeNames attribute (collection)
-        final ODataCollectionValue altNamesValue = new ODataCollectionValue("Collection(Edm.String)");
-        altNamesValue.add(client.getPrimitiveValueBuilder().
-                setText("myname").setType(EdmSimpleType.String).build());
-        contactDetails.add(client.getObjectFactory().newCollectionProperty("AlternativeNames", altNamesValue));
-
-        // add BackupContactInfo.ContactDetails.EmailBag attribute (collection)
-        final ODataCollectionValue emailBagValue = new ODataCollectionValue("Collection(Edm.String)");
-        emailBagValue.add(client.getPrimitiveValueBuilder().
-                setText("myname@mydomain.com").setType(EdmSimpleType.String).build());
-        contactDetails.add(client.getObjectFactory().newCollectionProperty("EmailBag", emailBagValue));
-
-        // add BackupContactInfo.ContactDetails.ContactAlias attribute (complex)
-        final ODataComplexValue contactAliasValue = new ODataComplexValue(
-                "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases");
-        contactDetails.add(client.getObjectFactory().newComplexProperty("ContactAlias", contactAliasValue));
-
-        // add BackupContactInfo.ContactDetails.ContactAlias.AlternativeNames attribute (collection)
-        final ODataCollectionValue aliasAltNamesValue = new ODataCollectionValue("Collection(Edm.String)");
-        aliasAltNamesValue.add(client.getPrimitiveValueBuilder().
-                setText("myAlternativeName").setType(EdmSimpleType.String).build());
-        contactAliasValue.add(client.getObjectFactory().newCollectionProperty("AlternativeNames", aliasAltNamesValue));
-
-        if (withInlineInfo) {
-            final ODataInlineEntity inlineInfo = client.getObjectFactory().newInlineEntity(
-                    "Info",
-                    URI.create("Customer(" + id + ")/Info"),
-                    getSampleCustomerInfo(id, sampleName + "_Info"));
-            inlineInfo.getEntity().setMediaEntity(true);
-            entity.addLink(inlineInfo);
-        }
-
-        return entity;
-    }
-
-    protected void debugEntry(final Entry entry, final String message) {
-        if (LOG.isDebugEnabled()) {
-            final StringWriter writer = new StringWriter();
-            client.getSerializer().entry(entry, writer);
-            writer.flush();
-            LOG.debug(message + "\n{}", writer.toString());
-        }
-    }
-
-    protected void debugFeed(final Feed feed, final String message) {
-        if (LOG.isDebugEnabled()) {
-            final StringWriter writer = new StringWriter();
-            client.getSerializer().feed(feed, writer);
-            writer.flush();
-            LOG.debug(message + "\n{}", writer.toString());
-        }
-    }
-
-    protected void debugODataProperty(final ODataProperty property, final String message) {
-        LOG.debug(message + "\n{}", property.toString());
-    }
-
-    protected void debugODataValue(final ODataValue value, final String message) {
-        LOG.debug(message + "\n{}", value.toString());
-    }
-
-    protected void debugODataEntity(final ODataEntity entity, final String message) {
-        if (LOG.isDebugEnabled()) {
-            StringWriter writer = new StringWriter();
-            client.getSerializer().entry(client.getBinder().getEntry(entity, AtomEntry.class), writer);
-            writer.flush();
-            LOG.debug(message + " (Atom)\n{}", writer.toString());
-
-            writer = new StringWriter();
-            client.getSerializer().entry(client.getBinder().getEntry(entity, JSONEntry.class), writer);
-            writer.flush();
-            LOG.debug(message + " (JSON)\n{}", writer.toString());
-        }
-    }
-
-    protected void debugInputStream(final InputStream input, final String message) {
-        if (LOG.isDebugEnabled()) {
-            try {
-                LOG.debug(message + "\n{}", IOUtils.toString(input));
-            } catch (IOException e) {
-                LOG.error("Error writing stream", e);
-            } finally {
-                IOUtils.closeQuietly(input);
-            }
-        }
-    }
-
-    protected String getETag(final URI uri) {
-        final ODataRetrieveResponse<ODataEntity> res = client.getRetrieveRequestFactory().
-                getEntityRequest(uri).execute();
-        try {
-            return res.getEtag();
-        } finally {
-            res.close();
-        }
-    }
-
-    protected ODataEntity read(final ODataPubFormat format, final URI editLink) {
-        final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(editLink);
-        req.setFormat(format);
-
-        final ODataRetrieveResponse<ODataEntity> res = req.execute();
-        final ODataEntity entity = res.getBody();
-
-        assertNotNull(entity);
-
-        if (ODataPubFormat.JSON_FULL_METADATA == format || ODataPubFormat.ATOM == format) {
-            assertEquals(req.getURI(), entity.getEditLink());
-        }
-
-        return entity;
-    }
-
-    protected ODataEntity createEntity(
-            final String serviceRootURL,
-            final ODataPubFormat format,
-            final ODataEntity original,
-            final String entitySetName) {
-
-        final URIBuilder uriBuilder = client.getURIBuilder(serviceRootURL);
-        uriBuilder.appendEntitySetSegment(entitySetName);
-
-        debugODataEntity(original, "About to create");
-
-        final ODataEntityCreateRequest createReq =
-                client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), original);
-        createReq.setFormat(format);
-
-        final ODataEntityCreateResponse createRes = createReq.execute();
-        assertEquals(201, createRes.getStatusCode());
-        assertEquals("Created", createRes.getStatusMessage());
-
-        final ODataEntity created = createRes.getBody();
-        assertNotNull(created);
-
-        debugODataEntity(created, "Just created");
-
-        return created;
-    }
-
-    protected ODataEntity compareEntities(final String serviceRootURL,
-            final ODataPubFormat format,
-            final ODataEntity original,
-            final int actualObjectId,
-            final Collection<String> expands) {
-
-        final URIBuilder uriBuilder = client.getURIBuilder(serviceRootURL).
-                appendEntityTypeSegment("Customer").appendKeySegment(actualObjectId);
-
-        // search expanded
-        if (expands != null) {
-            for (String expand : expands) {
-                uriBuilder.expand(expand);
-            }
-        }
-
-        final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build());
-        req.setFormat(format);
-
-        final ODataRetrieveResponse<ODataEntity> res = req.execute();
-        assertEquals(200, res.getStatusCode());
-
-        final ODataEntity actual = res.getBody();
-        assertNotNull(actual);
-
-        // check defined links
-        checkLinks(original.getAssociationLinks(), actual.getAssociationLinks());
-        checkLinks(original.getEditMediaLinks(), actual.getEditMediaLinks());
-        checkLinks(original.getNavigationLinks(), actual.getNavigationLinks());
-
-        // check defined properties equality
-        checkProperties(original.getProperties(), actual.getProperties());
-
-        return actual;
-    }
-
-    protected void cleanAfterCreate(
-            final ODataPubFormat format,
-            final ODataEntity created,
-            final boolean includeInline,
-            final String baseUri) {
-
-        final Set<URI> toBeDeleted = new HashSet<URI>();
-        toBeDeleted.add(created.getEditLink());
-
-        if (includeInline) {
-            for (ODataLink link : created.getNavigationLinks()) {
-                if (link instanceof ODataInlineEntity) {
-                    final ODataEntity inline = ((ODataInlineEntity) link).getEntity();
-                    if (inline.getEditLink() != null) {
-                        toBeDeleted.add(URIUtils.getURI(baseUri, inline.getEditLink().toASCIIString()));
-                    }
-                }
-
-                if (link instanceof ODataInlineEntitySet) {
-                    final ODataEntitySet inline = ((ODataInlineEntitySet) link).getEntitySet();
-                    for (ODataEntity entity : inline.getEntities()) {
-                        if (entity.getEditLink() != null) {
-                            toBeDeleted.add(URIUtils.getURI(baseUri, entity.getEditLink().toASCIIString()));
-                        }
-                    }
-                }
-            }
-        }
-
-        assertFalse(toBeDeleted.isEmpty());
-
-        for (URI link : toBeDeleted) {
-            final ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(link);
-            final ODataDeleteResponse deleteRes = deleteReq.execute();
-
-            assertEquals(204, deleteRes.getStatusCode());
-            assertEquals("No Content", deleteRes.getStatusMessage());
-
-            deleteRes.close();
-
-            final ODataEntityRequest retrieveReq = client.getRetrieveRequestFactory().getEntityRequest(link);
-            // bug that needs to be fixed on the SampleService - cannot get entity not found with header
-            // Accept: application/json;odata=minimalmetadata
-            retrieveReq.setFormat(format == ODataPubFormat.JSON_FULL_METADATA ? ODataPubFormat.JSON : format);
-
-            Exception exception = null;
-            try {
-                retrieveReq.execute();
-                fail();
-            } catch (ODataClientErrorException e) {
-                exception = e;
-                assertEquals(404, e.getStatusLine().getStatusCode());
-            }
-            assertNotNull(exception);
-        }
-    }
-
-    protected void updateEntityDescription(
-            final ODataPubFormat format, final ODataEntity changes, final UpdateType type) {
-
-        updateEntityDescription(format, changes, type, null);
-    }
-
-    protected void updateEntityDescription(
-            final ODataPubFormat format, final ODataEntity changes, final UpdateType type, final String etag) {
-
-        updateEntityStringProperty("Description", format, changes, type, etag);
-    }
-
-    protected void updateEntityStringProperty(final String propertyName,
-            final ODataPubFormat format, final ODataEntity changes, final UpdateType type, final String etag) {
-
-        final URI editLink = changes.getEditLink();
-
-        final String newm = "New " + propertyName + "(" + System.currentTimeMillis() + ")";
-
-        ODataProperty propertyValue = changes.getProperty(propertyName);
-
-        final String oldm;
-        if (propertyValue == null) {
-            oldm = null;
-        } else {
-            oldm = propertyValue.getValue().toString();
-            changes.removeProperty(propertyValue);
-        }
-
-        assertNotEquals(newm, oldm);
-
-        changes.addProperty(client.getObjectFactory().newPrimitiveProperty(propertyName,
-                client.getPrimitiveValueBuilder().setText(newm).build()));
-
-        update(type, changes, format, etag);
-
-        final ODataEntity actual = read(format, editLink);
-
-        propertyValue = null;
-
-        for (ODataProperty prop : actual.getProperties()) {
-            if (prop.getName().equals(propertyName)) {
-                propertyValue = prop;
-            }
-        }
-
-        assertNotNull(propertyValue);
-        assertEquals(newm, propertyValue.getValue().toString());
-    }
-
-    protected void update(
-            final UpdateType type, final ODataEntity changes, final ODataPubFormat format, final String etag) {
-        final ODataEntityUpdateRequest req = client.getCUDRequestFactory().getEntityUpdateRequest(type, changes);
-
-        if (client.getConfiguration().isUseXHTTPMethod()) {
-            assertEquals(HttpMethod.POST, req.getMethod());
-        } else {
-            assertEquals(type.getMethod(), req.getMethod());
-        }
-        req.setFormat(format);
-
-        if (StringUtils.isNotBlank(etag)) {
-            req.setIfMatch(etag); // Product include ETag header into the response .....
-        }
-
-        final ODataEntityUpdateResponse res = req.execute();
-        assertEquals(204, res.getStatusCode());
-    }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/ActionOverloadingTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/ActionOverloadingTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/ActionOverloadingTestITCase.java
deleted file mode 100644
index de9e03b..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/ActionOverloadingTestITCase.java
+++ /dev/null
@@ -1,152 +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 com.msopentech.odatajclient.engine.it;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import com.msopentech.odatajclient.engine.communication.response.ODataInvokeResponse;
-import com.msopentech.odatajclient.engine.data.ODataEntity;
-import com.msopentech.odatajclient.engine.data.ODataEntitySet;
-import com.msopentech.odatajclient.engine.data.ODataNoContent;
-import com.msopentech.odatajclient.engine.data.ODataProperty;
-import com.msopentech.odatajclient.engine.uri.URIBuilder;
-import com.msopentech.odatajclient.engine.data.ODataValue;
-import com.msopentech.odatajclient.engine.metadata.EdmV3Metadata;
-import com.msopentech.odatajclient.engine.metadata.edm.EdmSimpleType;
-import com.msopentech.odatajclient.engine.metadata.edm.v3.EntityContainer;
-import com.msopentech.odatajclient.engine.metadata.edm.v3.FunctionImport;
-import com.msopentech.odatajclient.engine.utils.URIUtils;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import org.junit.Test;
-
-public class ActionOverloadingTestITCase extends AbstractTestITCase {
-
-    @Test
-    public void retrieveProducts() {
-        final EdmV3Metadata metadata = client.getRetrieveRequestFactory().
-                getMetadataRequest(testActionOverloadingServiceRootURL).execute().getBody();
-        assertNotNull(metadata);
-
-        final EntityContainer container = metadata.getSchema(0).getEntityContainers().get(0);
-        assertNotNull(container);
-
-        int execs = 0;
-        for (FunctionImport funcImp : container.getFunctionImports("RetrieveProduct")) {
-            final ODataInvokeResponse<ODataProperty> res;
-            if (funcImp.getParameters().isEmpty()) {
-                final URIBuilder funcImpBuilder = client.getURIBuilder(testActionOverloadingServiceRootURL).
-                        appendFunctionImportSegment(URIUtils.rootFunctionImportURISegment(container, funcImp));
-
-                res = client.getInvokeRequestFactory().<ODataProperty>getInvokeRequest(
-                        funcImpBuilder.build(), metadata, funcImp).execute();
-            } else if ("Microsoft.Test.OData.Services.AstoriaDefaultService.Product".
-                    equals(funcImp.getParameters().get(0).getType())) {
-
-                final ODataEntity product = client.getRetrieveRequestFactory().getEntityRequest(
-                        client.getURIBuilder(testActionOverloadingServiceRootURL).
-                        appendEntityTypeSegment("Product").appendKeySegment(-10).build()).
-                        execute().getBody();
-                assertNotNull(product);
-
-                res = client.getInvokeRequestFactory().<ODataProperty>getInvokeRequest(
-                        product.getOperation("RetrieveProduct").getTarget(), metadata, funcImp).execute();
-            } else if ("Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine".
-                    equals(funcImp.getParameters().get(0).getType())) {
-
-                final Map<String, Object> key = new LinkedHashMap<String, Object>(2);
-                key.put("OrderId", -10);
-                key.put("ProductId", -10);
-                final ODataEntity orderLine = client.getRetrieveRequestFactory().getEntityRequest(
-                        client.getURIBuilder(testActionOverloadingServiceRootURL).
-                        appendEntityTypeSegment("OrderLine").appendKeySegment(key).build()).
-                        execute().getBody();
-                assertNotNull(orderLine);
-
-                res = client.getInvokeRequestFactory().<ODataProperty>getInvokeRequest(
-                        orderLine.getOperation("RetrieveProduct").getTarget(), metadata, funcImp).execute();
-            } else {
-                res = null;
-            }
-
-            assertNotNull(res);
-            assertEquals(200, res.getStatusCode());
-            assertEquals(Integer.valueOf(-10), res.getBody().getPrimitiveValue().<Integer>toCastValue());
-            execs++;
-        }
-        assertEquals(3, execs);
-    }
-
-    @Test
-    public void increaseSalaries() {
-        final EdmV3Metadata metadata =
-                client.getRetrieveRequestFactory().getMetadataRequest(testActionOverloadingServiceRootURL).execute().
-                getBody();
-        assertNotNull(metadata);
-
-        final EntityContainer container = metadata.getSchema(0).getEntityContainers().get(0);
-        assertNotNull(container);
-
-        int execs = 0;
-        for (FunctionImport funcImp : container.getFunctionImports("IncreaseSalaries")) {
-            final Map<String, ODataValue> parameters = new LinkedHashMap<String, ODataValue>(1);
-            parameters.put("n",
-                    client.getPrimitiveValueBuilder().setType(EdmSimpleType.Int32).setValue(5).build());
-
-            final ODataInvokeResponse<ODataNoContent> res;
-            if ("Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.Employee)".
-                    equals(funcImp.getParameters().get(0).getType())) {
-
-                final URIBuilder builder = client.getURIBuilder(testActionOverloadingServiceRootURL).
-                        appendEntitySetSegment("Person").
-                        appendStructuralSegment("Microsoft.Test.OData.Services.AstoriaDefaultService.Employee");
-
-                final ODataEntitySet employees = client.getRetrieveRequestFactory().getEntitySetRequest(
-                        builder.build()).execute().getBody();
-                assertNotNull(employees);
-
-                res = client.getInvokeRequestFactory().<ODataNoContent>getInvokeRequest(
-                        builder.appendFunctionImportSegment(funcImp.getName()).build(), metadata, funcImp, parameters).
-                        execute();
-            } else if ("Collection(Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee)".
-                    equals(funcImp.getParameters().get(0).getType())) {
-
-                final URIBuilder builder = client.getURIBuilder(testActionOverloadingServiceRootURL).
-                        appendEntitySetSegment("Person").
-                        appendStructuralSegment("Microsoft.Test.OData.Services.AstoriaDefaultService.SpecialEmployee");
-
-                final ODataEntitySet specialEmployees = client.getRetrieveRequestFactory().getEntitySetRequest(
-                        builder.build()).execute().getBody();
-                assertNotNull(specialEmployees);
-
-                res = client.getInvokeRequestFactory().<ODataNoContent>getInvokeRequest(
-                        builder.appendFunctionImportSegment(funcImp.getName()).build(), metadata, funcImp, parameters).
-                        execute();
-            } else {
-                res = null;
-            }
-
-            assertNotNull(res);
-            assertEquals(204, res.getStatusCode());
-            execs++;
-        }
-        assertEquals(2, execs);
-    }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AsyncTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AsyncTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AsyncTestITCase.java
deleted file mode 100644
index f2df3f1..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AsyncTestITCase.java
+++ /dev/null
@@ -1,129 +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 com.msopentech.odatajclient.engine.it;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertFalse;
-
-import com.msopentech.odatajclient.engine.communication.request.UpdateType;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataEntityUpdateRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataMediaRequest;
-import com.msopentech.odatajclient.engine.communication.request.streamed.ODataMediaEntityCreateRequest;
-import com.msopentech.odatajclient.engine.communication.response.ODataEntityUpdateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataMediaEntityCreateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataRetrieveResponse;
-import com.msopentech.odatajclient.engine.data.ODataEntity;
-import com.msopentech.odatajclient.engine.data.ODataEntitySet;
-import com.msopentech.odatajclient.engine.data.ODataPrimitiveValue;
-import com.msopentech.odatajclient.engine.uri.URIBuilder;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import org.apache.commons.io.IOUtils;
-import org.junit.Test;
-
-public class AsyncTestITCase extends AbstractTestITCase {
-
-    @Test
-    public void retrieveEntitySet() throws InterruptedException, ExecutionException {
-        final URIBuilder uriBuilder = client.getURIBuilder(testDefaultServiceRootURL).
-                appendEntitySetSegment("Product");
-        final Future<ODataRetrieveResponse<ODataEntitySet>> futureRes =
-                client.getRetrieveRequestFactory().getEntitySetRequest(uriBuilder.build()).asyncExecute();
-        assertNotNull(futureRes);
-
-        while (!futureRes.isDone()) {
-        }
-
-        final ODataRetrieveResponse<ODataEntitySet> res = futureRes.get();
-        assertNotNull(res);
-        assertEquals(200, res.getStatusCode());
-        assertFalse(res.getBody().getEntities().isEmpty());
-    }
-
-    @Test
-    public void updateEntity() throws InterruptedException, ExecutionException {
-        final URI uri = client.getURIBuilder(testDefaultServiceRootURL).
-                appendEntityTypeSegment("Product").appendKeySegment(-10).build();
-
-        final ODataRetrieveResponse<ODataEntity> entityRes = client.getRetrieveRequestFactory().
-                getEntityRequest(uri).execute();
-        final ODataEntity entity = entityRes.getBody();
-        entity.getAssociationLinks().clear();
-        entity.getNavigationLinks().clear();
-        entity.getEditMediaLinks().clear();
-        entity.getProperty("Description").setValue(
-                client.getPrimitiveValueBuilder().setText("AsyncTest#updateEntity").build());
-
-        final ODataEntityUpdateRequest updateReq =
-                client.getCUDRequestFactory().getEntityUpdateRequest(uri, UpdateType.MERGE, entity);
-        updateReq.setIfMatch(entityRes.getEtag());
-        final Future<ODataEntityUpdateResponse> futureRes = updateReq.asyncExecute();
-
-        while (!futureRes.isDone()) {
-        }
-
-        final ODataEntityUpdateResponse res = futureRes.get();
-        assertNotNull(res);
-        assertEquals(204, res.getStatusCode());
-    }
-
-    /**
-     * @see MediaEntityTest#createMediaEntity(com.msopentech.odatajclient.engine.format.ODataPubFormat)
-     */
-    @Test
-    public void createMediaEntity() throws InterruptedException, ExecutionException, IOException {
-        URIBuilder builder = client.getURIBuilder(testDefaultServiceRootURL).appendEntitySetSegment("Car");
-
-        final String TO_BE_UPDATED = "async buffered stream sample";
-        final InputStream input = IOUtils.toInputStream(TO_BE_UPDATED);
-
-        final ODataMediaEntityCreateRequest createReq =
-                client.getStreamedRequestFactory().getMediaEntityCreateRequest(builder.build(), input);
-
-        final ODataMediaEntityCreateRequest.MediaEntityCreateStreamManager streamManager = createReq.execute();
-        final Future<ODataMediaEntityCreateResponse> futureCreateRes = streamManager.getAsyncResponse();
-
-        while (!futureCreateRes.isDone()) {
-        }
-        final ODataMediaEntityCreateResponse createRes = futureCreateRes.get();
-
-        assertEquals(201, createRes.getStatusCode());
-
-        final ODataEntity created = createRes.getBody();
-        assertNotNull(created);
-        assertEquals(2, created.getProperties().size());
-
-        final int id = "VIN".equals(created.getProperties().get(0).getName())
-                ? created.getProperties().get(0).getPrimitiveValue().<Integer>toCastValue()
-                : created.getProperties().get(1).getPrimitiveValue().<Integer>toCastValue();
-
-        builder = client.getURIBuilder(testDefaultServiceRootURL).
-                appendEntityTypeSegment("Car").appendKeySegment(id).appendValueSegment();
-
-        final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(builder.build());
-
-        final ODataRetrieveResponse<InputStream> retrieveRes = retrieveReq.execute();
-        assertEquals(200, retrieveRes.getStatusCode());
-        assertEquals(TO_BE_UPDATED, IOUtils.toString(retrieveRes.getBody()));
-    }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AuthEntityRetrieveTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AuthEntityRetrieveTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AuthEntityRetrieveTestITCase.java
deleted file mode 100644
index 0a99553..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/AuthEntityRetrieveTestITCase.java
+++ /dev/null
@@ -1,53 +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 com.msopentech.odatajclient.engine.it;
-
-import com.msopentech.odatajclient.engine.client.http.AbstractBasicAuthHttpClientFactory;
-import com.msopentech.odatajclient.engine.client.http.DefaultHttpClientFactory;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-
-public class AuthEntityRetrieveTestITCase extends EntityRetrieveTestITCase {
-
-    @BeforeClass
-    public static void enableBasicAuth() {
-        client.getConfiguration().setHttpClientFactory(new AbstractBasicAuthHttpClientFactory() {
-
-            @Override
-            protected String getUsername() {
-                return "odatajclient";
-            }
-
-            @Override
-            protected String getPassword() {
-                return "odatajclient";
-            }
-        });
-    }
-
-    @AfterClass
-    public static void disableBasicAuth() {
-        client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory());
-    }
-
-    @Override
-    protected String getServiceRoot() {
-        return testAuthServiceRootURL;
-    }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/BatchTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/BatchTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/BatchTestITCase.java
deleted file mode 100644
index f099dfb..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/BatchTestITCase.java
+++ /dev/null
@@ -1,439 +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 com.msopentech.odatajclient.engine.it;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.fail;
-
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataBatchRequest;
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataBatchRequest.BatchStreamManager;
-import com.msopentech.odatajclient.engine.communication.request.ODataStreamManager;
-import com.msopentech.odatajclient.engine.communication.request.UpdateType;
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataBatchResponseItem;
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataChangeset;
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataChangesetResponseItem;
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataRetrieve;
-import com.msopentech.odatajclient.engine.communication.request.batch.ODataRetrieveResponseItem;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataEntityCreateRequest;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataEntityUpdateRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataEntityRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataEntityRequest.ODataEntityResponseImpl;
-import org.junit.Test;
-import com.msopentech.odatajclient.engine.communication.response.ODataBatchResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataEntityCreateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataEntityUpdateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataResponse;
-import com.msopentech.odatajclient.engine.data.ODataEntity;
-import com.msopentech.odatajclient.engine.data.ODataObjectFactory;
-import com.msopentech.odatajclient.engine.data.ODataPrimitiveValue;
-import com.msopentech.odatajclient.engine.uri.URIBuilder;
-import com.msopentech.odatajclient.engine.format.ODataPubFormat;
-import com.msopentech.odatajclient.engine.utils.ODataBatchConstants;
-import com.msopentech.odatajclient.engine.utils.URIUtils;
-import com.msopentech.odatajclient.engine.utils.Wrapper;
-import java.io.IOException;
-import java.net.URI;
-import java.util.Iterator;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import org.apache.http.HttpResponse;
-
-public class BatchTestITCase extends AbstractTestITCase {
-
-    private static String PREFIX = "!!PREFIX!!";
-
-    private static String SUFFIX = "!!SUFFIX!!";
-
-    private static int MAX = 10000;
-
-    @Test
-    public void stringStreaming() {
-        final TestStreamManager streaming = new TestStreamManager();
-
-        new StreamingThread(streaming).start();
-
-        streaming.addObject((PREFIX + "\n").getBytes());
-
-        for (int i = 0; i <= MAX; i++) {
-            streaming.addObject((i + ") send info\n").getBytes());
-        }
-
-        streaming.addObject((SUFFIX).getBytes());
-        streaming.finalizeBody();
-    }
-
-    @Test
-    public void emptyBatchRequest() {
-        // create your request
-        final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testDefaultServiceRootURL);
-
-        final BatchStreamManager payload = request.execute();
-        final ODataBatchResponse response = payload.getResponse();
-
-        assertEquals(202, response.getStatusCode());
-        assertEquals("Accepted", response.getStatusMessage());
-
-        final Iterator<ODataBatchResponseItem> iter = response.getBody();
-        assertFalse(iter.hasNext());
-    }
-
-    @Test
-    public void changesetWithError() {
-        // create your request
-        final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testDefaultServiceRootURL);
-
-        final BatchStreamManager payload = request.execute();
-        final ODataChangeset changeset = payload.addChangeset();
-
-        URIBuilder targetURI;
-        ODataEntityCreateRequest create;
-
-        targetURI = client.getURIBuilder(testDefaultServiceRootURL).appendEntitySetSegment("Customer");
-        for (int i = 1; i <= 2; i++) {
-            // Create Customer into the changeset
-            create = client.getCUDRequestFactory().getEntityCreateRequest(
-                    targetURI.build(),
-                    getSampleCustomerProfile(100 + i, "Sample customer", false));
-            create.setFormat(ODataPubFormat.JSON);
-            changeset.addRequest(create);
-        }
-
-        targetURI = client.getURIBuilder(testDefaultServiceRootURL).appendEntitySetSegment("WrongEntitySet");
-        create = client.getCUDRequestFactory().getEntityCreateRequest(
-                targetURI.build(),
-                getSampleCustomerProfile(105, "Sample customer", false));
-        create.setFormat(ODataPubFormat.JSON);
-        changeset.addRequest(create);
-
-        targetURI = client.getURIBuilder(testDefaultServiceRootURL).appendEntitySetSegment("Customer");
-        for (int i = 3; i <= 4; i++) {
-            // Create Customer into the changeset
-            create = client.getCUDRequestFactory().getEntityCreateRequest(
-                    targetURI.build(),
-                    getSampleCustomerProfile(100 + i, "Sample customer", false));
-            create.setFormat(ODataPubFormat.ATOM);
-            changeset.addRequest(create);
-        }
-
-        final ODataBatchResponse response = payload.getResponse();
-        assertEquals(202, response.getStatusCode());
-        assertEquals("Accepted", response.getStatusMessage());
-
-        final Iterator<ODataBatchResponseItem> iter = response.getBody();
-        final ODataChangesetResponseItem chgResponseItem = (ODataChangesetResponseItem) iter.next();
-
-        final ODataResponse res = chgResponseItem.next();
-        assertEquals(404, res.getStatusCode());
-        assertEquals("Not Found", res.getStatusMessage());
-        assertEquals(Integer.valueOf(3), Integer.valueOf(
-                res.getHeader(ODataBatchConstants.CHANGESET_CONTENT_ID_NAME).iterator().next()));
-        assertFalse(chgResponseItem.hasNext());
-    }
-
-    @Test
-    public void changesetWithReference() {
-        // create your request
-        final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testDefaultServiceRootURL);
-        final BatchStreamManager streamManager = request.execute();
-
-        final ODataChangeset changeset = streamManager.addChangeset();
-        ODataEntity customer = getSampleCustomerProfile(20, "sample customer", false);
-
-        URIBuilder uriBuilder = client.getURIBuilder(testAuthServiceRootURL).appendEntitySetSegment("Customer");
-
-        // add create request
-        final ODataEntityCreateRequest createReq =
-                client.getCUDRequestFactory().getEntityCreateRequest(uriBuilder.build(), customer);
-
-        changeset.addRequest(createReq);
-
-        // retrieve request reference
-        int createRequestRef = changeset.getLastContentId();
-
-        // add update request: link CustomerInfo(17) to the new customer
-        final ODataEntity customerChanges = client.getObjectFactory().newEntity(customer.getName());
-        customerChanges.addLink(client.getObjectFactory().newEntityNavigationLink(
-                "Info",
-                client.getURIBuilder(testAuthServiceRootURL).appendEntitySetSegment("CustomerInfo").
-                appendKeySegment(17).build()));
-
-        final ODataEntityUpdateRequest updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(
-                URI.create("$" + createRequestRef), UpdateType.PATCH, customerChanges);
-
-        changeset.addRequest(updateReq);
-
-        final ODataBatchResponse response = streamManager.getResponse();
-        assertEquals(202, response.getStatusCode());
-        assertEquals("Accepted", response.getStatusMessage());
-
-        // verify response payload ...
-        final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-        final ODataBatchResponseItem item = iter.next();
-        assertTrue(item instanceof ODataChangesetResponseItem);
-
-        final ODataChangesetResponseItem chgitem = (ODataChangesetResponseItem) item;
-
-        ODataResponse res = chgitem.next();
-        assertEquals(201, res.getStatusCode());
-        assertTrue(res instanceof ODataEntityCreateResponse);
-
-        customer = ((ODataEntityCreateResponse) res).getBody();
-
-        ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(
-                URIUtils.getURI(testDefaultServiceRootURL, customer.getEditLink().toASCIIString() + "/Info"));
-
-        assertEquals(Integer.valueOf(17),
-                req.execute().getBody().getProperty("CustomerInfoId").getPrimitiveValue().<Integer>toCastValue());
-
-        res = chgitem.next();
-        assertEquals(204, res.getStatusCode());
-        assertTrue(res instanceof ODataEntityUpdateResponse);
-
-        // clean ...
-        assertEquals(204, client.getCUDRequestFactory().getDeleteRequest(
-                URIUtils.getURI(testDefaultServiceRootURL, customer.getEditLink().toASCIIString())).execute().
-                getStatusCode());
-
-        try {
-            client.getRetrieveRequestFactory().getEntityRequest(
-                    URIUtils.getURI(testDefaultServiceRootURL, customer.getEditLink().toASCIIString())).
-                    execute().getBody();
-            fail();
-        } catch (Exception e) {
-            // ignore
-        }
-    }
-
-    @Test
-    public void batchRequest() {
-        // create your request
-        final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(testDefaultServiceRootURL);
-
-        final BatchStreamManager streamManager = request.execute();
-
-        // -------------------------------------------
-        // Add retrieve item
-        // -------------------------------------------
-        ODataRetrieve retrieve = streamManager.addRetrieve();
-
-        // prepare URI
-        URIBuilder targetURI = client.getURIBuilder(testDefaultServiceRootURL);
-        targetURI.appendEntityTypeSegment("Customer").appendKeySegment(-10).
-                expand("Logins").select("CustomerId,Logins/Username");
-
-        // create new request
-        ODataEntityRequest query = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-        query.setFormat(ODataPubFormat.ATOM);
-
-        retrieve.setRequest(query);
-        // -------------------------------------------
-
-        // -------------------------------------------
-        // Add changeset item
-        // -------------------------------------------
-        final ODataChangeset changeset = streamManager.addChangeset();
-
-        // Update Product into the changeset
-        targetURI = client.getURIBuilder(testDefaultServiceRootURL).
-                appendEntityTypeSegment("Product").appendKeySegment(-10);
-        final URI editLink = targetURI.build();
-
-        final ODataEntity merge = client.getObjectFactory().newEntity(TEST_PRODUCT_TYPE);
-        merge.setEditLink(editLink);
-
-        merge.addProperty(client.getObjectFactory().newPrimitiveProperty(
-                "Description", client.getPrimitiveValueBuilder().setText("new description from batch").build()));
-
-        final ODataEntityUpdateRequest changes =
-                client.getCUDRequestFactory().getEntityUpdateRequest(UpdateType.MERGE, merge);
-        changes.setFormat(ODataPubFormat.JSON_FULL_METADATA);
-        changes.setIfMatch(getETag(editLink));
-
-        changeset.addRequest(changes);
-
-        // Create Customer into the changeset
-        targetURI = client.getURIBuilder(testDefaultServiceRootURL).appendEntitySetSegment("Customer");
-        final ODataEntity original = getSampleCustomerProfile(1000, "Sample customer", false);
-        final ODataEntityCreateRequest create =
-                client.getCUDRequestFactory().getEntityCreateRequest(targetURI.build(), original);
-        create.setFormat(ODataPubFormat.ATOM);
-        changeset.addRequest(create);
-        // -------------------------------------------
-
-        // -------------------------------------------
-        // Add retrieve item
-        // -------------------------------------------
-        retrieve = streamManager.addRetrieve();
-
-        // prepare URI
-        targetURI = client.getURIBuilder(testDefaultServiceRootURL).
-                appendEntityTypeSegment("Product").appendKeySegment(-10);
-
-        // create new request
-        query = client.getRetrieveRequestFactory().getEntityRequest(targetURI.build());
-
-        retrieve.setRequest(query);
-        // -------------------------------------------
-
-        final ODataBatchResponse response = streamManager.getResponse();
-        assertEquals(202, response.getStatusCode());
-        assertEquals("Accepted", response.getStatusMessage());
-
-        final Iterator<ODataBatchResponseItem> iter = response.getBody();
-
-        // retrive the first item (ODataRetrieve)
-        ODataBatchResponseItem item = iter.next();
-        assertTrue(item instanceof ODataRetrieveResponseItem);
-
-        ODataRetrieveResponseItem retitem = (ODataRetrieveResponseItem) item;
-        ODataResponse res = retitem.next();
-        assertTrue(res instanceof ODataEntityResponseImpl);
-        assertEquals(200, res.getStatusCode());
-        assertEquals("OK", res.getStatusMessage());
-
-        ODataEntityResponseImpl entres = (ODataEntityResponseImpl) res;
-        ODataEntity entity = entres.getBody();
-        assertEquals(new Integer(-10), entity.getProperty("CustomerId").getPrimitiveValue().<Integer>toCastValue());
-
-        // retrieve the second item (ODataChangeset)
-        item = iter.next();
-        assertTrue(item instanceof ODataChangesetResponseItem);
-
-        final ODataChangesetResponseItem chgitem = (ODataChangesetResponseItem) item;
-        res = chgitem.next();
-        assertTrue(res instanceof ODataEntityUpdateResponse);
-        assertEquals(204, res.getStatusCode());
-        assertEquals("No Content", res.getStatusMessage());
-
-        res = chgitem.next();
-        assertTrue(res instanceof ODataEntityCreateResponse);
-        assertEquals(201, res.getStatusCode());
-        assertEquals("Created", res.getStatusMessage());
-
-        final ODataEntityCreateResponse createres = (ODataEntityCreateResponse) res;
-        entity = createres.getBody();
-        assertEquals(new Integer(1000), entity.getProperty("CustomerId").getPrimitiveValue().<Integer>toCastValue());
-
-        // retrive the third item (ODataRetrieve)
-        item = iter.next();
-        assertTrue(item instanceof ODataRetrieveResponseItem);
-
-        retitem = (ODataRetrieveResponseItem) item;
-        res = retitem.next();
-        assertTrue(res instanceof ODataEntityResponseImpl);
-        assertEquals(200, res.getStatusCode());
-        assertEquals("OK", res.getStatusMessage());
-
-        entres = (ODataEntityResponseImpl) res;
-        entity = entres.getBody();
-        assertEquals("new description from batch",
-                entity.getProperty("Description").getPrimitiveValue().<String>toCastValue());
-
-        assertFalse(iter.hasNext());
-    }
-
-    private static class TestStreamManager extends ODataStreamManager<ODataBatchResponse> {
-
-        public TestStreamManager() {
-            super(new Wrapper<Future<HttpResponse>>());
-        }
-
-        public ODataStreamManager<ODataBatchResponse> addObject(byte[] src) {
-            stream(src);
-            return this;
-        }
-
-        @Override
-        protected ODataBatchResponse getResponse(long timeout, TimeUnit unit) {
-            throw new UnsupportedOperationException("Not supported yet.");
-        }
-    };
-
-    /**
-     * To be used for debug purposes.
-     */
-    private static class StreamingThread extends Thread {
-
-        private final TestStreamManager streaming;
-
-        public StreamingThread(final TestStreamManager streaming) {
-            this.streaming = streaming;
-        }
-
-        @Override
-        public void run() {
-            try {
-                final StringBuilder builder = new StringBuilder();
-
-                byte[] buff = new byte[1024];
-
-                int len;
-
-                while ((len = streaming.getBody().read(buff)) >= 0) {
-                    builder.append(new String(buff, 0, len));
-                }
-
-                assertTrue(builder.toString().startsWith(PREFIX));
-                assertTrue(builder.toString().contains((MAX / 2) + ") send info"));
-                assertTrue(builder.toString().contains((MAX / 3) + ") send info"));
-                assertTrue(builder.toString().contains((MAX / 20) + ") send info"));
-                assertTrue(builder.toString().contains((MAX / 30) + ") send info"));
-                assertTrue(builder.toString().contains(MAX + ") send info"));
-                assertTrue(builder.toString().endsWith(SUFFIX));
-
-            } catch (IOException e) {
-                fail();
-            }
-        }
-    }
-
-    private static class BatchStreamingThread extends Thread {
-
-        private final BatchStreamManager streaming;
-
-        public BatchStreamingThread(final BatchStreamManager streaming) {
-            this.streaming = streaming;
-        }
-
-        @Override
-        public void run() {
-            try {
-                final StringBuilder builder = new StringBuilder();
-
-                byte[] buff = new byte[1024];
-
-                int len;
-
-                while ((len = streaming.getBody().read(buff)) >= 0) {
-                    builder.append(new String(buff, 0, len));
-                }
-
-                LOG.debug("Batch request {}", builder.toString());
-
-                assertTrue(builder.toString().contains("Content-Id:2"));
-                assertTrue(builder.toString().contains("GET " + servicesODataServiceRootURL));
-            } catch (IOException e) {
-                fail();
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CountTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CountTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CountTestITCase.java
deleted file mode 100644
index 3c1f9c4..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CountTestITCase.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 com.msopentech.odatajclient.engine.it;
-
-import static org.junit.Assert.*;
-import org.junit.Test;
-
-import com.msopentech.odatajclient.engine.communication.ODataClientErrorException;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataValueRequest;
-import com.msopentech.odatajclient.engine.uri.URIBuilder;
-import com.msopentech.odatajclient.engine.data.ODataValue;
-import com.msopentech.odatajclient.engine.format.ODataValueFormat;
-
-public class CountTestITCase extends AbstractTestITCase {
-    //counts the total number of customers
-
-    @Test
-    public void entityCount() {
-        URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
-                appendEntityTypeSegment("Customer").appendCountSegment();
-        final ODataValueRequest req = client.getRetrieveRequestFactory().getValueRequest(uriBuilder.build());
-        req.setFormat(ODataValueFormat.TEXT);
-        try {
-            final ODataValue value = req.execute().getBody();
-            assertTrue(10 <= Integer.parseInt(value.toString()));
-        } catch (ODataClientErrorException e) {
-            LOG.error("Error code: {}", e.getStatusLine().getStatusCode(), e);
-        }
-    }
-    //returns 415 error for invalid header.
-
-    @Test
-    public void invalidAccept() {
-        final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL).
-                appendEntityTypeSegment("Customer").appendCountSegment();
-        final ODataValueRequest req = client.getRetrieveRequestFactory().getValueRequest(uriBuilder.build());
-        req.setFormat(ODataValueFormat.TEXT);
-        req.setAccept("application/json;odata=fullmetadata");
-        try {
-            final ODataValue value = req.execute().getBody();
-            fail();
-        } catch (ODataClientErrorException e) {
-            assertEquals(415, e.getStatusLine().getStatusCode());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/19f3792f/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CreateMediaEntityTestITCase.java
----------------------------------------------------------------------
diff --git a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CreateMediaEntityTestITCase.java b/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CreateMediaEntityTestITCase.java
deleted file mode 100644
index a291efe..0000000
--- a/ODataJClient/engine/src/test/java/com/msopentech/odatajclient/engine/it/CreateMediaEntityTestITCase.java
+++ /dev/null
@@ -1,276 +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 com.msopentech.odatajclient.engine.it;
-
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.commons.lang3.StringUtils;
-import org.junit.Test;
-import com.msopentech.odatajclient.engine.communication.request.UpdateType;
-import com.msopentech.odatajclient.engine.communication.request.cud.CUDRequestFactory;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataDeleteRequest;
-import com.msopentech.odatajclient.engine.communication.request.cud.ODataEntityUpdateRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataEntityRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.ODataMediaRequest;
-import com.msopentech.odatajclient.engine.communication.request.retrieve.RetrieveRequestFactory;
-import com.msopentech.odatajclient.engine.communication.request.streamed.ODataMediaEntityCreateRequest;
-import com.msopentech.odatajclient.engine.communication.request.streamed.ODataMediaEntityCreateRequest.MediaEntityCreateStreamManager;
-import com.msopentech.odatajclient.engine.communication.request.streamed.StreamedRequestFactory;
-import com.msopentech.odatajclient.engine.communication.response.ODataDeleteResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataEntityUpdateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataMediaEntityCreateResponse;
-import com.msopentech.odatajclient.engine.communication.response.ODataRetrieveResponse;
-import com.msopentech.odatajclient.engine.data.ODataEntity;
-import com.msopentech.odatajclient.engine.data.ODataObjectFactory;
-import com.msopentech.odatajclient.engine.data.ODataPrimitiveValue;
-import com.msopentech.odatajclient.engine.data.ODataProperty;
-import com.msopentech.odatajclient.engine.metadata.edm.EdmSimpleType;
-import com.msopentech.odatajclient.engine.format.ODataMediaFormat;
-import com.msopentech.odatajclient.engine.format.ODataPubFormat;
-import com.msopentech.odatajclient.engine.uri.URIBuilder;
-import org.apache.commons.io.input.BoundedInputStream;
-
-public class CreateMediaEntityTestITCase extends AbstractTestITCase {
-
-    // create media entity with json
-    @Test
-    public void createMediaWithJSON() {
-        ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-        String contentType = "application/json;odata=fullmetadata";
-        String prefer = "return-content";
-        String fileType = "/images/image1.jpg";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            fail(e.getMessage());
-        }
-    }
-    // with png image
-
-    @Test
-    public void createMediaWithJSONAndPng() {
-        ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-        String contentType = "application/json;odata=fullmetadata";
-        String prefer = "return-content";
-        String fileType = "/images/image1.png";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            fail(e.getMessage());
-        }
-    }
-    // with a long image
-
-    @Test
-    public void createMediaWithJSONBigImage() {
-        ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-        String contentType = "application/json;odata=fullmetadata";
-        String prefer = "return-content";
-        String fileType = "/images/Renault.jpg";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            fail(e.getMessage());
-        }
-    }
-    // create media entity with json no metadata.
-
-    @Test
-    public void createMediaWithJSONNoMetadata() {
-        ODataPubFormat format = ODataPubFormat.JSON_NO_METADATA;
-        String contentType = "application/json;odata=nometadata";
-        String prefer = "return-content";
-        String fileType = "/images/image1.jpg";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            LOG.error("", e);
-            fail(e.getMessage());
-        }
-    }
-    // with JSON minimal meta data
-
-    @Test
-    public void createMediaWithJSONMinimalMetadata() {
-        ODataPubFormat format = ODataPubFormat.JSON;
-        String contentType = "application/json";
-        String prefer = "return-content";
-        String fileType = "/images/image1.jpg";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            LOG.error("", e);
-            fail(e.getMessage());
-        }
-    }
-    // create media with atom 
-
-    @Test
-    public void createMediaWithATOM() {
-        ODataPubFormat format = ODataPubFormat.ATOM;
-        String contentType = "application/atom+xml";
-        String prefer = "return-content";
-        String fileType = "/images/image1.png";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            LOG.error("", e);
-            fail(e.getMessage());
-        }
-    }
-    // create video with atom
-
-    @Test
-    public void createVideoWithATOM() {
-        ODataPubFormat format = ODataPubFormat.ATOM;
-        String contentType = "application/atom+xml";
-        String prefer = "return-content";
-        String fileType = "/images/big_buck_bunny.mp4";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            LOG.error("", e);
-            fail(e.getMessage());
-        }
-    }
-    // create video with json
-
-    @Test
-    public void createVideoWithJSON() {
-        ODataPubFormat format = ODataPubFormat.JSON_FULL_METADATA;
-        String contentType = "application/json;odata=fullmetadata";
-        String prefer = "return-content";
-        String fileType = "/images/big_buck_bunny.mp4";
-        try {
-            createMediaEntity(format, contentType, prefer, fileType);
-        } catch (IOException e) {
-            LOG.error("", e);
-            fail(e.getMessage());
-        }
-    }
-    // code to create a media entity. 
-    // Step 1 - POST an entity
-    // Step 2 - PUT other properties in that entity.
-
-    private void createMediaEntity(final ODataPubFormat format, final String contentType, final String prefer,
-            final String file) throws IOException {
-
-        try {
-            final URIBuilder uriBuilder = client.getURIBuilder(testDefaultServiceRootURL).
-                    appendEntitySetSegment("Car");
-
-            // The sample service has an upload request size of 65k
-            final InputStream inputStream = new BoundedInputStream(getClass().getResourceAsStream(file), 65000);
-
-            final ODataMediaEntityCreateRequest createReq =
-                    client.getStreamedRequestFactory().getMediaEntityCreateRequest(uriBuilder.build(), inputStream);
-            createReq.setFormat(format);
-            createReq.setContentType(contentType);
-            createReq.setPrefer(prefer);
-            final MediaEntityCreateStreamManager streamManager = createReq.execute();
-            final ODataMediaEntityCreateResponse createRes = streamManager.getResponse();
-            if (prefer.equals("return-content")) {
-                assertEquals(201, createRes.getStatusCode());
-
-                final ODataEntity createdEntity = createRes.getBody();
-                assertNotNull(createdEntity);
-                assertEquals(2, createdEntity.getProperties().size());
-                // get the vin property of the entity created
-                final int id = "VIN".equals(createdEntity.getProperties().get(0).getName())
-                        ? createdEntity.getProperties().get(0).getPrimitiveValue().<Integer>toCastValue()
-                        : createdEntity.getProperties().get(1).getPrimitiveValue().<Integer>toCastValue();
-                uriBuilder.appendKeySegment(id).appendValueSegment();
-                // get the stream value that got created  
-                final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory().getMediaRequest(uriBuilder.build());
-                retrieveReq.setFormat(ODataMediaFormat.WILDCARD);
-                final ODataRetrieveResponse<InputStream> retrieveRes = retrieveReq.execute();
-                assertEquals(200, retrieveRes.getStatusCode());
-                assertNotNull(retrieveRes.getBody());
-                String etag = retrieveRes.getEtag();
-                // get the entity created 
-                final ODataEntity entity =
-                        client.getObjectFactory().newEntity("Microsoft.Test.OData.Services.AstoriaDefaultService.Car");
-
-                final ODataEntityRequest req = client.getRetrieveRequestFactory().getEntityRequest(client.getURIBuilder(
-                        testDefaultServiceRootURL).
-                        appendEntityTypeSegment("Car").appendKeySegment(id).build());
-                req.setFormat(format);
-
-                final ODataRetrieveResponse<ODataEntity> res = req.execute();
-                final ODataEntity entityToBeUpdated = res.getBody();
-                assertNotNull(entity);
-                String propertyName = "Description";
-                final String newValue = "New renault car - " + propertyName;
-
-                ODataProperty propertyValue = entityToBeUpdated.getProperty(propertyName);
-
-                if (propertyValue != null) {
-                    entityToBeUpdated.removeProperty(propertyValue);
-                }
-                // add new value for the property
-                entityToBeUpdated.addProperty(client.getObjectFactory().newPrimitiveProperty(propertyName,
-                        client.getPrimitiveValueBuilder().setText(newValue).setType(EdmSimpleType.String).build()));
-
-                UpdateType type = UpdateType.REPLACE;
-                // update the entity in the server
-                ODataEntityUpdateRequest updateReq = client.getCUDRequestFactory().getEntityUpdateRequest(type,
-                        entityToBeUpdated);
-                req.setFormat(format);
-                if (StringUtils.isNotBlank(etag)) {
-                    req.setIfMatch(etag);
-                }
-                ODataEntityUpdateResponse updateRes = updateReq.execute();
-                assertEquals(204, updateRes.getStatusCode());
-
-                final ODataEntityRequest afterUpdateReq = client.getRetrieveRequestFactory().getEntityRequest(
-                        client.getURIBuilder(testDefaultServiceRootURL).
-                        appendEntityTypeSegment("Car").appendKeySegment(id).build());
-
-                req.setFormat(format);
-                //assert whether the original value is equal to the actual value that got updated.
-                final ODataRetrieveResponse<ODataEntity> afterUpdateRes = afterUpdateReq.execute();
-                final ODataEntity entityAfterUpdate = afterUpdateRes.getBody();
-                assertEquals(newValue, entityAfterUpdate.getProperty("Description").getValue().toString());
-
-                // delete the entity
-                URIBuilder deleteUriBuilder = client.getURIBuilder(testDefaultServiceRootURL).
-                        appendEntityTypeSegment("Car(" + id + ")");
-                ODataDeleteRequest deleteReq = client.getCUDRequestFactory().getDeleteRequest(deleteUriBuilder.build());
-                deleteReq.setFormat(format);
-                deleteReq.setContentType(contentType);
-                ODataDeleteResponse deleteRes = deleteReq.execute();
-                assertEquals(204, deleteRes.getStatusCode());
-            } else {
-                assertEquals(204, createRes.getStatusCode());
-            }
-        } catch (Exception e) {
-            if ((format.equals(ODataPubFormat.JSON) || (format.equals(ODataPubFormat.JSON_NO_METADATA)) && e.
-                    getMessage().equals("No edit link found"))) {
-                assertTrue(true);
-            } else {
-                fail(e.getMessage());
-            }
-        } catch (AssertionError e) {
-            fail(e.getMessage());
-        }
-    }
-}