@Test public void getter_methods_return_field_values() { // given ServerSpanNamingAndTaggingStrategy<Span> serverStrategyMock = mock(ServerSpanNamingAndTaggingStrategy.class); ProxyRouterSpanNamingAndTaggingStrategy<Span> proxyStrategyMock = mock(ProxyRouterSpanNamingAndTaggingStrategy.class); Class<Span> spanClassType = Span.class; DistributedTracingConfigImpl<Span> instance = new DistributedTracingConfigImpl<>( serverStrategyMock, proxyStrategyMock, spanClassType ); // expect assertThat(instance.getServerSpanNamingAndTaggingStrategy()) .isSameAs(instance.serverSpanNamingAndTaggingStrategy) .isSameAs(serverStrategyMock); assertThat(instance.getProxyRouterSpanNamingAndTaggingStrategy()) .isSameAs(instance.proxyRouterSpanNamingAndTaggingStrategy) .isSameAs(proxyStrategyMock); assertThat(instance.getSpanClassType()) .isSameAs(instance.spanClassType) .isSameAs(spanClassType); }
@UseDataProvider("invalidConstructorArgsScenarioDataProvider") @Test public void constructor_throws_illegal_argument_exception_for_invalid_args( InvalidConstructorArgsScenario scenario ) { // when @SuppressWarnings("unchecked") Throwable ex = catchThrowable( () -> new DistributedTracingConfigImpl( scenario.serverStrategy, scenario.proxyStrategy, scenario.spanClassType ) ); // then assertThat(ex) .isInstanceOf(IllegalArgumentException.class) .hasMessage(scenario.expectedExceptionMessage); }
@Test public void constructor_sets_fields_as_expected() { // given ServerSpanNamingAndTaggingStrategy<Span> serverStrategyMock = mock(ServerSpanNamingAndTaggingStrategy.class); ProxyRouterSpanNamingAndTaggingStrategy<Span> proxyStrategyMock = mock(ProxyRouterSpanNamingAndTaggingStrategy.class); Class<Span> spanClassType = Span.class; // when DistributedTracingConfigImpl<Span> instance = new DistributedTracingConfigImpl<>( serverStrategyMock, proxyStrategyMock, spanClassType ); // then assertThat(instance.serverSpanNamingAndTaggingStrategy).isSameAs(serverStrategyMock); assertThat(instance.proxyRouterSpanNamingAndTaggingStrategy).isSameAs(proxyStrategyMock); assertThat(instance.spanClassType).isSameAs(spanClassType); }
tagAndNamingAdapterMock = mock(HttpTagAndSpanNamingAdapter.class); distributedTracingConfig = new DistributedTracingConfigImpl<>( new DefaultRiposteServerSpanNamingAndTaggingStrategy(tagAndNamingStrategy, tagAndNamingAdapterMock) { @Override
@DataProvider(value = { "true", "false" }) @Test public void getOrGenerateWingtipsDistributedTracingConfig_works_as_expected_for_wingtips_span_type( boolean nullDtConfig ) { // given DistributedTracingConfig<Span> dtConfig = (nullDtConfig) ? null : new DistributedTracingConfigImpl<>( mock(ServerSpanNamingAndTaggingStrategy.class), mock(ProxyRouterSpanNamingAndTaggingStrategy.class), Span.class ); DistributedTracingConfig<Span> expectedResult = (dtConfig == null) ? DefaultRiposteDistributedTracingConfigImpl.getDefaultInstance() : dtConfig; ServerConfig serverConfigMock = mock(ServerConfig.class); doReturn(dtConfig).when(serverConfigMock).distributedTracingConfig(); Server server = new Server(serverConfigMock); // when DistributedTracingConfig<Span> result = server.getOrGenerateWingtipsDistributedTracingConfig(serverConfigMock); // then assertThat(result).isSameAs(expectedResult); verify(serverConfigMock).distributedTracingConfig(); }