From 35eab8d2f64e6cf0037f9b45512adea7009dd64c Mon Sep 17 00:00:00 2001 From: Elmar Kresse Date: Mon, 7 Oct 2024 22:34:52 +0200 Subject: [PATCH] fix:#57 added test and converted encoding --- .../service/events/mock/courseMock.go | 5 + .../fetch/v1/fetchSeminarEventService_test.go | 133 ++++++++++-------- .../service/fetch/v1/tests/seminarGroup.html | 25 ++-- 3 files changed, 90 insertions(+), 73 deletions(-) diff --git a/services/data-manager/service/events/mock/courseMock.go b/services/data-manager/service/events/mock/courseMock.go index 80aabce..21b9b8e 100644 --- a/services/data-manager/service/events/mock/courseMock.go +++ b/services/data-manager/service/events/mock/courseMock.go @@ -10,6 +10,11 @@ type MockCourseService struct { mock.Mock } +func (m *MockCourseService) FindCourseByCourseName(courseName string) (model.SeminarGroup, error) { + args := m.Called(courseName) + return args.Get(0).(model.SeminarGroup), args.Error(1) +} + func (m *MockCourseService) GetAllCourses() []string { args := m.Called() return args.Get(0).([]string) diff --git a/services/data-manager/service/fetch/v1/fetchSeminarEventService_test.go b/services/data-manager/service/fetch/v1/fetchSeminarEventService_test.go index d93ee4d..2f0677f 100644 --- a/services/data-manager/service/fetch/v1/fetchSeminarEventService_test.go +++ b/services/data-manager/service/fetch/v1/fetchSeminarEventService_test.go @@ -22,6 +22,7 @@ import ( "htwkalender/data-manager/model" "os" "reflect" + "sort" "testing" "time" ) @@ -617,15 +618,47 @@ func Test_parseSeminarGroup(t *testing.T) { Course: "23SAM", University: "HTWK Leipzig", Events: []model.Event{ + { + UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959", + Day: "Donnerstag", + Week: "44", + Start: parseDateTime("2024-10-31 06:00:00.000Z"), + End: parseDateTime("2024-10-31 23:00:00.000Z"), + Name: "Feiertage und lehrveranstaltungsfreie Tage", + Notes: "Reformationstag", + Prof: " ", + Rooms: " ", + BookedAt: "30/07/2024", + Course: "23SAM", + EventType: "Sperr", + Compulsory: "", + Semester: "ws", + }, + { + UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959", + Day: "Freitag", + Week: "44", + Start: parseDateTime("2024-11-01 06:00:00.000Z"), + End: parseDateTime("2024-11-01 23:00:00.000Z"), + Name: "Feiertage und lehrveranstaltungsfreie Tage", + Notes: "Brückentag Reformationstag", + Prof: " ", + Rooms: " ", + BookedAt: "30/07/2024", + Course: "23SAM", + EventType: "Sperr", + Compulsory: "", + Semester: "ws", + }, { UUID: "15e6d285-5ecd-5039-b4b2-d6fcc3dbc1a7", Day: "Dienstag", Week: "42", Start: parseDateTime("2024-10-15 09:15:00.000Z"), End: parseDateTime("2024-10-15 10:45:00.000Z"), - Name: "Leitungskompetenzen II", + Name: "3.2 Leitungskompetenzen II SA-M 3. FS (pf)", Notes: "Leitungshandeln", - Prof: "Prof. Dr. phil. Grit Behse-Bartels SA-M 3. FS (pf)", + Prof: "Prof. Dr. phil. Grit Behse-Bartels", Rooms: "LI119-S", BookedAt: "13/06/2024", Course: "23SAM", @@ -639,9 +672,9 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "43", Start: parseDateTime("2024-10-22 09:15:00.000Z"), End: parseDateTime("2024-10-22 10:45:00.000Z"), - Name: "Leitungskompetenzen II", + Name: "3.2 Leitungskompetenzen II SA-M 3. FS (pf)", Notes: "Leitungshandeln", - Prof: "Prof. Dr. phil. Grit Behse-Bartels SA-M 3. FS (pf)", + Prof: "Prof. Dr. phil. Grit Behse-Bartels", Rooms: "LI119-S", BookedAt: "13/06/2024", Course: "23SAM", @@ -655,15 +688,15 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "44", Start: parseDateTime("2024-10-29 10:15:00.000Z"), End: parseDateTime("2024-10-29 11:45:00.000Z"), - Name: "Leitungskompetenzen II", + Name: "3.2 Leitungskompetenzen II SA-M 3. FS (pf)", Notes: "Leitungshandeln", Prof: "Prof. Dr. phil. Grit Behse-Bartels", Rooms: "LI119-S", BookedAt: "13/06/2024", - Course: "SA-M 3. FS (pf)", + Course: "23SAM", EventType: "S", Compulsory: "p", - Semester: "23SAM ws", + Semester: "ws", }, { UUID: "15e6d285-5ecd-5039-b4b2-d6fcc3dbc1a7", @@ -671,7 +704,7 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "54", Start: parseDateTime("2025-01-07 10:15:00.000Z"), End: parseDateTime("2025-01-07 11:45:00.000Z"), - Name: "Leitungskompetenzen II SA-M 3. FS (pf)", + Name: "3.2 Leitungskompetenzen II SA-M 3. FS (pf)", Notes: "Leitungshandeln", Prof: "Prof. Dr. phil. Grit Behse-Bartels", Rooms: "LI119-S", @@ -687,7 +720,7 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "55", Start: parseDateTime("2025-01-14 10:15:00.000Z"), End: parseDateTime("2025-01-14 11:45:00.000Z"), - Name: "Leitungskompetenzen II SA-M 3. FS (pf)", + Name: "3.2 Leitungskompetenzen II SA-M 3. FS (pf)", Notes: "Leitungshandeln", Prof: "Prof. Dr. phil. Grit Behse-Bartels", Rooms: "LI119-S", @@ -705,8 +738,8 @@ func Test_parseSeminarGroup(t *testing.T) { End: parseDateTime("2024-11-20 23:00:00.000Z"), Name: "Feiertage und lehrveranstaltungsfreie Tage", Notes: "Buß- und Bettag", - Prof: "", - Rooms: "", + Prof: " ", + Rooms: " ", BookedAt: "30/07/2024", Course: "23SAM", EventType: "Sperr", @@ -719,10 +752,10 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "43", Start: parseDateTime("2024-10-23 07:30:00.000Z"), End: parseDateTime("2024-10-23 10:45:00.000Z"), - Name: "Ausgew. Thema aus dem Thema Fachdiskurs Soz. Arbeit SA-M 3. FS (pf)", - Notes: "", - Prof: "LBA Sarah Otto", + Name: "3.5 Ausgew. Thema aus dem Thema Fachdiskurs Soz. Arbeit SA-M 3. FS (pf)", + Notes: "LBA Sarah Otto", Rooms: "LI016-S", + Prof: " ", BookedAt: "27/08/2024", Course: "23SAM", EventType: "S", @@ -735,10 +768,10 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "46", Start: parseDateTime("2024-11-13 08:30:00.000Z"), End: parseDateTime("2024-11-13 11:45:00.000Z"), - Name: "Ausgew. Thema aus dem Thema Fachdiskurs Soz. Arbeit SA-M 3. FS (pf)", - Notes: "", - Prof: "LBA Sarah Otto", + Name: "3.5 Ausgew. Thema aus dem Thema Fachdiskurs Soz. Arbeit SA-M 3. FS (pf)", + Notes: "LBA Sarah Otto", Rooms: "LI115-L", + Prof: " ", BookedAt: "18/09/2024", Course: "23SAM", EventType: "S", @@ -751,12 +784,12 @@ func Test_parseSeminarGroup(t *testing.T) { Week: "48", Start: parseDateTime("2024-11-27 08:30:00.000Z"), End: parseDateTime("2024-11-27 11:45:00.000Z"), - Name: "Ausgew. Thema aus dem Thema Fachdiskurs Soz. Arbeit SA-M 3. FS (pf)", - Notes: "", - Prof: "LBA Sarah Otto", + Name: "3.5 Ausgew. Thema aus dem Thema Fachdiskurs Soz. Arbeit SA-M 3. FS (pf)", + Prof: " ", + Notes: "LBA Sarah Otto", Rooms: "LI201-S", BookedAt: "18/09/2024", - Course: "SAM23", + Course: "23SAM", EventType: "S", Compulsory: "p", Semester: "ws", @@ -768,9 +801,9 @@ func Test_parseSeminarGroup(t *testing.T) { Start: parseDateTime("2024-10-16 11:45:00.000Z"), End: parseDateTime("2024-10-16 18:30:00.000Z"), Name: "zentrale Gremienzeit", - Notes: "", - Prof: "", - Rooms: "", + Notes: " ", + Prof: " ", + Rooms: " ", BookedAt: "09/09/2024", Course: "23SAM", EventType: "Sperr", @@ -784,54 +817,28 @@ func Test_parseSeminarGroup(t *testing.T) { Start: parseDateTime("2024-10-30 12:45:00.000Z"), End: parseDateTime("2024-10-30 19:30:00.000Z"), Name: "zentrale Gremienzeit", - Notes: "", - Prof: "", - Rooms: "", + Notes: " ", + Prof: " ", + Rooms: " ", BookedAt: "09/09/2024", Course: "23SAM", EventType: "Sperr", Compulsory: "", Semester: "ws", }, - { - UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959", - Day: "Donnerstag", - Week: "44", - Start: parseDateTime("2024-10-31 06:00:00.000Z"), - End: parseDateTime("2024-10-31 23:00:00.000Z"), - Name: "Feiertage und lehrveranstaltungsfreie Tage", - Notes: "Reformationstag", - Prof: "", - Rooms: "", - BookedAt: "30/07/2024", - Course: "23SAM", - EventType: "Sperr", - Compulsory: "", - Semester: "ws", - }, - { - UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959", - Day: "Freitag", - Week: "44", - Start: parseDateTime("2024-11-01 06:00:00.000Z"), - End: parseDateTime("2024-11-01 23:00:00.000Z"), - Name: "Feiertage und lehrveranstaltungsfreie Tage", - Notes: "Brückentag Reformationstag", - Prof: "", - Rooms: "", - BookedAt: "30/07/2024", - Course: "23SAM", - EventType: "Sperr", - Compulsory: "", - Semester: "ws", - }, }, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := parseSeminarGroup(tt.args.result); !reflect.DeepEqual(got, tt.want) { + + //sort Arrays by StartDate + sortEventsByStartDate(tt.want.Events) + got := parseSeminarGroup(tt.args.result) + sortEventsByStartDate(got.Events) + + if !reflect.DeepEqual(got, tt.want) { t.Errorf("parseSeminarGroup() = %v, want %v", got, tt.want) } }) @@ -845,3 +852,9 @@ func parseDateTime(timeString string) types.DateTime { } return dateTime } + +func sortEventsByStartDate(events []model.Event) { + sort.Slice(events, func(i, j int) bool { + return events[i].Start.Time().Before(events[j].Start.Time()) + }) +} diff --git a/services/data-manager/service/fetch/v1/tests/seminarGroup.html b/services/data-manager/service/fetch/v1/tests/seminarGroup.html index 0497ec9..8380d74 100644 --- a/services/data-manager/service/fetch/v1/tests/seminarGroup.html +++ b/services/data-manager/service/fetch/v1/tests/seminarGroup.html @@ -1,6 +1,5 @@ - sws_semgrp