session Transaction test
This commit is contained in:
parent
cb7396945b
commit
67e6f060d8
|
@ -10,10 +10,46 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
"xorm.io/xorm"
|
||||||
"xorm.io/xorm/internal/utils"
|
"xorm.io/xorm/internal/utils"
|
||||||
"xorm.io/xorm/names"
|
"xorm.io/xorm/names"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestSessionTransaction(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareEngine())
|
||||||
|
assertSync(t, new(Userinfo))
|
||||||
|
|
||||||
|
counter := func(t *testing.T) {
|
||||||
|
_, err := testEngine.Count(&Userinfo{})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
counter(t)
|
||||||
|
// defer counter()
|
||||||
|
session := testEngine.NewSession()
|
||||||
|
_, err := session.Transaction(func(session *xorm.Session) (interface{}, error) {
|
||||||
|
user1 := Userinfo{Username: "xiaoxiaosession", Departname: "dev", Alias: "lunny", Created: time.Now()}
|
||||||
|
_, err := session.Insert(&user1)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
user2 := Userinfo{Username: "yyysession"}
|
||||||
|
_, err = session.Where("`id` = ?", 0).Update(&user2)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = session.Delete(&user2)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, nil
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
func TestTransaction(t *testing.T) {
|
func TestTransaction(t *testing.T) {
|
||||||
assert.NoError(t, PrepareEngine())
|
assert.NoError(t, PrepareEngine())
|
||||||
assertSync(t, new(Userinfo))
|
assertSync(t, new(Userinfo))
|
||||||
|
|
Loading…
Reference in New Issue