package model import ( "github.com/pocketbase/pocketbase/models" "testing" ) func TestEvents_Contains(t *testing.T) { type args struct { event Event } tests := []struct { name string m Events args args want bool }{ { name: "empty events", m: Events{}, args: args{event: Event{}}, want: false, }, { name: "one event", m: Events{{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}}, args: args{event: Event{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}}, want: true, }, { name: "two events", m: Events{{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}, {Day: "test2", Week: "test2", Start: "test2", End: "test2", Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}}, args: args{event: Event{Day: "test2", Week: "test2", Start: "test2", End: "test2", Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}}, want: true, }, { name: "two events with different values", m: Events{{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test", UUID: "439ßu56rf8u9ijn4f4-2345345"}, {Day: "test2", Week: "test2", Start: "test2", End: "test2", Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2", UUID: "432a39ßu545349ijn4f4-23dsa45"}}, args: args{event: Event{Day: "test3", Week: "test3", Start: "test3", End: "test3", Name: "test3", Course: "test3", Prof: "test3", Rooms: "test3", EventType: "test3", UUID: "934mf43r34f-g68h7655tg3"}}, want: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := tt.m.Contains(tt.args.event); got != tt.want { t.Errorf("Contains() = %v, want %v", got, tt.want) } }) } } func TestEvent_Equals(t *testing.T) { type fields struct { UUID string Day string Week string Start string End string Name string EventType string Prof string Rooms string Notes string BookedAt string Course string Semester string BaseModel models.BaseModel } type args struct { event Event } tests := []struct { name string fields fields args args want bool }{ { name: "empty events", fields: fields{}, args: args{event: Event{}}, want: true, }, { name: "one empty one not", fields: fields{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}, args: args{event: Event{}}, want: false, }, { name: "one event", fields: fields{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}, args: args{event: Event{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}}, want: true, }, { name: "two events", fields: fields{Day: "test", Week: "test", Start: "test", End: "test", Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}, args: args{event: Event{Day: "test2", Week: "test2", Start: "test2", End: "test2", Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}}, want: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { m := &Event{ UUID: tt.fields.UUID, Day: tt.fields.Day, Week: tt.fields.Week, Start: tt.fields.Start, End: tt.fields.End, Name: tt.fields.Name, EventType: tt.fields.EventType, Prof: tt.fields.Prof, Rooms: tt.fields.Rooms, Notes: tt.fields.Notes, BookedAt: tt.fields.BookedAt, Course: tt.fields.Course, Semester: tt.fields.Semester, BaseModel: tt.fields.BaseModel, } if got := m.Equals(tt.args.event); got != tt.want { t.Errorf("Equals() = %v, want %v", got, tt.want) } }) } }