57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package cqrs_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/ThreeDotsLabs/watermill"
|
|
"github.com/ThreeDotsLabs/watermill/components/cqrs"
|
|
)
|
|
|
|
var jsonEventToMarshal = TestEvent{
|
|
ID: watermill.NewULID(),
|
|
When: time.Date(2016, time.August, 15, 14, 13, 12, 0, time.UTC),
|
|
}
|
|
|
|
func TestJsonMarshaler(t *testing.T) {
|
|
marshaler := cqrs.JSONMarshaler{}
|
|
|
|
msg, err := marshaler.Marshal(jsonEventToMarshal)
|
|
require.NoError(t, err)
|
|
|
|
eventToUnmarshal := TestEvent{}
|
|
err = marshaler.Unmarshal(msg, &eventToUnmarshal)
|
|
require.NoError(t, err)
|
|
|
|
assert.EqualValues(t, jsonEventToMarshal, eventToUnmarshal)
|
|
}
|
|
|
|
func TestJSONMarshaler_Marshal_new_uuid_set(t *testing.T) {
|
|
marshaler := cqrs.JSONMarshaler{
|
|
NewUUID: func() string {
|
|
return "foo"
|
|
},
|
|
}
|
|
|
|
msg, err := marshaler.Marshal(jsonEventToMarshal)
|
|
require.NoError(t, err)
|
|
|
|
assert.Equal(t, msg.UUID, "foo")
|
|
}
|
|
|
|
func TestJSONMarshaler_Marshal_generate_name(t *testing.T) {
|
|
marshaler := cqrs.JSONMarshaler{
|
|
GenerateName: func(v interface{}) string {
|
|
return "foo"
|
|
},
|
|
}
|
|
|
|
msg, err := marshaler.Marshal(jsonEventToMarshal)
|
|
require.NoError(t, err)
|
|
|
|
assert.Equal(t, msg.Metadata.Get("name"), "foo")
|
|
}
|