/** * @return A new {@link RestTemplate} instance with a {@link WingtipsClientHttpRequestInterceptor} already added * and configured to surround downstream calls with a subspan, and using the default * {@link HttpTagAndSpanNamingStrategy} and {@link HttpTagAndSpanNamingAdapter} ({@link ZipkinHttpTagStrategy} and * {@link SpringHttpClientTagAdapter}). */ public static RestTemplate createTracingEnabledRestTemplate() { return createTracingEnabledRestTemplate(true); }
/** * @return A new {@link RestTemplate} instance with a {@link WingtipsClientHttpRequestInterceptor} already added * and configured to surround downstream calls with a subspan, and using the default * {@link HttpTagAndSpanNamingStrategy} and {@link HttpTagAndSpanNamingAdapter} ({@link ZipkinHttpTagStrategy} and * {@link SpringHttpClientTagAdapter}). */ public static RestTemplate createTracingEnabledRestTemplate() { return createTracingEnabledRestTemplate(true); }
@DataProvider(value = { "NULL_STRATEGY_ARG", "NULL_ADAPTER_ARG" }) @Test public void createTracingEnabledRestTemplate_with_tag_and_span_naming_args_throws_IllegalArgumentException_if_passed_null_args( NullConstructorArgsScenario scenario ) { // when Throwable ex = catchThrowable( () -> WingtipsSpringUtil.createTracingEnabledRestTemplate(true, scenario.strategy, scenario.adapter) ); // then assertThat(ex) .isInstanceOf(IllegalArgumentException.class) .hasMessage(scenario.expectedExceptionMessage); }
@Test public void createTracingEnabledRestTemplate_no_args_returns_RestTemplate_with_wingtips_interceptor_added_with_expected_fields() { // when RestTemplate result = WingtipsSpringUtil.createTracingEnabledRestTemplate(); // then assertThat(result.getInterceptors()).hasSize(1); assertThat(result.getInterceptors().get(0)).isInstanceOf(WingtipsClientHttpRequestInterceptor.class); verifyInterceptorFieldValues( result.getInterceptors().get(0), true, ZipkinHttpTagStrategy.getDefaultInstance(), SpringHttpClientTagAdapter.getDefaultInstance() ); }
RestTemplate restTemplateWithWingtips = WingtipsSpringUtil.createTracingEnabledRestTemplate( subspanOptionOn, ZipkinHttpTagStrategy.getDefaultInstance(),
@DataProvider(value = { "true", "false" }) @Test public void createTracingEnabledRestTemplate_with_tag_and_span_naming_args_returns_RestTemplate_with_wingtips_interceptor_added_with_expected_fields( boolean subspanOptionOn ) { // when RestTemplate result = WingtipsSpringUtil.createTracingEnabledRestTemplate( subspanOptionOn, tagStrategyMock, tagAdapterMock ); // then assertThat(result.getInterceptors()).hasSize(1); assertThat(result.getInterceptors().get(0)).isInstanceOf(WingtipsClientHttpRequestInterceptor.class); verifyInterceptorFieldValues( result.getInterceptors().get(0), subspanOptionOn, tagStrategyMock, tagAdapterMock ); }
@DataProvider(value = { "true", "false" }) @Test public void createTracingEnabledRestTemplate_single_arg_returns_RestTemplate_with_wingtips_interceptor_added_with_expected_fields( boolean subspanOptionOn ) { // when RestTemplate result = WingtipsSpringUtil.createTracingEnabledRestTemplate(subspanOptionOn); // then assertThat(result.getInterceptors()).hasSize(1); assertThat(result.getInterceptors().get(0)).isInstanceOf(WingtipsClientHttpRequestInterceptor.class); verifyInterceptorFieldValues( result.getInterceptors().get(0), subspanOptionOn, ZipkinHttpTagStrategy.getDefaultInstance(), SpringHttpClientTagAdapter.getDefaultInstance() ); }