fix tests
This commit is contained in:
parent
15dc1a437a
commit
b03c5d5372
|
@ -56,7 +56,7 @@ func TestExistStruct(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.False(t, has)
|
||||
|
||||
tableName := tableMapper.Obj2Table("RecordExist")
|
||||
tableName := "`" + tableMapper.Obj2Table("RecordExist") + "`"
|
||||
|
||||
has, err = testEngine.SQL("select * from "+testEngine.TableName(tableName, true)+" where "+nameName+" = ?", "test1").Exist()
|
||||
assert.NoError(t, err)
|
||||
|
|
|
@ -52,13 +52,13 @@ func TestJoinLimit(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
tableName := tableMapper.Obj2Table("CheckList")
|
||||
tableName2 := tableMapper.Obj2Table("Salary")
|
||||
tableName3 := tableMapper.Obj2Table("Empsetting")
|
||||
tableName := "`" + tableMapper.Obj2Table("CheckList") + "`"
|
||||
tableName2 := "`" + tableMapper.Obj2Table("Salary") + "`"
|
||||
tableName3 := "`" + tableMapper.Obj2Table("Empsetting") + "`"
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
lIDName := colMapper.Obj2Table("Lid")
|
||||
eIDName := colMapper.Obj2Table("Eid")
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
lIDName := "`" + colMapper.Obj2Table("Lid") + "`"
|
||||
eIDName := "`" + colMapper.Obj2Table("Eid") + "`"
|
||||
|
||||
var salaries []Salary
|
||||
err = testEngine.Table(tableName2).
|
||||
|
@ -286,11 +286,11 @@ func TestGroupBy(t *testing.T) {
|
|||
assert.NoError(t, prepareEngine())
|
||||
assertSync(t, new(Userinfo))
|
||||
|
||||
idName := "id"
|
||||
idName := "`id`"
|
||||
userName := colMapper.Obj2Table("Username")
|
||||
|
||||
users := make([]Userinfo, 0)
|
||||
err := testEngine.GroupBy(idName + ", " + userName).Find(&users)
|
||||
err := testEngine.GroupBy(idName + ", `" + userName + "`").Find(&users)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
|
@ -609,17 +609,20 @@ func TestFindMapStringId(t *testing.T) {
|
|||
|
||||
deviceIDs := []string{"1"}
|
||||
|
||||
deviceIDName := "`" + colMapper.Obj2Table("Deviceid") + "`"
|
||||
statusName := "`" + colMapper.Obj2Table("Status") + "`"
|
||||
|
||||
deviceMaps := make(map[string]*FindMapDevice, len(deviceIDs))
|
||||
err = testEngine.
|
||||
Where("status = ?", 1).
|
||||
In("deviceid", deviceIDs).
|
||||
Where(statusName+" = ?", 1).
|
||||
In(deviceIDName, deviceIDs).
|
||||
Find(&deviceMaps)
|
||||
assert.NoError(t, err)
|
||||
|
||||
deviceMaps2 := make(map[string]FindMapDevice, len(deviceIDs))
|
||||
err = testEngine.
|
||||
Where("status = ?", 1).
|
||||
In("deviceid", deviceIDs).
|
||||
Where(statusName+" = ?", 1).
|
||||
In(deviceIDName, deviceIDs).
|
||||
Find(&deviceMaps2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
|
@ -650,7 +653,7 @@ func TestFindMapStringId(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
sum, err := testEngine.SumInt(new(FindMapDevice), "status")
|
||||
sum, err := testEngine.SumInt(new(FindMapDevice), statusName)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 2, sum)
|
||||
|
||||
|
@ -783,12 +786,12 @@ func TestFindJoin(t *testing.T) {
|
|||
assert.NoError(t, prepareEngine())
|
||||
assertSync(t, new(SceneItem), new(DeviceUserPrivrels))
|
||||
|
||||
tableName1 := tableMapper.Obj2Table("SceneItem")
|
||||
tableName2 := tableMapper.Obj2Table("DeviceUserPrivrels")
|
||||
tableName1 := "`" + tableMapper.Obj2Table("SceneItem") + "`"
|
||||
tableName2 := "`" + tableMapper.Obj2Table("DeviceUserPrivrels") + "`"
|
||||
|
||||
deviceIDName := colMapper.Obj2Table("DeviceId")
|
||||
userIDName := colMapper.Obj2Table("UserId")
|
||||
typeName := colMapper.Obj2Table("Type")
|
||||
deviceIDName := "`" + colMapper.Obj2Table("DeviceId") + "`"
|
||||
userIDName := "`" + colMapper.Obj2Table("UserId") + "`"
|
||||
typeName := "`" + colMapper.Obj2Table("Type") + "`"
|
||||
|
||||
var scenes []SceneItem
|
||||
err := testEngine.Join("LEFT OUTER", tableName2, tableName1+"."+deviceIDName+"="+tableName2+"."+deviceIDName).
|
||||
|
|
|
@ -35,16 +35,20 @@ func TestGetVar(t *testing.T) {
|
|||
_, err := testEngine.InsertOne(&data)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tableName := tableMapper.Obj2Table("GetVar")
|
||||
tableName := "`" + tableMapper.Obj2Table("GetVar") + "`"
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
msgName := colMapper.Obj2Table("Msg")
|
||||
ageName := colMapper.Obj2Table("Age")
|
||||
moneyName := colMapper.Obj2Table("Money")
|
||||
|
||||
var msg string
|
||||
has, err := testEngine.Table(tableName).Cols("msg").Get(&msg)
|
||||
has, err := testEngine.Table(tableName).Cols("`" + msgName + "`").Get(&msg)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, "hi", msg)
|
||||
|
||||
var age int
|
||||
has, err = testEngine.Table(tableName).Cols("age").Get(&age)
|
||||
has, err = testEngine.Table(tableName).Cols("`" + ageName + "`").Get(&age)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, 28, age)
|
||||
|
@ -56,9 +60,9 @@ func TestGetVar(t *testing.T) {
|
|||
assert.Equal(t, 28, ageMax)
|
||||
|
||||
var age2 int64
|
||||
has, err = testEngine.Table(tableName).Cols("age").
|
||||
Where("age > ?", 20).
|
||||
And("age < ?", 30).
|
||||
has, err = testEngine.Table(tableName).Cols("`"+ageName+"`").
|
||||
Where("`"+ageName+"` > ?", 20).
|
||||
And("`"+ageName+"` < ?", 30).
|
||||
Get(&age2)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
|
@ -128,52 +132,47 @@ func TestGetVar(t *testing.T) {
|
|||
assert.EqualValues(t, 28, age10)
|
||||
|
||||
var id sql.NullInt64
|
||||
has, err = testEngine.Table(tableName).Cols("id").Get(&id)
|
||||
has, err = testEngine.Table(tableName).Cols("`" + idName + "`").Get(&id)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, true, id.Valid)
|
||||
assert.EqualValues(t, data.Id, id.Int64)
|
||||
|
||||
var msgNull sql.NullString
|
||||
has, err = testEngine.Table(tableName).Cols("msg").Get(&msgNull)
|
||||
has, err = testEngine.Table(tableName).Cols("`" + msgName + "`").Get(&msgNull)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, true, msgNull.Valid)
|
||||
assert.EqualValues(t, data.Msg, msgNull.String)
|
||||
|
||||
var nullMoney sql.NullFloat64
|
||||
has, err = testEngine.Table(tableName).Cols("money").Get(&nullMoney)
|
||||
has, err = testEngine.Table(tableName).Cols("`" + moneyName + "`").Get(&nullMoney)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, true, nullMoney.Valid)
|
||||
assert.EqualValues(t, data.Money, nullMoney.Float64)
|
||||
|
||||
var money float64
|
||||
has, err = testEngine.Table(tableName).Cols("money").Get(&money)
|
||||
has, err = testEngine.Table(tableName).Cols("`" + moneyName + "`").Get(&money)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, "1.5", fmt.Sprintf("%.1f", money))
|
||||
|
||||
var money2 float64
|
||||
if testEngine.Dialect().DBType() == core.MSSQL {
|
||||
has, err = testEngine.SQL("SELECT TOP 1 money FROM " + testEngine.TableName(tableName, true)).Get(&money2)
|
||||
has, err = testEngine.SQL("SELECT TOP 1 `" + moneyName + "` FROM " + testEngine.TableName(tableName, true)).Get(&money2)
|
||||
} else {
|
||||
has, err = testEngine.SQL("SELECT money FROM " + testEngine.TableName(tableName, true) + " LIMIT 1").Get(&money2)
|
||||
has, err = testEngine.SQL("SELECT `" + moneyName + "` FROM " + testEngine.TableName(tableName, true) + " LIMIT 1").Get(&money2)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, "1.5", fmt.Sprintf("%.1f", money2))
|
||||
|
||||
var money3 float64
|
||||
has, err = testEngine.SQL("SELECT money FROM " + testEngine.TableName(tableName, true) + " WHERE money > 20").Get(&money3)
|
||||
has, err = testEngine.SQL("SELECT `" + moneyName + "` FROM " + testEngine.TableName(tableName, true) + " WHERE `" + moneyName + "` > 20").Get(&money3)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, false, has)
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
ageName := colMapper.Obj2Table("Age")
|
||||
msgName := colMapper.Obj2Table("Msg")
|
||||
moneyName := colMapper.Obj2Table("Money")
|
||||
|
||||
var valuesString = make(map[string]string)
|
||||
has, err = testEngine.Table(tableName).Get(&valuesString)
|
||||
assert.NoError(t, err)
|
||||
|
@ -187,7 +186,7 @@ func TestGetVar(t *testing.T) {
|
|||
// for mymysql driver, interface{} will be []byte, so ignore it currently
|
||||
if testEngine.Dialect().DriverName() != "mymysql" {
|
||||
var valuesInter = make(map[string]interface{})
|
||||
has, err = testEngine.Table(tableName).Where(idName+" = ?", 1).Select("*").Get(&valuesInter)
|
||||
has, err = testEngine.Table(tableName).Where("`"+idName+"` = ?", 1).Select("*").Get(&valuesInter)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, has)
|
||||
assert.Equal(t, 5, len(valuesInter))
|
||||
|
@ -405,10 +404,10 @@ func TestGetStructId(t *testing.T) {
|
|||
Id int64
|
||||
}
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
//var id int64
|
||||
var maxid maxidst
|
||||
sql := "select max(" + idName + ") as id from " + testEngine.TableName(&TestGetStruct{}, true)
|
||||
sql := "select max(" + idName + ") as id from " + testEngine.Quote(testEngine.TableName(&TestGetStruct{}, true))
|
||||
has, err := testEngine.SQL(sql).Get(&maxid)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
|
|
|
@ -753,10 +753,14 @@ func TestInsertMap(t *testing.T) {
|
|||
assert.NoError(t, prepareEngine())
|
||||
assertSync(t, new(InsertMap))
|
||||
|
||||
widthName := colMapper.Obj2Table("Width")
|
||||
heightName := colMapper.Obj2Table("Height")
|
||||
nameName := colMapper.Obj2Table("Name")
|
||||
|
||||
cnt, err := testEngine.Table(new(InsertMap)).Insert(map[string]interface{}{
|
||||
"width": 20,
|
||||
"height": 10,
|
||||
"name": "lunny",
|
||||
widthName: 20,
|
||||
heightName: 10,
|
||||
nameName: "lunny",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
@ -772,9 +776,9 @@ func TestInsertMap(t *testing.T) {
|
|||
tableName := tableMapper.Obj2Table("InsertMap")
|
||||
|
||||
cnt, err = testEngine.Table(tableName).Insert(map[string]interface{}{
|
||||
"width": 30,
|
||||
"height": 10,
|
||||
"name": "lunny",
|
||||
widthName: 30,
|
||||
heightName: 10,
|
||||
nameName: "lunny",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
@ -792,14 +796,14 @@ func TestInsertMap(t *testing.T) {
|
|||
|
||||
cnt, err = testEngine.Table(tableName).Insert([]map[string]interface{}{
|
||||
{
|
||||
"width": 40,
|
||||
"height": 10,
|
||||
"name": "lunny",
|
||||
widthName: 40,
|
||||
heightName: 10,
|
||||
nameName: "lunny",
|
||||
},
|
||||
{
|
||||
"width": 50,
|
||||
"height": 10,
|
||||
"name": "lunny",
|
||||
widthName: 50,
|
||||
heightName: 10,
|
||||
nameName: "lunny",
|
||||
},
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
|
|
|
@ -39,7 +39,7 @@ func TestQueryString(t *testing.T) {
|
|||
|
||||
tableName := tableMapper.Obj2Table("GetVar2")
|
||||
|
||||
records, err := testEngine.QueryString("select * from " + testEngine.TableName(tableName, true))
|
||||
records, err := testEngine.QueryString("select * from `" + testEngine.TableName(tableName, true) + "`")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 1, len(records))
|
||||
assert.Equal(t, 5, len(records[0]))
|
||||
|
@ -71,7 +71,7 @@ func TestQueryString2(t *testing.T) {
|
|||
_, err := testEngine.Insert(data)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tableName := tableMapper.Obj2Table("GetVar3")
|
||||
tableName := "`" + tableMapper.Obj2Table("GetVar3") + "`"
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
msgName := colMapper.Obj2Table("Msg")
|
||||
|
@ -141,7 +141,7 @@ func TestQueryInterface(t *testing.T) {
|
|||
_, err := testEngine.InsertOne(data)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tableName := tableMapper.Obj2Table("GetVarInterface")
|
||||
tableName := "`" + tableMapper.Obj2Table("GetVarInterface") + "`"
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
msgName := colMapper.Obj2Table("Msg")
|
||||
ageName := colMapper.Obj2Table("Age")
|
||||
|
@ -202,7 +202,7 @@ func TestQueryNoParams(t *testing.T) {
|
|||
assert.EqualValues(t, 3000, money)
|
||||
}
|
||||
|
||||
tableName := tableMapper.Obj2Table("QueryNoParams")
|
||||
tableName := "`" + tableMapper.Obj2Table("QueryNoParams") + "`"
|
||||
results, err := testEngine.Table(tableName).Limit(10).Query()
|
||||
assert.NoError(t, err)
|
||||
assertResult(t, results)
|
||||
|
@ -228,7 +228,7 @@ func TestQueryStringNoParam(t *testing.T) {
|
|||
_, err := testEngine.Insert(data)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tableName := tableMapper.Obj2Table("GetVar4")
|
||||
tableName := "`" + tableMapper.Obj2Table("GetVar4") + "`"
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
msgName := colMapper.Obj2Table("Msg")
|
||||
|
@ -243,7 +243,7 @@ func TestQueryStringNoParam(t *testing.T) {
|
|||
assert.EqualValues(t, "0", records[0][msgName])
|
||||
}
|
||||
|
||||
records, err = testEngine.Table(tableName).Where(builder.Eq{idName: 1}).QueryString()
|
||||
records, err = testEngine.Table(tableName).Where(builder.Eq{"`" + idName + "`": 1}).QueryString()
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, len(records))
|
||||
assert.EqualValues(t, "1", records[0][idName])
|
||||
|
@ -270,7 +270,7 @@ func TestQuerySliceStringNoParam(t *testing.T) {
|
|||
_, err := testEngine.Insert(data)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tableName := tableMapper.Obj2Table("GetVar6")
|
||||
tableName := "`" + tableMapper.Obj2Table("GetVar6") + "`"
|
||||
|
||||
records, err := testEngine.Table(tableName).Limit(1).QuerySliceString()
|
||||
assert.NoError(t, err)
|
||||
|
@ -283,7 +283,7 @@ func TestQuerySliceStringNoParam(t *testing.T) {
|
|||
}
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
records, err = testEngine.Table(tableName).Where(builder.Eq{idName: 1}).QuerySliceString()
|
||||
records, err = testEngine.Table(tableName).Where(builder.Eq{"`" + idName + "`": 1}).QuerySliceString()
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, len(records))
|
||||
assert.EqualValues(t, "1", records[0][0])
|
||||
|
@ -310,7 +310,7 @@ func TestQueryInterfaceNoParam(t *testing.T) {
|
|||
_, err := testEngine.Insert(data)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tableName := tableMapper.Obj2Table("GetVar5")
|
||||
tableName := "`" + tableMapper.Obj2Table("GetVar5") + "`"
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
msgName := colMapper.Obj2Table("Msg")
|
||||
|
||||
|
@ -320,7 +320,7 @@ func TestQueryInterfaceNoParam(t *testing.T) {
|
|||
assert.EqualValues(t, 1, toInt64(records[0][idName]))
|
||||
assert.EqualValues(t, 0, toInt64(records[0][msgName]))
|
||||
|
||||
records, err = testEngine.Table(tableName).Where(builder.Eq{idName: 1}).QueryInterface()
|
||||
records, err = testEngine.Table(tableName).Where(builder.Eq{"`" + idName + "`": 1}).QueryInterface()
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, len(records))
|
||||
assert.EqualValues(t, 1, toInt64(records[0][idName]))
|
||||
|
@ -373,7 +373,7 @@ func TestQueryWithBuilder(t *testing.T) {
|
|||
}
|
||||
|
||||
tableName := tableMapper.Obj2Table("QueryWithBuilder")
|
||||
results, err := testEngine.Query(builder.Select("*").From(testEngine.TableName(tableName, true)))
|
||||
results, err := testEngine.Query(builder.Select("*").From("`" + testEngine.TableName(tableName, true) + "`"))
|
||||
assert.NoError(t, err)
|
||||
assertResult(t, results)
|
||||
}
|
||||
|
@ -414,11 +414,11 @@ func TestJoinWithSubQuery(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
tableName := tableMapper.Obj2Table("JoinWithSubQueryDepart")
|
||||
tableName1 := tableMapper.Obj2Table("JoinWithSubQuery1")
|
||||
tableName := "`" + tableMapper.Obj2Table("JoinWithSubQueryDepart") + "`"
|
||||
tableName1 := "`" + tableMapper.Obj2Table("JoinWithSubQuery1") + "`"
|
||||
|
||||
departID := colMapper.Obj2Table("DepartId")
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
departID := "`" + colMapper.Obj2Table("DepartId") + "`"
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
|
||||
var querys []JoinWithSubQuery1
|
||||
err = testEngine.Join("INNER", builder.Select(idName).From(testEngine.Quote(testEngine.TableName(tableName, true))),
|
||||
|
|
|
@ -25,13 +25,13 @@ func TestExecAndQuery(t *testing.T) {
|
|||
uidName := colMapper.Obj2Table("Uid")
|
||||
nameName := colMapper.Obj2Table("Name")
|
||||
|
||||
res, err := testEngine.Exec("INSERT INTO "+testEngine.TableName(tableName, true)+" ("+uidName+", "+nameName+") VALUES (?, ?)", 1, "user")
|
||||
res, err := testEngine.Exec("INSERT INTO `"+testEngine.TableName(tableName, true)+"` (`"+uidName+"`, `"+nameName+"`) VALUES (?, ?)", 1, "user")
|
||||
assert.NoError(t, err)
|
||||
cnt, err := res.RowsAffected()
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
results, err := testEngine.Query("select * from " + testEngine.TableName(tableName, true))
|
||||
results, err := testEngine.Query("select * from `" + testEngine.TableName(tableName, true) + "`")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, len(results))
|
||||
id, err := strconv.Atoi(string(results[0][uidName]))
|
||||
|
|
|
@ -153,8 +153,9 @@ func TestSumCustomColumn(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 3, cnt)
|
||||
|
||||
intName := colMapper.Obj2Table("Int")
|
||||
sumInt, err := testEngine.Sum(new(SumStruct2),
|
||||
"CASE WHEN `int` <= 2 THEN `int` ELSE 0 END")
|
||||
"CASE WHEN `"+intName+"` <= 2 THEN `"+intName+"` ELSE 0 END")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 3, int(sumInt))
|
||||
}
|
||||
|
@ -214,8 +215,7 @@ func TestSQLCount(t *testing.T) {
|
|||
|
||||
tableName := tableMapper.Obj2Table("UserinfoCount2")
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
total, err := testEngine.SQL("SELECT count(" + idName + ") FROM " + testEngine.TableName(tableName, true)).
|
||||
Count()
|
||||
total, err := testEngine.SQL("SELECT count(`" + idName + "`) FROM `" + testEngine.TableName(tableName, true) + "`").Count()
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 0, total)
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ func TestCombineTransaction(t *testing.T) {
|
|||
_, err = session.Where("id = ?", 0).Update(&user2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = session.Exec("delete from "+testEngine.TableName(tableName, true)+" where "+userName+" = ?", user2.Username)
|
||||
_, err = session.Exec("delete from `"+testEngine.TableName(tableName, true)+"` where `"+userName+"` = ?", user2.Username)
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = session.Commit()
|
||||
|
@ -107,7 +107,8 @@ func TestMultipleTransaction(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
|
||||
user2 := MultipleTransaction{Name: "zzz"}
|
||||
_, err = session.Where("id = ?", 0).Update(&user2)
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
_, err = session.Where("`"+idName+"` = ?", 0).Update(&user2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = session.Commit()
|
||||
|
@ -121,7 +122,7 @@ func TestMultipleTransaction(t *testing.T) {
|
|||
err = session.Begin()
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = session.Where("id=?", m1.Id).Delete(new(MultipleTransaction))
|
||||
_, err = session.Where("`"+idName+"`=?", m1.Id).Delete(new(MultipleTransaction))
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = session.Commit()
|
||||
|
|
|
@ -183,6 +183,9 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
|
|||
if session.statement.ColumnStr == "" {
|
||||
colNames, args = session.statement.buildUpdates(bean, false, false,
|
||||
false, false, true)
|
||||
if session.statement.lastError != nil {
|
||||
return 0, err
|
||||
}
|
||||
} else {
|
||||
colNames, args, err = session.genUpdateColumns(bean)
|
||||
if err != nil {
|
||||
|
|
|
@ -34,8 +34,9 @@ func TestUpdateMap(t *testing.T) {
|
|||
tableName := tableMapper.Obj2Table("UpdateTable")
|
||||
nameName := colMapper.Obj2Table("Name")
|
||||
ageName := colMapper.Obj2Table("age")
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
|
||||
cnt, err := testEngine.Table(tableName).Where("id = ?", tb.Id).Update(map[string]interface{}{
|
||||
cnt, err := testEngine.Table(tableName).Where("`"+idName+"` = ?", tb.Id).Update(map[string]interface{}{
|
||||
nameName: "test2",
|
||||
ageName: 36,
|
||||
})
|
||||
|
@ -67,7 +68,7 @@ func TestUpdateLimit(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
nameName := colMapper.Obj2Table("Name")
|
||||
nameName := "`" + colMapper.Obj2Table("Name") + "`"
|
||||
|
||||
cnt, err = testEngine.OrderBy(nameName + " desc").Limit(1).Update(&UpdateTable2{
|
||||
Age: 30,
|
||||
|
@ -274,8 +275,8 @@ func TestUpdateMap2(t *testing.T) {
|
|||
assertSync(t, new(UpdateMustCols))
|
||||
|
||||
tableName := tableMapper.Obj2Table("UpdateMustCols")
|
||||
_, err := testEngine.Table(tableName).Where("id =?", 1).Update(map[string]interface{}{
|
||||
"bool": true,
|
||||
_, err := testEngine.Table(tableName).Where("`"+colMapper.Obj2Table("Id")+"` =?", 1).Update(map[string]interface{}{
|
||||
colMapper.Obj2Table("Bool"): true,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
@ -299,7 +300,14 @@ func TestUpdate1(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
condi := Condi{"username": "zzz", "departname": ""}
|
||||
userName := "`" + colMapper.Obj2Table("Username") + "`"
|
||||
heightName := "`" + colMapper.Obj2Table("Height") + "`"
|
||||
departName := "`" + colMapper.Obj2Table("Departname") + "`"
|
||||
detailIDName := "`detail_id`"
|
||||
isMan := "`" + colMapper.Obj2Table("IsMan") + "`"
|
||||
createdName := "`" + colMapper.Obj2Table("Created") + "`"
|
||||
|
||||
condi := Condi{userName: "zzz", departName: ""}
|
||||
cnt, err = testEngine.Table(&user).ID(ori.Uid).Update(&condi)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
@ -311,13 +319,6 @@ func TestUpdate1(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, cnt, total)
|
||||
|
||||
userName := colMapper.Obj2Table("Username")
|
||||
heightName := colMapper.Obj2Table("Height")
|
||||
departName := colMapper.Obj2Table("Departname")
|
||||
detailIDName := "detail_id"
|
||||
isMan := colMapper.Obj2Table("IsMan")
|
||||
createdName := colMapper.Obj2Table("Created")
|
||||
|
||||
// nullable update
|
||||
{
|
||||
user := &Userinfo{Username: "not null data", Height: 180.5}
|
||||
|
@ -757,7 +758,9 @@ func TestNewUpdate(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 0, af)
|
||||
|
||||
af, err = testEngine.Table(new(TbUserInfo)).Where("phone=?", 13126564922).Update(&changeUsr)
|
||||
phoneName := "`" + colMapper.Obj2Table("Phone") + "`"
|
||||
|
||||
af, err = testEngine.Table(new(TbUserInfo)).Where(phoneName+"=?", 13126564922).Update(&changeUsr)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 0, af)
|
||||
}
|
||||
|
@ -888,7 +891,7 @@ func TestUpdateMapCondition(t *testing.T) {
|
|||
_, err := testEngine.Insert(&c)
|
||||
assert.NoError(t, err)
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
|
||||
cnt, err := testEngine.Update(&UpdateMapCondition{
|
||||
String: "string1",
|
||||
|
@ -1075,8 +1078,10 @@ func TestUpdateDeleted(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 0, cnt)
|
||||
|
||||
nameName := colMapper.Obj2Table("Name")
|
||||
|
||||
cnt, err = testEngine.Table(&UpdateDeletedStruct{}).ID(s.Id).Update(map[string]interface{}{
|
||||
"name": "test1",
|
||||
nameName: "test1",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 0, cnt)
|
||||
|
|
37
statement.go
37
statement.go
|
@ -6,6 +6,7 @@ package xorm
|
|||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"errors"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
|
@ -280,8 +281,8 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
|
||||
fieldValuePtr, err := col.ValueOf(bean)
|
||||
if err != nil {
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
statement.lastError = err
|
||||
return colNames, args
|
||||
}
|
||||
|
||||
fieldValue := *fieldValuePtr
|
||||
|
@ -317,10 +318,10 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
if structConvert, ok := fieldValue.Addr().Interface().(core.Conversion); ok {
|
||||
data, err := structConvert.ToDB()
|
||||
if err != nil {
|
||||
engine.logger.Error(err)
|
||||
} else {
|
||||
val = data
|
||||
statement.lastError = err
|
||||
return colNames, args
|
||||
}
|
||||
val = data
|
||||
goto APPEND
|
||||
}
|
||||
}
|
||||
|
@ -328,10 +329,10 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
if structConvert, ok := fieldValue.Interface().(core.Conversion); ok {
|
||||
data, err := structConvert.ToDB()
|
||||
if err != nil {
|
||||
engine.logger.Error(err)
|
||||
} else {
|
||||
val = data
|
||||
statement.lastError = err
|
||||
return colNames, args
|
||||
}
|
||||
val = data
|
||||
goto APPEND
|
||||
}
|
||||
|
||||
|
@ -409,8 +410,8 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
continue
|
||||
}
|
||||
} else {
|
||||
// TODO: how to handler?
|
||||
panic("not supported")
|
||||
statement.lastError = errors.New("Not supported")
|
||||
return colNames, args
|
||||
}
|
||||
} else {
|
||||
val = fieldValue.Interface()
|
||||
|
@ -420,7 +421,8 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
if requiredField || !isStructZero(fieldValue) {
|
||||
bytes, err := DefaultJSONHandler.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("mashal %v failed", fieldValue.Interface()))
|
||||
statement.lastError = err
|
||||
return colNames, args
|
||||
}
|
||||
if col.SQLType.IsText() {
|
||||
val = string(bytes)
|
||||
|
@ -449,8 +451,8 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
if col.SQLType.IsText() {
|
||||
bytes, err := DefaultJSONHandler.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
statement.lastError = err
|
||||
return colNames, args
|
||||
}
|
||||
val = string(bytes)
|
||||
} else if col.SQLType.IsBlob() {
|
||||
|
@ -469,8 +471,8 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
} else {
|
||||
bytes, err = DefaultJSONHandler.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
statement.lastError = err
|
||||
return colNames, args
|
||||
}
|
||||
val = bytes
|
||||
}
|
||||
|
@ -483,9 +485,6 @@ func (statement *Statement) buildUpdates(bean interface{},
|
|||
|
||||
APPEND:
|
||||
args = append(args, val)
|
||||
if col.IsPrimaryKey && engine.dialect.DBType() == "ql" {
|
||||
continue
|
||||
}
|
||||
colNames = append(colNames, fmt.Sprintf("%v = ?", engine.Quote(col.Name)))
|
||||
}
|
||||
|
||||
|
@ -764,7 +763,7 @@ func (statement *Statement) Join(joinOP string, tablename interface{}, condition
|
|||
statement.joinArgs = append(statement.joinArgs, subQueryArgs...)
|
||||
default:
|
||||
tbName := statement.Engine.TableName(tablename, true)
|
||||
fmt.Fprintf(&buf, "%s ON %v", tbName, condition)
|
||||
fmt.Fprintf(&buf, "%s ON %v", statement.Engine.Quote(tbName), condition)
|
||||
}
|
||||
|
||||
statement.JoinStr = buf.String()
|
||||
|
|
|
@ -197,10 +197,11 @@ func TestDistinctAndCols(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
tableName := tableMapper.Obj2Table("DistinctAndCols")
|
||||
tableName := "`" + tableMapper.Obj2Table("DistinctAndCols") + "`"
|
||||
nameName := "`" + colMapper.Obj2Table("Name") + "`"
|
||||
|
||||
var names []string
|
||||
err = testEngine.Table(tableName).Cols("name").Distinct("name").Find(&names)
|
||||
err = testEngine.Table(tableName).Cols(nameName).Distinct(nameName).Find(&names)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, len(names))
|
||||
assert.EqualValues(t, "test", names[0])
|
||||
|
@ -214,9 +215,11 @@ func TestUpdateIgnoreOnlyFromDBFields(t *testing.T) {
|
|||
IngoreField string `xorm:"-"`
|
||||
}
|
||||
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
|
||||
assertGetRecord := func() *TestOnlyFromDBField {
|
||||
var record TestOnlyFromDBField
|
||||
has, err := testEngine.Where("id = ?", 1).Get(&record)
|
||||
has, err := testEngine.Where("`"+idName+"` = ?", 1).Get(&record)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, true, has)
|
||||
assert.EqualValues(t, "", record.OnlyFromDBField)
|
||||
|
|
|
@ -140,7 +140,8 @@ func TestLowerCase(t *testing.T) {
|
|||
|
||||
err := testEngine.Sync2(&Lowercase{})
|
||||
assert.NoError(t, err)
|
||||
_, err = testEngine.Where("id > 0").Delete(&Lowercase{})
|
||||
idName := colMapper.Obj2Table("Id")
|
||||
_, err = testEngine.Where("`" + idName + "` > 0").Delete(&Lowercase{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = testEngine.Insert(&Lowercase{ended: 1})
|
||||
|
@ -526,7 +527,8 @@ func TestTagTime(t *testing.T) {
|
|||
assert.EqualValues(t, s.Created.Format("2006-01-02 15:04:05"), u.Created.Format("2006-01-02 15:04:05"))
|
||||
|
||||
var tm string
|
||||
has, err = testEngine.Table(&s).Cols("created").Get(&tm)
|
||||
createdName := "`" + colMapper.Obj2Table("Created") + "`"
|
||||
has, err = testEngine.Table(&s).Cols(createdName).Get(&tm)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
assert.EqualValues(t, s.Created.UTC().Format("2006-01-02 15:04:05"),
|
||||
|
|
12
time_test.go
12
time_test.go
|
@ -286,8 +286,9 @@ func TestTimeUserDeleted(t *testing.T) {
|
|||
fmt.Println("user2", user2.CreatedAt, user2.UpdatedAt, user2.DeletedAt)
|
||||
fmt.Println("user2 str", user2.CreatedAtStr, user2.UpdatedAtStr)
|
||||
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
var user3 UserDeleted
|
||||
cnt, err = testEngine.Where("id = ?", "lunny").Delete(&user3)
|
||||
cnt, err = testEngine.Where(idName+" = ?", "lunny").Delete(&user3)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
assert.True(t, !isTimeZero(user3.DeletedAt))
|
||||
|
@ -340,7 +341,8 @@ func TestTimeUserDeletedDiffLoc(t *testing.T) {
|
|||
fmt.Println("user2", user2.CreatedAt, user2.UpdatedAt, user2.DeletedAt)
|
||||
|
||||
var user3 UserDeleted2
|
||||
cnt, err = testEngine.Where("id = ?", "lunny").Delete(&user3)
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
cnt, err = testEngine.Where(idName+" = ?", "lunny").Delete(&user3)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
assert.True(t, !isTimeZero(user3.DeletedAt))
|
||||
|
@ -411,7 +413,8 @@ func TestCustomTimeUserDeleted(t *testing.T) {
|
|||
fmt.Println("user2", user2.CreatedAt, user2.UpdatedAt, user2.DeletedAt)
|
||||
|
||||
var user3 UserDeleted3
|
||||
cnt, err = testEngine.Where("id = ?", "lunny").Delete(&user3)
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
cnt, err = testEngine.Where(idName+" = ?", "lunny").Delete(&user3)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
assert.True(t, !isTimeZero(time.Time(user3.DeletedAt)))
|
||||
|
@ -464,7 +467,8 @@ func TestCustomTimeUserDeletedDiffLoc(t *testing.T) {
|
|||
fmt.Println("user2", user2.CreatedAt, user2.UpdatedAt, user2.DeletedAt)
|
||||
|
||||
var user3 UserDeleted4
|
||||
cnt, err = testEngine.Where("id = ?", "lunny").Delete(&user3)
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
cnt, err = testEngine.Where(idName+" = ?", "lunny").Delete(&user3)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
assert.True(t, !isTimeZero(time.Time(user3.DeletedAt)))
|
||||
|
|
|
@ -60,20 +60,14 @@ func TestCreateNullStructTable(t *testing.T) {
|
|||
assert.NoError(t, prepareEngine())
|
||||
|
||||
err := testEngine.CreateTables(new(NullType))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDropNullStructTable(t *testing.T) {
|
||||
assert.NoError(t, prepareEngine())
|
||||
|
||||
err := testEngine.DropTables(new(NullType))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestNullStructInsert(t *testing.T) {
|
||||
|
@ -83,16 +77,9 @@ func TestNullStructInsert(t *testing.T) {
|
|||
if true {
|
||||
item := new(NullType)
|
||||
_, err := testEngine.Insert(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(item)
|
||||
if item.Id != 1 {
|
||||
err = errors.New("insert error")
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.EqualValues(t, 1, item.Id)
|
||||
}
|
||||
|
||||
if true {
|
||||
|
@ -103,16 +90,9 @@ func TestNullStructInsert(t *testing.T) {
|
|||
IsMan: sql.NullBool{Bool: true, Valid: true},
|
||||
}
|
||||
_, err := testEngine.Insert(&item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(item)
|
||||
if item.Id != 2 {
|
||||
err = errors.New("insert error")
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.EqualValues(t, 2, item.Id)
|
||||
}
|
||||
|
||||
if true {
|
||||
|
@ -131,10 +111,7 @@ func TestNullStructInsert(t *testing.T) {
|
|||
}
|
||||
|
||||
_, err := testEngine.Insert(&items)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(items)
|
||||
}
|
||||
}
|
||||
|
@ -171,36 +148,27 @@ func TestNullStructUpdate(t *testing.T) {
|
|||
})
|
||||
assert.NoError(t, err)
|
||||
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
ageName := "`" + colMapper.Obj2Table("Age") + "`"
|
||||
heightName := "`" + colMapper.Obj2Table("Height") + "`"
|
||||
isManName := "`" + colMapper.Obj2Table("IsMan") + "`"
|
||||
|
||||
if true { // 测试可插入NULL
|
||||
item := new(NullType)
|
||||
item.Age = sql.NullInt64{Int64: 23, Valid: true}
|
||||
item.Height = sql.NullFloat64{Float64: 0, Valid: false} // update to NULL
|
||||
|
||||
affected, err := testEngine.ID(2).Cols("age", "height", "is_man").Update(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
if affected != 1 {
|
||||
err := errors.New("update failed")
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
affected, err := testEngine.ID(2).Cols(ageName, heightName, isManName).Update(item)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, affected)
|
||||
}
|
||||
|
||||
if true { // 测试In update
|
||||
item := new(NullType)
|
||||
item.Age = sql.NullInt64{Int64: 23, Valid: true}
|
||||
affected, err := testEngine.In("id", 3, 4).Cols("age", "height", "is_man").Update(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
if affected != 2 {
|
||||
err := errors.New("update failed")
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
item.Age = sql.NullInt64{23, true}
|
||||
affected, err := testEngine.In(idName, 3, 4).Cols(ageName, heightName, isManName).Update(item)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 2, affected)
|
||||
}
|
||||
|
||||
if true { // 测试where
|
||||
|
@ -209,11 +177,8 @@ func TestNullStructUpdate(t *testing.T) {
|
|||
item.IsMan = sql.NullBool{Bool: true, Valid: true}
|
||||
item.Age = sql.NullInt64{Int64: 34, Valid: true}
|
||||
|
||||
_, err := testEngine.Where("age > ?", 34).Update(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
_, err := testEngine.Where(ageName+" > ?", 34).Update(item)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
if true { // 修改全部时,插入空值
|
||||
|
@ -225,13 +190,9 @@ func TestNullStructUpdate(t *testing.T) {
|
|||
}
|
||||
|
||||
_, err := testEngine.AllCols().ID(6).Update(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(item)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestNullStructFind(t *testing.T) {
|
||||
|
@ -269,14 +230,9 @@ func TestNullStructFind(t *testing.T) {
|
|||
if true {
|
||||
item := new(NullType)
|
||||
has, err := testEngine.ID(1).Get(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
if !has {
|
||||
t.Error(errors.New("no find id 1"))
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
|
||||
fmt.Println(item)
|
||||
if item.Id != 1 || item.Name.Valid || item.Age.Valid || item.Height.Valid ||
|
||||
item.IsMan.Valid {
|
||||
|
@ -291,14 +247,8 @@ func TestNullStructFind(t *testing.T) {
|
|||
item.Id = 2
|
||||
|
||||
has, err := testEngine.Get(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
if !has {
|
||||
t.Error(errors.New("no find id 2"))
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
fmt.Println(item)
|
||||
}
|
||||
|
||||
|
@ -306,23 +256,16 @@ func TestNullStructFind(t *testing.T) {
|
|||
item := make([]NullType, 0)
|
||||
|
||||
err := testEngine.ID(2).Find(&item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(item)
|
||||
}
|
||||
|
||||
if true {
|
||||
item := make([]NullType, 0)
|
||||
|
||||
err := testEngine.Asc("age").Find(&item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
|
||||
ageName := "`" + colMapper.Obj2Table("Age") + "`"
|
||||
err := testEngine.Asc(ageName).Find(&item)
|
||||
assert.NoError(t, err)
|
||||
for k, v := range item {
|
||||
fmt.Println(k, v)
|
||||
}
|
||||
|
@ -334,16 +277,14 @@ func TestNullStructIterate(t *testing.T) {
|
|||
assertSync(t, new(NullType))
|
||||
|
||||
if true {
|
||||
err := testEngine.Where("age IS NOT NULL").OrderBy("age").Iterate(new(NullType),
|
||||
ageName := "`" + colMapper.Obj2Table("Age") + "`"
|
||||
err := testEngine.Where(ageName+" IS NOT NULL").OrderBy(ageName).Iterate(new(NullType),
|
||||
func(i int, bean interface{}) error {
|
||||
nultype := bean.(*NullType)
|
||||
fmt.Println(i, nultype)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -353,11 +294,9 @@ func TestNullStructCount(t *testing.T) {
|
|||
|
||||
if true {
|
||||
item := new(NullType)
|
||||
total, err := testEngine.Where("age IS NOT NULL").Count(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
ageName := "`" + colMapper.Obj2Table("Age") + "`"
|
||||
total, err := testEngine.Where(ageName + " IS NOT NULL").Count(item)
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(total)
|
||||
}
|
||||
}
|
||||
|
@ -367,19 +306,14 @@ func TestNullStructRows(t *testing.T) {
|
|||
assertSync(t, new(NullType))
|
||||
|
||||
item := new(NullType)
|
||||
rows, err := testEngine.Where("id > ?", 1).Rows(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
rows, err := testEngine.Where(idName+" > ?", 1).Rows(item)
|
||||
assert.NoError(t, err)
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
err = rows.Scan(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(item)
|
||||
}
|
||||
}
|
||||
|
@ -391,14 +325,9 @@ func TestNullStructDelete(t *testing.T) {
|
|||
item := new(NullType)
|
||||
|
||||
_, err := testEngine.ID(1).Delete(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = testEngine.Where("id > ?", 1).Delete(item)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
panic(err)
|
||||
}
|
||||
idName := "`" + colMapper.Obj2Table("Id") + "`"
|
||||
_, err = testEngine.Where(idName+" > ?", 1).Delete(item)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue