From d44544cf8a4900b5306cf7689cf49ee048757cec Mon Sep 17 00:00:00 2001 From: Elmar Kresse Date: Sat, 6 Jul 2024 17:18:09 +0200 Subject: [PATCH] fix:#46 added tests for UpdateCourse --- .../service/course/courseFunctions.go | 5 ++--- .../service/course/courseFunctions_test.go | 20 +++++++++---------- .../service/events/courseService.go | 2 +- .../service/events/mock/courseMock.go | 8 ++++---- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/services/data-manager/service/course/courseFunctions.go b/services/data-manager/service/course/courseFunctions.go index c7cc543..9e761b3 100644 --- a/services/data-manager/service/course/courseFunctions.go +++ b/services/data-manager/service/course/courseFunctions.go @@ -18,10 +18,9 @@ package course import ( "htwkalender/data-manager/model" - "htwkalender/data-manager/service/events" + "htwkalender/data-manager/model/serviceModel" "htwkalender/data-manager/service/functions" "htwkalender/data-manager/service/functions/time" - "htwkalender/data-manager/model/serviceModel" "log/slog" ) @@ -31,7 +30,7 @@ func UpdateCourse(service serviceModel.Service) { var seminarGroups []model.SeminarGroup for _, semester := range currentSemesters { - seminarGroups = append(seminarGroups, service.EventService.GetAllCoursesForSemester(semester)...) + seminarGroups = append(seminarGroups, service.CourseService.GetAllCoursesForSemester(semester)...) } for _, seminarGroup := range seminarGroups { diff --git a/services/data-manager/service/course/courseFunctions_test.go b/services/data-manager/service/course/courseFunctions_test.go index 846efcc..fb0fa9f 100644 --- a/services/data-manager/service/course/courseFunctions_test.go +++ b/services/data-manager/service/course/courseFunctions_test.go @@ -29,9 +29,9 @@ func TestUpdateCourse(t *testing.T) { events := model.Events{} // Set up expectations - mockCourseService.On("GetAllCourses").Return([]string{"Course1", "Course2"}) - mockEventService.On("UpdateModulesForCourse", "Course1").Return(events, nil) - mockEventService.On("UpdateModulesForCourse", "Course2").Return(events, nil) + mockCourseService.On("GetAllCoursesForSemester", "ss").Return([]model.SeminarGroup{{Course: "Course1", Semester: ""}, {Course: "Course2", Semester: ""}}) + mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""}).Return(events, nil) + mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course2", Semester: ""}).Return(events, nil) // Inject mocks into the UpdateCourse function service := serviceModel.Service{ @@ -46,12 +46,12 @@ func TestUpdateCourse(t *testing.T) { mockEventService.AssertExpectations(t) // Assert that the UpdateCourse function was called twice - mockCourseService.AssertNumberOfCalls(t, "GetAllCourses", 1) + mockCourseService.AssertNumberOfCalls(t, "GetAllCoursesForSemester", 1) mockEventService.AssertNumberOfCalls(t, "UpdateModulesForCourse", 2) // Assert that the UpdateCourse function was called with the correct arguments - mockEventService.AssertCalled(t, "UpdateModulesForCourse", "Course1") - mockEventService.AssertCalled(t, "UpdateModulesForCourse", "Course2") + mockEventService.AssertCalled(t, "UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""}) + mockEventService.AssertCalled(t, "UpdateModulesForCourse", model.SeminarGroup{Course: "Course2", Semester: ""}) } func TestUpdateCourseErr(t *testing.T) { @@ -62,9 +62,9 @@ func TestUpdateCourseErr(t *testing.T) { events := model.Events{} // Set up expectations - mockCourseService.On("GetAllCourses").Return([]string{"Course1", "Course2"}) - mockEventService.On("UpdateModulesForCourse", "Course1").Return(events, fmt.Errorf("error")) - mockEventService.On("UpdateModulesForCourse", "Course2").Return(events, fmt.Errorf("error")) + 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")) + mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course2", Semester: ""}).Return(events, fmt.Errorf("error")) // Create a custom writer to capture log output customWriter := &CustomWriter{} @@ -87,7 +87,7 @@ func TestUpdateCourseErr(t *testing.T) { mockEventService.AssertExpectations(t) // Assert that the UpdateCourse function was called twice - mockCourseService.AssertNumberOfCalls(t, "GetAllCourses", 1) + mockCourseService.AssertNumberOfCalls(t, "GetAllCoursesForSemester", 1) mockEventService.AssertNumberOfCalls(t, "UpdateModulesForCourse", 2) // Check the captured log output for the expected messages diff --git a/services/data-manager/service/events/courseService.go b/services/data-manager/service/events/courseService.go index 415f8b1..65cc1a8 100644 --- a/services/data-manager/service/events/courseService.go +++ b/services/data-manager/service/events/courseService.go @@ -26,7 +26,7 @@ import ( // CourseService defines the methods to be implemented type CourseService interface { GetAllCourses() []string - GetAllCoursesForSemester(semester string) []string + GetAllCoursesForSemester(semester string) []model.SeminarGroup GetAllCoursesForSemesterWithEvents(semester string) ([]string, error) } diff --git a/services/data-manager/service/events/mock/courseMock.go b/services/data-manager/service/events/mock/courseMock.go index d01c113..80aabce 100644 --- a/services/data-manager/service/events/mock/courseMock.go +++ b/services/data-manager/service/events/mock/courseMock.go @@ -15,9 +15,9 @@ func (m *MockCourseService) GetAllCourses() []string { return args.Get(0).([]string) } -func (m *MockCourseService) GetAllCoursesForSemester(semester string) []string { +func (m *MockCourseService) GetAllCoursesForSemester(semester string) []model.SeminarGroup { args := m.Called(semester) - return args.Get(0).([]string) + return args.Get(0).([]model.SeminarGroup) } func (m *MockCourseService) GetAllCoursesForSemesterWithEvents(semester string) ([]string, error) { @@ -55,8 +55,8 @@ func (m *MockEventService) DeleteAllEvents() error { return args.Error(0) } -func (m *MockEventService) UpdateModulesForCourse(course string) (model.Events, error) { - args := m.Called(course) +func (m *MockEventService) UpdateModulesForCourse(seminarGroup model.SeminarGroup) (model.Events, error) { + args := m.Called(seminarGroup) return args.Get(0).(model.Events), args.Error(1) }