Skip to content

Commit 0a3b414

Browse files
committed
test(flagd): rework e2e tests to new format
Signed-off-by: Simon Schrottner <[email protected]>
1 parent 8fb4194 commit 0a3b414

33 files changed

+648
-1333
lines changed

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,13 @@
200200
<scope>test</scope>
201201
</dependency>
202202

203+
<dependency>
204+
<groupId>io.cucumber</groupId>
205+
<artifactId>cucumber-picocontainer</artifactId>
206+
<version>7.20.1</version>
207+
<scope>test</scope>
208+
</dependency>
209+
203210
<dependency>
204211
<groupId>org.awaitility</groupId>
205212
<artifactId>awaitility</artifactId>

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/ContainerConfig.java

Lines changed: 0 additions & 100 deletions
This file was deleted.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package dev.openfeature.contrib.providers.flagd.e2e;
2+
3+
import dev.openfeature.contrib.providers.flagd.Config;
4+
import org.apache.logging.log4j.util.Strings;
5+
import org.jetbrains.annotations.NotNull;
6+
import org.testcontainers.containers.GenericContainer;
7+
import org.testcontainers.containers.Network;
8+
import org.testcontainers.containers.wait.strategy.Wait;
9+
import org.testcontainers.containers.wait.strategy.WaitStrategy;
10+
import org.testcontainers.utility.DockerImageName;
11+
import org.testcontainers.utility.MountableFile;
12+
13+
import java.io.File;
14+
import java.nio.file.Files;
15+
import java.util.List;
16+
17+
public class FlagdContainer extends GenericContainer<FlagdContainer> {
18+
private static final String version;
19+
private static final Network network = Network.newNetwork();
20+
21+
static {
22+
String path = "test-harness/version.txt";
23+
File file = new File(path);
24+
try {
25+
List<String> lines = Files.readAllLines(file.toPath());
26+
version = lines.get(0);
27+
} catch (Exception e) {
28+
throw new RuntimeException(e);
29+
}
30+
}
31+
32+
private String feature;
33+
34+
public FlagdContainer() {
35+
this("");
36+
}
37+
38+
public FlagdContainer(String feature) {
39+
super(generateContainerName(feature));
40+
this.withReuse(true);
41+
this.feature = feature;
42+
if (!"socket".equals(this.feature))
43+
this.addExposedPorts(8013, 8014, 8015, 8016);
44+
}
45+
46+
@Override
47+
public void start() {
48+
if (!"socket".equals(this.feature))
49+
this.addExposedPorts(8013, 8014, 8015, 8016);
50+
super.start();
51+
waitUntilContainerStarted();
52+
}
53+
54+
public int getPort(Config.Resolver resolver) {
55+
waitUntilContainerStarted();
56+
switch (resolver) {
57+
case RPC:
58+
return this.getMappedPort(8013);
59+
case IN_PROCESS:
60+
return this.getMappedPort(8015);
61+
default:
62+
throw new IllegalArgumentException("Unsupported resolver: " + resolver);
63+
}
64+
}
65+
66+
67+
/**
68+
* @return a {@link org.testcontainers.containers.GenericContainer} instance of envoy container using
69+
* flagd sync service as backend expose on port 9211
70+
*/
71+
public static GenericContainer envoy() {
72+
final String container = "envoyproxy/envoy:v1.31.0";
73+
return new GenericContainer(DockerImageName.parse(container))
74+
.withCopyFileToContainer(MountableFile.forClasspathResource("/envoy-config/envoy-custom.yaml"),
75+
"/etc/envoy/envoy.yaml")
76+
.withExposedPorts(9211)
77+
.withNetwork(network)
78+
.withNetworkAliases("envoy");
79+
}
80+
81+
public static @NotNull String generateContainerName(String feature) {
82+
String container = "ghcr.io/open-feature/flagd-testbed";
83+
if (!Strings.isBlank(feature)) {
84+
container += "-" + feature;
85+
}
86+
container += ":v" + version;
87+
return container;
88+
}
89+
}

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdInProcessCucumberTest.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdInProcessEnvoyCucumberTest.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdInProcessReconnectCucumberTest.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdInProcessSSLCucumberTest.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdRpcCucumberTest.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdRpcReconnectCucumberTest.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFlagdRpcSSLCucumberTest.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)