public static RequirementTree withRequirements(List<Requirement> requirements) { return new RequirementTree(requirements); }
public String toString() { if (requirements.isEmpty()) { return "NO REQUIREMENTS FOUND"; } ByteArrayOutputStream printedTree = new ByteArrayOutputStream(); PrintStream printStream = new PrintStream(printedTree); printStream.println("REQUIREMENTS:"); for(Requirement requirement : requirements) { printStream.print(stringFormOf(requirement)); } return printedTree.toString(); }
public RequirementsOutcomes buildRequirementsOutcomesFrom(TestOutcomes testOutcomes) { List<Requirement> allRequirements = new ArrayList<>(); LOGGER.info("Loading requirements from tag providers :" + requirementsTagProviders); for (RequirementsTagProvider tagProvider : requirementsTagProviders) { allRequirements = new RequirementsMerger().merge(allRequirements, RequirementsProvided.by(tagProvider)); } Optional<String> overview = requirementsTagProviders.stream() .map(RequirementsTagProvider::getOverview) .filter(Optional::isPresent) .map(overviewText -> overviewText.get()) .findFirst(); LOGGER.debug("Merged requirements set:{}{}", System.lineSeparator(), RequirementTree.withRequirements(allRequirements)); return new RequirementsOutcomes(allRequirements, testOutcomes, issueTracking, environmentVariables, requirementsTagProviders, reportNameProvider, overview.orElse("")); }