passing canvas models tests

This commit is contained in:
2023-01-04 22:03:35 -07:00
parent ed897bc96e
commit ac2e9f63d6
2 changed files with 38 additions and 3 deletions

View File

@@ -1,10 +1,36 @@
using CanvasModel.EnrollmentTerms;
namespace Management.Test; namespace Management.Test;
public class SemesterPlannerTests public class SemesterPlannerTests
{ {
[Test] [Test]
public void TestCanCreatePlannerFromCanvasSemester() public void TestCanCreatePlanner()
{ {
// var var canvasTerm = new EnrollmentTermModel(
Id: 1,
Name: "one",
StartAt: new DateTime(2022, 1, 1),
EndAt: new DateTime(2022, 1, 2)
);
var semester = new SemesterPlanner(canvasTerm);
semester.Months.Count().Should().Be(1);
}
[Test]
public void TestNewPlannerHasCorrectNumberOfMonths()
{
var canvasTerm = new EnrollmentTermModel(
Id: 1,
Name: "one",
StartAt: new DateTime(2022, 1, 1),
EndAt: new DateTime(2022, 2, 1)
);
var semester = new SemesterPlanner(canvasTerm);
semester.Months.Count().Should().Be(2);
} }
} }

View File

@@ -1,4 +1,13 @@
using CanvasModel.EnrollmentTerms;
public class SemesterPlanner public class SemesterPlanner
{ {
public IEnumerable<CalendarMonth> Months { get; }
public SemesterPlanner(EnrollmentTermModel canvasTerm)
{
var monthsInTerm = canvasTerm.EndAt?.Month - canvasTerm.StartAt?.Month
?? throw new Exception($"Canvas Term must have a start and end date. Term: {canvasTerm.Id}, start: {canvasTerm.StartAt}, end: {canvasTerm.EndAt}");
Months = Enumerable.Range(1, monthsInTerm).Select(_ => new CalendarMonth());
}
} }