This repository has been archived on 2019-06-27. You can view files and clone it, but cannot push or open issues/pull-requests.
am/db_test.go

141 lines
2.4 KiB
Go

package am
import "testing"
func NewDBForTesting() *dbal {
db, err := newDB(":memory:")
if err != nil {
panic(err)
}
return db
}
func TestDBUserInsert(t *testing.T) {
db := NewDBForTesting()
err := db.UserInsert(User{Username: `test`, Admin: false}, `123`)
if err != nil {
t.Fatal(err)
}
err = db.UserInsert(User{Username: `test`, Admin: false}, `123`)
if err == nil {
t.Fatal(err)
}
err = db.UserInsert(User{Username: `root`, Admin: false}, `root`)
if err == nil {
t.Fatal(err)
}
}
func TestDBUserGet(t *testing.T) {
db := NewDBForTesting()
err := db.UserInsert(User{Username: `test`, Admin: false}, `123`)
if err != nil {
t.Fatal(err)
}
u, err := db.UserGet(`test`)
if err != nil {
t.Fatal(err)
}
if u.Username != `test` || u.Admin {
t.Fatal(u)
}
_, err = db.UserGet(`test2`)
if err == nil {
t.Fatal(err)
}
}
func TestDBUserGetWithPwd(t *testing.T) {
db := NewDBForTesting()
u, err := db.UserGetWithPwd("root", "root")
if err != nil {
t.Fatal(err)
}
if u.Username != "root" || !u.Admin {
t.Fatal(u)
}
if _, err = db.UserGetWithPwd("root", "root2"); err == nil {
t.Fatal(err)
}
}
func TestDBUserList(t *testing.T) {
db := NewDBForTesting()
err := db.UserInsert(User{Username: `test`, Admin: false}, `123`)
if err != nil {
t.Fatal(err)
}
l, err := db.UserList()
if err != nil {
t.Fatal(err)
}
if len(l) != 2 {
t.Fatal(l)
}
if l[0].Username != "root" || l[1].Username != "test" {
t.Fatal(l)
}
}
func TestDBUserUpdatePwd(t *testing.T) {
db := NewDBForTesting()
if err := db.UserUpdatePwd("root", "xyz"); err != nil {
t.Fatal(err)
}
if _, err := db.UserGetWithPwd("root", "xyz"); err != nil {
t.Fatal(err)
}
if _, err := db.UserGetWithPwd("root", "root"); err == nil {
t.Fatal(err)
}
}
func TestDBUserUpdateAdmin(t *testing.T) {
db := NewDBForTesting()
err := db.UserInsert(User{Username: `test`, Admin: false}, `123`)
if err != nil {
t.Fatal(err)
}
if err := db.UserUpdateAdmin("test", true); err != nil {
t.Fatal(err)
}
u, err := db.UserGet("test")
if err != nil {
t.Fatal(err)
}
if !u.Admin {
t.Fatal(u)
}
}
func TestDBUserDelete(t *testing.T) {
db := NewDBForTesting()
if err := db.UserDelete("root"); err == nil {
t.Fatal(err)
}
err := db.UserInsert(User{Username: `test`, Admin: false}, `123`)
if err != nil {
t.Fatal(err)
}
if err := db.UserDelete("test"); err != nil {
t.Fatal(err)
}
if _, err := db.UserGet("test"); err == nil {
t.Fatal(err)
}
}