@Before public void beforeMethod() { initialSpanNameFromStrategy = new AtomicReference<>("span-name-from-strategy-" + UUID.randomUUID().toString()); strategyInitialSpanNameMethodCalled = new AtomicBoolean(false); strategyRequestTaggingMethodCalled = new AtomicBoolean(false); strategyResponseTaggingAndFinalSpanNameMethodCalled = new AtomicBoolean(false); strategyInitialSpanNameArgs = new AtomicReference<>(null); strategyRequestTaggingArgs = new AtomicReference<>(null); strategyResponseTaggingArgs = new AtomicReference<>(null); wingtipsStrategy = new ArgCapturingHttpTagAndSpanNamingStrategy<>( initialSpanNameFromStrategy, strategyInitialSpanNameMethodCalled, strategyRequestTaggingMethodCalled, strategyResponseTaggingAndFinalSpanNameMethodCalled, strategyInitialSpanNameArgs, strategyRequestTaggingArgs, strategyResponseTaggingArgs ); wingtipsAdapterMock = mock(HttpTagAndSpanNamingAdapter.class); impl = new DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy(wingtipsStrategy, wingtipsAdapterMock); requestMock = mock(RequestBuilderWrapper.class); responseMock = mock(Response.class); errorMock = mock(Throwable.class); spanMock = mock(Span.class); }
@Test public void alternate_constructor_creates_instance_using_specified_wingtips_strategy_and_adapter() { // given HttpTagAndSpanNamingStrategy<RequestBuilderWrapper, Response> wingtipsStrategyMock = mock(HttpTagAndSpanNamingStrategy.class); HttpTagAndSpanNamingAdapter<RequestBuilderWrapper, Response> wingtipsAdapterMock = mock(HttpTagAndSpanNamingAdapter.class); // when DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy instance = new DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy(wingtipsStrategyMock, wingtipsAdapterMock); // then assertThat(instance.tagAndNamingStrategy).isSameAs(wingtipsStrategyMock); assertThat(instance.tagAndNamingAdapter).isSameAs(wingtipsAdapterMock); }
@DataProvider(value = { "NULL_WINGTIPS_STRATEGY", "NULL_WINGTIPS_ADAPTER" }) @Test public void alternate_constructor_throws_IllegalArgumentException_if_passed_null_args( NullArgsScenario scenario ) { // when Throwable ex = catchThrowable( () -> new DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy( scenario.wingtipsStrategy, scenario.wingtipsAdapter ) ); // then assertThat(ex) .isInstanceOf(IllegalArgumentException.class) .hasMessage(scenario.expectedExceptionMessage); }
); wingtipsTagAndNamingAdapterMock = mock(HttpTagAndSpanNamingAdapter.class); tagAndNamingStrategy = new DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy( wingtipsTagAndNamingStrategy, wingtipsTagAndNamingAdapterMock );
@Test public void default_constructor_creates_instance_using_default_ZipkinHttpTagStrategy_and_AsyncHttpClientHelperTagAdapter() { // when DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy instance = new DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy(); // then assertThat(instance.tagAndNamingStrategy).isSameAs(ZipkinHttpTagStrategy.getDefaultInstance()); assertThat(instance.tagAndNamingAdapter).isSameAs(AsyncHttpClientHelperTagAdapter.getDefaultInstance()); }
); wingtipsTagAndNamingAdapterMock = mock(HttpTagAndSpanNamingAdapter.class); tagAndNamingStrategy = new DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy( wingtipsTagAndNamingStrategy, wingtipsTagAndNamingAdapterMock );