From ae51ac47b75c4d6bbc13fc75840566e827aa0855 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 14 Mar 2019 09:08:07 +0800 Subject: [PATCH] fix tests --- cache_test.go | 6 +- session_cols_test.go | 3 +- session_cond_test.go | 10 ++- session_exist_test.go | 14 +-- session_find_test.go | 102 +++++++++------------- session_tx_test.go | 46 ---------- session_update_test.go | 192 ----------------------------------------- 7 files changed, 60 insertions(+), 313 deletions(-) diff --git a/cache_test.go b/cache_test.go index dbfa28e2..1088cdaf 100644 --- a/cache_test.go +++ b/cache_test.go @@ -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) diff --git a/session_cols_test.go b/session_cols_test.go index 658e1747..7628740e 100644 --- a/session_cols_test.go +++ b/session_cols_test.go @@ -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) diff --git a/session_cond_test.go b/session_cond_test.go index 6fd83293..bd2d5391 100644 --- a/session_cond_test.go +++ b/session_cond_test.go @@ -37,6 +37,7 @@ func TestBuilder(t *testing.T) { assert.NoError(t, err) colNameName := mapper.Obj2Table("ColName") + opName := mapper.Obj2Table("Op") var cond Condition has, err := testEngine.Where(builder.Eq{colNameName: "col1"}).Get(&cond) @@ -50,14 +51,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 +66,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 +222,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) diff --git a/session_exist_test.go b/session_exist_test.go index 3bc15b3a..d24befc2 100644 --- a/session_exist_test.go +++ b/session_exist_test.go @@ -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 := mapper.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) } diff --git a/session_find_test.go b/session_find_test.go index a29e07c4..740cf7a4 100644 --- a/session_find_test.go +++ b/session_find_test.go @@ -10,7 +10,6 @@ import ( "testing" "time" - "xorm.io/core" "github.com/stretchr/testify/assert" ) @@ -268,13 +267,17 @@ func TestOrder(t *testing.T) { assert.NoError(t, prepareEngine()) assertSync(t, new(Userinfo)) + idName := mapper.Obj2Table("Id") + userName := mapper.Obj2Table("Username") + heightName := mapper.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) } @@ -283,8 +286,11 @@ func TestGroupBy(t *testing.T) { assert.NoError(t, prepareEngine()) assertSync(t, new(Userinfo)) + idName := mapper.Obj2Table("Id") + userName := mapper.Obj2Table("Username") + users := make([]Userinfo, 0) - err := testEngine.GroupBy("id, username").Find(&users) + err := testEngine.GroupBy(idName + ", " + userName).Find(&users) assert.NoError(t, err) } @@ -292,8 +298,10 @@ func TestHaving(t *testing.T) { assert.NoError(t, prepareEngine()) assertSync(t, new(Userinfo)) + userName := mapper.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) @@ -306,79 +314,36 @@ func TestHaving(t *testing.T) { fmt.Println(users)*/ } -func TestOrderSameMapper(t *testing.T) { - assert.NoError(t, prepareEngine()) - testEngine.UnMapType(rValue(new(Userinfo)).Type()) - - mapper := testEngine.GetTableMapper() - testEngine.SetMapper(core.SameMapper{}) - - defer func() { - testEngine.UnMapType(rValue(new(Userinfo)).Type()) - testEngine.SetMapper(mapper) - }() - - assertSync(t, new(Userinfo)) - - users := make([]Userinfo, 0) - err := testEngine.OrderBy("(id) desc").Find(&users) - assert.NoError(t, err) - fmt.Println(users) - - users2 := make([]Userinfo, 0) - err = testEngine.Asc("(id)", "Username").Desc("Height").Find(&users2) - assert.NoError(t, err) - fmt.Println(users2) -} - -func TestHavingSameMapper(t *testing.T) { - assert.NoError(t, prepareEngine()) - testEngine.UnMapType(rValue(new(Userinfo)).Type()) - - mapper := testEngine.GetTableMapper() - testEngine.SetMapper(core.SameMapper{}) - defer func() { - testEngine.UnMapType(rValue(new(Userinfo)).Type()) - testEngine.SetMapper(mapper) - }() - assertSync(t, new(Userinfo)) - - users := make([]Userinfo, 0) - err := testEngine.GroupBy("`Username`").Having("`Username`='xlw'").Find(&users) - if err != nil { - t.Fatal(err) - } - fmt.Println(users) -} - func TestFindInts(t *testing.T) { assert.NoError(t, prepareEngine()) assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") + idName := mapper.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) } @@ -386,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) } @@ -398,8 +363,10 @@ func TestFindStrings(t *testing.T) { assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") username := testEngine.GetColumnMapper().Obj2Table("Username") + idName := mapper.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) } @@ -411,9 +378,10 @@ func TestFindMyString(t *testing.T) { assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") username := testEngine.GetColumnMapper().Obj2Table("Username") + idName := mapper.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) } @@ -426,8 +394,10 @@ func TestFindInterface(t *testing.T) { userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") username := testEngine.GetColumnMapper().Obj2Table("Username") + idName := mapper.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) } @@ -439,8 +409,10 @@ func TestFindSliceBytes(t *testing.T) { assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") + idName := mapper.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) } @@ -454,8 +426,10 @@ func TestFindSlicePtrString(t *testing.T) { assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") + idName := mapper.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) } @@ -469,8 +443,10 @@ func TestFindMapBytes(t *testing.T) { assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") + idName := mapper.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) } @@ -484,8 +460,10 @@ func TestFindMapPtrString(t *testing.T) { assertSync(t, new(Userinfo)) userinfo := testEngine.GetTableMapper().Obj2Table("Userinfo") + idName := mapper.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) diff --git a/session_tx_test.go b/session_tx_test.go index 8b4ed5e6..b00991d7 100644 --- a/session_tx_test.go +++ b/session_tx_test.go @@ -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()) diff --git a/session_update_test.go b/session_update_test.go index 79b938d7..2e81934b 100644 --- a/session_update_test.go +++ b/session_update_test.go @@ -397,7 +397,6 @@ func TestUpdate1(t *testing.T) { assert.EqualValues(t, *col3, *col2) { - col1 := &UpdateMustCols{} err = testEngine.Sync(col1) assert.NoError(t, err) @@ -627,197 +626,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) - - if cnt != 1 { - err = errors.New(fmt.Sprintf("insert not returned 1 but %d", cnt)) - t.Error(err) - panic(err) - return - } - - 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) - - if !has { - err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id)) - t.Error(err) - panic(err) - return - } - - if *col2 != *col3 { - err = errors.New(fmt.Sprintf("col2 should eq col3")) - t.Error(err) - panic(err) - return - } - - { - 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) - - if !has { - err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id)) - t.Error(err) - panic(err) - return - } - - if *col2 != *col3 { - err = errors.New(fmt.Sprintf("col2 should eq col3")) - t.Error(err) - panic(err) - return - } - } - - { - 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))