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;
public class SemesterPlannerTests
{
[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 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());
}
}