update test row

This commit is contained in:
多多 2019-09-29 11:17:01 +08:00
parent d37b8335b9
commit f120d73943
1 changed files with 21 additions and 21 deletions

View File

@ -242,86 +242,86 @@ func TestUnscopeDelete(t *testing.T) {
func TestSoftDeleted(t *testing.T) {
assert.NoError(t, prepareEngine())
type Deleted struct {
type YySoftDeleted struct {
Id int64 `xorm:"pk"`
Name string
DeletedAt int64 `xorm:"not null default '0' comment('删除状态') deleted "`
}
testEngine.SetSoftDeleteHandler(&DefaultSoftDeleteHandler{})
defer testEngine.SetSoftDeleteHandler(nil)
err := testEngine.DropTables(&Deleted{})
err := testEngine.DropTables(&YySoftDeleted{})
assert.NoError(t, err)
err = testEngine.CreateTables(&Deleted{})
err = testEngine.CreateTables(&YySoftDeleted{})
assert.NoError(t, err)
_, err = testEngine.InsertOne(&Deleted{Id: 1, Name: "4444"})
_, err = testEngine.InsertOne(&YySoftDeleted{Id: 1, Name: "4444"})
assert.NoError(t, err)
_, err = testEngine.InsertOne(&Deleted{Id: 2, Name: "5555"})
_, err = testEngine.InsertOne(&YySoftDeleted{Id: 2, Name: "5555"})
assert.NoError(t, err)
_, err = testEngine.InsertOne(&Deleted{Id: 3, Name: "6666"})
_, err = testEngine.InsertOne(&YySoftDeleted{Id: 3, Name: "6666"})
assert.NoError(t, err)
// Test normal Find()
var records1 []Deleted
err = testEngine.Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").Find(&records1, &Deleted{})
var records1 []YySoftDeleted
err = testEngine.Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").Find(&records1, &YySoftDeleted{})
fmt.Printf("%+v", records1)
assert.EqualValues(t, 3, len(records1))
// Test normal Get()
record1 := &Deleted{}
record1 := &YySoftDeleted{}
has, err := testEngine.ID(1).Get(record1)
assert.NoError(t, err)
assert.True(t, has)
// Test Delete() with deleted
affected, err := testEngine.ID(1).Delete(&Deleted{})
affected, err := testEngine.ID(1).Delete(&YySoftDeleted{})
assert.NoError(t, err)
assert.EqualValues(t, 1, affected)
has, err = testEngine.ID(1).Get(&Deleted{})
has, err = testEngine.ID(1).Get(&YySoftDeleted{})
assert.NoError(t, err)
assert.False(t, has)
var records2 []Deleted
var records2 []YySoftDeleted
err = testEngine.Where("`" + testEngine.GetColumnMapper().Obj2Table("Id") + "` > 0").Find(&records2)
assert.NoError(t, err)
assert.EqualValues(t, 2, len(records2))
// Test no rows affected after Delete() again.
affected, err = testEngine.ID(1).Delete(&Deleted{})
affected, err = testEngine.ID(1).Delete(&YySoftDeleted{})
assert.NoError(t, err)
assert.EqualValues(t, 0, affected)
// Deleted.DeletedAt must not be updated.
affected, err = testEngine.ID(2).Update(&Deleted{Name: "23", DeletedAt: 1})
affected, err = testEngine.ID(2).Update(&YySoftDeleted{Name: "23", DeletedAt: 1})
assert.NoError(t, err)
assert.EqualValues(t, 1, affected)
record2 := &Deleted{}
record2 := &YySoftDeleted{}
has, err = testEngine.ID(2).Get(record2)
assert.NoError(t, err)
// fmt.Printf("%+v", reco)
assert.True(t, record2.DeletedAt == 0)
// Test find all records whatever `deleted`.
var unscopedRecords1 []Deleted
err = testEngine.Unscoped().Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").Find(&unscopedRecords1, &Deleted{})
var unscopedRecords1 []YySoftDeleted
err = testEngine.Unscoped().Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").Find(&unscopedRecords1, &YySoftDeleted{})
assert.NoError(t, err)
assert.EqualValues(t, 3, len(unscopedRecords1))
// Delete() must really delete a record with Unscoped()
affected, err = testEngine.Unscoped().ID(1).Delete(&Deleted{})
affected, err = testEngine.Unscoped().ID(1).Delete(&YySoftDeleted{})
assert.NoError(t, err)
assert.EqualValues(t, 1, affected)
var unscopedRecords2 []Deleted
err = testEngine.Unscoped().Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").Find(&unscopedRecords2, &Deleted{})
var unscopedRecords2 []YySoftDeleted
err = testEngine.Unscoped().Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").Find(&unscopedRecords2, &YySoftDeleted{})
assert.NoError(t, err)
assert.EqualValues(t, 2, len(unscopedRecords2))
var records3 []Deleted
var records3 []YySoftDeleted
err = testEngine.Where("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` > 0").And("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"`> 1").
Or("`"+testEngine.GetColumnMapper().Obj2Table("Id")+"` = ?", 3).Find(&records3)
assert.NoError(t, err)