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