@Override protected void doHandleResponseAndErrorTagging( @NotNull Span span, @Nullable REQ request, @Nullable RES response, @Nullable Throwable error, @NotNull HttpTagAndSpanNamingAdapter<REQ, RES> adapter ) { responseTaggingAndFinalSpanNameMethodCalled.set(true); responseTaggingArgs.set( new ResponseTaggingArgs(span, request, response, error, adapter) ); }
@Test public void handleTracingResponseTaggingAndFinalSpanNameIfNotAlreadyDone_works_as_expected_happy_path() { // given stateSpy.setDistributedTracingConfig(distributedTracingConfigMock); Span downstreamReqSpanMock = mock(Span.class); stateSpy.setProxyHttpRequest(requestMock); stateSpy.setProxyHttpResponse(responseMock); stateSpy.setProxyError(errorMock); assertThat(stateSpy.isTracingResponseTaggingAndFinalSpanNameCompleted()).isFalse(); // when stateSpy.handleTracingResponseTaggingAndFinalSpanNameIfNotAlreadyDone(downstreamReqSpanMock); // then assertThat(stateSpy.isTracingResponseTaggingAndFinalSpanNameCompleted()).isTrue(); strategyResponseTaggingArgs.get().verifyArgs( downstreamReqSpanMock, requestMock, responseMock, errorMock, wingtipsAdapterMock ); // and when // Verify it only works once. strategyResponseTaggingArgs.set(null); stateSpy.handleTracingResponseTaggingAndFinalSpanNameIfNotAlreadyDone(downstreamReqSpanMock); // then assertThat(strategyResponseTaggingArgs.get()).isNull(); }
@Test public void handleTracingResponseTaggingAndFinalSpanNameIfNotAlreadyDone_works_as_expected_happy_path() { // given stateSpy.setDistributedTracingConfig(distributedTracingConfigMock); Span overallRequestSpanMock = mock(Span.class); doReturn(overallRequestSpanMock).when(stateSpy).getOverallRequestSpan(); stateSpy.setRequestInfo(requestMock); stateSpy.setResponseInfo(responseMock, errorMock); assertThat(stateSpy.isTracingResponseTaggingAndFinalSpanNameCompleted()).isFalse(); // when stateSpy.handleTracingResponseTaggingAndFinalSpanNameIfNotAlreadyDone(); // then assertThat(stateSpy.isTracingResponseTaggingAndFinalSpanNameCompleted()).isTrue(); strategyResponseTaggingArgs.get().verifyArgs( overallRequestSpanMock, requestMock, responseMock, errorMock, wingtipsAdapterMock ); // and when // Verify it only works once. strategyResponseTaggingArgs.set(null); stateSpy.handleTracingResponseTaggingAndFinalSpanNameIfNotAlreadyDone(); // then assertThat(strategyResponseTaggingArgs.get()).isNull(); }
@Test public void doHandleResponseTaggingAndFinalSpanName_delegates_to_wingtips_strategy() { // when impl.doHandleResponseTaggingAndFinalSpanName(spanMock, requestMock, responseMock, errorMock); // then strategyResponseTaggingArgs.get().verifyArgs( spanMock, requestMock, responseMock, errorMock, wingtipsAdapterMock ); } }
@Test public void doHandleResponseTaggingAndFinalSpanName_delegates_to_wingtips_strategy() { // when impl.doHandleResponseTaggingAndFinalSpanName(spanMock, requestMock, responseMock, errorMock); // then strategyResponseTaggingArgs.get().verifyArgs( spanMock, requestMock, responseMock, errorMock, wingtipsAdapterMock ); } }