exec with driver.Valuer
This commit is contained in:
parent
5240459858
commit
5a0ee4c3fe
|
@ -5,6 +5,7 @@
|
||||||
package integrations
|
package integrations
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"database/sql/driver"
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
@ -65,3 +66,41 @@ func TestExecTime(t *testing.T) {
|
||||||
assert.True(t, has)
|
assert.True(t, has)
|
||||||
assert.EqualValues(t, now.In(testEngine.GetTZLocation()).Format("2006-01-02 15:04:05"), uet.Created.Format("2006-01-02 15:04:05"))
|
assert.EqualValues(t, now.In(testEngine.GetTZLocation()).Format("2006-01-02 15:04:05"), uet.Created.Format("2006-01-02 15:04:05"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ driver.Valuer = &MyData{}
|
||||||
|
|
||||||
|
type MyData struct {
|
||||||
|
data string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MyData) Value() (driver.Value, error) {
|
||||||
|
return m.data, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestExecDriverValuer(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareEngine())
|
||||||
|
|
||||||
|
type UserinfoDriverValuer struct {
|
||||||
|
Uid int
|
||||||
|
Name string
|
||||||
|
Data string
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(UserinfoDriverValuer)))
|
||||||
|
|
||||||
|
res, err := testEngine.Exec("INSERT INTO "+testEngine.TableName("`userinfo_driver_valuer`", true)+" (uid, name,data) VALUES (?, ?, ?)",
|
||||||
|
1, "user", MyData{"data"})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
cnt, err := res.RowsAffected()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, cnt)
|
||||||
|
|
||||||
|
results, err := testEngine.QueryString("select * from " + testEngine.TableName("userinfo_exec", true))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, len(results))
|
||||||
|
id, err := strconv.Atoi(results[0]["uid"])
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 1, id)
|
||||||
|
assert.Equal(t, "user", results[0]["name"])
|
||||||
|
assert.EqualValues(t, "data", results[0]["data"])
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue