Skip to content

Commit 2660009

Browse files
committed
adding more tests to unblock this
1 parent 605b7e3 commit 2660009

File tree

2 files changed

+103
-10
lines changed

2 files changed

+103
-10
lines changed

core/src/test/java/org/testcontainers/containers/ComposeContainerTest.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.junit.Before;
99
import org.junit.Test;
1010
import org.slf4j.LoggerFactory;
11+
import org.testcontainers.utility.DockerImageName;
1112
import org.testcontainers.utility.TestcontainersConfiguration;
1213

1314
import java.io.File;
@@ -21,7 +22,9 @@
2122
public class ComposeContainerTest {
2223

2324
public static final String DOCKER_IMAGE = "docker:25.0.2";
25+
private static final String COMPOSE_FILE_PATH = "src/test/resources/docker-compose-imagename-parsing-v2.yml";
2426

27+
private ComposeContainer composeContainer;
2528
private TestLogAppender testLogAppender;
2629

2730
private Logger rootLogger;
@@ -33,6 +36,7 @@ public void setup() {
3336
rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
3437
rootLogger.addAppender(testLogAppender);
3538
TestcontainersConfiguration.getInstance().updateUserConfig("compose.container.image", DOCKER_IMAGE);
39+
composeContainer.stop();
3640
}
3741

3842
@After
@@ -43,22 +47,32 @@ public void tearDown() {
4347
}
4448

4549
@Test
46-
public void testWithCustomDockerImage() throws IOException {
47-
ComposeContainer composeContainer = new ComposeContainer(
48-
Lists.newArrayList(new File("src/test/resources/docker-compose-imagename-parsing-v2.yml"))
50+
public void testWithCustomDockerImage() {
51+
composeContainer = new ComposeContainer(
52+
DockerImageName.parse(DOCKER_IMAGE), new File(COMPOSE_FILE_PATH)
53+
);
54+
composeContainer.start();
55+
verifyContainerCreation();
56+
}
57+
58+
@Test
59+
public void testWithCustomDockerImageAndIdentifier() {
60+
composeContainer = new ComposeContainer(
61+
DockerImageName.parse(DOCKER_IMAGE), "myidentifier", new File(COMPOSE_FILE_PATH)
4962
);
5063
composeContainer.start();
64+
verifyContainerCreation();
65+
}
5166

67+
private void verifyContainerCreation() {
5268
List<String> logs = testLogAppender.getLogs();
53-
composeContainer.stop();
54-
assertThat(logs).isNotNull();
55-
Optional<String> verification = logs
56-
.stream()
57-
.filter(line -> line.contains("Creating container for image: " + DOCKER_IMAGE))
58-
.findFirst();
59-
assertThat(verification.isPresent()).isTrue();
69+
70+
assertThat(logs)
71+
.isNotNull()
72+
.anyMatch(line -> line.contains("Creating container for image: " + DOCKER_IMAGE));
6073
}
6174

75+
6276
private static class TestLogAppender extends AppenderBase<ILoggingEvent> {
6377

6478
private final List<String> logs = new ArrayList<>();
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package org.testcontainers.containers;
2+
3+
import ch.qos.logback.classic.Logger;
4+
import ch.qos.logback.classic.spi.ILoggingEvent;
5+
import ch.qos.logback.core.AppenderBase;
6+
import org.junit.After;
7+
import org.junit.Before;
8+
import org.junit.Test;
9+
import org.slf4j.LoggerFactory;
10+
import org.testcontainers.utility.DockerImageName;
11+
import org.testcontainers.utility.TestcontainersConfiguration;
12+
13+
import java.io.File;
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
import static org.assertj.core.api.Assertions.assertThat;
18+
19+
public class DockerComposeContainerCustomImageTest {
20+
public static final String DOCKER_IMAGE = "docker/compose:debian-1.29.2";
21+
private static final String COMPOSE_FILE_PATH = "src/test/resources/docker-compose-imagename-parsing-v1.yml";
22+
23+
private DockerComposeContainer composeContainer;
24+
private TestLogAppender testLogAppender;
25+
private Logger rootLogger;
26+
27+
@Before
28+
public void setup() {
29+
testLogAppender = new TestLogAppender();
30+
testLogAppender.start();
31+
rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
32+
rootLogger.addAppender(testLogAppender);
33+
TestcontainersConfiguration.getInstance().updateUserConfig("compose.container.image", DOCKER_IMAGE);
34+
}
35+
36+
@After
37+
public void tearDown() {
38+
rootLogger.detachAppender(testLogAppender);
39+
TestcontainersConfiguration.getInstance().updateUserConfig("compose.container.image", "");
40+
System.clearProperty("compose.container.image");
41+
composeContainer.stop();
42+
}
43+
44+
@Test
45+
public void testWithCustomDockerImage() {
46+
composeContainer = new DockerComposeContainer(DockerImageName.parse(DOCKER_IMAGE),"testing", new File(COMPOSE_FILE_PATH));
47+
composeContainer.start();
48+
verifyContainerCreation();
49+
}
50+
51+
@Test
52+
public void testWithCustomDockerImageAndIdentifier() {
53+
composeContainer = new DockerComposeContainer(DockerImageName.parse(DOCKER_IMAGE), "myidentifier", new File(COMPOSE_FILE_PATH));
54+
composeContainer.start();
55+
verifyContainerCreation();
56+
}
57+
58+
private void verifyContainerCreation() {
59+
List<String> logs = testLogAppender.getLogs();
60+
61+
assertThat(logs)
62+
.isNotNull()
63+
.anyMatch(line -> line.contains("Creating container for image: " + DOCKER_IMAGE));
64+
}
65+
66+
private static class TestLogAppender extends AppenderBase<ILoggingEvent> {
67+
68+
private final List<String> logs = new ArrayList<>();
69+
70+
@Override
71+
protected void append(ILoggingEvent eventObject) {
72+
logs.add(eventObject.getFormattedMessage());
73+
}
74+
75+
public List<String> getLogs() {
76+
return logs;
77+
}
78+
}
79+
}

0 commit comments

Comments
 (0)