github.com/duskeagle/pop@v4.10.1-0.20190417200916-92f2b794aab5+incompatible/callbacks_test.go (about) 1 package pop 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func Test_Callbacks(t *testing.T) { 11 transaction(func(tx *Connection) { 12 r := require.New(t) 13 14 user := &CallbacksUser{ 15 BeforeS: "BS", 16 BeforeC: "BC", 17 BeforeU: "BU", 18 BeforeD: "BD", 19 AfterS: "AS", 20 AfterC: "AC", 21 AfterU: "AU", 22 AfterD: "AD", 23 AfterF: "AF", 24 } 25 26 r.NoError(tx.Save(user)) 27 28 r.Equal("BeforeSave", user.BeforeS) 29 r.Equal("BeforeCreate", user.BeforeC) 30 r.Equal("AfterSave", user.AfterS) 31 r.Equal("AfterCreate", user.AfterC) 32 r.Equal("BU", user.BeforeU) 33 r.Equal("AU", user.AfterU) 34 35 r.NoError(tx.Update(user)) 36 37 r.Equal("BeforeUpdate", user.BeforeU) 38 r.Equal("AfterUpdate", user.AfterU) 39 r.Equal("BD", user.BeforeD) 40 r.Equal("AD", user.AfterD) 41 42 r.Equal("AF", user.AfterF) 43 r.NoError(tx.Find(user, user.ID)) 44 r.Equal("AfterFind", user.AfterF) 45 46 r.NoError(tx.Destroy(user)) 47 48 r.Equal("BeforeDestroy", user.BeforeD) 49 r.Equal("AfterDestroy", user.AfterD) 50 51 }) 52 } 53 54 func Test_Callbacks_on_Slice(t *testing.T) { 55 transaction(func(tx *Connection) { 56 r := require.New(t) 57 for i := 0; i < 2; i++ { 58 r.NoError(tx.Create(&CallbacksUser{})) 59 } 60 61 users := CallbacksUsers{} 62 r.NoError(tx.All(context.TODO(),&users)) 63 64 r.Len(users, 2) 65 66 for _, u := range users { 67 r.Equal("AfterFind", u.AfterF) 68 } 69 }) 70 }