Polish "Add service connection from Testcontainers Zipkin"

See gh-35107
This commit is contained in:
Moritz Halbritter
2023-05-02 10:49:00 +02:00
parent ad4f6ffeb7
commit 9b5a2643cc
3 changed files with 24 additions and 12 deletions

View File

@@ -30,9 +30,10 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect
* using the {@code "openzipkin/zipkin"} image.
*
* @author Eddú Meléndez
* @author Moritz Halbritter
*/
class ZipkinContainerConnectionDetailsFactory
extends ContainerConnectionDetailsFactory<ZipkinConnectionDetails, Container<?>> {
extends ContainerConnectionDetailsFactory<Container<?>, ZipkinConnectionDetails> {
private static final int ZIPKIN_PORT = 9411;
@@ -49,20 +50,17 @@ class ZipkinContainerConnectionDetailsFactory
/**
* {@link ZipkinConnectionDetails} backed by a {@link ContainerConnectionSource}.
*/
private static class ZipkinContainerConnectionDetails extends ContainerConnectionDetails
private static class ZipkinContainerConnectionDetails extends ContainerConnectionDetails<Container<?>>
implements ZipkinConnectionDetails {
private final String endpoint;
ZipkinContainerConnectionDetails(ContainerConnectionSource<Container<?>> source) {
super(source);
this.endpoint = "http://" + source.getContainer().getHost() + ":"
+ source.getContainer().getMappedPort(ZIPKIN_PORT) + "/api/v2/spans";
}
@Override
public String getSpanEndpoint() {
return this.endpoint;
return "http://" + getContainer().getHost() + ":" + getContainer().getMappedPort(ZIPKIN_PORT)
+ "/api/v2/spans";
}
}

View File

@@ -26,6 +26,7 @@ import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinAutoC
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
@@ -35,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link ZipkinContainerConnectionDetailsFactory}.
*
* @author Eddú Meléndez
* @author Moritz Halbritter
*/
@SpringJUnitConfig
@Testcontainers(disabledWithoutDocker = true)
@@ -42,16 +44,16 @@ class ZipkinContainerConnectionDetailsFactoryIntegrationTests {
@Container
@ServiceConnection
static final GenericContainer<?> container = new GenericContainer<>("openzipkin/zipkin:2.23.2")
.withExposedPorts(9411);
static final GenericContainer<?> zipkin = new GenericContainer<>(DockerImageNames.zipkin()).withExposedPorts(9411);
@Autowired
@Autowired(required = false)
private ZipkinConnectionDetails connectionDetails;
@Test
void connectionCanBeMadeToRabbitContainer() {
void connectionCanBeMadeToZipkinContainer() {
assertThat(this.connectionDetails).isNotNull();
assertThat(this.connectionDetails.getSpanEndpoint())
.startsWith("http://" + container.getHost() + ":" + container.getMappedPort(9411));
.startsWith("http://" + zipkin.getHost() + ":" + zipkin.getMappedPort(9411));
}
@Configuration(proxyBeanMethods = false)