update at change unit tests
This commit is contained in:
parent
01dd7167a9
commit
75a80111f3
@ -685,3 +685,103 @@ func TestSaveWithPrimaryValue(t *testing.T) {
|
|||||||
t.Errorf("failed to find created record, got error: %v, result: %+v", err, result4)
|
t.Errorf("failed to find created record, got error: %v, result: %+v", err, result4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateAtNotChangeForStruct(t *testing.T) {
|
||||||
|
var user User
|
||||||
|
var newUser User
|
||||||
|
user = *GetUser("nothing_update", Config{})
|
||||||
|
DB.Create(&user)
|
||||||
|
|
||||||
|
DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).Updates(User{
|
||||||
|
Model: gorm.Model{},
|
||||||
|
Name: "",
|
||||||
|
Age: 0,
|
||||||
|
Birthday: nil,
|
||||||
|
Account: Account{},
|
||||||
|
Pets: nil,
|
||||||
|
Toys: nil,
|
||||||
|
CompanyID: nil,
|
||||||
|
Company: Company{},
|
||||||
|
ManagerID: nil,
|
||||||
|
Manager: nil,
|
||||||
|
Team: nil,
|
||||||
|
Languages: nil,
|
||||||
|
Friends: nil,
|
||||||
|
Active: false,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err := DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).First(&newUser).Error; err != nil || newUser.UpdatedAt.UnixNano() != user.UpdatedAt.UnixNano() {
|
||||||
|
t.Errorf("failed to find update record, got error: %v, result: %+v", err, newUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUpdateAtNotChangeForMap(t *testing.T) {
|
||||||
|
var user User
|
||||||
|
var newUser User
|
||||||
|
user = *GetUser("nothing_update", Config{})
|
||||||
|
DB.Create(&user)
|
||||||
|
|
||||||
|
DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).Updates(map[string]interface{}{})
|
||||||
|
|
||||||
|
if err := DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).First(&newUser).Error; err != nil || newUser.UpdatedAt.UnixNano() != user.UpdatedAt.UnixNano() {
|
||||||
|
t.Errorf("failed to find update record, got error: %v, result: %+v", err, newUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUpdateAtChangeForStruct(t *testing.T) {
|
||||||
|
var user User
|
||||||
|
var newUser User
|
||||||
|
user = *GetUser("nothing_update", Config{})
|
||||||
|
DB.Create(&user)
|
||||||
|
|
||||||
|
DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).Updates(User{
|
||||||
|
Model: gorm.Model{},
|
||||||
|
Name: "",
|
||||||
|
Age: 1,
|
||||||
|
Birthday: nil,
|
||||||
|
Account: Account{},
|
||||||
|
Pets: nil,
|
||||||
|
Toys: nil,
|
||||||
|
CompanyID: nil,
|
||||||
|
Company: Company{},
|
||||||
|
ManagerID: nil,
|
||||||
|
Manager: nil,
|
||||||
|
Team: nil,
|
||||||
|
Languages: nil,
|
||||||
|
Friends: nil,
|
||||||
|
Active: false,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err := DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).First(&newUser).Error; err != nil || newUser.UpdatedAt.UnixNano() <= user.UpdatedAt.UnixNano() {
|
||||||
|
t.Errorf("failed to find update record, got error: %v, result: %+v", err, newUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUpdateAtChangeForMap(t *testing.T) {
|
||||||
|
var user User
|
||||||
|
var newUser User
|
||||||
|
user = *GetUser("nothing_update", Config{})
|
||||||
|
DB.Create(&user)
|
||||||
|
|
||||||
|
DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).Updates(map[string]interface{}{"age": 1})
|
||||||
|
|
||||||
|
if err := DB.Model(User{}).Where(User{
|
||||||
|
Model: gorm.Model{ID: user.ID},
|
||||||
|
}).First(&newUser).Error; err != nil || newUser.UpdatedAt.UnixNano() <= user.UpdatedAt.UnixNano() {
|
||||||
|
t.Errorf("failed to find update record, got error: %v, result: %+v", err, newUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user