diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdOptionsTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdOptionsTest.java index f2962cdcc..75fd3581f 100644 --- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdOptionsTest.java +++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdOptionsTest.java @@ -119,6 +119,33 @@ void testValueProviderForEdgeCase_invalid() { assertEquals(Config.DEFAULT_RESOLVER_TYPE, Config.fromValueProvider(dummy)); } + @Test + void toBuilder_maintains_props() { + String selector = "some-selector"; + int port = 1337; + int gracePeriod = 33; + int keepAlive = 9000; + + FlagdOptions options = FlagdOptions.builder() + .resolverType(Resolver.IN_PROCESS) + .port(port) + .selector(selector) + .keepAlive(keepAlive) + .build(); + + FlagdOptions rebuiltOptions = + options.toBuilder().retryGracePeriod(gracePeriod).build(); + + // old props + assertEquals(selector, rebuiltOptions.getSelector()); + assertEquals(port, rebuiltOptions.getPort()); + assertEquals(keepAlive, rebuiltOptions.getKeepAlive()); + assertEquals(Resolver.IN_PROCESS, rebuiltOptions.getResolverType()); + + // added props + assertEquals(gracePeriod, rebuiltOptions.getRetryGracePeriod()); + } + @Test @SetEnvironmentVariable(key = RESOLVER_ENV_VAR, value = RESOLVER_IN_PROCESS) void testInProcessProviderFromEnv_noPortConfigured_defaultsToCorrectPort() {