protected @NotNull DistributedTracingConfig<Span> getOrGenerateWingtipsDistributedTracingConfig( @NotNull ServerConfig serverConfig ) { DistributedTracingConfig<?> distributedTracingConfigRaw = serverConfig.distributedTracingConfig(); if (distributedTracingConfigRaw == null) { distributedTracingConfigRaw = DefaultRiposteDistributedTracingConfigImpl.getDefaultInstance(); } if (!Span.class.equals(distributedTracingConfigRaw.getSpanClassType())) { throw new IllegalArgumentException( "Your ServerConfig.distributedTracingConfig() does not support Wingtips Spans. Riposte currently " + "requires a DistributedTracingConfig that handles Wingtips Spans." ); } //noinspection unchecked - we manually verified (above) that it handles Wingtips Spans. return (DistributedTracingConfig<Span>) distributedTracingConfigRaw; }
protected @NotNull DistributedTracingConfig<Span> getOrGenerateWingtipsDistributedTracingConfig( @NotNull ServerConfig serverConfig ) { DistributedTracingConfig<?> distributedTracingConfigRaw = serverConfig.distributedTracingConfig(); if (distributedTracingConfigRaw == null) { distributedTracingConfigRaw = DefaultRiposteDistributedTracingConfigImpl.getDefaultInstance(); } if (!Span.class.equals(distributedTracingConfigRaw.getSpanClassType())) { throw new IllegalArgumentException( "Your ServerConfig.distributedTracingConfig() does not support Wingtips Spans. Riposte currently " + "requires a DistributedTracingConfig that handles Wingtips Spans." ); } //noinspection unchecked - we manually verified (above) that it handles Wingtips Spans. return (DistributedTracingConfig<Span>) distributedTracingConfigRaw; }
@Test public void getDefaultInstance_returns_DEFAULT_INSTANCE() { // when DefaultRiposteDistributedTracingConfigImpl instance = DefaultRiposteDistributedTracingConfigImpl.getDefaultInstance(); // then assertThat(instance) .isSameAs(DefaultRiposteDistributedTracingConfigImpl.DEFAULT_INSTANCE); assertThat(instance.serverSpanNamingAndTaggingStrategy) .isSameAs(DefaultRiposteServerSpanNamingAndTaggingStrategy.getDefaultInstance()) .isSameAs(instance.getServerSpanNamingAndTaggingStrategy()); assertThat(instance.getSpanClassType()).isEqualTo(Span.class); }
@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(); }