From d5ad11a95b0c78c3e52353564861c19851c20f61 Mon Sep 17 00:00:00 2001 From: Aidan Do Date: Sat, 27 Aug 2022 11:35:31 +0930 Subject: [PATCH 1/3] getContainerByServiceName should work with non-suffixed name --- .../containers/DockerComposeContainer.java | 3 ++- .../junit/DockerComposeContainerTest.java | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java index 14124d88c28..683e9d9fdf5 100644 --- a/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java +++ b/core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java @@ -611,7 +611,8 @@ public SELF withStartupTimeout(Duration startupTimeout) { } public Optional getContainerByServiceName(String serviceName) { - return Optional.ofNullable(serviceInstanceMap.get(serviceName)); + String serviceInstantName = getServiceInstanceName(serviceName); + return Optional.ofNullable(serviceInstanceMap.get(serviceInstantName)); } private void followLogs(String containerId, Consumer consumer) { diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java index c610fc584af..6796d4f753a 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java @@ -1,9 +1,6 @@ package org.testcontainers.junit; -import org.junit.Rule; -import org.junit.Test; -import org.testcontainers.containers.ContainerState; -import org.testcontainers.containers.DockerComposeContainer; +import static org.assertj.core.api.Assertions.assertThat; import java.io.File; import java.io.IOException; @@ -12,7 +9,10 @@ import java.util.Collections; import java.util.Optional; -import static org.assertj.core.api.Assertions.assertThat; +import org.junit.Rule; +import org.junit.Test; +import org.testcontainers.containers.ContainerState; +import org.testcontainers.containers.DockerComposeContainer; /** * Created by rnorth on 08/08/2015. @@ -44,6 +44,7 @@ public void testGetServicePort() { public void shouldRetrieveContainerByServiceName() { String existingServiceName = "db_1"; Optional result = environment.getContainerByServiceName(existingServiceName); + assertThat(result) .as(String.format("Container should be found by service name %s", existingServiceName)) .isPresent(); @@ -52,6 +53,19 @@ public void shouldRetrieveContainerByServiceName() { .isEqualTo(result.get().getExposedPorts()); } + @Test + public void shouldRetrieveContainerByServiceNameWithoutNumberedSuffix() { + String existingServiceName = "db"; + Optional result = environment.getContainerByServiceName(existingServiceName); + + assertThat(result) + .as(String.format("Container should be found by service name %s", existingServiceName)) + .isPresent(); + assertThat(result.get().getExposedPorts()) + .as("Mapped port for result container was wrong, probably wrong container found") + .isEqualTo(Collections.singletonList(3306)); + } + @Test public void shouldReturnEmptyResultOnNoneExistingService() { String notExistingServiceName = "db_256"; From 909efdeab8baaf9e9ccf52264e24dffe8ac8d416 Mon Sep 17 00:00:00 2001 From: Aidan Do Date: Sat, 27 Aug 2022 12:11:07 +0930 Subject: [PATCH 2/3] spotlessApply --- .../junit/DockerComposeContainerTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java index 6796d4f753a..a1c2d017ddf 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java @@ -1,6 +1,9 @@ package org.testcontainers.junit; -import static org.assertj.core.api.Assertions.assertThat; +import org.junit.Rule; +import org.junit.Test; +import org.testcontainers.containers.ContainerState; +import org.testcontainers.containers.DockerComposeContainer; import java.io.File; import java.io.IOException; @@ -9,10 +12,7 @@ import java.util.Collections; import java.util.Optional; -import org.junit.Rule; -import org.junit.Test; -import org.testcontainers.containers.ContainerState; -import org.testcontainers.containers.DockerComposeContainer; +import static org.assertj.core.api.Assertions.assertThat; /** * Created by rnorth on 08/08/2015. From 708d6bff79e04d2950253d2643ce050e13332630 Mon Sep 17 00:00:00 2001 From: Aidan Do Date: Tue, 30 Aug 2022 20:56:40 +0930 Subject: [PATCH 3/3] check if CI failed due to a flaky test --- .../org/testcontainers/junit/DockerComposeContainerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java index a1c2d017ddf..96989af90a4 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerComposeContainerTest.java @@ -62,7 +62,7 @@ public void shouldRetrieveContainerByServiceNameWithoutNumberedSuffix() { .as(String.format("Container should be found by service name %s", existingServiceName)) .isPresent(); assertThat(result.get().getExposedPorts()) - .as("Mapped port for result container was wrong, probably wrong container found") + .as("Mapped port for result container was wrong, perhaps wrong container was found") .isEqualTo(Collections.singletonList(3306)); }