mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-23 21:18:48 +02:00
fix:#46 added tests for UpdateCourse
This commit is contained in:
@ -18,10 +18,9 @@ package course
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"htwkalender/data-manager/model"
|
"htwkalender/data-manager/model"
|
||||||
"htwkalender/data-manager/service/events"
|
"htwkalender/data-manager/model/serviceModel"
|
||||||
"htwkalender/data-manager/service/functions"
|
"htwkalender/data-manager/service/functions"
|
||||||
"htwkalender/data-manager/service/functions/time"
|
"htwkalender/data-manager/service/functions/time"
|
||||||
"htwkalender/data-manager/model/serviceModel"
|
|
||||||
"log/slog"
|
"log/slog"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -31,7 +30,7 @@ func UpdateCourse(service serviceModel.Service) {
|
|||||||
var seminarGroups []model.SeminarGroup
|
var seminarGroups []model.SeminarGroup
|
||||||
|
|
||||||
for _, semester := range currentSemesters {
|
for _, semester := range currentSemesters {
|
||||||
seminarGroups = append(seminarGroups, service.EventService.GetAllCoursesForSemester(semester)...)
|
seminarGroups = append(seminarGroups, service.CourseService.GetAllCoursesForSemester(semester)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, seminarGroup := range seminarGroups {
|
for _, seminarGroup := range seminarGroups {
|
||||||
|
@ -29,9 +29,9 @@ func TestUpdateCourse(t *testing.T) {
|
|||||||
events := model.Events{}
|
events := model.Events{}
|
||||||
|
|
||||||
// Set up expectations
|
// Set up expectations
|
||||||
mockCourseService.On("GetAllCourses").Return([]string{"Course1", "Course2"})
|
mockCourseService.On("GetAllCoursesForSemester", "ss").Return([]model.SeminarGroup{{Course: "Course1", Semester: ""}, {Course: "Course2", Semester: ""}})
|
||||||
mockEventService.On("UpdateModulesForCourse", "Course1").Return(events, nil)
|
mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""}).Return(events, nil)
|
||||||
mockEventService.On("UpdateModulesForCourse", "Course2").Return(events, nil)
|
mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course2", Semester: ""}).Return(events, nil)
|
||||||
|
|
||||||
// Inject mocks into the UpdateCourse function
|
// Inject mocks into the UpdateCourse function
|
||||||
service := serviceModel.Service{
|
service := serviceModel.Service{
|
||||||
@ -46,12 +46,12 @@ func TestUpdateCourse(t *testing.T) {
|
|||||||
mockEventService.AssertExpectations(t)
|
mockEventService.AssertExpectations(t)
|
||||||
|
|
||||||
// Assert that the UpdateCourse function was called twice
|
// Assert that the UpdateCourse function was called twice
|
||||||
mockCourseService.AssertNumberOfCalls(t, "GetAllCourses", 1)
|
mockCourseService.AssertNumberOfCalls(t, "GetAllCoursesForSemester", 1)
|
||||||
mockEventService.AssertNumberOfCalls(t, "UpdateModulesForCourse", 2)
|
mockEventService.AssertNumberOfCalls(t, "UpdateModulesForCourse", 2)
|
||||||
|
|
||||||
// Assert that the UpdateCourse function was called with the correct arguments
|
// Assert that the UpdateCourse function was called with the correct arguments
|
||||||
mockEventService.AssertCalled(t, "UpdateModulesForCourse", "Course1")
|
mockEventService.AssertCalled(t, "UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""})
|
||||||
mockEventService.AssertCalled(t, "UpdateModulesForCourse", "Course2")
|
mockEventService.AssertCalled(t, "UpdateModulesForCourse", model.SeminarGroup{Course: "Course2", Semester: ""})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUpdateCourseErr(t *testing.T) {
|
func TestUpdateCourseErr(t *testing.T) {
|
||||||
@ -62,9 +62,9 @@ func TestUpdateCourseErr(t *testing.T) {
|
|||||||
events := model.Events{}
|
events := model.Events{}
|
||||||
|
|
||||||
// Set up expectations
|
// Set up expectations
|
||||||
mockCourseService.On("GetAllCourses").Return([]string{"Course1", "Course2"})
|
mockCourseService.On("GetAllCoursesForSemester", "ss").Return([]model.SeminarGroup{{Course: "Course1", Semester: ""}, {Course: "Course2", Semester: ""}})
|
||||||
mockEventService.On("UpdateModulesForCourse", "Course1").Return(events, fmt.Errorf("error"))
|
mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""}).Return(events, fmt.Errorf("error"))
|
||||||
mockEventService.On("UpdateModulesForCourse", "Course2").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
|
// Create a custom writer to capture log output
|
||||||
customWriter := &CustomWriter{}
|
customWriter := &CustomWriter{}
|
||||||
@ -87,7 +87,7 @@ func TestUpdateCourseErr(t *testing.T) {
|
|||||||
mockEventService.AssertExpectations(t)
|
mockEventService.AssertExpectations(t)
|
||||||
|
|
||||||
// Assert that the UpdateCourse function was called twice
|
// Assert that the UpdateCourse function was called twice
|
||||||
mockCourseService.AssertNumberOfCalls(t, "GetAllCourses", 1)
|
mockCourseService.AssertNumberOfCalls(t, "GetAllCoursesForSemester", 1)
|
||||||
mockEventService.AssertNumberOfCalls(t, "UpdateModulesForCourse", 2)
|
mockEventService.AssertNumberOfCalls(t, "UpdateModulesForCourse", 2)
|
||||||
|
|
||||||
// Check the captured log output for the expected messages
|
// Check the captured log output for the expected messages
|
||||||
|
@ -26,7 +26,7 @@ import (
|
|||||||
// CourseService defines the methods to be implemented
|
// CourseService defines the methods to be implemented
|
||||||
type CourseService interface {
|
type CourseService interface {
|
||||||
GetAllCourses() []string
|
GetAllCourses() []string
|
||||||
GetAllCoursesForSemester(semester string) []string
|
GetAllCoursesForSemester(semester string) []model.SeminarGroup
|
||||||
GetAllCoursesForSemesterWithEvents(semester string) ([]string, error)
|
GetAllCoursesForSemesterWithEvents(semester string) ([]string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,9 +15,9 @@ func (m *MockCourseService) GetAllCourses() []string {
|
|||||||
return args.Get(0).([]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)
|
args := m.Called(semester)
|
||||||
return args.Get(0).([]string)
|
return args.Get(0).([]model.SeminarGroup)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MockCourseService) GetAllCoursesForSemesterWithEvents(semester string) ([]string, error) {
|
func (m *MockCourseService) GetAllCoursesForSemesterWithEvents(semester string) ([]string, error) {
|
||||||
@ -55,8 +55,8 @@ func (m *MockEventService) DeleteAllEvents() error {
|
|||||||
return args.Error(0)
|
return args.Error(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MockEventService) UpdateModulesForCourse(course string) (model.Events, error) {
|
func (m *MockEventService) UpdateModulesForCourse(seminarGroup model.SeminarGroup) (model.Events, error) {
|
||||||
args := m.Called(course)
|
args := m.Called(seminarGroup)
|
||||||
return args.Get(0).(model.Events), args.Error(1)
|
return args.Get(0).(model.Events), args.Error(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user