use of org.asynchttpclient.extras.jdeferred.AsyncHttpDeferredObject in project async-http-client by AsyncHttpClient.
the class AsyncHttpTest method testMultiplePromiseAdapter.
public void testMultiplePromiseAdapter() throws IOException {
final CountDownLatch latch = new CountDownLatch(1);
final AtomicInteger successCount = new AtomicInteger();
try (AsyncHttpClient client = asyncHttpClient()) {
Promise<Response, Throwable, HttpProgress> p1 = AsyncHttpDeferredObject.promise(client.prepareGet("http://gatling.io"));
Promise<Response, Throwable, HttpProgress> p2 = AsyncHttpDeferredObject.promise(client.prepareGet("http://www.google.com"));
AsyncHttpDeferredObject deferredRequest = new AsyncHttpDeferredObject(client.prepareGet("http://jdeferred.org"));
deferredManager.when(p1, p2, deferredRequest).then(new DoneCallback<MultipleResults>() {
@Override
public void onDone(MultipleResults result) {
try {
assertEquals(result.size(), 3);
assertEquals(Response.class.cast(result.get(0).getResult()).getStatusCode(), 200);
assertEquals(Response.class.cast(result.get(1).getResult()).getStatusCode(), 200);
assertEquals(Response.class.cast(result.get(2).getResult()).getStatusCode(), 200);
successCount.incrementAndGet();
} finally {
latch.countDown();
}
}
});
latch.await();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
Aggregations