Repository: olingo-odata2 Updated Branches: refs/heads/master a30379ef6 -> 242d9616e
[OLINGO-241] convenience method added Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/242d9616 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/242d9616 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/242d9616 Branch: refs/heads/master Commit: 242d9616e686e19313d72ef66376642e061100d1 Parents: a30379e Author: Stephan Klevenz <[email protected]> Authored: Mon Jun 23 15:53:47 2014 +0200 Committer: Stephan Klevenz <[email protected]> Committed: Mon Jun 23 15:53:47 2014 +0200 ---------------------------------------------------------------------- .../olingo/odata2/api/processor/ODataResponse.java | 14 ++++++++++++++ .../olingo/odata2/core/ODataResponseTest.java | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/242d9616/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/processor/ODataResponse.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/processor/ODataResponse.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/processor/ODataResponse.java index 345368e..57e41c6 100644 --- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/processor/ODataResponse.java +++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/processor/ODataResponse.java @@ -19,9 +19,11 @@ package org.apache.olingo.odata2.api.processor; import java.io.IOException; +import java.io.InputStream; import java.util.Set; import org.apache.olingo.odata2.api.commons.HttpStatusCodes; +import org.apache.olingo.odata2.api.exception.ODataException; import org.apache.olingo.odata2.api.rt.RuntimeDelegate; /** @@ -52,6 +54,18 @@ public abstract class ODataResponse { public abstract Object getEntity(); /** + * @return a response entity as inputStream which becomes the body part of a response message + * @throws ODataException throws ODataException in case of entity is not a stream (internal ClassCastException) + */ + public InputStream getEntityAsStream() throws ODataException { + try { + return (InputStream) getEntity(); + } catch (ClassCastException e) { + throw new ODataException(e); + } + } + + /** * Close the underlying entity input stream (if such a stream is available) and release all with this repsonse * associated resources. * http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/242d9616/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataResponseTest.java ---------------------------------------------------------------------- diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataResponseTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataResponseTest.java index fb20afc..19cd6ed 100644 --- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataResponseTest.java +++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ODataResponseTest.java @@ -20,15 +20,18 @@ package org.apache.olingo.odata2.core; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import java.io.ByteArrayInputStream; import java.util.Arrays; import java.util.HashSet; import org.apache.olingo.odata2.api.commons.HttpContentType; import org.apache.olingo.odata2.api.commons.HttpHeaders; import org.apache.olingo.odata2.api.commons.HttpStatusCodes; +import org.apache.olingo.odata2.api.exception.ODataException; import org.apache.olingo.odata2.api.processor.ODataResponse; import org.apache.olingo.odata2.testutil.fit.BaseTest; import org.junit.Test; @@ -52,6 +55,20 @@ public class ODataResponseTest extends BaseTest { } @Test + public void buildEntityAsStreamResponseTest() throws ODataException { + ODataResponse response = ODataResponse.entity(new ByteArrayInputStream("abc".getBytes())).build(); + assertNull(response.getStatus()); + assertNotNull(response.getEntityAsStream()); + } + + @Test(expected = ODataException.class) + public void buildEntityAsStreamResponseFailTest() throws ODataException { + ODataResponse response = ODataResponse.entity("abc").build(); + assertNull(response.getStatus()); + assertNotNull(response.getEntityAsStream()); + } + + @Test public void buildHeaderResponseTest() { ODataResponse response = ODataResponse .header("abc", "123")
