doDetermineAndSetFinalSpanName(span, request, response, error, adapter);
@Test public void doDetermineAndSetFinalSpanName_delegates_to_adapter_getFinalSpanName_and_changes_span_name_if_result_is_not_blank() { // given String adapterSpanNameResult = UUID.randomUUID().toString(); doReturn(adapterSpanNameResult).when(adapterMock).getFinalSpanName(anyObject(), anyObject()); Span span = Span.newBuilder("originalSpanName", SpanPurpose.SERVER).build(); assertThat(span.getSpanName()).isNotEqualTo(adapterSpanNameResult); // when implSpy.doDetermineAndSetFinalSpanName(span, requestObjectMock, responseObjectMock, errorMock, adapterMock); // then assertThat(span.getSpanName()).isEqualTo(adapterSpanNameResult); verify(adapterMock).getFinalSpanName(requestObjectMock, responseObjectMock); }
@Test public void handleResponseTaggingAndFinalSpanName_executes_other_two_delegates_when_doExtraWingtipsTagging_throws_exception() { // given doThrow(new RuntimeException("boom")).when(implSpy).doExtraWingtipsTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doHandleResponseAndErrorTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doDetermineAndSetFinalSpanName( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); // when implSpy.handleResponseTaggingAndFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); // then verify(implSpy).doHandleResponseAndErrorTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doDetermineAndSetFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doExtraWingtipsTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verifyNoMoreInteractions(implSpy); verifyZeroInteractions(spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock); }
@Test public void handleResponseTaggingAndFinalSpanName_defers_to_doHandleResponseAndErrorTagging_and_doDetermineAndSetFinalSpanName_and_doExtraWingtipsTagging() { // given doNothing().when(implSpy).doHandleResponseAndErrorTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doDetermineAndSetFinalSpanName( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doExtraWingtipsTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); // when implSpy.handleResponseTaggingAndFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); // then verify(implSpy).doHandleResponseAndErrorTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doDetermineAndSetFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doExtraWingtipsTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verifyNoMoreInteractions(implSpy); verifyZeroInteractions(spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock); }
@Test public void handleResponseTaggingAndFinalSpanName_executes_other_two_delegates_when_doHandleResponseAndErrorTagging_throws_exception() { // given doThrow(new RuntimeException("boom")).when(implSpy).doHandleResponseAndErrorTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doDetermineAndSetFinalSpanName( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doExtraWingtipsTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); // when implSpy.handleResponseTaggingAndFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); // then verify(implSpy).doHandleResponseAndErrorTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doDetermineAndSetFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doExtraWingtipsTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verifyNoMoreInteractions(implSpy); verifyZeroInteractions(spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock); }
@Test public void handleResponseTaggingAndFinalSpanName_executes_other_two_delegates_when_doDetermineAndSetFinalSpanName_throws_exception() { // given doThrow(new RuntimeException("boom")).when(implSpy).doDetermineAndSetFinalSpanName( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doHandleResponseAndErrorTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); doNothing().when(implSpy).doExtraWingtipsTagging( any(Span.class), anyObject(), anyObject(), any(Throwable.class), any(HttpTagAndSpanNamingAdapter.class) ); // when implSpy.handleResponseTaggingAndFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); // then verify(implSpy).doHandleResponseAndErrorTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doDetermineAndSetFinalSpanName( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verify(implSpy).doExtraWingtipsTagging( spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock ); verifyNoMoreInteractions(implSpy); verifyZeroInteractions(spanMock, requestObjectMock, responseObjectMock, errorMock, adapterMock); }
@DataProvider(value = { "null", "", "[whitespace]" }, splitBy = "\\|") @Test public void doDetermineAndSetFinalSpanName_delegates_to_adapter_getFinalSpanName_and_does_NOT_change_span_name_if_result_IS_blank( String blankAdapterResult ) { // given if ("[whitespace]".equals(blankAdapterResult)) { blankAdapterResult = " \n\r\t "; } doReturn(blankAdapterResult).when(adapterMock).getFinalSpanName(anyObject(), anyObject()); String originalSpanName = "originalSpanName"; Span span = Span.newBuilder(originalSpanName, SpanPurpose.SERVER).build(); // when implSpy.doDetermineAndSetFinalSpanName(span, requestObjectMock, responseObjectMock, errorMock, adapterMock); // then assertThat(span.getSpanName()).isEqualTo(originalSpanName); verify(adapterMock).getFinalSpanName(requestObjectMock, responseObjectMock); }