1
0
justguestbook/database/sqlite/database_test.go

143 lines
2.5 KiB
Go
Raw Normal View History

2023-01-12 03:27:45 +04:00
package sqlite_test
import (
"testing"
2023-03-11 22:21:33 +04:00
"git.arav.su/Arav/justguestbook/database/sqlite"
"git.arav.su/Arav/justguestbook/guestbook"
2023-01-12 03:27:45 +04:00
"github.com/pkg/errors"
)
const (
testEMsg = "kek"
testRMsg = "lol"
)
func genTestDB() (db *sqlite.SQLiteDatabase, err error) {
db, err = sqlite.New(":memory:")
if err != nil {
return nil, errors.Wrap(err, "failed to init DB")
}
e, err := guestbook.NewEntry("Anonymous", testEMsg, "", true)
if err != nil {
return nil, errors.Wrap(err, "failed to create a new entry")
}
if err = db.NewEntry(e); err != nil {
return nil, errors.Wrap(err, "failed to insert a new entry")
}
r, err := guestbook.NewReply(e.ID, testRMsg)
if err != nil {
return nil, errors.Wrap(err, "failed to create a new reply")
}
if err = db.NewReply(r); err != nil {
return nil, errors.Wrap(err, "failed to insert a new reply")
}
return db, nil
}
func TestSqliteInsertAndGetAll(t *testing.T) {
db, err := genTestDB()
if err != nil {
t.Error(err)
}
defer func() {
if err = db.Close(); err != nil {
t.Error(err)
}
}()
es, err := db.Entries(1, 30)
if err != nil {
t.Error(err)
}
if c, err := db.Count(); err != nil || int64(len(es)) != c {
t.Errorf("entries count mismatch (%d != %d). Error: %s", len(es), c, err)
}
if es[0].Reply.Message != testRMsg {
t.Error("reply isn't", testRMsg)
}
}
func TestSqliteUpdateEntry(t *testing.T) {
db, err := genTestDB()
if err != nil {
t.Error(err)
}
defer func() {
if err = db.Close(); err != nil {
t.Error(err)
}
}()
es0, err := db.Entries(1, 30)
if err != nil {
t.Error("failed to obtain entries. Error:", err)
}
me := es0[0]
me.ID = es0[0].ID
me.Name = "NotSoAnonymous"
err = db.UpdateEntry(me)
2023-01-12 03:27:45 +04:00
if err != nil {
t.Error(err)
}
}
func TestSqliteUpdateReply(t *testing.T) {
db, err := genTestDB()
if err != nil {
t.Error(err)
}
defer func() {
if err = db.Close(); err != nil {
t.Error(err)
}
}()
es0, err := db.Entries(1, 30)
if err != nil {
t.Error("failed to obtain entries. Error:", err)
}
mr := es0[0].Reply
mr.ID = es0[0].ID
mr.Message = "bur"
err = db.UpdateReply(mr)
2023-01-12 03:27:45 +04:00
if err != nil {
t.Error(err)
}
}
func TestSqliteDeleteEntry(t *testing.T) {
db, err := genTestDB()
if err != nil {
t.Error(err)
}
defer func() {
if err = db.Close(); err != nil {
t.Error(err)
}
}()
dc, err := db.DeleteEntry(1)
if err != nil {
t.Error("cannot delete entry", err, dc)
}
if c, err := db.Count(); err != nil || c != 0 {
t.Error(c, err, dc)
}
}