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  }