mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 09:38:49 +02:00
fix:#46 added tests for UpdateCourse
This commit is contained in:
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user