use of com.ning.http.client.Response in project riposte by Nike-Inc.
the class AsyncHttpClientHelperTest method getRequestBuilder_with_circuit_breaker_args_sets_values_as_expected.
@DataProvider(value = { "CONNECT", "DELETE", "GET", "HEAD", "POST", "OPTIONS", "PUT", "PATCH", "TRACE", "FOO_METHOD_DOES_NOT_EXIST" }, splitBy = "\\|")
@Test
public void getRequestBuilder_with_circuit_breaker_args_sets_values_as_expected(String methodName) {
CircuitBreaker<Response> cbMock = mock(CircuitBreaker.class);
List<Pair<Optional<CircuitBreaker<Response>>, Boolean>> variations = Arrays.asList(Pair.of(Optional.empty(), true), Pair.of(Optional.empty(), false), Pair.of(Optional.of(cbMock), true), Pair.of(Optional.of(cbMock), false));
variations.forEach(variation -> {
String url = "http://localhost/some/path";
HttpMethod method = HttpMethod.valueOf(methodName);
Optional<CircuitBreaker<Response>> cbOpt = variation.getLeft();
boolean disableCb = variation.getRight();
RequestBuilderWrapper rbw = helperSpy.getRequestBuilder(url, method, cbOpt, disableCb);
verifyRequestBuilderWrapperGeneratedAsExpected(rbw, url, methodName, cbOpt, disableCb);
});
}
use of com.ning.http.client.Response in project riposte by Nike-Inc.
the class AsyncCompletionHandlerWithTracingAndMdcSupportTest method onCompleted_handles_circuit_breaker_but_does_nothing_else_if_completableFutureResponse_is_already_completed.
@Test
public void onCompleted_handles_circuit_breaker_but_does_nothing_else_if_completableFutureResponse_is_already_completed() throws Throwable {
// given
CompletableFuture<String> cfMock = mock(CompletableFuture.class);
Whitebox.setInternalState(handlerSpy, "completableFutureResponse", cfMock);
doReturn(true).when(cfMock).isDone();
// when
Response ignoredResult = handlerSpy.onCompleted(responseMock);
// then
verify(circuitBreakerManualTaskMock).handleEvent(responseMock);
verify(cfMock).isDone();
verifyNoMoreInteractions(cfMock);
assertThat(ignoredResult).isEqualTo(responseMock);
verifyZeroInteractions(responseMock);
}
use of com.ning.http.client.Response in project riposte by Nike-Inc.
the class AsyncCompletionHandlerWithTracingAndMdcSupportTest method onCompleted_completes_completableFutureResponse_with_result_of_responseHandlerFunction.
@DataProvider(value = { "true", "false" })
@Test
public void onCompleted_completes_completableFutureResponse_with_result_of_responseHandlerFunction(boolean throwException) throws Throwable {
// given
Exception ex = new Exception("kaboom");
if (throwException)
doThrow(ex).when(responseHandlerFunctionMock).handleResponse(responseMock);
// when
Response ignoredResult = handlerSpy.onCompleted(responseMock);
// then
verify(responseHandlerFunctionMock).handleResponse(responseMock);
if (throwException) {
assertThat(completableFutureResponse).isCompletedExceptionally();
assertThat(completableFutureResponse).hasFailedWithThrowableThat().isEqualTo(ex);
} else {
assertThat(completableFutureResponse).isCompleted();
assertThat(completableFutureResponse.get()).isEqualTo(responseHandlerResult);
}
assertThat(ignoredResult).isEqualTo(responseMock);
verifyZeroInteractions(responseMock);
}
use of com.ning.http.client.Response in project apex-core by apache.
the class PubSubWebSocketClient method openConnectionAsync.
public void openConnectionAsync() throws IOException {
throwable.set(null);
if (loginUrl != null && userName != null && password != null) {
// get the session key first before attempting web socket
JSONObject json = new JSONObject();
try {
json.put("userName", userName);
json.put("password", password);
} catch (JSONException ex) {
throw new RuntimeException(ex);
}
client.preparePost(loginUrl).setHeader("Content-Type", "application/json").setBody(json.toString()).execute(new AsyncCompletionHandler<Response>() {
@Override
public Response onCompleted(Response response) throws Exception {
List<Cookie> cookies = response.getCookies();
BoundRequestBuilder brb = client.prepareGet(uri.toString());
if (cookies != null) {
for (Cookie cookie : cookies) {
brb.addCookie(cookie);
}
}
connection = brb.execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new PubSubWebSocket()).build()).get();
return response;
}
});
} else {
final PubSubWebSocket webSocket = new PubSubWebSocket() {
@Override
public void onOpen(WebSocket ws) {
connection = ws;
super.onOpen(ws);
}
};
client.prepareGet(uri.toString()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(webSocket).build());
}
}
use of com.ning.http.client.Response in project apex-core by apache.
the class PubSubWebSocketClient method openConnection.
/**
* <p>openConnection.</p>
*
* @param timeoutMillis
* @throws IOException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
public void openConnection(long timeoutMillis) throws IOException, ExecutionException, InterruptedException, TimeoutException {
throwable.set(null);
List<Cookie> cookies = null;
if (loginUrl != null && userName != null && password != null) {
// get the session key first before attempting web socket
JSONObject json = new JSONObject();
try {
json.put("userName", userName);
json.put("password", password);
} catch (JSONException ex) {
throw new RuntimeException(ex);
}
Response response = client.preparePost(loginUrl).setHeader("Content-Type", "application/json").setBody(json.toString()).execute().get();
cookies = response.getCookies();
}
BoundRequestBuilder brb = client.prepareGet(uri.toString());
if (cookies != null) {
for (Cookie cookie : cookies) {
brb.addCookie(cookie);
}
}
connection = brb.execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new PubSubWebSocket()).build()).get(timeoutMillis, TimeUnit.MILLISECONDS);
}
Aggregations