//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. //Copyright (C) 2024 HTWKalender support@htwkalender.de //This program is free software: you can redistribute it and/or modify //it under the terms of the GNU Affero General Public License as published by //the Free Software Foundation, either version 3 of the License, or //(at your option) any later version. //This program is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //GNU Affero General Public License for more details. //You should have received a copy of the GNU Affero General Public License //along with this program. If not, see . package v2 import ( "htwkalender/model" mockTime "htwkalender/service/functions/time" "reflect" "testing" "time" ) func Test_switchNameAndNotesForExam(t *testing.T) { type args struct { events []model.Event } tests := []struct { name string args args want []model.Event }{ { name: "switch name and notes for exam", args: args{ events: []model.Event{ { EventType: "Pruefung", Name: "Prüfungen FING/EIT WiSe (pruefungsamt.fing-eit@htwk-leipzig.de)", Notes: "Computer Vision II - Räume/Zeit unter Vorbehalt- (Raum W111.1)", }, }, }, want: []model.Event{ { EventType: "Pruefung", Name: "Computer Vision II - Räume/Zeit unter Vorbehalt- (Raum W111.1)", Notes: "Prüfungen FING/EIT WiSe (pruefungsamt.fing-eit@htwk-leipzig.de)", }, }, }, { name: "dont switch name and notes for exam", args: args{ events: []model.Event{ { EventType: "Pruefung", Name: "i054 Umweltschutz und Recycling DPB & VNB 7.FS (wpf)", Notes: "Prüfung", }, }, }, want: []model.Event{ { EventType: "Pruefung", Notes: "Prüfung", Name: "i054 Umweltschutz und Recycling DPB & VNB 7.FS (wpf)", }, }, }, { name: "dont switch name and notes for exam", args: args{ events: []model.Event{ { EventType: "Pruefung", Name: "Prüfungen FING/ME WiSe (pruefungsamt.fing-me@htwk-leipzig.de)", Notes: "", }, }, }, want: []model.Event{ { EventType: "Pruefung", Notes: "", Name: "Prüfungen FING/ME WiSe (pruefungsamt.fing-me@htwk-leipzig.de)", }, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := switchNameAndNotesForExam(tt.args.events); !reflect.DeepEqual(got, tt.want) { t.Errorf("switchNameAndNotesForExam() = %v, want %v", got, tt.want) } }) } } func Test_calculateSemesterList(t *testing.T) { type args struct { clock mockTime.Clock } tests := []struct { name string args args want []string }{ { name: "is summer semester", args: args{ clock: mockTime.MockClock{ NowTime: time.Date(2024, 6, 1, 0, 0, 0, 0, time.UTC), }, }, want: []string{"ss"}, }, { name: "is winter semester", args: args{ clock: mockTime.MockClock{ NowTime: time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC), }, }, want: []string{"ws"}, }, { name: "is in both", args: args{ clock: mockTime.MockClock{ NowTime: time.Date(2024, 3, 22, 0, 0, 0, 0, time.UTC), }, }, want: []string{"ss", "ws"}, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := calculateSemesterList(tt.args.clock); !reflect.DeepEqual(got, tt.want) { t.Errorf("calculateSemesterList() = %v, want %v", got, tt.want) } }) } }