You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/08/17 10:16:25 UTC
olingo-odata4 git commit: [OLINGO-659] Improved async test case
Repository: olingo-odata4
Updated Branches:
refs/heads/master e6d1b964f -> 5248f3421
[OLINGO-659] Improved async test case
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/5248f342
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/5248f342
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/5248f342
Branch: refs/heads/master
Commit: 5248f342150fc4f8949a9c03b7892a60870a020e
Parents: e6d1b96
Author: Michael Bolz <mi...@sap.com>
Authored: Mon Aug 17 10:12:08 2015 +0200
Committer: Michael Bolz <mi...@sap.com>
Committed: Mon Aug 17 10:12:35 2015 +0200
----------------------------------------------------------------------
.../fit/tecsvc/http/BasicAsyncITCase.java | 29 +++++++++++++++++---
1 file changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5248f342/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicAsyncITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicAsyncITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicAsyncITCase.java
index c4a6779..fa0e4b3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicAsyncITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicAsyncITCase.java
@@ -60,6 +60,7 @@ public class BasicAsyncITCase extends AbstractBaseTestITCase {
private static final String CRLF = "\r\n";
private static final String DEFAULT_ENCODING = "utf-8";
+ public static final long SLEEP_TIMEOUT_IN_MS = 200;
/**
* Works
@@ -87,8 +88,8 @@ public class BasicAsyncITCase extends AbstractBaseTestITCase {
assertEquals(0, statusBody.byteLength());
// get async response (now finished)
- TimeUnit.SECONDS.sleep(2);
- HttpURLConnection result = getRequest(new URL(respondUri), Collections.<String, String>emptyMap());
+ HttpURLConnection result = waitTillDone(respondUri, 4);
+
StringHelper.Stream resultBody = StringHelper.toStream(result.getInputStream());
Map<String, List<String>> resultHeaderFields = result.getHeaderFields();
String resBody = resultBody.asString();
@@ -131,8 +132,7 @@ public class BasicAsyncITCase extends AbstractBaseTestITCase {
assertEquals(0, statusBody.byteLength());
// get async response (now finished)
- TimeUnit.SECONDS.sleep(2);
- HttpURLConnection result = getRequest(new URL(respondUri), Collections.<String, String>emptyMap());
+ HttpURLConnection result = waitTillDone(respondUri, 4);
StringHelper.Stream resultBody = StringHelper.toStream(result.getInputStream());
Map<String, List<String>> resultHeaderFields = result.getHeaderFields();
String resBody = resultBody.asString();
@@ -184,6 +184,27 @@ public class BasicAsyncITCase extends AbstractBaseTestITCase {
+ "--" + DEFAULT_BATCH_BOUNDARY + "--";
}
+ private HttpURLConnection waitTillDone(String location, int maxWaitInSeconds) throws Exception {
+ HttpURLConnection result = null;
+ int waitCounter = maxWaitInSeconds * 1000;
+
+ while(result == null && waitCounter > 0) {
+ HttpURLConnection statusRequest = getRequest(new URL(location), Collections.<String, String>emptyMap());
+ Map<String, List<String>> statusHeaderFields = statusRequest.getHeaderFields();
+ String statusHeader = statusHeaderFields.get(null).get(0);
+ if("HTTP/1.1 202 Accepted".equals(statusHeader)) {
+ TimeUnit.MILLISECONDS.sleep(SLEEP_TIMEOUT_IN_MS);
+ waitCounter -= SLEEP_TIMEOUT_IN_MS;
+ } else if("HTTP/1.1 200 OK".equals(statusHeader)) {
+ result = statusRequest;
+ } else {
+ throw new RuntimeException("Unexpected status header ('" + statusHeader +
+ "') for async status request on: " + location);
+ }
+ }
+ return result;
+ }
+
private HttpURLConnection postRequest(final URL url, final String content, final Map<String, String> headers)
throws IOException {
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();