From ac2e9f63d6630ba0cf75d11eab17d36492567d71 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Wed, 4 Jan 2023 22:03:35 -0700 Subject: [PATCH] passing canvas models tests --- .../Features/SemesterPlannerTests.cs | 30 +++++++++++++++++-- .../Features/Calendar/SemesterPlanner.cs | 11 ++++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/Management.Test/Features/SemesterPlannerTests.cs b/Management.Test/Features/SemesterPlannerTests.cs index bbda40b..cdd80ba 100644 --- a/Management.Test/Features/SemesterPlannerTests.cs +++ b/Management.Test/Features/SemesterPlannerTests.cs @@ -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); } } \ No newline at end of file diff --git a/Management/Features/Calendar/SemesterPlanner.cs b/Management/Features/Calendar/SemesterPlanner.cs index d272cbf..7368612 100644 --- a/Management/Features/Calendar/SemesterPlanner.cs +++ b/Management/Features/Calendar/SemesterPlanner.cs @@ -1,4 +1,13 @@ +using CanvasModel.EnrollmentTerms; + public class SemesterPlanner { - + public IEnumerable 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()); + } } \ No newline at end of file