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  }