github.com/pjdufour-truss/pop@v4.11.2-0.20190705085848-4c90b0ff4d5a+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 if PDB == nil { 11 t.Skip("skipping integration tests") 12 } 13 transaction(func(tx *Connection) { 14 r := require.New(t) 15 16 user := &CallbacksUser{ 17 BeforeS: "BS", 18 BeforeC: "BC", 19 BeforeU: "BU", 20 BeforeD: "BD", 21 AfterS: "AS", 22 AfterC: "AC", 23 AfterU: "AU", 24 AfterD: "AD", 25 AfterF: "AF", 26 } 27 28 r.NoError(tx.Save(user)) 29 30 r.Equal("BeforeSave", user.BeforeS) 31 r.Equal("BeforeCreate", user.BeforeC) 32 r.Equal("AfterSave", user.AfterS) 33 r.Equal("AfterCreate", user.AfterC) 34 r.Equal("BU", user.BeforeU) 35 r.Equal("AU", user.AfterU) 36 37 r.NoError(tx.Update(user)) 38 39 r.Equal("BeforeUpdate", user.BeforeU) 40 r.Equal("AfterUpdate", user.AfterU) 41 r.Equal("BD", user.BeforeD) 42 r.Equal("AD", user.AfterD) 43 44 r.Equal("AF", user.AfterF) 45 r.NoError(tx.Find(user, user.ID)) 46 r.Equal("AfterFind", user.AfterF) 47 48 r.NoError(tx.Destroy(user)) 49 50 r.Equal("BeforeDestroy", user.BeforeD) 51 r.Equal("AfterDestroy", user.AfterD) 52 53 }) 54 } 55 56 func Test_Callbacks_on_Slice(t *testing.T) { 57 if PDB == nil { 58 t.Skip("skipping integration tests") 59 } 60 transaction(func(tx *Connection) { 61 r := require.New(t) 62 for i := 0; i < 2; i++ { 63 r.NoError(tx.Create(&CallbacksUser{})) 64 } 65 66 users := CallbacksUsers{} 67 r.NoError(tx.All(&users)) 68 69 r.Len(users, 2) 70 71 for _, u := range users { 72 r.Equal("AfterFind", u.AfterF) 73 } 74 }) 75 }