diff --git a/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java b/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java index 834e2926..0645c57c 100644 --- a/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java +++ b/lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/integrations/TestData.java @@ -430,7 +430,7 @@ public FlagBuilder variationForAll(int variationIndex) { public FlagBuilder valueForAll(LDValue value) { variations.clear(); variations.add(value); - return variationForAll(0); + return variationForAll(0).offVariation(0); } /** diff --git a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java index 5a81d322..99ef6e02 100644 --- a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java +++ b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataTest.java @@ -204,6 +204,18 @@ public void flagConfigSimpleBoolean() throws Exception { ); } + @Test + public void valueForAllSetsOffVariationToTheValue() throws Exception { + verifyFlag( + f -> f.valueForAll(LDValue.of("x")), + fb -> fb.on(true).variations("x").offVariation(0).fallthroughVariation(0) + ); + verifyFlag( + f -> f.valueForAll(LDValue.of("x")).on(false), + fb -> fb.on(false).variations("x").offVariation(0).fallthroughVariation(0) + ); + } + @Test public void usingBooleanConfigMethodsForcesFlagToBeBoolean() throws Exception { Function expectedBooleanFlag = fb -> diff --git a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java index 1e63bcb3..c772e218 100644 --- a/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java +++ b/lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/integrations/TestDataWithClientTest.java @@ -71,6 +71,15 @@ public void deletesFlag() throws Exception { } } + @Test + public void valueForAllReturnsValueWhenTargetingIsOff() throws Exception { + td.update(td.flag("flag").valueForAll(LDValue.of("x")).on(false)); + + try (LDClient client = new LDClient(SDK_KEY, config)) { + assertThat(client.stringVariation("flag", LDContext.create("user"), "default"), equalTo("x")); + } + } + @Test public void usesTargets() throws Exception { td.update(td.flag("flag").fallthroughVariation(false).variationForUser("user1", true));