/** * @return {@link OpenTracingHttpTagStrategy#getDefaultInstance()}. */ protected HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> getOpenTracingHttpTagStrategy() { return OpenTracingHttpTagStrategy.getDefaultInstance(); }
@Override protected void doHandleRequestTagging( @NotNull Span span, @NotNull REQ request, @NotNull HttpTagAndSpanNamingAdapter<REQ, ?> adapter ) { putTagIfValueIsNotBlank(span, KnownOpenTracingTags.HTTP_METHOD, adapter.getRequestHttpMethod(request)); putTagIfValueIsNotBlank(span, KnownOpenTracingTags.HTTP_URL, adapter.getRequestUrl(request)); }
@Test public void doHandleRequestTagging_puts_expected_tags_based_on_adapter_results() { // given String adapterHttpMethod = "httpmethod-" + UUID.randomUUID().toString(); String adapterHttpUrl = "url-" + UUID.randomUUID().toString(); doReturn(adapterHttpMethod).when(adapterMock).getRequestHttpMethod(anyObject()); doReturn(adapterHttpUrl).when(adapterMock).getRequestUrl(anyObject()); // when implSpy.doHandleRequestTagging(spanMock, requestMock, adapterMock); // then verify(adapterMock).getRequestHttpMethod(requestMock); verify(adapterMock).getRequestUrl(requestMock); verify(implSpy).putTagIfValueIsNotBlank(spanMock, KnownOpenTracingTags.HTTP_METHOD, adapterHttpMethod); verify(implSpy).putTagIfValueIsNotBlank(spanMock, KnownOpenTracingTags.HTTP_URL, adapterHttpUrl); }
implSpy.doHandleResponseAndErrorTagging(spanMock, requestMock, responseMock, scenario.error, adapterMock); verify(implSpy).putTagIfValueIsNotBlank(spanMock, KnownOpenTracingTags.HTTP_STATUS, adapterHttpStatus);
@Before public void beforeMethod() { implSpy = spy(new OpenTracingHttpTagStrategy<>()); spanMock = mock(Span.class); requestMock = mock(Object.class); responseMock = mock(Object.class); errorMock = mock(Throwable.class); adapterMock = mock(HttpTagAndSpanNamingAdapter.class); }
@Test public void getDefaultInstance_returns_DEFAULT_INSTANCE() { // expect assertThat(OpenTracingHttpTagStrategy.getDefaultInstance()).isSameAs(OpenTracingHttpTagStrategy.DEFAULT_INSTANCE); }
@Override protected void doHandleResponseAndErrorTagging( @NotNull Span span, @Nullable REQ request, @Nullable RES response, @Nullable Throwable error, @NotNull HttpTagAndSpanNamingAdapter<REQ, RES> adapter ) { putTagIfValueIsNotBlank(span, KnownOpenTracingTags.HTTP_STATUS, adapter.getResponseHttpStatus(response)); if (error != null || StringUtils.isNotBlank(adapter.getErrorResponseTagValue(response))) { // OpenTracing doesn't expect you to pass messages with the error tag, just error=true. // So we don't need to do anything with the given error Throwable or returned // getErrorResponseTagValue(), other than have them trigger adding the error=true tag. span.putTag(KnownOpenTracingTags.ERROR, "true"); } } }
@Test public void getOpenTracingHttpTagStrategy_works_as_expected() { // given RequestTracingFilter filter = new RequestTracingFilter(); // expect assertThat(filter.getOpenTracingHttpTagStrategy()) .isNotNull() .isSameAs(OpenTracingHttpTagStrategy.getDefaultInstance()); }