//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 db import ( "github.com/pocketbase/dbx" "htwkalender/model" "reflect" "testing" ) func Test_buildIcalQueryForModules(t *testing.T) { type args struct { modules []model.FeedCollection } tests := []struct { name string args args want dbx.Expression }{ { name: "empty modules", args: args{modules: []model.FeedCollection{}}, want: dbx.HashExp{}, }, { name: "one module", args: args{modules: []model.FeedCollection{{Name: "test", Course: "test", UUID: "test"}}}, want: dbx.HashExp{"uuid": "test"}, }, { name: "two modules", args: args{modules: []model.FeedCollection{{Name: "test", Course: "test", UUID: "test"}, {Name: "test2", Course: "test2", UUID: "test2"}}}, want: dbx.Or(dbx.HashExp{"uuid": "test"}, dbx.HashExp{"uuid": "test2"}), }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := buildIcalQueryForModules(tt.args.modules); !reflect.DeepEqual(got, tt.want) { t.Errorf("buildIcalQueryForModules() = %v, want %v", got, tt.want) } }) } }