github.com/systematiccaos/gorm@v1.22.6/schema/callbacks_test.go (about) 1 package schema_test 2 3 import ( 4 "reflect" 5 "sync" 6 "testing" 7 8 "github.com/systematiccaos/gorm" 9 "github.com/systematiccaos/gorm/schema" 10 ) 11 12 type UserWithCallback struct { 13 } 14 15 func (UserWithCallback) BeforeSave(*gorm.DB) error { 16 return nil 17 } 18 19 func (UserWithCallback) AfterCreate(*gorm.DB) error { 20 return nil 21 } 22 23 func TestCallback(t *testing.T) { 24 user, err := schema.Parse(&UserWithCallback{}, &sync.Map{}, schema.NamingStrategy{}) 25 if err != nil { 26 t.Fatalf("failed to parse user with callback, got error %v", err) 27 } 28 29 for _, str := range []string{"BeforeSave", "AfterCreate"} { 30 if !reflect.Indirect(reflect.ValueOf(user)).FieldByName(str).Interface().(bool) { 31 t.Errorf("%v should be true", str) 32 } 33 } 34 35 for _, str := range []string{"BeforeCreate", "BeforeUpdate", "AfterUpdate", "AfterSave", "BeforeDelete", "AfterDelete", "AfterFind"} { 36 if reflect.Indirect(reflect.ValueOf(user)).FieldByName(str).Interface().(bool) { 37 t.Errorf("%v should be false", str) 38 } 39 } 40 }