package broker import ( "context" "testing" ) type testHook struct { f bool } func (t *testHook) Publish1(fn FuncPublish) FuncPublish { return func(ctx context.Context, topic string, msg *Message, opts ...PublishOption) error { t.f = true return fn(ctx, topic, msg, opts...) } } func TestNoopHook(t *testing.T) { h := &testHook{} b := NewBroker(Hooks(HookPublish(h.Publish1))) if err := b.Init(); err != nil { t.Fatal(err) } if err := b.Publish(context.TODO(), "", nil); err != nil { t.Fatal(err) } if !h.f { t.Fatal("hook not works") } }