gosuki/database/database_test.go

73 lines
1.2 KiB
Go
Raw Normal View History

2018-11-30 02:46:30 +00:00
package database
import (
2018-12-01 17:17:01 +00:00
"fmt"
2018-11-30 02:46:30 +00:00
"os"
"testing"
2018-12-03 18:55:28 +00:00
"github.com/jmoiron/sqlx"
"github.com/mattn/go-sqlite3"
2018-11-30 02:46:30 +00:00
)
const (
TestDB = "testdata/gomarkdb_test.sqlite"
)
2018-12-03 18:55:28 +00:00
type LockedSQLXOpener struct {
handle *sqlx.DB
err sqlite3.Error
}
func (o *LockedSQLXOpener) Open(driver string, dsn string) error {
return o.err
}
func (o *LockedSQLXOpener) Get() *sqlx.DB {
return nil
}
// We
func TestDBLocked(t *testing.T) {
lockedOpener := &LockedSQLXOpener{
handle: nil,
err: sqlite3.Error{Code: sqlite3.ErrBusy},
}
2018-12-01 17:17:01 +00:00
testDB := &DB{
Name: "test",
Path: fmt.Sprintf(MemcacheFmt, "test"),
EngineMode: DriverDefault,
2018-12-03 18:55:28 +00:00
SQLXOpener: lockedOpener,
}
_, err := testDB.Init()
if err != nil {
e, _ := err.(DBError).Err.(sqlite3.Error)
if e.Code == sqlite3.ErrBusy {
t.Error("should handle locked database")
} else {
t.Error(err)
}
2018-12-01 17:17:01 +00:00
}
2018-11-30 02:46:30 +00:00
}
func TestGomarkDBCeate(t *testing.T) {
t.Error("if gomark.db does not exist create it")
}
func TestSyncFromGomarkDB(t *testing.T) {
t.Error("sync from gomark db")
}
func TestSyncToGomarkDB(t *testing.T) {
t.Error("sync to gomark db")
}
func TestMain(m *testing.M) {
code := m.Run()
os.Exit(code)
}