public void teacher_can_provide_feedback_for_a_specific_rule() { // arrange var evaluation = new ChallengeEvaluation(); evaluation.SetRuleOutcome("Code compiles", Outcome.Success, "Your submission has compiled."); // act var message = evaluation.ToDisplayString(HtmlFormatter.MimeType); // assert var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(message); var summary = htmlDoc.DocumentNode .SelectSingleNode("//details[@class='ruleEvaluation']/summary"); summary.InnerText .Should() .Be("[ Code compiles ]: Success"); var p = htmlDoc.DocumentNode .SelectSingleNode("//details[@class='ruleEvaluation']/div"); p.InnerText .Should() .Be("Your submission has compiled."); }
private static ChallengeEvaluation BuildEvaluation(string result) { if (result.Contains("Failed: 0")) { return(null); } result = result.Contains("Failed") ? ProcessFailedTest(result) : ProcessCompilationError(result); var evaluation = new ChallengeEvaluation(0); evaluation.ApplicableHints.AddHint("FUNCTIONAL TEST RESULTS", new ChallengeHint(0, result)); return(evaluation); }
public void display_number_of_rules() { // arrange var evaluation = new ChallengeEvaluation(); evaluation.SetRuleOutcome("Code compiles", Outcome.Success); evaluation.SetRuleOutcome("Code matches output", Outcome.Success); evaluation.SetRuleOutcome("Code is recursive", Outcome.Failure); // act var message = evaluation.ToDisplayString(HtmlFormatter.MimeType); // assert var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(message); var summary = htmlDoc.DocumentNode .SelectSingleNode("//details[@class='challengeEvaluation']/summary"); summary.InnerText .Should() .Be("(2/3) rules have passed."); }