From c6157bb573856e424737b534cef5d0871eb49726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Z=C3=BCrcher?= Date: Wed, 19 Nov 2025 12:01:35 +0100 Subject: [PATCH] add new test file --- db_test.go | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 db_test.go diff --git a/db_test.go b/db_test.go new file mode 100644 index 0000000..826c4f5 --- /dev/null +++ b/db_test.go @@ -0,0 +1,82 @@ +package dbHandler + +import ( + "os" + "testing" +) + +type Event struct { + Id int `gorm:"primaryKey" json:"id"` + Name string `gorm:"column:name" json:"name"` + Attendees []*Member `gorm:"many2many:member_events;"` +} + +type Member struct { + Id int `gorm:"primaryKey" json:"id"` + FirstName string `gorm:"column:firstName" json:"firstName,omitempty"` + LastName string `gorm:"column:lastName" json:"lastName,omitempty"` + Events []*Event `gorm:"many2many:member_events;" json:"events"` +} + +func TestDbHandler(t *testing.T) { + + dbHandler, err := NewDBHandler("test.db", "test", nil) + if err != nil { + t.Fatal(err) + } + + if err := dbHandler.AddNewTable(&Member{}); err != nil { + t.Fatal(err) + } + + if err := dbHandler.AddNewTable(&Event{}); err != nil { + t.Fatal(err) + } + + member := &Member{FirstName: "adrian", LastName: "zuercher"} + dbHandler.AddNewColum(member) + event := &Event{ + Name: "testEvent", + } + dbHandler.AddNewColum(event) + dbHandler.AddRelation(event, member, "Attendees") + + var members []Member + if err := dbHandler.GetById(&members, 0); err != nil { + t.Fatal(err) + } + t.Log(members) + + if err := dbHandler.GetByIdWithRelation(&members, "Events", 0); err != nil { + t.Fatal(err) + } + t.Log(members) + + for _, member := range members { + t.Log("Member:", member.FirstName, member.LastName) + for _, event := range member.Events { + t.Log("Event:", event) + } + } + + var events []Event + + if err := dbHandler.GetByIdWithRelation(&events, "Attendees", 0); err != nil { + t.Fatal(err) + } + + for _, event := range events { + t.Log("event:", event.Name) + for _, member := range event.Attendees { + t.Log("attendee:", member) + } + } + + if err := dbHandler.Close(); err != nil { + t.Fatal(err) + } + + if err := os.RemoveAll("test"); err != nil { + t.Fatal(err) + } +}