Skip to content

Commit 2137928

Browse files
committed
improve test and coverage
Signed-off-by: Simon Schrottner <[email protected]>
1 parent 057cf1b commit 2137928

File tree

5 files changed

+11
-22
lines changed

5 files changed

+11
-22
lines changed

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdOptions.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ void prebuild() {
193193
resolverType = fromValueProvider(System::getenv);
194194
}
195195

196-
if (StringUtils.isEmpty(offlineFlagSourcePath)) {
196+
if (StringUtils.isBlank(offlineFlagSourcePath)) {
197197
offlineFlagSourcePath = fallBackToEnvOrDefault(Config.OFFLINE_SOURCE_PATH, null);
198198
}
199199

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/grpc/GrpcResolver.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ public GrpcResolver(
7272
Evaluation.EventStreamRequest.getDefaultInstance(),
7373
new EventStreamObserver(
7474
(flags) -> {
75-
if (cache != null) {
76-
flags.forEach(cache::remove);
75+
if (this.cache != null) {
76+
flags.forEach(this.cache::remove);
7777
}
7878
onProviderEvent.accept(new FlagdProviderEvent(
7979
ProviderEvent.PROVIDER_CONFIGURATION_CHANGED, flags));

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
2929
@ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")
3030
@IncludeTags("file")
31-
@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert", "events"})
31+
@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert"})
3232
@Testcontainers
3333
public class RunFileTest {
3434

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.junit.platform.suite.api.IncludeEngines;
1313
import org.junit.platform.suite.api.IncludeTags;
1414
import org.junit.platform.suite.api.SelectDirectories;
15+
import org.junit.platform.suite.api.SelectFile;
1516
import org.junit.platform.suite.api.Suite;
1617
import org.testcontainers.junit.jupiter.Testcontainers;
1718

@@ -23,7 +24,7 @@
2324
@IncludeEngines("cucumber")
2425
@SelectDirectories("test-harness/gherkin")
2526
// if you want to run just one feature file, use the following line instead of @SelectDirectories
26-
// @SelectFile("test-harness/gherkin/rpc-caching.feature")
27+
//@SelectFile("test-harness/gherkin/rpc-caching.feature")
2728
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty")
2829
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
2930
@ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java

+5-17
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import static io.restassured.RestAssured.when;
44

5-
import com.fasterxml.jackson.databind.ObjectMapper;
6-
import com.fasterxml.jackson.databind.ObjectReader;
75
import dev.openfeature.contrib.providers.flagd.Config;
86
import dev.openfeature.contrib.providers.flagd.FlagdProvider;
97
import dev.openfeature.contrib.providers.flagd.e2e.FlagdContainer;
@@ -21,7 +19,6 @@
2119
import java.nio.file.Files;
2220
import java.nio.file.Path;
2321
import java.nio.file.Paths;
24-
import java.util.Objects;
2522
import lombok.extern.slf4j.Slf4j;
2623
import org.apache.commons.lang3.RandomStringUtils;
2724
import org.junit.jupiter.api.parallel.Isolated;
@@ -47,7 +44,7 @@ public static void beforeAll() throws IOException {
4744
sharedTempDir = Files.createDirectories(
4845
Paths.get("tmp/" + RandomStringUtils.randomAlphanumeric(8).toLowerCase() + "/"));
4946
container = new FlagdContainer()
50-
.withFileSystemBind(sharedTempDir.toAbsolutePath().toString(), "/tmp", BindMode.READ_WRITE);
47+
.withFileSystemBind(sharedTempDir.toAbsolutePath().toString(), "/flags", BindMode.READ_WRITE);
5148
}
5249

5350
@AfterAll
@@ -78,15 +75,7 @@ public void setupProvider(String providerType) throws IOException, InterruptedEx
7875
String flagdConfig = "default";
7976
state.builder.deadline(1000).keepAlive(0).retryGracePeriod(2);
8077
boolean wait = true;
81-
File flags = new File("test-harness/flags");
82-
ObjectMapper objectMapper = new ObjectMapper();
83-
Object merged = new Object();
84-
for (File listFile : Objects.requireNonNull(flags.listFiles())) {
85-
ObjectReader updater = objectMapper.readerForUpdating(merged);
86-
merged = updater.readValue(listFile, Object.class);
87-
}
88-
Path offlinePath = Files.createTempFile("flags", ".json");
89-
objectMapper.writeValue(offlinePath.toFile(), merged);
78+
9079
switch (providerType) {
9180
case "unavailable":
9281
this.state.providerType = ProviderType.SOCKET;
@@ -123,7 +112,7 @@ public void setupProvider(String providerType) throws IOException, InterruptedEx
123112

124113
state.builder
125114
.port(UNAVAILABLE_PORT)
126-
.offlineFlagSourcePath(offlinePath.toAbsolutePath().toString());
115+
.offlineFlagSourcePath(sharedTempDir.resolve("allFlags.json").toAbsolutePath().toString());
127116
} else {
128117
state.builder.port(container.getPort(State.resolverType));
129118
}
@@ -134,7 +123,7 @@ public void setupProvider(String providerType) throws IOException, InterruptedEx
134123
.statusCode(200);
135124

136125
// giving flagd a little time to start
137-
Thread.sleep(100);
126+
Thread.sleep(30);
138127
FeatureProvider provider =
139128
new FlagdProvider(state.builder.resolverType(State.resolverType).build());
140129

@@ -163,10 +152,9 @@ public void the_connection_is_lost_for(int seconds) throws InterruptedException
163152

164153
@When("the flag was modified")
165154
public void the_flag_was_modded() throws InterruptedException {
166-
167155
when().post("http://" + container.getLaunchpadUrl() + "/change").then().statusCode(200);
168156

169157
// we might be too fast in the execution
170-
Thread.sleep(100);
158+
Thread.sleep(1000);
171159
}
172160
}

0 commit comments

Comments
 (0)