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  }