40 lines
995 B
Go
40 lines
995 B
Go
package middleware_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/ThreeDotsLabs/watermill/message/router/middleware"
|
|
|
|
"github.com/ThreeDotsLabs/watermill/message"
|
|
)
|
|
|
|
func TestCorrelationID(t *testing.T) {
|
|
handlerErr := errors.New("foo")
|
|
|
|
handler := middleware.CorrelationID(func(msg *message.Message) ([]*message.Message, error) {
|
|
return message.Messages{message.NewMessage("2", nil)}, handlerErr
|
|
})
|
|
|
|
msg := message.NewMessage("1", nil)
|
|
middleware.SetCorrelationID("correlation_id", msg)
|
|
|
|
producedMsgs, err := handler(msg)
|
|
|
|
assert.Equal(t, "2", producedMsgs[0].UUID)
|
|
assert.Equal(t, middleware.MessageCorrelationID(producedMsgs[0]), "correlation_id")
|
|
assert.Equal(t, handlerErr, err)
|
|
}
|
|
|
|
func TestSetCorrelationID_already_set(t *testing.T) {
|
|
msg := message.NewMessage("", nil)
|
|
|
|
middleware.SetCorrelationID("foo", msg)
|
|
middleware.SetCorrelationID("bar", msg)
|
|
|
|
assert.Equal(t, "foo", middleware.MessageCorrelationID(msg))
|
|
}
|