public static ScenarioOutcome outcomeFrom(TestOutcome testOutcome) {
List<String> exampleTables = (testOutcome.isDataDriven()) ?
Collections.singletonList(testOutcome.getDataTable().toMarkdown()) : Collections.EMPTY_LIST;
String userStoryName = (testOutcome.getUserStory() != null) ? testOutcome.getUserStory().getName() : null;
String userStoryReportName = (testOutcome.getUserStory() != null) ? testOutcome.getUserStory().getReportName() : null;
List<String> steps = (testOutcome.getDataDrivenSampleScenario() != null && !testOutcome.getDataDrivenSampleScenario().isEmpty()) ?
testStepsFromSampleScenario(testOutcome.getDataDrivenSampleScenario()) :
testOutcome.getTestSteps()
.stream().map(step -> RenderMarkdown.convertEmbeddedTablesIn(step.getDescription())).collect(Collectors.toList());
return new SingleScenarioOutcome(
testOutcome.getQualified().withContext().getTitleWithLinks(),
testOutcome.getName(),
"Acceptance Test",
testOutcome.getResult(),
ReportNamer.forReportType(ReportType.HTML).getNormalizedTestNameFor(testOutcome),
testOutcome.getStartTime(),
testOutcome.getDuration(),
testOutcome.isManual(),
testOutcome.getDescription(),
steps,
exampleTables,
testOutcome.getDataTableRowCount(),
userStoryName,
userStoryReportName);
}