Пример #1
0
 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 '?';
     }
 }
Пример #2
0
    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;
    }
Пример #3
0
 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>");
     }
 }
Пример #4
0
        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/>");
        }