Class 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(String, LDValue...). This defines the first clause for the rule. Optionally, you may add more clauses with the rule builder's methods such as andMatch(String, LDValue...). Finally, call thenReturn(boolean) or thenReturn(int) to finish defining the rule.

    • Constructor Detail

      • FlagRuleBuilder

        public FlagRuleBuilder()
    • Method Detail

      • andMatch

        public TestData.FlagBuilder.FlagRuleBuilder andMatch​(ContextKind contextKind,
                                                             java.lang.String attribute,
                                                             LDValue... values)
        Adds another clause, using the "is one of" operator. This matching expression only applies to contexts of a specific kind.

        For example, this creates a rule that returns true if the name attribute for the "company" context is "Ella" and the country is "gb":

        
             testData.flag("flag")
                 .ifMatch(ContextKind.of("company"), "name", LDValue.of("Ella"))
                 .andMatch(ContextKind.of("company"), "country", LDValue.of("gb"))
                 .thenReturn(true));
         
        Parameters:
        contextKind - the context kind to match
        attribute - the attribute to match against
        values - values to compare to
        Returns:
        the rule builder
        Since:
        6.0.0
        See Also:
        andNotMatch(ContextKind, String, LDValue...), andMatch(String, LDValue...)
      • andNotMatch

        public TestData.FlagBuilder.FlagRuleBuilder andNotMatch​(ContextKind contextKind,
                                                                java.lang.String attribute,
                                                                LDValue... values)
        Adds another clause, using the "is not one of" operator. This matching expression only applies to contexts of a specific kind.

        For example, this creates a rule that returns true if the name attribute for the "company" context is "Ella" and the country is not "gb":

        
             testData.flag("flag")
                 .ifMatch(ContextKind.of("company"), "name", LDValue.of("Ella"))
                 .andNotMatch(ContextKind.of("company"), "country", LDValue.of("gb"))
                 .thenReturn(true));
         
        Parameters:
        contextKind - the context kind to match
        attribute - the user attribute to match against
        values - values to compare to
        Returns:
        the rule builder
        Since:
        6.0.0
        See Also:
        andMatch(ContextKind, String, LDValue...), andNotMatch(String, LDValue...)
      • andNotMatch

        public TestData.FlagBuilder.FlagRuleBuilder andNotMatch​(java.lang.String 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("name", LDValue.of("Patsy"))
                 .andNotMatch("country", LDValue.of("gb"))
                 .thenReturn(true));
         
        Parameters:
        attribute - the user attribute to match against
        values - values to compare to
        Returns:
        the rule builder
        See Also:
        andMatch(String, LDValue...), andNotMatch(ContextKind, String, LDValue...)
      • 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