@@ -91,7 +91,7 @@ func TestCallbacks(t *testing.T) {
91
91
},
92
92
{
93
93
callbacks : []callback {{h : c1 }, {h : c2 , before : "c4" , after : "c5" }, {h : c3 }, {h : c4 }, {h : c5 }, {h : c2 , remove : true }},
94
- results : []string {"c1" , "c5 " , "c3 " , "c4 " },
94
+ results : []string {"c1" , "c3 " , "c4 " , "c5 " },
95
95
},
96
96
{
97
97
callbacks : []callback {{h : c1 }, {name : "c" , h : c2 }, {h : c3 }, {name : "c" , h : c4 , replace : true }},
@@ -206,3 +206,49 @@ func TestPluginCallbacks(t *testing.T) {
206
206
t .Errorf ("callbacks tests failed, got %v" , msg )
207
207
}
208
208
}
209
+
210
+ func TestCallbacksGet (t * testing.T ) {
211
+ db , _ := gorm .Open (nil , nil )
212
+ createCallback := db .Callback ().Create ()
213
+
214
+ createCallback .Before ("*" ).Register ("c1" , c1 )
215
+ if cb := createCallback .Get ("c1" ); reflect .DeepEqual (cb , c1 ) {
216
+ t .Errorf ("callbacks tests failed, got: %p, want: %p" , cb , c1 )
217
+ }
218
+
219
+ createCallback .Remove ("c1" )
220
+ if cb := createCallback .Get ("c2" ); cb != nil {
221
+ t .Errorf ("callbacks test failed. got: %p, want: nil" , cb )
222
+ }
223
+ }
224
+
225
+ func TestCallbacksRemove (t * testing.T ) {
226
+ db , _ := gorm .Open (nil , nil )
227
+ createCallback := db .Callback ().Create ()
228
+
229
+ createCallback .Before ("*" ).Register ("c1" , c1 )
230
+ createCallback .After ("*" ).Register ("c2" , c2 )
231
+ createCallback .Before ("c4" ).Register ("c3" , c3 )
232
+ createCallback .After ("c2" ).Register ("c4" , c4 )
233
+
234
+ // callbacks: []string{"c1", "c3", "c4", "c2"}
235
+ createCallback .Remove ("c1" )
236
+ if ok , msg := assertCallbacks (createCallback , []string {"c3" , "c4" , "c2" }); ! ok {
237
+ t .Errorf ("callbacks tests failed, got %v" , msg )
238
+ }
239
+
240
+ createCallback .Remove ("c4" )
241
+ if ok , msg := assertCallbacks (createCallback , []string {"c3" , "c2" }); ! ok {
242
+ t .Errorf ("callbacks tests failed, got %v" , msg )
243
+ }
244
+
245
+ createCallback .Remove ("c2" )
246
+ if ok , msg := assertCallbacks (createCallback , []string {"c3" }); ! ok {
247
+ t .Errorf ("callbacks tests failed, got %v" , msg )
248
+ }
249
+
250
+ createCallback .Remove ("c3" )
251
+ if ok , msg := assertCallbacks (createCallback , []string {}); ! ok {
252
+ t .Errorf ("callbacks tests failed, got %v" , msg )
253
+ }
254
+ }
0 commit comments