Add context for Publish and AddEventListener (#41665)
* Add context for Publish and AddEventListener * Add test and listenersWithCtx * Refactor listener logic * Refactor publish logic for all combination of listeners and publish with and without ctx
This commit is contained in:
+57
-2
@@ -122,7 +122,7 @@ func TestQuery_HandlerReturnsError(t *testing.T) {
|
||||
require.Error(t, err, "expected error but got none")
|
||||
}
|
||||
|
||||
func TestEvent(t *testing.T) {
|
||||
func TestEventPublish(t *testing.T) {
|
||||
bus := New()
|
||||
|
||||
var invoked bool
|
||||
@@ -138,9 +138,64 @@ func TestEvent(t *testing.T) {
|
||||
require.True(t, invoked)
|
||||
}
|
||||
|
||||
func TestEvent_NoRegisteredListener(t *testing.T) {
|
||||
func TestEventPublish_NoRegisteredListener(t *testing.T) {
|
||||
bus := New()
|
||||
|
||||
err := bus.Publish(&testQuery{})
|
||||
require.NoError(t, err, "unable to publish event")
|
||||
}
|
||||
|
||||
func TestEventCtxPublishCtx(t *testing.T) {
|
||||
bus := New()
|
||||
|
||||
var invoked bool
|
||||
|
||||
bus.AddEventListenerCtx(func(ctx context.Context, query *testQuery) error {
|
||||
invoked = true
|
||||
return nil
|
||||
})
|
||||
|
||||
err := bus.PublishCtx(context.Background(), &testQuery{})
|
||||
require.NoError(t, err, "unable to publish event")
|
||||
|
||||
require.True(t, invoked)
|
||||
}
|
||||
|
||||
func TestEventPublishCtx_NoRegisteredListener(t *testing.T) {
|
||||
bus := New()
|
||||
|
||||
err := bus.PublishCtx(context.Background(), &testQuery{})
|
||||
require.NoError(t, err, "unable to publish event")
|
||||
}
|
||||
|
||||
func TestEventPublishCtx(t *testing.T) {
|
||||
bus := New()
|
||||
|
||||
var invoked bool
|
||||
|
||||
bus.AddEventListener(func(query *testQuery) error {
|
||||
invoked = true
|
||||
return nil
|
||||
})
|
||||
|
||||
err := bus.PublishCtx(context.Background(), &testQuery{})
|
||||
require.NoError(t, err, "unable to publish event")
|
||||
|
||||
require.True(t, invoked)
|
||||
}
|
||||
|
||||
func TestEventCtxPublish(t *testing.T) {
|
||||
bus := New()
|
||||
|
||||
var invoked bool
|
||||
|
||||
bus.AddEventListenerCtx(func(ctx context.Context, query *testQuery) error {
|
||||
invoked = true
|
||||
return nil
|
||||
})
|
||||
|
||||
err := bus.Publish(&testQuery{})
|
||||
require.NoError(t, err, "unable to publish event")
|
||||
|
||||
require.True(t, invoked)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user