141 lines
2.4 KiB
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)
|
|
}
|
|
}
|