Add test to verify ZipkinRestTemplateBuilderCustomizer

See gh-33399
This commit is contained in:
Moritz Halbritter 2022-11-29 11:55:27 +01:00
parent b3878e84ae
commit cfaade95df
1 changed files with 27 additions and 1 deletions

View File

@ -16,6 +16,13 @@
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin; package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeUnit;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.ArgumentMatchers; import org.mockito.ArgumentMatchers;
import zipkin2.reporter.Sender; import zipkin2.reporter.Sender;
@ -140,6 +147,25 @@ class ZipkinConfigurationsSenderConfigurationTests {
}); });
} }
@Test
void shouldApplyZipkinRestTemplateBuilderCustomizers() throws IOException {
try (MockWebServer mockWebServer = new MockWebServer()) {
mockWebServer.enqueue(new MockResponse().setResponseCode(204));
this.reactiveContextRunner
.withPropertyValues("management.zipkin.tracing.endpoint=" + mockWebServer.url("/"))
.withUserConfiguration(RestTemplateConfiguration.class)
.withClassLoader(new FilteredClassLoader(URLConnectionSender.class, WebClient.class))
.run((context) -> {
assertThat(context).hasSingleBean(ZipkinRestTemplateSender.class);
ZipkinRestTemplateSender sender = context.getBean(ZipkinRestTemplateSender.class);
sender.sendSpans("spans".getBytes(StandardCharsets.UTF_8)).execute();
RecordedRequest recordedRequest = mockWebServer.takeRequest(1, TimeUnit.SECONDS);
assertThat(recordedRequest).isNotNull();
assertThat(recordedRequest.getHeaders().get("x-dummy")).isEqualTo("dummy");
});
}
}
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
private static class RestTemplateConfiguration { private static class RestTemplateConfiguration {
@ -174,7 +200,7 @@ class ZipkinConfigurationsSenderConfigurationTests {
@Override @Override
public RestTemplateBuilder customize(RestTemplateBuilder restTemplateBuilder) { public RestTemplateBuilder customize(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder; return restTemplateBuilder.defaultHeader("x-dummy", "dummy");
} }
} }