@DataProvider(value = {
"null",
"false",
"true"
})
@Test
public void onCompleted_does_nothing_to_trace_info_if_performSubSpanAroundDownstreamCalls_is_false(
Boolean setupForSubspan) throws Throwable {
Pair<Deque<Span>, Map<String, String>> traceInfo = generateTraceInfo(setupForSubspan);
Whitebox.setInternalState(handlerSpy, "distributedTraceStackToUse", traceInfo.getLeft());
Whitebox.setInternalState(handlerSpy, "mdcContextToUse", traceInfo.getRight());
Whitebox.setInternalState(handlerSpy, "performSubSpanAroundDownstreamCalls", false);
Pair<ObjectHolder<Span>, ObjectHolder<Span>> actualBeforeAndAfterSpanHolders =
setupBeforeAndAfterSpanCaptureForOnCompleted();
handlerSpy.onCompleted(responseMock);
verify(circuitBreakerManualTaskMock).handleEvent(responseMock);
verify(responseHandlerFunctionMock).handleResponse(responseMock);
assertThat(actualBeforeAndAfterSpanHolders.getLeft().objSet).isTrue();
assertThat(actualBeforeAndAfterSpanHolders.getRight().objSet).isTrue();
assertThat(actualBeforeAndAfterSpanHolders.getLeft().obj)
.isEqualTo(actualBeforeAndAfterSpanHolders.getRight().obj);
}