private boolean anyChildRequirementsAreFailuresFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isFailure()) { return true; } else if (anyChildRequirementsAreFailuresFor(childRequirement.getChildren())) { return true; } } return false; }
/** * Is this requirement complete? * A Requirement is considered complete if it has associated tests to all of the tests are successful. */ public boolean isComplete() { return (!getTestOutcomes().getTests().isEmpty()) && getTestOutcomes().getResult() == TestResult.SUCCESS && allChildRequirementsAreSuccessful(); }
private boolean allChildRequirementsAreSuccessfulFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (!childOutcomes.isComplete()) { return false; } else if (!allChildRequirementsAreSuccessfulFor(childRequirement.getChildren())) { return false; } } return true; }
public boolean isPending() { // return (getTestOutcomes().getTestCount() == 0) || getTestOutcomes().getResult() == TestResult.PENDING || anyChildRequirementsArePending(); return getTestOutcomes().getResult() == TestResult.PENDING || anyChildRequirementsArePending(); }
public boolean isError() { return getTestOutcomes().getResult() == TestResult.ERROR || anyChildRequirementsAreErrors(); }
private boolean anyChildRequirementsAreErrorsFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isError()) { return true; } else if (anyChildRequirementsAreErrorsFor(childRequirement.getChildren())) { return true; } } return false; }
private boolean anyChildRequirementsAreIgnoredFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isIgnored()) { return true; } else if (anyChildRequirementsAreIgnoredFor(childRequirement.getChildren())) { return true; } } return false; }
private boolean anyChildRequirementsArePendingFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isPending()) { return true; } else if (anyChildRequirementsArePendingFor(childRequirement.getChildren())) { return true; } } return false; }
public List<RequirementOutcome> getFlattenedRequirementOutcomes(List<RequirementOutcome> outcomes) { Set<RequirementOutcome> flattenedOutcomes = Sets.newHashSet(); for (RequirementOutcome requirementOutcome : outcomes) { flattenedOutcomes.add(requirementOutcome); for(Requirement requirement : requirementOutcome.getRequirement().getChildren()) { // TestTag requirementTag = TestTag.withName(requirement.getName()).andType(requirement.getType()); // TestOutcomes testOutcomesForRequirement = requirementOutcome.getTestOutcomes().withTag(requirementTag); TestOutcomes testOutcomesForRequirement = requirementOutcome.getTestOutcomes().withTag(requirement.asTag()); flattenedOutcomes.add(new RequirementOutcome(requirement, testOutcomesForRequirement, issueTracking)); List<Requirement> childRequirements = requirement.getChildren(); RequirementsOutcomes childOutcomes = new RequirementsOutcomes(childRequirements, testOutcomesForRequirement, issueTracking, environmentVariables, requirementsTagProviders); flattenedOutcomes.addAll(getFlattenedRequirementOutcomes(childOutcomes.getRequirementOutcomes())); } } return ImmutableList.copyOf(flattenedOutcomes); }
public boolean isFailure() { return getTestOutcomes().getResult() == TestResult.FAILURE || anyChildRequirementsAreFailures(); }
public boolean isIgnored() { return getTestOutcomes().getResult() == TestResult.IGNORED || anyChildRequirementsAreIgnored(); }
private boolean anyChildRequirementsAreCompromisedFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isCompromised()) { return true; } else if (anyChildRequirementsAreErrorsFor(childRequirement.getChildren())) { return true; } } return false; }
private boolean anyChildRequirementsAreSkippedFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isSkipped()) { return true; } else if (anyChildRequirementsAreIgnoredFor(childRequirement.getChildren())) { return true; } } return false; }
public RequirementOutcome withoutUnrelatedRequirements() { if (!shouldPrune(this)) { return this; } List<Requirement> childRequirementsWithTests = getRequirement().getChildren().stream() .filter(this::isTested) .collect(Collectors.toList()); Requirement prunedRequirement = getRequirement().withChildren(childRequirementsWithTests); return new RequirementOutcome(prunedRequirement, testOutcomes, requirementsWithoutTests, estimatedUnimplementedTests, issueTracking); }
public RequirementOutcome withTestOutcomes(TestOutcomes testOutcomes) { return new RequirementOutcome(requirement, testOutcomes, requirementsWithoutTests, estimatedUnimplementedTests, issueTracking); }
private boolean allChildRequirementsAreSuccessful() { if (requirement.hasChildren()) { return allChildRequirementsAreSuccessfulFor(requirement.getChildren()); } else { return true; } }
private boolean anyChildRequirementsAreErrors() { return anyChildRequirementsAreErrorsFor(requirement.getChildren()); } private boolean anyChildRequirementsArePending() {
private boolean anyChildRequirementsAreFailures() { return anyChildRequirementsAreFailuresFor(requirement.getChildren()); }
private boolean anyChildRequirementsAreIgnored() { return anyChildRequirementsAreIgnoredFor(requirement.getChildren()); }
private boolean anyChildRequirementsAreErrorsFor(List<Requirement> requirements) { for(Requirement childRequirement : requirements) { RequirementOutcome childOutcomes = new RequirementOutcome(childRequirement, testOutcomes.forRequirement(requirement), issueTracking); if (childOutcomes.isError()) { return true; } else if (anyChildRequirementsAreErrorsFor(childRequirement.getChildren())) { return true; } } return false; } private boolean anyChildRequirementsAreFailuresFor(List<Requirement> requirements) {