more tests
This commit is contained in:
parent
45f23ffc9d
commit
5d752706f0
|
@ -22,8 +22,8 @@ test:
|
||||||
override:
|
override:
|
||||||
# './...' is a relative pattern which means all subdirectories
|
# './...' is a relative pattern which means all subdirectories
|
||||||
- go test -v -race -coverprofile=coverage.txt -covermode=atomic
|
- go test -v -race -coverprofile=coverage.txt -covermode=atomic
|
||||||
- go test -v -race -db=mysql -conn_str="root:@/xorm_test"
|
- go test -v -race -db=mysql -conn_str="root:@/xorm_test" -coverprofile=coverage.txt -covermode=atomic
|
||||||
- go test -v -race -db=postgres -conn_str="dbname=xorm_test sslmode=disable"
|
- go test -v -race -db=postgres -conn_str="dbname=xorm_test sslmode=disable" -coverprofile=coverage.txt -covermode=atomic
|
||||||
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh
|
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh
|
||||||
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./mysql.sh
|
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./mysql.sh
|
||||||
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./postgres.sh
|
- cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./postgres.sh
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package xorm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRows(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type UserRows struct {
|
||||||
|
Id int64
|
||||||
|
IsMan bool
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(UserRows)))
|
||||||
|
|
||||||
|
cnt, err := testEngine.Insert(&UserRows{
|
||||||
|
IsMan: true,
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
rows, err := testEngine.Rows(new(UserRows))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
cnt = 0
|
||||||
|
user := new(UserRows)
|
||||||
|
for rows.Next() {
|
||||||
|
err = rows.Scan(user)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
cnt++
|
||||||
|
}
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
}
|
|
@ -4,13 +4,29 @@
|
||||||
|
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
func TestSetExpr(t *testing.T) {
|
func TestSetExpr(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
Id int64
|
Id int64
|
||||||
Show bool
|
Show bool
|
||||||
}
|
}
|
||||||
|
|
||||||
testEngine.SetExpr("show", "NOT show").Id(1).Update(new(User))
|
assert.NoError(t, testEngine.Sync2(new(User)))
|
||||||
|
|
||||||
|
cnt, err := testEngine.Insert(&User{
|
||||||
|
Show: true,
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
cnt, err = testEngine.SetExpr("show", "NOT show").Id(1).Update(new(User))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package xorm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIterate(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type UserIterate struct {
|
||||||
|
Id int64
|
||||||
|
IsMan bool
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(UserIterate)))
|
||||||
|
|
||||||
|
cnt, err := testEngine.Insert(&UserIterate{
|
||||||
|
IsMan: true,
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
cnt = 0
|
||||||
|
err = testEngine.Iterate(new(UserIterate), func(i int, bean interface{}) error {
|
||||||
|
user := bean.(*UserIterate)
|
||||||
|
assert.EqualValues(t, 1, user.Id)
|
||||||
|
assert.EqualValues(t, true, user.IsMan)
|
||||||
|
cnt++
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
}
|
23
xorm_test.go
23
xorm_test.go
|
@ -4,6 +4,7 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
@ -14,6 +15,7 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
testEngine *Engine
|
testEngine *Engine
|
||||||
|
dbType string
|
||||||
connString string
|
connString string
|
||||||
|
|
||||||
db = flag.String("db", "sqlite3", "the tested database")
|
db = flag.String("db", "sqlite3", "the tested database")
|
||||||
|
@ -47,12 +49,13 @@ func createEngine(dbType, connStr string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func prepareEngine() error {
|
func prepareEngine() error {
|
||||||
return createEngine(*db, connString)
|
return createEngine(dbType, connString)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
dbType = *db
|
||||||
if *db == "sqlite3" {
|
if *db == "sqlite3" {
|
||||||
if ptrConnStr == nil {
|
if ptrConnStr == nil {
|
||||||
connString = "./test.db"
|
connString = "./test.db"
|
||||||
|
@ -67,11 +70,27 @@ func TestMain(m *testing.M) {
|
||||||
connString = *ptrConnStr
|
connString = *ptrConnStr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dbs := strings.Split(*db, ";")
|
||||||
|
conns := strings.Split(connString, ";")
|
||||||
|
|
||||||
|
var res int
|
||||||
|
for i := 0; i < len(dbs); i++ {
|
||||||
|
dbType = dbs[i]
|
||||||
|
connString = conns[i]
|
||||||
|
testEngine = nil
|
||||||
|
|
||||||
if err := prepareEngine(); err != nil {
|
if err := prepareEngine(); err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
os.Exit(m.Run())
|
|
||||||
|
code := m.Run()
|
||||||
|
if code > 0 {
|
||||||
|
res = code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
os.Exit(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPing(t *testing.T) {
|
func TestPing(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue