Fix test
This commit is contained in:
parent
69ff215387
commit
13a779ef95
|
@ -580,7 +580,7 @@ func (db *dameng) SQLType(c *schemas.Column) string {
|
||||||
schemas.UnsignedBigInt, schemas.UnsignedBit, schemas.UnsignedInt,
|
schemas.UnsignedBigInt, schemas.UnsignedBit, schemas.UnsignedInt,
|
||||||
schemas.Serial, schemas.BigSerial:
|
schemas.Serial, schemas.BigSerial:
|
||||||
return "BIGINT"
|
return "BIGINT"
|
||||||
case schemas.Bit, schemas.Bool:
|
case schemas.Bit, schemas.Bool, schemas.Boolean:
|
||||||
return schemas.Bit
|
return schemas.Bit
|
||||||
case schemas.Uuid:
|
case schemas.Uuid:
|
||||||
res = schemas.Varchar
|
res = schemas.Varchar
|
||||||
|
@ -594,11 +594,17 @@ func (db *dameng) SQLType(c *schemas.Column) string {
|
||||||
case schemas.Date:
|
case schemas.Date:
|
||||||
return schemas.Date
|
return schemas.Date
|
||||||
case schemas.Time:
|
case schemas.Time:
|
||||||
|
if c.Length > 0 {
|
||||||
|
return fmt.Sprintf("%s(%d)", schemas.Time, c.Length)
|
||||||
|
}
|
||||||
return schemas.Time
|
return schemas.Time
|
||||||
case schemas.DateTime, schemas.TimeStamp:
|
case schemas.DateTime, schemas.TimeStamp:
|
||||||
return schemas.TimeStamp
|
res = schemas.TimeStamp
|
||||||
case schemas.TimeStampz:
|
case schemas.TimeStampz:
|
||||||
res = "TIMESTAMP"
|
if c.Length > 0 {
|
||||||
|
return fmt.Sprintf("TIMESTAMP(%d) WITH TIME ZONE", c.Length)
|
||||||
|
}
|
||||||
|
return "TIMESTAMP WITH TIME ZONE"
|
||||||
case schemas.Float:
|
case schemas.Float:
|
||||||
res = "FLOAT"
|
res = "FLOAT"
|
||||||
case schemas.Real, schemas.Double:
|
case schemas.Real, schemas.Double:
|
||||||
|
@ -606,7 +612,7 @@ func (db *dameng) SQLType(c *schemas.Column) string {
|
||||||
case schemas.Numeric, schemas.Decimal, "NUMBER":
|
case schemas.Numeric, schemas.Decimal, "NUMBER":
|
||||||
res = "NUMERIC"
|
res = "NUMERIC"
|
||||||
case schemas.Text, schemas.Json:
|
case schemas.Text, schemas.Json:
|
||||||
res = "TEXT"
|
return "TEXT"
|
||||||
case schemas.MediumText, schemas.LongText:
|
case schemas.MediumText, schemas.LongText:
|
||||||
res = "CLOB"
|
res = "CLOB"
|
||||||
case schemas.Char, schemas.Varchar, schemas.TinyText:
|
case schemas.Char, schemas.Varchar, schemas.TinyText:
|
||||||
|
|
|
@ -22,13 +22,13 @@ func TestExecAndQuery(t *testing.T) {
|
||||||
|
|
||||||
assert.NoError(t, testEngine.Sync2(new(UserinfoQuery)))
|
assert.NoError(t, testEngine.Sync2(new(UserinfoQuery)))
|
||||||
|
|
||||||
res, err := testEngine.Exec("INSERT INTO "+testEngine.TableName("`userinfo_query`", true)+" (uid, name) VALUES (?, ?)", 1, "user")
|
res, err := testEngine.Exec("INSERT INTO "+testEngine.TableName("`userinfo_query`", true)+" (`uid`, `name`) VALUES (?, ?)", 1, "user")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
cnt, err := res.RowsAffected()
|
cnt, err := res.RowsAffected()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, cnt)
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
results, err := testEngine.Query("select * from " + testEngine.TableName("userinfo_query", true))
|
results, err := testEngine.Query("select * from `" + testEngine.TableName("userinfo_query", true) + "`")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, len(results))
|
assert.EqualValues(t, 1, len(results))
|
||||||
id, err := strconv.Atoi(string(results[0]["uid"]))
|
id, err := strconv.Atoi(string(results[0]["uid"]))
|
||||||
|
@ -48,13 +48,13 @@ func TestExecTime(t *testing.T) {
|
||||||
|
|
||||||
assert.NoError(t, testEngine.Sync2(new(UserinfoExecTime)))
|
assert.NoError(t, testEngine.Sync2(new(UserinfoExecTime)))
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
res, err := testEngine.Exec("INSERT INTO "+testEngine.TableName("`userinfo_exec_time`", true)+" (uid, name, created) VALUES (?, ?, ?)", 1, "user", now)
|
res, err := testEngine.Exec("INSERT INTO "+testEngine.TableName("`userinfo_exec_time`", true)+" (`uid`, `name`, `created`) VALUES (?, ?, ?)", 1, "user", now)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
cnt, err := res.RowsAffected()
|
cnt, err := res.RowsAffected()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, cnt)
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
results, err := testEngine.QueryString("SELECT * FROM " + testEngine.TableName("`userinfo_exec_time`", true))
|
results, err := testEngine.QueryString("SELECT * FROM `" + testEngine.TableName("userinfo_exec_time", true) + "`")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, len(results))
|
assert.EqualValues(t, 1, len(results))
|
||||||
assert.EqualValues(t, now.In(testEngine.GetTZLocation()).Format("2006-01-02 15:04:05"), results[0]["created"])
|
assert.EqualValues(t, now.In(testEngine.GetTZLocation()).Format("2006-01-02 15:04:05"), results[0]["created"])
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NullType struct {
|
type NullStruct struct {
|
||||||
Id int `xorm:"pk autoincr"`
|
Id int `xorm:"pk autoincr"`
|
||||||
Name sql.NullString
|
Name sql.NullString
|
||||||
Age sql.NullInt64
|
Age sql.NullInt64
|
||||||
|
@ -65,26 +65,26 @@ func (m CustomStruct) Value() (driver.Value, error) {
|
||||||
|
|
||||||
func TestCreateNullStructTable(t *testing.T) {
|
func TestCreateNullStructTable(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
err := testEngine.CreateTables(new(NullType))
|
err := testEngine.CreateTables(new(NullStruct))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDropNullStructTable(t *testing.T) {
|
func TestDropNullStructTable(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
err := testEngine.DropTables(new(NullType))
|
err := testEngine.DropTables(new(NullStruct))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNullStructInsert(t *testing.T) {
|
func TestNullStructInsert(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
item1 := new(NullType)
|
item1 := new(NullStruct)
|
||||||
_, err := testEngine.Insert(item1)
|
_, err := testEngine.Insert(item1)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 1, item1.Id)
|
assert.EqualValues(t, 1, item1.Id)
|
||||||
|
|
||||||
item := NullType{
|
item := NullStruct{
|
||||||
Name: sql.NullString{String: "haolei", Valid: true},
|
Name: sql.NullString{String: "haolei", Valid: true},
|
||||||
Age: sql.NullInt64{Int64: 34, Valid: true},
|
Age: sql.NullInt64{Int64: 34, Valid: true},
|
||||||
Height: sql.NullFloat64{Float64: 1.72, Valid: true},
|
Height: sql.NullFloat64{Float64: 1.72, Valid: true},
|
||||||
|
@ -95,9 +95,9 @@ func TestNullStructInsert(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 2, item.Id)
|
assert.EqualValues(t, 2, item.Id)
|
||||||
|
|
||||||
items := []NullType{}
|
items := []NullStruct{}
|
||||||
for i := 0; i < 5; i++ {
|
for i := 0; i < 5; i++ {
|
||||||
item := NullType{
|
item := NullStruct{
|
||||||
Name: sql.NullString{String: "haolei_" + fmt.Sprint(i+1), Valid: true},
|
Name: sql.NullString{String: "haolei_" + fmt.Sprint(i+1), Valid: true},
|
||||||
Age: sql.NullInt64{Int64: 30 + int64(i), Valid: true},
|
Age: sql.NullInt64{Int64: 30 + int64(i), Valid: true},
|
||||||
Height: sql.NullFloat64{Float64: 1.5 + 1.1*float64(i), Valid: true},
|
Height: sql.NullFloat64{Float64: 1.5 + 1.1*float64(i), Valid: true},
|
||||||
|
@ -111,7 +111,7 @@ func TestNullStructInsert(t *testing.T) {
|
||||||
_, err = testEngine.Insert(&items)
|
_, err = testEngine.Insert(&items)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
items = make([]NullType, 0, 7)
|
items = make([]NullStruct, 0, 7)
|
||||||
err = testEngine.Find(&items)
|
err = testEngine.Find(&items)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 7, len(items))
|
assert.EqualValues(t, 7, len(items))
|
||||||
|
@ -119,9 +119,9 @@ func TestNullStructInsert(t *testing.T) {
|
||||||
|
|
||||||
func TestNullStructUpdate(t *testing.T) {
|
func TestNullStructUpdate(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
_, err := testEngine.Insert([]NullType{
|
_, err := testEngine.Insert([]NullStruct{
|
||||||
{
|
{
|
||||||
Name: sql.NullString{
|
Name: sql.NullString{
|
||||||
String: "name1",
|
String: "name1",
|
||||||
|
@ -150,7 +150,7 @@ func TestNullStructUpdate(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
if true { // 测试可插入NULL
|
if true { // 测试可插入NULL
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
item.Age = sql.NullInt64{Int64: 23, Valid: true}
|
item.Age = sql.NullInt64{Int64: 23, Valid: true}
|
||||||
item.Height = sql.NullFloat64{Float64: 0, Valid: false} // update to NULL
|
item.Height = sql.NullFloat64{Float64: 0, Valid: false} // update to NULL
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ func TestNullStructUpdate(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if true { // 测试In update
|
if true { // 测试In update
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
item.Age = sql.NullInt64{Int64: 23, Valid: true}
|
item.Age = sql.NullInt64{Int64: 23, Valid: true}
|
||||||
affected, err := testEngine.In("id", 3, 4).Cols("age", "height", "is_man").Update(item)
|
affected, err := testEngine.In("id", 3, 4).Cols("age", "height", "is_man").Update(item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
@ -168,7 +168,7 @@ func TestNullStructUpdate(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if true { // 测试where
|
if true { // 测试where
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
item.Name = sql.NullString{String: "nullname", Valid: true}
|
item.Name = sql.NullString{String: "nullname", Valid: true}
|
||||||
item.IsMan = sql.NullBool{Bool: true, Valid: true}
|
item.IsMan = sql.NullBool{Bool: true, Valid: true}
|
||||||
item.Age = sql.NullInt64{Int64: 34, Valid: true}
|
item.Age = sql.NullInt64{Int64: 34, Valid: true}
|
||||||
|
@ -178,7 +178,7 @@ func TestNullStructUpdate(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if true { // 修改全部时,插入空值
|
if true { // 修改全部时,插入空值
|
||||||
item := &NullType{
|
item := &NullStruct{
|
||||||
Name: sql.NullString{String: "winxxp", Valid: true},
|
Name: sql.NullString{String: "winxxp", Valid: true},
|
||||||
Age: sql.NullInt64{Int64: 30, Valid: true},
|
Age: sql.NullInt64{Int64: 30, Valid: true},
|
||||||
Height: sql.NullFloat64{Float64: 1.72, Valid: true},
|
Height: sql.NullFloat64{Float64: 1.72, Valid: true},
|
||||||
|
@ -192,9 +192,9 @@ func TestNullStructUpdate(t *testing.T) {
|
||||||
|
|
||||||
func TestNullStructFind(t *testing.T) {
|
func TestNullStructFind(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
_, err := testEngine.Insert([]NullType{
|
_, err := testEngine.Insert([]NullStruct{
|
||||||
{
|
{
|
||||||
Name: sql.NullString{
|
Name: sql.NullString{
|
||||||
String: "name1",
|
String: "name1",
|
||||||
|
@ -223,7 +223,7 @@ func TestNullStructFind(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
if true {
|
if true {
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
has, err := testEngine.ID(1).Get(item)
|
has, err := testEngine.ID(1).Get(item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, has)
|
assert.True(t, has)
|
||||||
|
@ -235,7 +235,7 @@ func TestNullStructFind(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if true {
|
if true {
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
item.Id = 2
|
item.Id = 2
|
||||||
has, err := testEngine.Get(item)
|
has, err := testEngine.Get(item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
@ -243,13 +243,13 @@ func TestNullStructFind(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if true {
|
if true {
|
||||||
item := make([]NullType, 0)
|
item := make([]NullStruct, 0)
|
||||||
err := testEngine.ID(2).Find(&item)
|
err := testEngine.ID(2).Find(&item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if true {
|
if true {
|
||||||
item := make([]NullType, 0)
|
item := make([]NullStruct, 0)
|
||||||
err := testEngine.Asc("age").Find(&item)
|
err := testEngine.Asc("age").Find(&item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
@ -257,12 +257,12 @@ func TestNullStructFind(t *testing.T) {
|
||||||
|
|
||||||
func TestNullStructIterate(t *testing.T) {
|
func TestNullStructIterate(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
if true {
|
if true {
|
||||||
err := testEngine.Where("`age` IS NOT NULL").OrderBy("age").Iterate(new(NullType),
|
err := testEngine.Where("`age` IS NOT NULL").OrderBy("age").Iterate(new(NullStruct),
|
||||||
func(i int, bean interface{}) error {
|
func(i int, bean interface{}) error {
|
||||||
nultype := bean.(*NullType)
|
nultype := bean.(*NullStruct)
|
||||||
fmt.Println(i, nultype)
|
fmt.Println(i, nultype)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
@ -272,10 +272,10 @@ func TestNullStructIterate(t *testing.T) {
|
||||||
|
|
||||||
func TestNullStructCount(t *testing.T) {
|
func TestNullStructCount(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
if true {
|
if true {
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
_, err := testEngine.Where("`age` IS NOT NULL").Count(item)
|
_, err := testEngine.Where("`age` IS NOT NULL").Count(item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
@ -283,9 +283,9 @@ func TestNullStructCount(t *testing.T) {
|
||||||
|
|
||||||
func TestNullStructRows(t *testing.T) {
|
func TestNullStructRows(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
rows, err := testEngine.Where("`id` > ?", 1).Rows(item)
|
rows, err := testEngine.Where("`id` > ?", 1).Rows(item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
@ -298,9 +298,9 @@ func TestNullStructRows(t *testing.T) {
|
||||||
|
|
||||||
func TestNullStructDelete(t *testing.T) {
|
func TestNullStructDelete(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(NullType))
|
assertSync(t, new(NullStruct))
|
||||||
|
|
||||||
item := new(NullType)
|
item := new(NullStruct)
|
||||||
|
|
||||||
_, err := testEngine.ID(1).Delete(item)
|
_, err := testEngine.ID(1).Delete(item)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
Loading…
Reference in New Issue