improve tests #1250

Closed
lunny wants to merge 14 commits from lunny/improve_tests into master
7 changed files with 64 additions and 238 deletions
Showing only changes of commit f603887eb7 - Show all commits

View File

@ -165,15 +165,17 @@ func TestCacheGet(t *testing.T) {
_, err := testEngine.Insert(inserts[0])
assert.NoError(t, err)
idName := mapper.Obj2Table("Id")
var box1 MailBox3
has, err := testEngine.Where("id = ?", inserts[0].Id).Get(&box1)
has, err := testEngine.Where(idName+" = ?", inserts[0].Id).Get(&box1)
assert.NoError(t, err)
assert.True(t, has)
assert.EqualValues(t, "user1", box1.Username)
assert.EqualValues(t, "pass1", box1.Password)
var box2 MailBox3
has, err = testEngine.Where("id = ?", inserts[0].Id).Get(&box2)
has, err = testEngine.Where(idName+" = ?", inserts[0].Id).Get(&box2)
assert.NoError(t, err)
assert.True(t, has)
assert.EqualValues(t, "user1", box2.Username)

View File

@ -48,7 +48,8 @@ func TestSetExpr(t *testing.T) {
if testEngine.Dialect().DBType() == core.MSSQL {
not = "~"
}
cnt, err = testEngine.SetExpr("show", not+" `show`").ID(1).Update(new(UserExpr))
showName := mapper.Obj2Table("Show")
cnt, err = testEngine.SetExpr(showName, not+" `"+showName+"`").ID(1).Update(new(UserExpr))
assert.NoError(t, err)
assert.EqualValues(t, 1, cnt)

View File

@ -36,7 +36,12 @@ func TestBuilder(t *testing.T) {
_, err = testEngine.Insert(&Condition{TableName: "table1", ColName: "col1", Op: OpEqual, Value: "1"})
assert.NoError(t, err)
<<<<<<< HEAD
colNameName := colMapper.Obj2Table("ColName")
=======
colNameName := mapper.Obj2Table("ColName")
opName := mapper.Obj2Table("Op")
>>>>>>> fix tests
var cond Condition
has, err := testEngine.Where(builder.Eq{colNameName: "col1"}).Get(&cond)
@ -50,14 +55,14 @@ func TestBuilder(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, true, has, "records should exist")
has, err = testEngine.Where(builder.Eq{colNameName: "col1", "op": OpEqual, "value": "1"}).
has, err = testEngine.Where(builder.Eq{colNameName: "col1", opName: OpEqual, "value": "1"}).
NoAutoCondition().
Get(&cond)
assert.NoError(t, err)
assert.Equal(t, true, has, "records should exist")
has, err = testEngine.Where(builder.Eq{colNameName: "col1"}.
And(builder.Neq{"op": OpEqual})).
And(builder.Neq{opName: OpEqual})).
NoAutoCondition().
Get(&cond)
assert.NoError(t, err)
@ -65,7 +70,7 @@ func TestBuilder(t *testing.T) {
var conds []Condition
err = testEngine.Where(builder.Eq{colNameName: "col1"}.
And(builder.Eq{"op": OpEqual})).
And(builder.Eq{opName: OpEqual})).
Find(&conds)
assert.NoError(t, err)
assert.EqualValues(t, 1, len(conds), "records should exist")
@ -221,7 +226,8 @@ func TestFindAndCount(t *testing.T) {
assert.NoError(t, err)
var results []FindAndCount
sess := testEngine.Where("name = ?", "test1")
nameName := mapper.Obj2Table("Name")
sess := testEngine.Where(nameName+" = ?", "test1")
conds := sess.Conds()
err = sess.Find(&results)
assert.NoError(t, err)

View File

@ -46,21 +46,23 @@ func TestExistStruct(t *testing.T) {
assert.NoError(t, err)
assert.False(t, has)
has, err = testEngine.Where("name = ?", "test1").Exist(&RecordExist{})
nameName := mapper.Obj2Table("Name")
has, err = testEngine.Where(nameName+" = ?", "test1").Exist(&RecordExist{})
assert.NoError(t, err)
assert.True(t, has)
has, err = testEngine.Where("name = ?", "test2").Exist(&RecordExist{})
has, err = testEngine.Where(nameName+" = ?", "test2").Exist(&RecordExist{})
assert.NoError(t, err)
assert.False(t, has)
tableName := tableMapper.Obj2Table("RecordExist")
has, err = testEngine.SQL("select * from "+testEngine.TableName(tableName, true)+" where name = ?", "test1").Exist()
has, err = testEngine.SQL("select * from "+testEngine.TableName(tableName, true)+" where "+nameName+" = ?", "test1").Exist()
assert.NoError(t, err)
assert.True(t, has)
has, err = testEngine.SQL("select * from "+testEngine.TableName(tableName, true)+" where name = ?", "test2").Exist()
has, err = testEngine.SQL("select * from "+testEngine.TableName(tableName, true)+" where "+nameName+" = ?", "test2").Exist()
assert.NoError(t, err)
assert.False(t, has)
@ -68,11 +70,11 @@ func TestExistStruct(t *testing.T) {
assert.NoError(t, err)
assert.True(t, has)
has, err = testEngine.Table(tableName).Where("name = ?", "test1").Exist()
has, err = testEngine.Table(tableName).Where(nameName+" = ?", "test1").Exist()
assert.NoError(t, err)
assert.True(t, has)
has, err = testEngine.Table(tableName).Where("name = ?", "test2").Exist()
has, err = testEngine.Table(tableName).Where(nameName+" = ?", "test2").Exist()
assert.NoError(t, err)
assert.False(t, has)
}

View File

@ -267,13 +267,17 @@ func TestOrder(t *testing.T) {
assert.NoError(t, prepareEngine())
assertSync(t, new(Userinfo))
idName := colMapper.Obj2Table("Id")
userName := colMapper.Obj2Table("Username")
heightName := colMapper.Obj2Table("Height")
users := make([]Userinfo, 0)
err := testEngine.OrderBy("id desc").Find(&users)
err := testEngine.OrderBy(idName + " desc").Find(&users)
assert.NoError(t, err)
fmt.Println(users)
users2 := make([]Userinfo, 0)
err = testEngine.Asc("id", "username").Desc("height").Find(&users2)
err = testEngine.Asc(idName, userName).Desc(heightName).Find(&users2)
assert.NoError(t, err)
fmt.Println(users2)
}
@ -282,8 +286,11 @@ func TestGroupBy(t *testing.T) {
assert.NoError(t, prepareEngine())
assertSync(t, new(Userinfo))
idName := colMapper.Obj2Table("Id")
userName := colMapper.Obj2Table("Username")
users := make([]Userinfo, 0)
err := testEngine.GroupBy("id, username").Find(&users)
err := testEngine.GroupBy(idName + ", " + userName).Find(&users)
assert.NoError(t, err)
}
@ -291,8 +298,10 @@ func TestHaving(t *testing.T) {
assert.NoError(t, prepareEngine())
assertSync(t, new(Userinfo))
userName := colMapper.Obj2Table("Username")
users := make([]Userinfo, 0)
err := testEngine.GroupBy("username").Having("username='xlw'").Find(&users)
err := testEngine.GroupBy(userName).Having(userName + "='xlw'").Find(&users)
assert.NoError(t, err)
fmt.Println(users)
@ -310,29 +319,31 @@ func TestFindInts(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
idName := colMapper.Obj2Table("Id")
var idsInt64 []int64
err := testEngine.Table(userinfo).Cols("id").Desc("id").Find(&idsInt64)
err := testEngine.Table(userinfo).Cols(idName).Desc(idName).Find(&idsInt64)
if err != nil {
t.Fatal(err)
}
fmt.Println(idsInt64)
var idsInt32 []int32
err = testEngine.Table(userinfo).Cols("id").Desc("id").Find(&idsInt32)
err = testEngine.Table(userinfo).Cols(idName).Desc(idName).Find(&idsInt32)
if err != nil {
t.Fatal(err)
}
fmt.Println(idsInt32)
var idsInt []int
err = testEngine.Table(userinfo).Cols("id").Desc("id").Find(&idsInt)
err = testEngine.Table(userinfo).Cols(idName).Desc(idName).Find(&idsInt)
if err != nil {
t.Fatal(err)
}
fmt.Println(idsInt)
var idsUint []uint
err = testEngine.Table(userinfo).Cols("id").Desc("id").Find(&idsUint)
err = testEngine.Table(userinfo).Cols(idName).Desc(idName).Find(&idsUint)
if err != nil {
t.Fatal(err)
}
@ -340,7 +351,7 @@ func TestFindInts(t *testing.T) {
type MyInt int
var idsMyInt []MyInt
err = testEngine.Table(userinfo).Cols("id").Desc("id").Find(&idsMyInt)
err = testEngine.Table(userinfo).Cols(idName).Desc(idName).Find(&idsMyInt)
if err != nil {
t.Fatal(err)
}
@ -352,8 +363,10 @@ func TestFindStrings(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
username := testEngine.GetColumnMapper().Obj2Table("Username")
idName := colMapper.Obj2Table("Id")
var idsString []string
err := testEngine.Table(userinfo).Cols(username).Desc("id").Find(&idsString)
err := testEngine.Table(userinfo).Cols(username).Desc(idName).Find(&idsString)
if err != nil {
t.Fatal(err)
}
@ -365,9 +378,10 @@ func TestFindMyString(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
username := testEngine.GetColumnMapper().Obj2Table("Username")
idName := colMapper.Obj2Table("Id")
var idsMyString []MyString
err := testEngine.Table(userinfo).Cols(username).Desc("id").Find(&idsMyString)
err := testEngine.Table(userinfo).Cols(username).Desc(idName).Find(&idsMyString)
if err != nil {
t.Fatal(err)
}
@ -380,8 +394,10 @@ func TestFindInterface(t *testing.T) {
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
username := testEngine.GetColumnMapper().Obj2Table("Username")
idName := colMapper.Obj2Table("Id")
var idsInterface []interface{}
err := testEngine.Table(userinfo).Cols(username).Desc("id").Find(&idsInterface)
err := testEngine.Table(userinfo).Cols(username).Desc(idName).Find(&idsInterface)
if err != nil {
t.Fatal(err)
}
@ -393,8 +409,10 @@ func TestFindSliceBytes(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
idName := colMapper.Obj2Table("Id")
var ids [][][]byte
err := testEngine.Table(userinfo).Desc("id").Find(&ids)
err := testEngine.Table(userinfo).Desc(idName).Find(&ids)
if err != nil {
t.Fatal(err)
}
@ -408,8 +426,10 @@ func TestFindSlicePtrString(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
idName := colMapper.Obj2Table("Id")
var ids [][]*string
err := testEngine.Table(userinfo).Desc("id").Find(&ids)
err := testEngine.Table(userinfo).Desc(idName).Find(&ids)
if err != nil {
t.Fatal(err)
}
@ -423,8 +443,10 @@ func TestFindMapBytes(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
idName := colMapper.Obj2Table("Id")
var ids []map[string][]byte
err := testEngine.Table(userinfo).Desc("id").Find(&ids)
err := testEngine.Table(userinfo).Desc(idName).Find(&ids)
if err != nil {
t.Fatal(err)
}
@ -438,8 +460,10 @@ func TestFindMapPtrString(t *testing.T) {
assertSync(t, new(Userinfo))
userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo")
idName := colMapper.Obj2Table("Id")
var ids []map[string]*string
err := testEngine.Table(userinfo).Desc("id").Find(&ids)
err := testEngine.Table(userinfo).Desc(idName).Find(&ids)
assert.NoError(t, err)
for _, record := range ids {
fmt.Println(record)

View File

@ -9,7 +9,6 @@ import (
"testing"
"time"
"xorm.io/core"
"github.com/stretchr/testify/assert"
)
@ -87,51 +86,6 @@ func TestCombineTransaction(t *testing.T) {
assert.NoError(t, err)
}
func TestCombineTransactionSameMapper(t *testing.T) {
assert.NoError(t, prepareEngine())
oldMapper := testEngine.GetColumnMapper()
testEngine.UnMapType(rValue(new(Userinfo)).Type())
testEngine.SetMapper(core.SameMapper{})
defer func() {
testEngine.UnMapType(rValue(new(Userinfo)).Type())
testEngine.SetMapper(oldMapper)
}()
assertSync(t, new(Userinfo))
counter := func() {
total, err := testEngine.Count(&Userinfo{})
if err != nil {
t.Error(err)
}
fmt.Printf("----now total %v records\n", total)
}
counter()
defer counter()
session := testEngine.NewSession()
defer session.Close()
err := session.Begin()
assert.NoError(t, err)
user1 := Userinfo{Username: "xiaoxiao2", Departname: "dev", Alias: "lunny", Created: time.Now()}
_, err = session.Insert(&user1)
assert.NoError(t, err)
user2 := Userinfo{Username: "zzz"}
_, err = session.Where("(id) = ?", 0).Update(&user2)
assert.NoError(t, err)
_, err = session.Exec("delete from "+testEngine.TableName("`Userinfo`", true)+" where `Username` = ?", user2.Username)
assert.NoError(t, err)
err = session.Commit()
assert.NoError(t, err)
}
func TestMultipleTransaction(t *testing.T) {
assert.NoError(t, prepareEngine())

View File

@ -12,7 +12,6 @@ import (
"time"
"github.com/stretchr/testify/assert"
"xorm.io/core"
)
func TestUpdateMap(t *testing.T) {
@ -397,7 +396,6 @@ func TestUpdate1(t *testing.T) {
assert.EqualValues(t, *col2, *col3)
{
col1 := &UpdateMustCols{}
err = testEngine.Sync(col1)
assert.NoError(t, err)
@ -627,167 +625,6 @@ func TestUpdateUpdated(t *testing.T) {
fmt.Println("ci5:", ci5, "di5:", di5)
}
func TestUpdateSameMapper(t *testing.T) {
assert.NoError(t, prepareEngine())
oldMapper := testEngine.GetTableMapper()
testEngine.UnMapType(rValue(new(Userinfo)).Type())
testEngine.UnMapType(rValue(new(Condi)).Type())
testEngine.UnMapType(rValue(new(Article)).Type())
testEngine.UnMapType(rValue(new(UpdateAllCols)).Type())
testEngine.UnMapType(rValue(new(UpdateMustCols)).Type())
testEngine.UnMapType(rValue(new(UpdateIncr)).Type())
testEngine.SetMapper(core.SameMapper{})
defer func() {
testEngine.UnMapType(rValue(new(Userinfo)).Type())
testEngine.UnMapType(rValue(new(Condi)).Type())
testEngine.UnMapType(rValue(new(Article)).Type())
testEngine.UnMapType(rValue(new(UpdateAllCols)).Type())
testEngine.UnMapType(rValue(new(UpdateMustCols)).Type())
testEngine.UnMapType(rValue(new(UpdateIncr)).Type())
testEngine.SetMapper(oldMapper)
}()
assertSync(t, new(Userinfo))
_, err := testEngine.Insert(&Userinfo{
Username: "user1",
})
assert.NoError(t, err)
var ori Userinfo
has, err := testEngine.Get(&ori)
assert.NoError(t, err)
assert.True(t, has)
// update by id
user := Userinfo{Username: "xxx", Height: 1.2}
cnt, err := testEngine.ID(ori.Uid).Update(&user)
assert.NoError(t, err)
assert.EqualValues(t, 1, cnt)
condi := Condi{"Username": "zzz", "Departname": ""}
cnt, err = testEngine.Table(&user).ID(ori.Uid).Update(&condi)
assert.NoError(t, err)
assert.EqualValues(t, 1, cnt)
cnt, err = testEngine.Update(&Userinfo{Username: "yyy"}, &user)
assert.NoError(t, err)
total, err := testEngine.Count(&user)
assert.NoError(t, err)
assert.EqualValues(t, cnt, total)
err = testEngine.Sync(&Article{})
assert.NoError(t, err)
defer func() {
err = testEngine.DropTables(&Article{})
assert.NoError(t, err)
}()
a := &Article{0, "1", "2", "3", "4", "5", 2}
cnt, err = testEngine.Insert(a)
assert.NoError(t, err)
if cnt != 1 {
err = errors.New(fmt.Sprintf("insert not returned 1 but %d", cnt))
t.Error(err)
panic(err)
}
if a.Id == 0 {
err = errors.New("insert returned id is 0")
t.Error(err)
panic(err)
}
cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"})
assert.NoError(t, err)
assert.EqualValues(t, 1, cnt)
col1 := &UpdateAllCols{}
err = testEngine.Sync(col1)
assert.NoError(t, err)
_, err = testEngine.Insert(col1)
assert.NoError(t, err)
col2 := &UpdateAllCols{col1.Id, true, "", nil}
_, err = testEngine.ID(col2.Id).AllCols().Update(col2)
assert.NoError(t, err)
col3 := &UpdateAllCols{}
has, err = testEngine.ID(col2.Id).Get(col3)
assert.NoError(t, err)
assert.True(t, has)
assert.EqualValues(t, *col2, *col3)
{
col1 := &UpdateMustCols{}
err = testEngine.Sync(col1)
assert.NoError(t, err)
_, err = testEngine.Insert(col1)
assert.NoError(t, err)
col2 := &UpdateMustCols{col1.Id, true, ""}
boolStr := testEngine.GetColumnMapper().Obj2Table("Bool")
stringStr := testEngine.GetColumnMapper().Obj2Table("String")
_, err = testEngine.ID(col2.Id).MustCols(boolStr, stringStr).Update(col2)
assert.NoError(t, err)
col3 := &UpdateMustCols{}
has, err := testEngine.ID(col2.Id).Get(col3)
assert.NoError(t, err)
assert.True(t, has)
assert.EqualValues(t, *col2, *col3)
}
{
col1 := &UpdateIncr{}
err = testEngine.Sync(col1)
if err != nil {
t.Error(err)
panic(err)
}
_, err = testEngine.Insert(col1)
if err != nil {
t.Error(err)
panic(err)
}
cnt, err := testEngine.ID(col1.Id).Incr("`Cnt`").Update(col1)
if err != nil {
t.Error(err)
panic(err)
}
if cnt != 1 {
err = errors.New("update incr failed")
t.Error(err)
panic(err)
}
newCol := new(UpdateIncr)
has, err := testEngine.ID(col1.Id).Get(newCol)
if err != nil {
t.Error(err)
panic(err)
}
if !has {
err = errors.New("has incr failed")
t.Error(err)
panic(err)
}
if 1 != newCol.Cnt {
err = errors.New("incr failed")
t.Error(err)
panic(err)
}
}
}
func TestUseBool(t *testing.T) {
assert.NoError(t, prepareEngine())
assertSync(t, new(Userinfo))