diff options
Diffstat (limited to 'clustercontroller-utils/src/test/java/com/yahoo/vespa/clustercontroller/utils/communication/http/RequestQueueTest.java')
-rw-r--r-- | clustercontroller-utils/src/test/java/com/yahoo/vespa/clustercontroller/utils/communication/http/RequestQueueTest.java | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/clustercontroller-utils/src/test/java/com/yahoo/vespa/clustercontroller/utils/communication/http/RequestQueueTest.java b/clustercontroller-utils/src/test/java/com/yahoo/vespa/clustercontroller/utils/communication/http/RequestQueueTest.java deleted file mode 100644 index 230920df53f..00000000000 --- a/clustercontroller-utils/src/test/java/com/yahoo/vespa/clustercontroller/utils/communication/http/RequestQueueTest.java +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.clustercontroller.utils.communication.http; - -import com.yahoo.vespa.clustercontroller.utils.communication.async.AsyncCallback; -import com.yahoo.vespa.clustercontroller.utils.communication.async.AsyncOperation; -import com.yahoo.vespa.clustercontroller.utils.communication.async.AsyncOperationImpl; -import org.junit.Test; - -import java.util.LinkedList; - -import static org.junit.Assert.assertEquals; - -public class RequestQueueTest { - - public static class Request { - public final HttpRequest request; - public final AsyncOperationImpl<HttpResult> result; - - public Request(HttpRequest r, AsyncOperationImpl<HttpResult> rr) { - this.request = r; - this.result = rr; - } - } - - public class TestClient implements AsyncHttpClient<HttpResult> { - LinkedList<Request> requests = new LinkedList<>(); - @Override - public AsyncOperation<HttpResult> execute(HttpRequest r) { - Request p = new Request(r, new AsyncOperationImpl<HttpResult>(r.toString())); - synchronized (requests) { - requests.addLast(p); - } - return p.result; - } - @Override - public void close() {} - }; - - @Test - public void testNormalUsage() { - TestClient client = new TestClient(); - RequestQueue<HttpResult> queue = new RequestQueue<>(client, 4); - final LinkedList<HttpResult> results = new LinkedList<>(); - for (int i=0; i<10; ++i) { - queue.schedule(new HttpRequest().setPath("/" + i), new AsyncCallback<HttpResult>() { - @Override - public void done(AsyncOperation<HttpResult> op) { - if (op.isSuccess()) { - results.add(op.getResult()); - } else { - results.add(new HttpResult().setHttpCode(500, op.getCause().getMessage())); - } - } - }); - } - assertEquals(4, client.requests.size()); - for (int i=0; i<3; ++i) { - Request p = client.requests.removeFirst(); - p.result.setResult(new HttpResult()); - assertEquals(true, results.getLast().isSuccess()); - } - assertEquals(4, client.requests.size()); - for (int i=0; i<7; ++i) { - Request p = client.requests.removeFirst(); - p.result.setFailure(new Exception("Fail")); - assertEquals(false, results.getLast().isSuccess()); - } - assertEquals(0, client.requests.size()); - assertEquals(true, queue.empty()); - assertEquals(10, results.size()); - } - - public class Waiter implements Runnable { - boolean waiting = false; - boolean completed = false; - RequestQueue<HttpResult> queue; - Waiter(RequestQueue<HttpResult> queue) { - this.queue = queue; - } - public void run() { - try{ - waiting = true; - queue.waitUntilEmpty(); - } catch (InterruptedException e) { throw new Error(e); } - completed = true; - } - } - - @Test - public void testWaitUntilEmpty() throws Exception { - TestClient client = new TestClient(); - RequestQueue<HttpResult> queue = new RequestQueue<>(client, 4); - final LinkedList<HttpResult> result = new LinkedList<>(); - queue.schedule(new HttpRequest().setPath("/foo"), new AsyncCallback<HttpResult>() { - @Override - public void done(AsyncOperation<HttpResult> op) { - result.add(op.getResult()); - } - }); - Waiter waiter = new Waiter(queue); - Thread thread = new Thread(waiter); - thread.start(); - while (!waiter.waiting) { - Thread.sleep(1); - } - assertEquals(0, result.size()); - client.requests.getFirst().result.setResult(new HttpResult()); - while (!waiter.completed) { - Thread.sleep(1); - } - assertEquals(1, result.size()); - } - -} |