Files
2025-04-30 17:31:18 +02:00

89 lines
1.6 KiB
Go

package comics
import (
"gitlab.thpeetz.de/kontor/kontor-go/pkg/dao"
"reflect"
"testing"
"gopkg.in/mgo.v2/bson"
)
var comicModelTestTable = []struct {
name string
typeName string
}{
{"Id", "string"},
{"Title", "string"},
{"Publisher", "string"},
{"CurrentOrder", "bool"},
{"Completed", "bool"},
{"Model", "string"},
}
func TestComicModel(t *testing.T) {
m := Comic{}
if reflect.TypeOf(m).NumField() != len(comicModelTestTable) {
t.Fail()
}
for index, testData := range comicModelTestTable {
givenType := reflect.TypeOf(m).Field(index).Type.Kind().String()
if givenType != testData.typeName {
t.Fail()
}
}
}
func TestListComics(t *testing.T) {
var (
comicDao = ComicDAO{Db: dao.TestDb}
)
comics, err := comicDao.FindAll()
if err != nil {
t.Fail()
}
if len(comics) != 0 {
t.Fail()
}
}
func TestInsertComic(t *testing.T) {
var (
comicDao = ComicDAO{Db: dao.TestDb}
comic = Comic{}
comics []Comic
)
comic.ID = bson.NewObjectId()
comic.Title = "Simpsons"
comicDao.Insert(comic)
comics, _ = comicDao.FindAll()
if len(comics) != 1 {
t.Fail()
}
}
func TestUpsertComic(t *testing.T) {
var (
comicDao = ComicDAO{Db: dao.TestDb}
comic = Comic{}
)
comic.ID = bson.NewObjectId()
comic.Title = "1602"
comicDao.Upsert(comic)
comics, _ := comicDao.FindAll()
if len(comics) != 2 {
t.Fail()
}
}
func TestDeleteComic(t *testing.T) {
var (
comicDao = ComicDAO{Db: dao.TestDb}
)
comics, _ := comicDao.FindAll()
for _, comic := range comics {
comicDao.Delete(comic)
}
comics, _ = comicDao.FindAll()
if len(comics) != 0 {
t.Fail()
}
}