Files
kontor/go/pkg/admin/user_test.go
T
2025-01-09 19:28:50 +01:00

106 lines
1.7 KiB
Go

package admin
import (
"gitlab.thpeetz.de/kontor/kontor-go/pkg/dao"
"reflect"
"testing"
"gopkg.in/mgo.v2/bson"
)
var userModelTestTable = []struct {
name string
typeName string
}{
{"Id", "string"},
{"Email", "string"},
{"Username", "string"},
{"Firstname", "string"},
{"Lastname", "string"},
{"Password", "string"},
{"IsAdmin", "bool"},
{"Model", "string"},
}
func TestUserModel(t *testing.T) {
m := User{}
if reflect.TypeOf(m).NumField() != len(userModelTestTable) {
t.Fail()
}
for index, testData := range userModelTestTable {
givenType := reflect.TypeOf(m).Field(index).Type.Kind().String()
if givenType != testData.typeName {
t.Fail()
}
}
}
func TestListUsers(t *testing.T) {
var userDao = UserDAO{Db: dao.TestDb}
users, err := userDao.FindAll()
if err != nil {
t.Fail()
}
if users != nil {
t.Fail()
}
}
func TestInsertUser(t *testing.T) {
var (
userDao = UserDAO{Db: dao.TestDb}
user = User{}
users []User
)
user.ID = bson.NewObjectId()
user.Username = "test"
err := userDao.Insert(user)
if err != nil {
t.Fail()
}
users, err = userDao.FindAll()
if err != nil {
t.Fail()
}
if len(users) != 1 {
t.Fail()
}
}
func TestUpsertUser(t *testing.T) {
var (
userDao = UserDAO{Db: dao.TestDb}
user = User{}
)
user.ID = bson.NewObjectId()
user.Username = "test2"
userDao.Upsert(user)
users, err := userDao.FindAll()
if err != nil {
t.Fail()
}
if len(users) != 2 {
t.Fail()
}
}
func TestDeleteUser(t *testing.T) {
var (
userDao = UserDAO{Db: dao.TestDb}
)
users, err := userDao.FindAll()
if err != nil {
t.Fail()
}
for _, user := range users {
userDao.Delete(user)
}
users, err = userDao.FindAll()
if err != nil {
t.Fail()
}
if len(users) != 0 {
t.Fail()
}
}