switch (httpMethod) { case "CONNECT": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.prepareConnect(url), customCircuitBreaker, disableCircuitBreaker); case "DELETE": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.prepareDelete(url), customCircuitBreaker, disableCircuitBreaker); case "GET": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.prepareGet(url), customCircuitBreaker, disableCircuitBreaker); case "HEAD": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.prepareHead(url), customCircuitBreaker, disableCircuitBreaker); case "POST": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.preparePost(url), customCircuitBreaker, disableCircuitBreaker); case "OPTIONS": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.prepareOptions(url), customCircuitBreaker, disableCircuitBreaker); case "PUT": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.preparePut(url), customCircuitBreaker, disableCircuitBreaker); case "PATCH": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.preparePatch(url), customCircuitBreaker, disableCircuitBreaker); case "TRACE": return new RequestBuilderWrapper(url, httpMethod, asyncHttpClient.prepareTrace(url), customCircuitBreaker, disableCircuitBreaker); default:
@Test public void constructor_sets_values_as_expected() { // given requestBuilderWrapper = new RequestBuilderWrapper( url, httpMethod, requestBuilder, customCircuitBreaker, disableCircuitBreaker); // then assertThat(requestBuilderWrapper.url).isEqualTo(url); assertThat(requestBuilderWrapper.httpMethod).isEqualTo(httpMethod); assertThat(requestBuilderWrapper.customCircuitBreaker).isEqualTo(customCircuitBreaker); assertThat(requestBuilderWrapper.disableCircuitBreaker).isEqualTo(disableCircuitBreaker); }
@Test public void getCircuitBreaker_returns_empty_if_disableCircuitBreaker_is_true() { // given RequestBuilderWrapper rbw = new RequestBuilderWrapper( "foo", "bar", mock(AsyncHttpClient.BoundRequestBuilder.class), Optional.of(mock(CircuitBreaker.class)), true); // when Optional<CircuitBreaker<Response>> result = helperSpy.getCircuitBreaker(rbw); // then assertThat(result).isEmpty(); }
@Test public void getCircuitBreaker_returns_custom_circuit_breaker_if_disableCircuitBreaker_is_false_and_customCircuitBreaker_exists() { // given Optional<CircuitBreaker<Response>> customCb = Optional.of(mock(CircuitBreaker.class)); RequestBuilderWrapper rbw = new RequestBuilderWrapper( "foo", "bar", mock(AsyncHttpClient.BoundRequestBuilder.class), customCb, false); // when Optional<CircuitBreaker<Response>> result = helperSpy.getCircuitBreaker(rbw); // then assertThat(result).isSameAs(customCb); }
@Test public void get_set_ChannelHandlerContext_works_as_expected() { // given requestBuilderWrapper = new RequestBuilderWrapper( url, httpMethod, requestBuilder, customCircuitBreaker, disableCircuitBreaker); ChannelHandlerContext ctx = mock(ChannelHandlerContext.class); // when requestBuilderWrapper.setCtx(ctx); // then assertThat(ctx).isEqualTo(requestBuilderWrapper.getCtx()); }
@Test public void get_set_DisableCircuitBreaker_works_as_expected() { // given requestBuilderWrapper = new RequestBuilderWrapper( url, httpMethod, requestBuilder, customCircuitBreaker, disableCircuitBreaker); boolean alteredDisableCircuitBreaker = false; // when requestBuilderWrapper.setDisableCircuitBreaker(alteredDisableCircuitBreaker); // then assertThat(requestBuilderWrapper.isDisableCircuitBreaker()).isFalse(); }
@Test public void get_set_HttpMethod_works_as_expected() { // given requestBuilderWrapper = new RequestBuilderWrapper( url, httpMethod, requestBuilder, customCircuitBreaker, disableCircuitBreaker); String alteredMethod = "POST"; // when requestBuilderWrapper.setHttpMethod(alteredMethod); // then assertThat(alteredMethod).isEqualTo(requestBuilderWrapper.getHttpMethod()); verify(requestBuilder).setMethod(alteredMethod); }
@Test public void get_set_Url_works_as_expected() { // given requestBuilderWrapper = new RequestBuilderWrapper( url, httpMethod, requestBuilder, customCircuitBreaker, disableCircuitBreaker); String alternateUrl = "http://alteredUrl.testing"; // when requestBuilderWrapper.setUrl(alternateUrl); // then assertThat(alternateUrl).isEqualTo(requestBuilderWrapper.getUrl()); verify(requestBuilder).setUrl(alternateUrl); }
circuitBreakerManualTaskMock = mock(ManualModeTask.class); requestBuilderWrapper = new RequestBuilderWrapper( downstreamUrl, downstreamMethod, mock(AsyncHttpClient.BoundRequestBuilder.class), Optional.empty(), true);
@Test public void get_set_CustomCircuitBreaker_works_as_expected() { // given requestBuilderWrapper = new RequestBuilderWrapper( url, httpMethod, requestBuilder, customCircuitBreaker, disableCircuitBreaker); Optional<CircuitBreaker<Response>> alteredCircuitBreaker = Optional.of(new CircuitBreakerImpl<>()); // when requestBuilderWrapper.setCustomCircuitBreaker(alteredCircuitBreaker); // then assertThat(requestBuilderWrapper.getCustomCircuitBreaker()).isEqualTo(alteredCircuitBreaker); } }
AsyncHttpClient.BoundRequestBuilder reqMock = mock(AsyncHttpClient.BoundRequestBuilder.class); Optional<CircuitBreaker<Response>> customCb = Optional.empty(); RequestBuilderWrapper rbw = new RequestBuilderWrapper(url, method, reqMock, customCb, false); if (useNettyEventLoop) rbw.setCtx(ctxMock);
String method = "GET"; AsyncHttpClient.BoundRequestBuilder reqMock = mock(AsyncHttpClient.BoundRequestBuilder.class); RequestBuilderWrapper rbw = new RequestBuilderWrapper(url, method, reqMock, Optional.empty(), false); AsyncResponseHandler responseHandlerMock = mock(AsyncResponseHandler.class);
this.performSubSpanAroundDownstreamCalls = performSubSpanAroundDownstreamCalls; this.circuitBreakerManualTask = circuitBreakerManualTask; this.rbwCopyWithHttpMethodAndUrlOnly = new RequestBuilderWrapper( requestBuilderWrapper.getUrl(), requestBuilderWrapper.getHttpMethod(),