private char getHistoryCharRepresentation(OutcomeEnum outcome) { switch (outcome) { case OutcomeEnum.WinWithRock: return 'R'; case OutcomeEnum.WinWithPaper: return 'P'; case OutcomeEnum.WinWithScissors: return 'S'; case OutcomeEnum.LoseWithRock: return 'r'; case OutcomeEnum.LoseWithPaper: return 'p'; case OutcomeEnum.LoseWithScissors: return 's'; case OutcomeEnum.TieWithRock: return 'O'; case OutcomeEnum.TieWithPaper: return 'I'; case OutcomeEnum.TieWithScissors: return 'X'; case OutcomeEnum.Undetermined: default: return '?'; } }
public string HandleOutcome(OutcomeEnum outcomeOfRound, ref List<OutcomeEnum> gameOutcomes, out string gameHistoryUpdate) { if (gameOutcomes == null) gameOutcomes = new List<OutcomeEnum>(); gameOutcomes.Add(outcomeOfRound); gameHistoryUpdate = deviceStore.SaveHistory(gameOutcomes, IsTest); string result; switch (outcomeOfRound) { case OutcomeEnum.WinWithRock: case OutcomeEnum.WinWithPaper: case OutcomeEnum.WinWithScissors: result = won; break; case OutcomeEnum.TieWithRock: case OutcomeEnum.TieWithPaper: case OutcomeEnum.TieWithScissors: result = tied; break; case OutcomeEnum.LoseWithRock: case OutcomeEnum.LoseWithPaper: case OutcomeEnum.LoseWithScissors: result = lost; break; case OutcomeEnum.Undetermined: default: return null; } return System.Environment.NewLine + "You " + result; }
private static void RenderOutcome(StringWriter writer, OutcomeEnum outcome) { if (outcome != OutcomeEnum.NotDefined) { if (outcome == OutcomeEnum.Pass) { writer.WriteLine($"<div style=\"color:#1e7e34\"><small><b>Passed</b></small></div>"); } else if (outcome == OutcomeEnum.Fail) { writer.WriteLine($"<div style=\"color:#bd2130\"><small><b>Failed</b></small></div>"); } } else { writer.WriteLine($"<div style=\"color:#d39e00\"><small><b>Inconclusive</b></small></div>"); } }
private void RenderFeatureScenario( StringWriter writer, Scenario scenario, TestRun trxData, OutcomeEnum outcome = OutcomeEnum.NotDefined) { writer.WriteLine("<div class=\"card card-body bg-light\">"); writer.WriteLine("<table>"); writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine($"<h4>{scenario.Name}</h4>"); writer.WriteLine("</td>"); writer.WriteLine("<td>"); RenderOutcome(writer, outcome); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); writer.WriteLine("</table>"); writer.WriteLine("<div style=\"margin-left:2em;\">"); foreach (var step in scenario.Steps) { RenderDefinition(writer, step); } writer.WriteLine("</div>"); if (scenario.Parameters.Any()) { writer.WriteLine("<table class=\"table table-striped table-bordered table-hover\">"); writer.WriteLine("<tr>"); foreach (var parameter in scenario.Parameters) { writer.WriteLine($"<th>{parameter.Name}</th>"); } writer.WriteLine("<th>Result</th>"); writer.WriteLine("</tr>"); for (var i = 0; i < scenario.Parameters.ElementAt(0).Examples.Count(); i++) { var matchingResults = trxData .Results .Where(r => new Regex($"({scenario.Name})\\(.*\\)").IsMatch(r.TestName)); writer.WriteLine("<tr>"); for (var j = 0; j < scenario.Parameters.Count(); j++) { var parameter = scenario.Parameters.ElementAt(j); var value = parameter.Examples.ElementAt(i); writer.WriteLine($"<td>{value}</td>"); matchingResults = matchingResults .Where(r => new Regex($"{parameter.Name}\\: \"{value}\"").IsMatch(r.TestName)); } var matchingResult = matchingResults .GroupBy(r => r.TestName) .Select(r => r.First()) .FirstOrDefault(); if (matchingResult != null) { var exampleOutcome = _outcomeParser.Parse(matchingResult); writer.WriteLine("<td>"); RenderOutcome(writer, outcome); writer.WriteLine("</td>"); } writer.WriteLine("</tr>"); } writer.WriteLine("</table>"); } writer.WriteLine("</div>"); writer.WriteLine("<br/>"); }