Files
canvasManagement/Management.Test/Markdown/RubricMarkdownTests.cs
2024-05-03 18:49:51 -06:00

103 lines
2.5 KiB
C#

using LocalModels;
public class RubricMarkdownTests
{
[Fact]
public void TestCanParseOneItem()
{
var rawRubric = @"
- 2pts: this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.Count().Should().Be(1);
rubric.First().IsExtraCredit.Should().BeFalse();
rubric.First().Label.Should().Be("this is the task");
rubric.First().Points.Should().Be(2);
}
[Fact]
public void TestCanParseMultipleItems()
{
var rawRubric = @"
- 2pts: this is the task
- 3pts: this is the other task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.Count().Should().Be(2);
rubric.ElementAt(1).IsExtraCredit.Should().BeFalse();
rubric.ElementAt(1).Label.Should().Be("this is the other task");
rubric.ElementAt(1).Points.Should().Be(3);
}
[Fact]
public void TestCanParseSinglePoint()
{
var rawRubric = @"
- 1pt: this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.First().IsExtraCredit.Should().BeFalse();
rubric.First().Label.Should().Be("this is the task");
rubric.First().Points.Should().Be(1);
}
[Fact]
public void TestCanParseSingleExtraCredit_LowerCase()
{
var rawRubric = @"
- 1pt: (extra credit) this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.First().IsExtraCredit.Should().BeTrue();
rubric.First().Label.Should().Be("(extra credit) this is the task");
}
[Fact]
public void TestCanParseSingleExtraCredit_UpperCase()
{
var rawRubric = @"
- 1pt: (Extra Credit) this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.First().IsExtraCredit.Should().BeTrue();
rubric.First().Label.Should().Be("(Extra Credit) this is the task");
}
[Fact]
public void TestCanParseFloatingPointNubmers()
{
var rawRubric = @"
- 1.5pt: this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.First().Points.Should().Be(1.5);
}
[Fact]
public void TestCanParseNegativeNubmers()
{
var rawRubric = @"
- -2pt: this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.First().Points.Should().Be(-2.0);
}
[Fact]
public void TestCanParseNegativeFloatingPointNubmers()
{
var rawRubric = @"
- -2895.00053pt: this is the task
";
var rubric = LocalAssignment.ParseRubricMarkdown(rawRubric);
rubric.First().Points.Should().Be(-2895.00053);
}
}