Skip to content

Commit a8ee711

Browse files
committed
Test-containers module: add error handling, enhance docker-compose file
1 parent 9f31eed commit a8ee711

2 files changed

Lines changed: 29 additions & 8 deletions

File tree

test-containers/src/test/java/com/baeldung/testconainers/DockerComposeContainerLiveTest.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.io.InputStreamReader;
88
import java.net.HttpURLConnection;
99
import java.net.URL;
10+
import java.net.URLDecoder;
11+
import java.nio.charset.StandardCharsets;
1012

1113
import org.junit.ClassRule;
1214
import org.junit.Test;
@@ -16,15 +18,29 @@ public class DockerComposeContainerLiveTest {
1618

1719
@ClassRule
1820
public static DockerComposeContainer compose =
19-
new DockerComposeContainer(
20-
new File("src/test/resources/test-compose.yml"))
21-
.withExposedService("simpleWebServer_1", 80);
21+
new DockerComposeContainer(getDockerComposeFile())
22+
.withExposedService("simpleWebServer", 80);
23+
24+
private static File getDockerComposeFile() {
25+
try {
26+
URL resource = DockerComposeContainerLiveTest.class
27+
.getClassLoader()
28+
.getResource("test-compose.yml");
29+
if (resource == null) {
30+
throw new IllegalStateException("test-compose.yml not found in resources");
31+
}
32+
String filePath = URLDecoder.decode(resource.getFile(), StandardCharsets.UTF_8);
33+
return new File(filePath);
34+
} catch (Exception e) {
35+
throw new IllegalStateException("Failed to load test-compose.yml", e);
36+
}
37+
}
2238

2339
@Test
2440
public void givenSimpleWebServerContainer_whenGetReuqest_thenReturnsResponse()
2541
throws Exception {
26-
String address = "http://" + compose.getServiceHost("simpleWebServer_1", 80)
27-
+ ":" + compose.getServicePort("simpleWebServer_1", 80);
42+
String address = "http://" + compose.getServiceHost("simpleWebServer", 80)
43+
+ ":" + compose.getServicePort("simpleWebServer", 80);
2844
String response = simpleGetRequest(address);
2945

3046
assertEquals(response, "Hello World!");
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
simpleWebServer:
2-
image: alpine:3.19
3-
command: ["/bin/sh", "-c", "while true; do echo 'HTTP/1.1 200 OK\n\nHello World!' | nc -l -p 80; done"]
1+
version: '3.8'
2+
3+
services:
4+
simpleWebServer:
5+
image: alpine:3.19
6+
command: ["/bin/sh", "-c", "while true; do echo 'HTTP/1.1 200 OK\n\nHello World!' | nc -l -p 80; done"]
7+
ports:
8+
- "80"

0 commit comments

Comments
 (0)