Class TestData.FlagBuilder.FlagRuleBuilder

java.lang.Object
com.launchdarkly.sdk.server.integrations.TestData.FlagBuilder.FlagRuleBuilder
Enclosing class:
TestData.FlagBuilder

public final class TestData.FlagBuilder.FlagRuleBuilder
extends java.lang.Object
A builder for feature flag rules to be used with TestData.FlagBuilder.

In the LaunchDarkly model, a flag can have any number of rules, and a rule can have any number of clauses. A clause is an individual test such as "name is 'X'". A rule matches a user if all of the rule's clauses match the user.

To start defining a rule, use one of the flag builder's matching methods such as TestData.FlagBuilder.ifMatch(UserAttribute, LDValue...). This defines the first clause for the rule. Optionally, you may add more clauses with the rule builder's methods such as andMatch(UserAttribute, LDValue...). Finally, call thenReturn(boolean) or thenReturn(int) to finish defining the rule.

  • Constructor Details

  • Method Details

    • andMatch

      public TestData.FlagBuilder.FlagRuleBuilder andMatch​(UserAttribute attribute, LDValue... values)
      Adds another clause, using the "is one of" operator.

      For example, this creates a rule that returns true if the name is "Patsy" and the country is "gb":

      
           testData.flag("flag")
               .ifMatch(UserAttribute.NAME, LDValue.of("Patsy"))
               .andMatch(UserAttribute.COUNTRY, LDValue.of("gb"))
               .thenReturn(true));
       
      Parameters:
      attribute - the user attribute to match against
      values - values to compare to
      Returns:
      the rule builder
    • andNotMatch

      public TestData.FlagBuilder.FlagRuleBuilder andNotMatch​(UserAttribute attribute, LDValue... values)
      Adds another clause, using the "is not one of" operator.

      For example, this creates a rule that returns true if the name is "Patsy" and the country is not "gb":

      
           testData.flag("flag")
               .ifMatch(UserAttribute.NAME, LDValue.of("Patsy"))
               .andNotMatch(UserAttribute.COUNTRY, LDValue.of("gb"))
               .thenReturn(true));
       
      Parameters:
      attribute - the user attribute to match against
      values - values to compare to
      Returns:
      the rule builder
    • thenReturn

      public TestData.FlagBuilder thenReturn​(boolean variation)
      Finishes defining the rule, specifying the result value as a boolean.
      Parameters:
      variation - the value to return if the rule matches the user
      Returns:
      the flag builder
    • thenReturn

      public TestData.FlagBuilder thenReturn​(int variationIndex)
      Finishes defining the rule, specifying the result as a variation index.
      Parameters:
      variationIndex - the variation to return if the rule matches the user: 0 for the first, 1 for the second, etc.
      Returns:
      the flag builder