fix:#46 added tests for UpdateCourse

This commit is contained in:
Elmar Kresse
2024-07-06 17:18:09 +02:00
parent 4e89318df6
commit d44544cf8a
4 changed files with 17 additions and 18 deletions

View File

@ -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 {

View File

@ -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

View File

@ -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)
}

View File

@ -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)
}