From 86b03eba508933f58dc3e566e0f22aa85c7033b7 Mon Sep 17 00:00:00 2001 From: Elmar Kresse Date: Fri, 6 Sep 2024 20:06:21 +0200 Subject: [PATCH] fix:#20 test for mockClock in winter semester --- services/data-manager/service/addRoute.go | 3 ++- services/data-manager/service/addSchedule.go | 3 ++- .../service/course/courseFunctions.go | 4 ++-- .../service/course/courseFunctions_test.go | 15 +++++++++++++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/services/data-manager/service/addRoute.go b/services/data-manager/service/addRoute.go index 7796db3..25aa462 100644 --- a/services/data-manager/service/addRoute.go +++ b/services/data-manager/service/addRoute.go @@ -63,7 +63,8 @@ func AddRoutes(services serviceModel.Service) { Method: http.MethodGet, Path: "/api/fetch/daily/events", Handler: func(c echo.Context) error { - course.UpdateCourse(services) + clock := time.RealClock{} + course.UpdateCourse(services, clock) return c.JSON(http.StatusOK, "Daily events fetched") }, Middlewares: []echo.MiddlewareFunc{ diff --git a/services/data-manager/service/addSchedule.go b/services/data-manager/service/addSchedule.go index da0bac4..97f1ecf 100644 --- a/services/data-manager/service/addSchedule.go +++ b/services/data-manager/service/addSchedule.go @@ -51,7 +51,8 @@ func AddSchedules(services serviceModel.Service) { // In Germany it is 7am and 7pm, syllabus gets updated twice a day at German 5:00 Uhr and 17:00 Uhr scheduler.MustAdd("updateEventsByCourse", "0 5,17 * * *", func() { slog.Info("Started updating courses schedule") - course.UpdateCourse(services) + clock := time.RealClock{} + course.UpdateCourse(services, clock) }) // Every sunday at 1am clean all courses (5 segments - minute, hour, day, month, weekday) "0 3 * * 0" diff --git a/services/data-manager/service/course/courseFunctions.go b/services/data-manager/service/course/courseFunctions.go index 9e761b3..13c5d46 100644 --- a/services/data-manager/service/course/courseFunctions.go +++ b/services/data-manager/service/course/courseFunctions.go @@ -24,8 +24,8 @@ import ( "log/slog" ) -func UpdateCourse(service serviceModel.Service) { - currentSemesters := functions.CalculateSemesterList(time.RealClock{}) +func UpdateCourse(service serviceModel.Service, clock time.Clock) { + currentSemesters := functions.CalculateSemesterList(clock) var seminarGroups []model.SeminarGroup diff --git a/services/data-manager/service/course/courseFunctions_test.go b/services/data-manager/service/course/courseFunctions_test.go index fb0fa9f..b1429a1 100644 --- a/services/data-manager/service/course/courseFunctions_test.go +++ b/services/data-manager/service/course/courseFunctions_test.go @@ -7,6 +7,7 @@ import ( "htwkalender/data-manager/model" "htwkalender/data-manager/model/serviceModel" "htwkalender/data-manager/service/events/mock" + "htwkalender/data-manager/service/functions/time" "log/slog" "regexp" "testing" @@ -26,6 +27,11 @@ func TestUpdateCourse(t *testing.T) { mockCourseService := new(mock.MockCourseService) mockEventService := new(mock.MockEventService) + // Set the current time to 2024-07-01T00:00:00Z + // This will result in the current semester being "ss" + parseTime, _ := time.ParseTime("2024-07-01T00:00:00Z") + mockClock := time.MockClock{NowTime: parseTime} + events := model.Events{} // Set up expectations @@ -39,7 +45,7 @@ func TestUpdateCourse(t *testing.T) { EventService: mockEventService, App: nil, } - UpdateCourse(service) + UpdateCourse(service, mockClock) // Assert that the expectations were met mockCourseService.AssertExpectations(t) @@ -61,6 +67,11 @@ func TestUpdateCourseErr(t *testing.T) { events := model.Events{} + // Set the current time to 2024-07-01T00:00:00Z + // This will result in the current semester being "ss" + parseTime, _ := time.ParseTime("2024-07-01T00:00:00Z") + mockClock := time.MockClock{NowTime: parseTime} + // Set up expectations mockCourseService.On("GetAllCoursesForSemester", "ss").Return([]model.SeminarGroup{{Course: "Course1", Semester: ""}, {Course: "Course2", Semester: ""}}) mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""}).Return(events, fmt.Errorf("error")) @@ -80,7 +91,7 @@ func TestUpdateCourseErr(t *testing.T) { EventService: mockEventService, App: nil, } - UpdateCourse(service) + UpdateCourse(service, mockClock) // Assert that the expectations were met mockCourseService.AssertExpectations(t)