xorm/tests/ydbtest/session_delete_test.go

161 lines
3.5 KiB
Go
Raw Normal View History

package ydb
import (
"database/sql"
"testing"
"github.com/stretchr/testify/assert"
"xorm.io/builder"
"xorm.io/xorm"
)
func TestDelete(t *testing.T) {
assert.NoError(t, PrepareScheme(&Users{}))
engine, err := enginePool.GetDataQueryEngine()
assert.NoError(t, err)
users := getUsersData()
_, err = engine.Transaction(func(session *xorm.Session) (interface{}, error) {
_, err = session.Insert(users)
return nil, err
})
assert.NoError(t, err)
_, err = engine.Transaction(func(session *xorm.Session) (interface{}, error) {
_, err = session.Delete(&Users{
Account: Account{
UserID: sql.NullInt64{Int64: 1, Valid: true},
},
})
return nil, err
})
assert.NoError(t, err)
user := Users{}
has, err := engine.Where("user_id = ?", sql.NullInt64{Int64: 1, Valid: true}).Get(&user)
assert.NoError(t, err)
assert.False(t, has)
_, err = engine.Transaction(func(session *xorm.Session) (interface{}, error) {
_, err = session.Table((&Users{}).TableName()).Where(builder.Between{
Col: "user_id",
LessVal: sql.NullInt64{Int64: 10, Valid: true},
MoreVal: sql.NullInt64{Int64: 15, Valid: true},
}).Delete()
return nil, err
})
assert.NoError(t, err)
cnt, err := engine.Table(&Users{}).Where(builder.Between{
Col: "user_id",
LessVal: sql.NullInt64{Int64: 10, Valid: true},
MoreVal: sql.NullInt64{Int64: 15, Valid: true},
}).Count()
assert.NoError(t, err)
assert.EqualValues(t, 0, cnt)
has, err = engine.Get(&Users{
Account: Account{
UserID: sql.NullInt64{Int64: 0, Valid: true},
},
})
assert.NoError(t, err)
assert.True(t, has)
}
// FIXME: failed on get `deleted` field, unknown problem that return argument
// of time.Time type as string type.
/* type UsersDeleted struct {
Name string `xorm:"'name'"`
Age uint32 `xorm:"'age'"`
Deleted time.Time `xorm:"deleted"`
Account `xorm:"extends"`
}
func (*UsersDeleted) TableName() string {
return "users"
}
// !datbeohbbh! not supported
func TestDeleted(t *testing.T) {
assert.NoError(t, PrepareScheme(&Users{}))
engine, err := enginePool.GetScriptQueryEngine()
assert.NoError(t, err)
assert.NoError(t, engine.Sync(&UsersDeleted{}))
user := UsersDeleted{
Name: "datbeohbbh",
Age: uint32(22),
Account: Account{
UserID: sql.NullInt64{Int64: 1, Valid: true},
Number: uuid.NewString(),
},
}
session := engine.NewSession()
defer session.Close()
_, err = session.Insert(&user)
assert.NoError(t, err)
ret := UsersDeleted{}
has, err := session.Get(&UsersDeleted{
Account: Account{
UserID: sql.NullInt64{Int64: 1, Valid: true},
},
})
assert.NoError(t, err)
assert.True(t, has)
_, err = session.Delete(&UsersDeleted{
Account: Account{
UserID: sql.NullInt64{Int64: 1, Valid: true},
},
})
assert.NoError(t, err)
ret = UsersDeleted{}
has, err = session.Get(&UsersDeleted{
Account: Account{
UserID: sql.NullInt64{Int64: 1, Valid: true},
},
})
assert.NoError(t, err)
assert.False(t, has)
_, err = session.Delete(&UsersDeleted{
Account: Account{
UserID: sql.NullInt64{Int64: 1, Valid: true},
},
})
assert.NoError(t, err)
ret = UsersDeleted{}
has, err = session.
Unscoped().
Where("user_id = ?", sql.NullInt64{Int64: 1, Valid: true}).
Get(&ret)
assert.NoError(t, err)
assert.True(t, has)
_, err = session.
Table("users").
Unscoped().
Where("user_id = ?", sql.NullInt64{Int64: 1, Valid: true}).
Delete()
assert.NoError(t, err)
ret = UsersDeleted{}
has, err = session.
Unscoped().
Where("user_id = ?", sql.NullInt64{Int64: 1, Valid: true}).
Get(&ret)
assert.NoError(t, err)
assert.False(t, has)
}
*/