private ScenarioOutcome scenarioOutcomeFrom(Feature feature,
ScenarioDefinition scenarioDefinition,
TestOutcomes testOutcomes) {
List<TestOutcome> outcomes = testOutcomes.testOutcomesWithName(scenarioDefinition.getName());
String scenarioTitle = scenarioDefinition.getName();
TestResult result = (outcomes.isEmpty()) ? TestResult.UNDEFINED :
TestResultList.overallResultFrom(outcomes.stream().map(TestOutcome::getResult).collect(Collectors.toList()));
List<String> reportBadges = ReportBadges.from(outcomes, scenarioDefinition.getName());
String featureReport = new ReportNameProvider().forRequirement(feature.getName(),"feature");
List<String> renderedSteps = scenarioDefinition.getSteps().stream()
.map(RenderCucumber::step)
.collect(Collectors.toList());
List<String> renderedExamples = (scenarioDefinition instanceof ScenarioOutline) ?
RenderCucumber.examples(((ScenarioOutline) scenarioDefinition).getExamples(),
feature.getName(),
scenarioDefinition.getName()) : Collections.EMPTY_LIST;
int exampleCount = (scenarioDefinition instanceof ScenarioOutline) ?
((ScenarioOutline) scenarioDefinition).getExamples().stream().mapToInt(examples -> examples.getTableBody().size()).sum()
: 0;
return new ScenarioSummaryOutcome(scenarioTitle,
scenarioDefinition.getKeyword(),
result,
reportBadges,
scenarioDefinition.getDescription(),
renderedSteps,
renderedExamples,
exampleCount,
feature.getName(),
featureReport);
}