add test for 'Auto creating/updating time with unix (milli) second'

This commit is contained in:
qinains 2020-07-30 17:14:49 +08:00
parent bd1e254bf3
commit c529bf57a4

View File

@ -61,18 +61,20 @@ func TestCustomColumnAndIgnoredFieldClash(t *testing.T) {
func TestCustomizeField(t *testing.T) { func TestCustomizeField(t *testing.T) {
type CustomizeFieldStruct struct { type CustomizeFieldStruct struct {
gorm.Model gorm.Model
Name string Name string
FieldAllowCreate string `gorm:"<-:create"` FieldAllowCreate string `gorm:"<-:create"`
FieldAllowUpdate string `gorm:"<-:update"` FieldAllowUpdate string `gorm:"<-:update"`
FieldAllowSave string `gorm:"<-"` FieldAllowSave string `gorm:"<-"`
FieldAllowSave2 string `gorm:"<-:create,update"` FieldAllowSave2 string `gorm:"<-:create,update"`
FieldAllowSave3 string `gorm:"->:false;<-:create"` FieldAllowSave3 string `gorm:"->:false;<-:create"`
FieldReadonly string `gorm:"->"` FieldReadonly string `gorm:"->"`
FieldIgnore string `gorm:"-"` FieldIgnore string `gorm:"-"`
AutoUnixCreateTime int64 `gorm:"autocreatetime"` AutoUnixCreateTime int64 `gorm:"autocreatetime"`
AutoUnixNanoCreateTime int64 `gorm:"autocreatetime:nano"` AutoUnixMilliCreateTime int64 `gorm:"autocreatetime:milli"`
AutoUnixUpdateTime int64 `gorm:"autoupdatetime"` AutoUnixNanoCreateTime int64 `gorm:"autocreatetime:nano"`
AutoUnixNanoUpdateTime int64 `gorm:"autoupdatetime:nano"` AutoUnixUpdateTime int64 `gorm:"autoupdatetime"`
AutoUnixMilliUpdateTime int64 `gorm:"autoupdatetime:milli"`
AutoUnixNanoUpdateTime int64 `gorm:"autoupdatetime:nano"`
} }
DB.Migrator().DropTable(&CustomizeFieldStruct{}) DB.Migrator().DropTable(&CustomizeFieldStruct{})
@ -118,6 +120,10 @@ func TestCustomizeField(t *testing.T) {
t.Fatalf("invalid create/update unix time: %#v", result) t.Fatalf("invalid create/update unix time: %#v", result)
} }
if result.AutoUnixMilliCreateTime != result.AutoUnixMilliUpdateTime || result.AutoUnixMilliCreateTime == 0 || result.AutoUnixMilliCreateTime/result.AutoUnixCreateTime < 1e3 {
t.Fatalf("invalid create/update unix milli time: %#v", result)
}
if result.AutoUnixNanoCreateTime != result.AutoUnixNanoUpdateTime || result.AutoUnixNanoCreateTime == 0 || result.AutoUnixNanoCreateTime/result.AutoUnixCreateTime < 1e6 { if result.AutoUnixNanoCreateTime != result.AutoUnixNanoUpdateTime || result.AutoUnixNanoCreateTime == 0 || result.AutoUnixNanoCreateTime/result.AutoUnixCreateTime < 1e6 {
t.Fatalf("invalid create/update unix nano time: %#v", result) t.Fatalf("invalid create/update unix nano time: %#v", result)
} }
@ -163,6 +169,8 @@ func TestCustomizeField(t *testing.T) {
createWithDefaultTime := generateStruct("create_with_default_time") createWithDefaultTime := generateStruct("create_with_default_time")
createWithDefaultTime.AutoUnixCreateTime = 100 createWithDefaultTime.AutoUnixCreateTime = 100
createWithDefaultTime.AutoUnixUpdateTime = 100 createWithDefaultTime.AutoUnixUpdateTime = 100
createWithDefaultTime.AutoUnixMilliCreateTime = 100
createWithDefaultTime.AutoUnixMilliUpdateTime = 100
createWithDefaultTime.AutoUnixNanoCreateTime = 100 createWithDefaultTime.AutoUnixNanoCreateTime = 100
createWithDefaultTime.AutoUnixNanoUpdateTime = 100 createWithDefaultTime.AutoUnixNanoUpdateTime = 100
DB.Create(&createWithDefaultTime) DB.Create(&createWithDefaultTime)
@ -174,6 +182,10 @@ func TestCustomizeField(t *testing.T) {
t.Fatalf("invalid create/update unix time: %#v", createWithDefaultTimeResult) t.Fatalf("invalid create/update unix time: %#v", createWithDefaultTimeResult)
} }
if createWithDefaultTimeResult.AutoUnixMilliCreateTime != createWithDefaultTimeResult.AutoUnixMilliUpdateTime || createWithDefaultTimeResult.AutoUnixMilliCreateTime != 100 {
t.Fatalf("invalid create/update unix milli time: %#v", createWithDefaultTimeResult)
}
if createWithDefaultTimeResult.AutoUnixNanoCreateTime != createWithDefaultTimeResult.AutoUnixNanoUpdateTime || createWithDefaultTimeResult.AutoUnixNanoCreateTime != 100 { if createWithDefaultTimeResult.AutoUnixNanoCreateTime != createWithDefaultTimeResult.AutoUnixNanoUpdateTime || createWithDefaultTimeResult.AutoUnixNanoCreateTime != 100 {
t.Fatalf("invalid create/update unix nano time: %#v", createWithDefaultTimeResult) t.Fatalf("invalid create/update unix nano time: %#v", createWithDefaultTimeResult)
} }