Repository: olingo-odata4 Updated Branches: refs/heads/master d313bcc4a -> 52c7cc2cc
Adding test for creating media entity Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/52c7cc2c Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/52c7cc2c Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/52c7cc2c Branch: refs/heads/master Commit: 52c7cc2cc60fda83d03131eb2478e932a75a56ff Parents: d313bcc Author: Francesco Chicchiriccò <[email protected]> Authored: Thu May 8 13:16:17 2014 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Thu May 8 13:16:17 2014 +0200 ---------------------------------------------------------------------- .../org/apache/olingo/fit/AbstractServices.java | 54 ++++++++-------- .../main/java/org/apache/olingo/fit/V4Demo.java | 19 ++++++ .../olingo/fit/utils/AbstractUtilities.java | 3 + .../org/apache/olingo/fit/utils/Commons.java | 18 ++++-- .../apache/olingo/fit/utils/XMLUtilities.java | 2 +- .../olingo/fit/v4/EntityRetrieveTestITCase.java | 2 +- .../olingo/fit/v4/MediaEntityTestITCase.java | 65 ++++++++++++++++++-- .../olingo/fit/v4/PropertyTestITCase.java | 15 +++-- .../olingo/client/core/v4/MetadataTest.java | 10 +-- 9 files changed, 140 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java ---------------------------------------------------------------------- diff --git a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java index a7e37f9..2252c55 100644 --- a/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java +++ b/fit/src/main/java/org/apache/olingo/fit/AbstractServices.java @@ -63,6 +63,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.ext.multipart.Attachment; import org.apache.cxf.jaxrs.ext.multipart.Multipart; @@ -411,7 +412,7 @@ public abstract class AbstractServices { } else { final ResWrap<JSONEntityImpl> jcont = mapper.readValue(IOUtils.toInputStream(changes, Constants.ENCODING), new TypeReference<JSONEntityImpl>() { - }); + }); entryChanges = dataBinder.toAtomEntity(jcont.getPayload()); } @@ -419,7 +420,12 @@ public abstract class AbstractServices { final ResWrap<AtomEntityImpl> container = atomDeserializer.read(entityInfo.getValue(), AtomEntityImpl.class); for (Property property : entryChanges.getProperties()) { - container.getPayload().getProperty(property.getName()).setValue(property.getValue()); + final Property _property = container.getPayload().getProperty(property.getName()); + if (_property == null) { + container.getPayload().getProperties().add(property); + } else { + _property.setValue(property.getValue()); + } } for (Link link : entryChanges.getNavigationLinks()) { @@ -567,11 +573,11 @@ public abstract class AbstractServices { xml.addMediaEntityValue(entitySetName, entityKey, IOUtils.toInputStream(entity, Constants.ENCODING)); - final String id = Commons.getMediaContent().get(entitySetName); - if (StringUtils.isNotBlank(id)) { + final Pair<String, EdmPrimitiveTypeKind> id = Commons.getMediaContent().get(entitySetName); + if (id != null) { final AtomPropertyImpl prop = new AtomPropertyImpl(); - prop.setName(id); - prop.setType(EdmPrimitiveTypeKind.Int32.toString()); + prop.setName(id.getKey()); + prop.setType(id.getValue().toString()); prop.setValue(new PrimitiveValueImpl(entityKey)); entry.getProperties().add(prop); } @@ -593,8 +599,8 @@ public abstract class AbstractServices { } else { final ResWrap<JSONEntityImpl> jcontainer = mapper.readValue(IOUtils.toInputStream(entity, Constants.ENCODING), - new TypeReference<JSONEntityImpl>() { - }); + new TypeReference<JSONEntityImpl>() { + }); entry = dataBinder.toAtomEntity(jcontainer.getPayload()); @@ -621,7 +627,7 @@ public abstract class AbstractServices { ResWrap<AtomEntityImpl> result = atomDeserializer.read(serialization, AtomEntityImpl.class); result = new ResWrap<AtomEntityImpl>( URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) - + entitySetName + Constants.get(version, ConstantKey.ODATA_METADATA_ENTITY_SUFFIX)), + + entitySetName + Constants.get(version, ConstantKey.ODATA_METADATA_ENTITY_SUFFIX)), null, result.getPayload()); final String path = Commons.getEntityBasePath(entitySetName, entityKey); @@ -684,13 +690,13 @@ public abstract class AbstractServices { replaceAll("\"Salary\":[0-9]*,", "\"Salary\":0,"). replaceAll("\"Title\":\".*\"", "\"Title\":\"[Sacked]\""). replaceAll("\\<d:Salary m:type=\"Edm.Int32\"\\>.*\\</d:Salary\\>", - "<d:Salary m:type=\"Edm.Int32\">0</d:Salary>"). + "<d:Salary m:type=\"Edm.Int32\">0</d:Salary>"). replaceAll("\\<d:Title\\>.*\\</d:Title\\>", "<d:Title>[Sacked]</d:Title>"); final FSManager fsManager = FSManager.instance(version); fsManager.putInMemory(IOUtils.toInputStream(newContent, Constants.ENCODING), fsManager.getAbsolutePath(Commons.getEntityBasePath("Person", entityId) + Constants.get(version, - ConstantKey.ENTITY), utils.getKey())); + ConstantKey.ENTITY), utils.getKey())); return utils.getValue().createResponse(null, null, null, utils.getKey(), Response.Status.NO_CONTENT); } catch (Exception e) { @@ -742,9 +748,9 @@ public abstract class AbstractServices { final Long newSalary = Long.valueOf(salaryMatcher.group(1)) + n; newContent = newContent. replaceAll("\"Salary\":" + salaryMatcher.group(1) + ",", - "\"Salary\":" + newSalary + ","). + "\"Salary\":" + newSalary + ","). replaceAll("\\<d:Salary m:type=\"Edm.Int32\"\\>" + salaryMatcher.group(1) + "</d:Salary\\>", - "<d:Salary m:type=\"Edm.Int32\">" + newSalary + "</d:Salary>"); + "<d:Salary m:type=\"Edm.Int32\">" + newSalary + "</d:Salary>"); } FSManager.instance(version).putInMemory(IOUtils.toInputStream(newContent, Constants.ENCODING), @@ -893,7 +899,7 @@ public abstract class AbstractServices { } else { mapper.writeValue( writer, new JSONFeedContainer(container.getContextURL(), container.getMetadataETag(), - dataBinder.toJSONEntitySet(container.getPayload()))); + dataBinder.toJSONEntitySet(container.getPayload()))); } return xml.createResponse( @@ -1555,8 +1561,8 @@ public abstract class AbstractServices { mapper.writeValue( writer, new JSONFeedContainer(container.getContextURL(), - container.getMetadataETag(), - dataBinder.toJSONEntitySet((AtomEntitySetImpl) container.getPayload()))); + container.getMetadataETag(), + dataBinder.toJSONEntitySet((AtomEntitySetImpl) container.getPayload()))); } } else { final ResWrap<Entity> container = @@ -1569,8 +1575,8 @@ public abstract class AbstractServices { mapper.writeValue( writer, new JSONEntryContainer(container.getContextURL(), - container.getMetadataETag(), - dataBinder.toJSONEntityType((AtomEntityImpl) container.getPayload()))); + container.getMetadataETag(), + dataBinder.toJSONEntityType((AtomEntityImpl) container.getPayload()))); } } @@ -1640,9 +1646,9 @@ public abstract class AbstractServices { final ResWrap<AtomPropertyImpl> container = new ResWrap<AtomPropertyImpl>( URI.create(Constants.get(version, ConstantKey.ODATA_METADATA_PREFIX) - + (version.compareTo(ODataServiceVersion.V40) >= 0 - ? entitySetName + "(" + entityId + ")/" + path - : property.getType())), + + (version.compareTo(ODataServiceVersion.V40) >= 0 + ? entitySetName + "(" + entityId + ")/" + path + : property.getType())), entryContainer.getMetadataETag(), property); @@ -1650,9 +1656,9 @@ public abstract class AbstractServices { null, searchForValue ? IOUtils.toInputStream( - container.getPayload().getValue() == null || container.getPayload().getValue().isNull() - ? StringUtils.EMPTY - : container.getPayload().getValue().asPrimitive().get(), Constants.ENCODING) + container.getPayload().getValue() == null || container.getPayload().getValue().isNull() + ? StringUtils.EMPTY + : container.getPayload().getValue().asPrimitive().get(), Constants.ENCODING) : utils.writeProperty(acceptType, container), Commons.getETag(Commons.getEntityBasePath(entitySetName, entityId), version), acceptType); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/main/java/org/apache/olingo/fit/V4Demo.java ---------------------------------------------------------------------- diff --git a/fit/src/main/java/org/apache/olingo/fit/V4Demo.java b/fit/src/main/java/org/apache/olingo/fit/V4Demo.java index c00d14a..8f54ede 100644 --- a/fit/src/main/java/org/apache/olingo/fit/V4Demo.java +++ b/fit/src/main/java/org/apache/olingo/fit/V4Demo.java @@ -39,6 +39,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; import org.apache.olingo.fit.metadata.Metadata; +import org.apache.olingo.fit.methods.PATCH; import org.apache.olingo.fit.utils.Accept; import org.apache.olingo.fit.utils.ConstantKey; import org.apache.olingo.fit.utils.Constants; @@ -140,6 +141,24 @@ public class V4Demo { return replaceServiceName(services.postNewEntity(uriInfo, accept, contentType, prefer, entitySetName, entity)); } + @PATCH + @Path("/{entitySetName}({entityId})") + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON}) + @Consumes({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON}) + public Response patchEntity( + @Context UriInfo uriInfo, + @HeaderParam("Accept") @DefaultValue(StringUtils.EMPTY) String accept, + @HeaderParam("Content-Type") @DefaultValue(StringUtils.EMPTY) String contentType, + @HeaderParam("Prefer") @DefaultValue(StringUtils.EMPTY) String prefer, + @HeaderParam("If-Match") @DefaultValue(StringUtils.EMPTY) String ifMatch, + @PathParam("entitySetName") String entitySetName, + @PathParam("entityId") String entityId, + final String changes) { + + return replaceServiceName( + services.patchEntity(uriInfo, accept, contentType, prefer, ifMatch, entitySetName, entityId, changes)); + } + @PUT @Produces({MediaType.APPLICATION_ATOM_XML, MediaType.APPLICATION_JSON}) @Consumes({MediaType.WILDCARD, MediaType.APPLICATION_OCTET_STREAM}) http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java ---------------------------------------------------------------------- diff --git a/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java b/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java index f202fc4..4dbd912 100644 --- a/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java +++ b/fit/src/main/java/org/apache/olingo/fit/utils/AbstractUtilities.java @@ -35,6 +35,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.UUID; import java.util.regex.Pattern; import javax.ws.rs.NotFoundException; import javax.ws.rs.core.Response; @@ -741,6 +742,8 @@ public abstract class AbstractUtilities { Commons.SEQUENCE.put("Products", productId); } else if ("PaymentInstrument".equals(entitySetName)) { res = getDefaultEntryKey(entitySetName, entry, "PaymentInstrumentID"); + } else if ("Advertisements".equals(entitySetName)) { + res = UUID.randomUUID().toString(); } else { throw new Exception(String.format("EntitySet '%s' not found", entitySetName)); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/main/java/org/apache/olingo/fit/utils/Commons.java ---------------------------------------------------------------------- diff --git a/fit/src/main/java/org/apache/olingo/fit/utils/Commons.java b/fit/src/main/java/org/apache/olingo/fit/utils/Commons.java index 6724d57..2746637 100644 --- a/fit/src/main/java/org/apache/olingo/fit/utils/Commons.java +++ b/fit/src/main/java/org/apache/olingo/fit/utils/Commons.java @@ -43,6 +43,9 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; import org.apache.olingo.commons.core.data.AtomSerializer; import org.apache.olingo.commons.core.op.InjectableSerializerProvider; @@ -75,7 +78,8 @@ public abstract class Commons { protected static final Map<String, Integer> SEQUENCE = new HashMap<String, Integer>(); - protected static final Map<String, String> MEDIA_CONTENT = new HashMap<String, String>(); + protected static final Map<String, Pair<String, EdmPrimitiveTypeKind>> MEDIA_CONTENT = + new HashMap<String, Pair<String, EdmPrimitiveTypeKind>>(); static { SEQUENCE.put("Customer", 1000); @@ -93,9 +97,13 @@ public abstract class Commons { SEQUENCE.put("ProductDetails", 1000); SEQUENCE.put("PaymentInstrument", 10192); - MEDIA_CONTENT.put("CustomerInfo", "CustomerinfoId"); - MEDIA_CONTENT.put("Car", "VIN"); + MEDIA_CONTENT.put("CustomerInfo", + new ImmutablePair<String, EdmPrimitiveTypeKind>("CustomerinfoId", EdmPrimitiveTypeKind.Int32)); + MEDIA_CONTENT.put("Car", + new ImmutablePair<String, EdmPrimitiveTypeKind>("VIN", EdmPrimitiveTypeKind.Int32)); MEDIA_CONTENT.put("Car/Photo", null); + MEDIA_CONTENT.put("Advertisements", + new ImmutablePair<String, EdmPrimitiveTypeKind>("ID", EdmPrimitiveTypeKind.Guid)); } public static FITAtomDeserializer getAtomDeserializer(final ODataServiceVersion version) { @@ -143,7 +151,7 @@ public abstract class Commons { return METADATA.get(version); } - public static Map<String, String> getMediaContent() { + public static Map<String, Pair<String, EdmPrimitiveTypeKind>> getMediaContent() { return MEDIA_CONTENT; } @@ -182,7 +190,7 @@ public abstract class Commons { try { return FSManager.instance(version) .getAbsolutePath(basePath + Constants.get(version, ConstantKey.LINKS_FILE_PATH) - + File.separatorChar + linkName, accept); + + File.separatorChar + linkName, accept); } catch (Exception e) { throw new IOException(e); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/main/java/org/apache/olingo/fit/utils/XMLUtilities.java ---------------------------------------------------------------------- diff --git a/fit/src/main/java/org/apache/olingo/fit/utils/XMLUtilities.java b/fit/src/main/java/org/apache/olingo/fit/utils/XMLUtilities.java index 5edb05f..75c45e9 100644 --- a/fit/src/main/java/org/apache/olingo/fit/utils/XMLUtilities.java +++ b/fit/src/main/java/org/apache/olingo/fit/utils/XMLUtilities.java @@ -500,7 +500,7 @@ public class XMLUtilities extends AbstractUtilities { return IOUtils.toInputStream(newContent, "UTF-8"); } - public InputStream addAtomContent( + private InputStream addAtomContent( final InputStream content, final String title, final String href) throws Exception { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java index bb6918b..b012485 100644 --- a/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/v4/EntityRetrieveTestITCase.java @@ -245,7 +245,7 @@ public class EntityRetrieveTestITCase extends AbstractTestITCase { } @Test - public void checkForETagAsATOM() { + public void checkForETagAsAtom() { checkForETag(client, ODataPubFormat.ATOM); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java index 459b246..aead4c2 100644 --- a/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/v4/MediaEntityTestITCase.java @@ -25,13 +25,22 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.util.Calendar; +import java.util.Collection; import java.util.UUID; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.RandomStringUtils; +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.v4.UpdateType; import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest; import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest; +import org.apache.olingo.client.api.communication.request.streamed.MediaEntityCreateStreamManager; import org.apache.olingo.client.api.communication.request.streamed.MediaEntityUpdateStreamManager; +import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityCreateRequest; import org.apache.olingo.client.api.communication.request.streamed.ODataMediaEntityUpdateRequest; +import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse; +import org.apache.olingo.client.api.communication.response.ODataMediaEntityCreateResponse; import org.apache.olingo.client.api.communication.response.ODataMediaEntityUpdateResponse; import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse; import org.apache.olingo.client.api.uri.v4.URIBuilder; @@ -40,6 +49,7 @@ import org.apache.olingo.client.core.ODataClientFactory; import org.apache.olingo.commons.api.domain.v4.ODataEntity; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; +import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.format.ODataPubFormat; import org.junit.Test; @@ -82,9 +92,56 @@ public class MediaEntityTestITCase extends AbstractTestITCase { read(client, ODataPubFormat.JSON_FULL_METADATA); } - private void update(final ODataClient client, final ODataPubFormat format) - throws IOException, EdmPrimitiveTypeException { + private void create(final ODataPubFormat format) throws IOException { + final String random = RandomStringUtils.random(110); + final InputStream input = IOUtils.toInputStream(random); + final URI uri = client.getURIBuilder(testDemoServiceRootURL).appendEntitySetSegment("Advertisements").build(); + final ODataMediaEntityCreateRequest<ODataEntity> createReq = + client.getStreamedRequestFactory().getMediaEntityCreateRequest(uri, input); + final MediaEntityCreateStreamManager<ODataEntity> streamManager = createReq.execute(); + + final ODataMediaEntityCreateResponse<ODataEntity> createRes = streamManager.getResponse(); + assertEquals(201, createRes.getStatusCode()); + + final Collection<String> location = createRes.getHeader(HeaderName.location); + assertNotNull(location); + final URI createdLocation = URI.create(location.iterator().next()); + + final ODataEntity changes = client.getObjectFactory(). + newEntity(new FullQualifiedName("ODataDemo.Advertisement")); + changes.getProperties().add(client.getObjectFactory().newPrimitiveProperty("AirDate", + getClient().getObjectFactory().newPrimitiveValueBuilder(). + setType(EdmPrimitiveTypeKind.DateTimeOffset).setValue(Calendar.getInstance()).build())); + + final ODataEntityUpdateRequest<ODataEntity> updateReq = getClient().getCUDRequestFactory(). + getEntityUpdateRequest(createdLocation, UpdateType.PATCH, changes); + updateReq.setFormat(format); + + final ODataEntityUpdateResponse<ODataEntity> updateRes = updateReq.execute(); + assertEquals(204, updateRes.getStatusCode()); + + final ODataMediaRequest retrieveReq = client.getRetrieveRequestFactory(). + getMediaRequest(client.getURIBuilder(createdLocation.toASCIIString()).appendValueSegment().build()); + final ODataRetrieveResponse<InputStream> retrieveRes = retrieveReq.execute(); + assertEquals(200, retrieveRes.getStatusCode()); + + final byte[] actual = new byte[Integer.parseInt(retrieveRes.getHeader("Content-Length").iterator().next())]; + IOUtils.read(retrieveRes.getBody(), actual, 0, actual.length); + assertEquals(random, new String(actual)); + } + + @Test + public void createAsAtom() throws IOException { + create(ODataPubFormat.ATOM); + } + + @Test + public void createAsJSON() throws IOException { + create(ODataPubFormat.JSON); + } + + private void update(final ODataPubFormat format) throws IOException, EdmPrimitiveTypeException { final URI uri = client.getURIBuilder(testDemoServiceRootURL). appendEntitySetSegment("Advertisements"). appendKeySegment(UUID.fromString("f89dee73-af9f-4cd4-b330-db93c25ff3c7")).appendValueSegment().build(); @@ -112,11 +169,11 @@ public class MediaEntityTestITCase extends AbstractTestITCase { @Test public void updateAsAtom() throws IOException, EdmPrimitiveTypeException { - update(client, ODataPubFormat.ATOM); + update(ODataPubFormat.ATOM); } @Test public void updateAsJSON() throws IOException, EdmPrimitiveTypeException { - update(client, ODataPubFormat.JSON); + update(ODataPubFormat.JSON); } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java index 2c8046b..2b653b7 100644 --- a/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/v4/PropertyTestITCase.java @@ -112,6 +112,11 @@ public class PropertyTestITCase extends AbstractTestITCase { complex(edmClient, ODataFormat.JSON); } + @Test + public void complexFromFullJSON() { + complex(client, ODataFormat.JSON_FULL_METADATA); + } + private void updateComplexProperty(final ODataFormat format, final UpdateType type) throws IOException { final URIBuilder uriBuilder = client.getURIBuilder(testStaticServiceRootURL). appendEntitySetSegment("Customers").appendKeySegment(1).appendPropertySegment("HomeAddress"); @@ -123,9 +128,8 @@ public class PropertyTestITCase extends AbstractTestITCase { ODataRetrieveResponse<ODataProperty> retrieveRes = retrieveReq.execute(); assertEquals(200, retrieveRes.getStatusCode()); - ODataProperty homeAddress = - client.getObjectFactory().newComplexProperty("HomeAddress", - client.getObjectFactory().newComplexValue(retrieveRes.getBody().getComplexValue().getTypeName())); + ODataProperty homeAddress = client.getObjectFactory().newComplexProperty("HomeAddress", + client.getObjectFactory().newComplexValue(retrieveRes.getBody().getComplexValue().getTypeName())); homeAddress.getComplexValue().add(client.getObjectFactory(). newPrimitiveProperty("City", client.getObjectFactory().newPrimitiveValueBuilder().buildString("Pescara"))); @@ -153,11 +157,6 @@ public class PropertyTestITCase extends AbstractTestITCase { } @Test - public void complexFromFullJSON() { - complex(client, ODataFormat.JSON_FULL_METADATA); - } - - @Test public void patchComplexPropertyAsJSON() throws IOException { updateComplexProperty(ODataFormat.JSON_FULL_METADATA, UpdateType.PATCH); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/52c7cc2c/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java index ace8960..8ca024a 100644 --- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java +++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java @@ -18,6 +18,11 @@ */ package org.apache.olingo.client.core.v4; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import org.apache.olingo.client.api.edm.xml.v4.Annotation; import org.apache.olingo.client.api.edm.xml.v4.Annotations; import org.apache.olingo.client.api.edm.xml.v4.ComplexType; @@ -60,11 +65,6 @@ import org.apache.olingo.commons.api.edm.constants.EdmTypeKind; import org.apache.olingo.commons.core.edm.primitivetype.EdmDecimal; import org.apache.olingo.commons.core.edm.primitivetype.EdmInt32; import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory; -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 org.junit.Test; public class MetadataTest extends AbstractTest {
