Files
7days-golang/gee-orm/day3-save-query/session/raw_test.go
T
2020-02-29 01:04:07 +08:00

49 lines
1.1 KiB
Go

package session
import (
"database/sql"
"os"
"testing"
"geeorm/dialect"
_ "github.com/mattn/go-sqlite3"
)
var (
TestDB *sql.DB
TestDial, _ = dialect.GetDialect("sqlite3")
)
func TestMain(m *testing.M) {
TestDB, _ = sql.Open("sqlite3", "../gee.db")
code := m.Run()
_ = TestDB.Close()
os.Exit(code)
}
func NewSession() *Session {
return &Session{db: TestDB, dialect: TestDial}
}
func TestSession_Exec(t *testing.T) {
s := NewSession()
_, _ = s.Raw("DROP TABLE IF EXISTS User;").Exec()
_, _ = s.Raw("CREATE TABLE User(Name text);").Exec()
result, _ := s.Raw("INSERT INTO User(`Name`) values (?), (?)", "Tom", "Sam").Exec()
if count, err := result.RowsAffected(); err != nil || count != 2 {
t.Fatal("expect 2, but got", count)
}
}
func TestSession_QueryRows(t *testing.T) {
s := NewSession()
_, _ = s.Raw("DROP TABLE IF EXISTS User;").Exec()
_, _ = s.Raw("CREATE TABLE User(Name text);").Exec()
row := s.Raw("SELECT count(*) FROM User").QueryRow()
var count int
if err := row.Scan(&count); err != nil || count != 0 {
t.Fatal("failed to query db", err)
}
}