Class PatternVariantBuilder

java.lang.Object
org.jbehave.core.steps.PatternVariantBuilder

public class PatternVariantBuilder extends Object

Builds a set of pattern variants of given pattern input, supporting a custom directives. Depending on the directives present, one or more resulting variants are created.

Currently supported directives are

Pattern Result
..A {x|y} B..
  • ..A x B..
  • ..A y B..
..A {x|y|} B..
  • ..A x B..
  • ..A y B..
  • ..A B..
..A {x} B..
  • ..A x B..

These directives can be used to conveniently create several variants of a step pattern, without having to repeat it as a whole as one or more aliases.

Examples:

  • @Then("the result {must |has to |}be $x")
    public void checkResult(int x)...

    Would match any of these variants from a story file:

    • Then the result must be 42
    • Then the result has to be 42
    • Then the result be 42

  • @When("$A {+|plus|is added to} $B")
    public void add(int A, int B)...

    Would match any of these variants from a story file:

    • When 42 + 23
    • When 42 plus 23
    • When 42 is added to 23

Author:
Daniel Schneller
  • Constructor Details

    • PatternVariantBuilder

      public PatternVariantBuilder(String input)
      Creates a builder and calculates all variants for given input. When there are no variants found in the input, it will itself be the only result.
      Parameters:
      input - to be evaluated
  • Method Details

    • getInput

      public String getInput()
    • allVariants

      public Set<String> allVariants()
      Returns a new copy set of all variants with no whitespace compression.
      Returns:
      a Set of all variants without whitespace compression
      See Also:
    • allVariants

      public Set<String> allVariants(boolean compressWhitespace)

      Returns a new copy set of all variants. Any two or more consecutive white space characters will be condensed into a single space if boolean flag is set.

      Otherwise, any whitespace will be left as is.

      Parameters:
      compressWhitespace - whether or not to compress whitespace
      Returns:
      a Set of all variants