@Test
public void constructor_sets_values_exactly_as_given_when_subtracing_is_off() {
CompletableFuture cfResponse = mock(CompletableFuture.class);
AsyncResponseHandler responseHandlerFunc = mock(AsyncResponseHandler.class);
RequestBuilderWrapper rbwMock = mock(RequestBuilderWrapper.class);
Optional<CircuitBreaker<Response>> circuitBreaker = Optional.of(mock(CircuitBreaker.class));
Deque<Span> spanStack = mock(Deque.class);
Map<String, String> mdcInfo = mock(Map.class);
Deque<Span> spanStackBeforeCall = Tracer.getInstance().getCurrentSpanStackCopy();
Map<String, String> mdcInfoBeforeCall = MDC.getCopyOfContextMap();
AsyncCompletionHandlerWithTracingAndMdcSupport instance = new AsyncCompletionHandlerWithTracingAndMdcSupport(
cfResponse, responseHandlerFunc, false, rbwMock, circuitBreaker, spanStack, mdcInfo,
tagAndNamingStrategy
);
assertThat(instance.completableFutureResponse).isSameAs(cfResponse);
assertThat(instance.responseHandlerFunction).isSameAs(responseHandlerFunc);
assertThat(instance.performSubSpanAroundDownstreamCalls).isEqualTo(false);
assertThat(instance.circuitBreakerManualTask).isSameAs(circuitBreaker);
assertThat(instance.distributedTraceStackToUse).isSameAs(spanStack);
assertThat(instance.mdcContextToUse).isSameAs(mdcInfo);
assertThat(Tracer.getInstance().getCurrentSpanStackCopy()).isEqualTo(spanStackBeforeCall);
assertThat(MDC.getCopyOfContextMap()).isEqualTo(mdcInfoBeforeCall);
}