Record Class ScenarioInfo

java.lang.Object
java.lang.Record
com.arc_e_tect.gradle.gherkin.parser.ScenarioInfo
Record Components:
featureTitle - the name of the enclosing Feature, e.g. "User authentication"; used to group scenarios by feature in the generated report
title - the formatted scenario title, e.g. "Scenario: User logs in", or "Scenario Outline: User logs in as alice" for one row of an outline
steps - the text of each Given/When/Then/And/But step in document order, with the keyword stripped and, for an outline row, the row's Examples values substituted for its <placeholder>s; empty when the scenario has no steps
outlineTitle - for one Examples row of a Scenario Outline, the title that outline as a whole would carry - the same formatting as title, but with the outline's own name left unsubstituted, e.g. "Scenario Outline: User logs in as <username>"; null for every scenario that isn't an expanded row. This is the title the scenario was reported under before outlines were expanded, which is what lets ReinterpretedOutlines recognise a progress history record that this expansion, rather than an edit to the feature files, has superseded

public record ScenarioInfo(String featureTitle, String title, List<String> steps, String outlineTitle) extends Record
Immutable description of a single scenario parsed from a .feature file - for a Scenario Outline, one of these per Examples row rather than one per outline, with that row's values already substituted into both title and steps (see FeatureParser).
  • Constructor Details

    • ScenarioInfo

      public ScenarioInfo(String featureTitle, String title, List<String> steps)
      Creates a scenario that isn't an expanded Examples row, leaving outlineTitle() null.
      Parameters:
      featureTitle - the name of the enclosing Feature
      title - the formatted scenario title
      steps - the text of each step, in document order
    • ScenarioInfo

      public ScenarioInfo(String featureTitle, String title, List<String> steps, String outlineTitle)
      Defensively copies steps into an immutable list.
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • featureTitle

      public String featureTitle()
      Returns the value of the featureTitle record component.
      Returns:
      the value of the featureTitle record component
    • title

      public String title()
      Returns the value of the title record component.
      Returns:
      the value of the title record component
    • steps

      public List<String> steps()
      Returns the value of the steps record component.
      Returns:
      the value of the steps record component
    • outlineTitle

      public String outlineTitle()
      Returns the value of the outlineTitle record component.
      Returns:
      the value of the outlineTitle record component