internal static void MatchResult(ExtendedExamples examples, ScenarioDefinition scenario, ICollection <SbeScenario> results) { foreach (var row in examples.Rows) { var rowTitle = row.GetTitle(scenario.Name); var result = results.FirstOrDefault(x => x.Title.Equals(rowTitle, StringComparison.OrdinalIgnoreCase)); row.Result = result.Outcome; } }
internal static ExtendedExamples Create(Examples examples) { var extended = new ExtendedExamples { Keyword = examples.Keyword, Headers = examples.TableHeader.Cells.Select(x => x.Value).ToArray(), }; extended.Rows = examples.TableBody.Select(row => ExtendedTableRow.Create(row, extended.Headers)).ToArray(); return(extended); }
private void ScenarioHtml(ScenarioDefinition scenario, StringBuilder sb, ICollection <SbeScenario> results) { var result = results.FirstOrDefault(x => x.Title == scenario.Name)?.Outcome ?? Outcome.Inconclusive; var outline = scenario as ScenarioOutline; var examples = outline?.Examples.Select(ExtendedExamples.Create).ToArray(); if (outline != null) { examples?.ToList().ForEach(x => ExtendedExamples.MatchResult(x, scenario, results)); result = GetOutlineResultFromExamples(examples); } sb.AppendLine("<div class=\"scenario\">"); sb.AppendLine($"<table class=\"title\"><tr><td>{GenerateStatusImageTag(result)}</td><td class=\"text\">{scenario.Keyword}: {HtmlEncode(scenario.Name)}</td></tr></table>"); sb.AppendLine($"<p>{AddLineBreaks(HtmlEncode(scenario.Description))}</p>"); StepsHtml(sb, scenario.Steps); ExamplesHtml(sb, examples); sb.AppendLine("</div>"); }