session Transaction test

This commit is contained in:
褚兆前 2025-06-05 11:06:49 +08:00
parent cb7396945b
commit 67e6f060d8
1 changed files with 36 additions and 0 deletions

View File

@ -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))