Class TestOutcomeRequirementsTagProvider

java.lang.Object
net.thucydides.model.requirements.TestOutcomeRequirementsTagProvider
All Implemented Interfaces:
CoreTagProvider, OverridableTagProvider, RequirementsTagProvider, RequirementTypesProvider, TagProvider

public class TestOutcomeRequirementsTagProvider extends Object implements RequirementsTagProvider, OverridableTagProvider, RequirementTypesProvider
Read requirements from test outcomes, based on the path specified in each test outcome
  • Field Details

  • Constructor Details

    • TestOutcomeRequirementsTagProvider

      public TestOutcomeRequirementsTagProvider()
      Default constructor. Initializes an instance of the TestOutcomeRequirementsTagProvider class with default environment variables.
    • TestOutcomeRequirementsTagProvider

      public TestOutcomeRequirementsTagProvider(EnvironmentVariables environmentVariables)
      Constructor with EnvironmentVariables parameter. Initializes an instance of the TestOutcomeRequirementsTagProvider class with the provided environment variables.
      Parameters:
      environmentVariables - The EnvironmentVariables to be used for the TestOutcomeRequirementsTagProvider.
  • Method Details

    • fromSourceDirectory

      public TestOutcomeRequirementsTagProvider fromSourceDirectory(Path sourceDirectory)
    • getActiveRequirementTypes

      public List<String> getActiveRequirementTypes()
      Get active requirement types based on the depth of each requirement. The requirement types are listed in order of depth.
      Specified by:
      getActiveRequirementTypes in interface RequirementTypesProvider
      Returns:
      List of active requirement types sorted by depth.
    • getRequirements

      public List<Requirement> getRequirements()
      Get the requirements from the RequirementCache or load them if not present in the cache.
      Specified by:
      getRequirements in interface RequirementsTagProvider
      Returns:
      List of Requirement objects.
    • addRequirementTagsTo

      public void addRequirementTagsTo(TestOutcome outcome)
      Adds requirement tags to the given TestOutcome. The method gets the parent requirement from the RequirementCache and adds tags from the requirement hierarchy to the TestOutcome.
      Specified by:
      addRequirementTagsTo in interface RequirementsTagProvider
      Parameters:
      outcome - The TestOutcome to which the requirement tags are to be added.
    • humanReadableVersionOf

      protected String humanReadableVersionOf(String name)
    • getParentRequirementOf

      public Optional<Requirement> getParentRequirementOf(TestOutcome testOutcome)
      Fetches the parent requirement of a given TestOutcome. If the TestOutcome has no user story or path, returns an empty Optional. If no requirement matches the user story in the flattened requirements, an aliased requirement is fetched.
      Specified by:
      getParentRequirementOf in interface RequirementsTagProvider
      Parameters:
      testOutcome - The TestOutcome whose parent requirement is to be fetched.
      Returns:
      Optional containing the parent requirement if it exists, else an empty Optional.
    • getParentRequirementOf

      public Optional<Requirement> getParentRequirementOf(Requirement requirement)
      Specified by:
      getParentRequirementOf in interface RequirementsTagProvider
    • getRequirementFor

      public Optional<Requirement> getRequirementFor(TestTag testTag)
      Specified by:
      getRequirementFor in interface RequirementsTagProvider
    • getTagsFor

      public Set<TestTag> getTagsFor(TestOutcome testOutcome)
      Description copied from interface: TagProvider
      Returns the tags associated with a given test outcome.
      Specified by:
      getTagsFor in interface TagProvider
      Parameters:
      testOutcome - the outcome for a specific test
      Returns:
      the tags associated with a given test outcome.
    • getFlattenedRequirements

      public List<Requirement> getFlattenedRequirements()