40 lines
907 B
Go
40 lines
907 B
Go
|
package watermillmsg_test
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"gitea.dwysokinski.me/twhelp/corev3/internal/watermillmsg"
|
||
|
"github.com/ThreeDotsLabs/watermill"
|
||
|
"github.com/google/uuid"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
type testPayload struct {
|
||
|
ID string `json:"id"`
|
||
|
Num int `json:"num"`
|
||
|
When time.Time `json:"when"`
|
||
|
}
|
||
|
|
||
|
func TestJSONMarshaler(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
payloadToMarshal := testPayload{
|
||
|
ID: watermill.NewUUID(),
|
||
|
Num: 123,
|
||
|
When: time.Date(2022, time.July, 30, 14, 13, 12, 0, time.UTC),
|
||
|
}
|
||
|
|
||
|
marshaler := watermillmsg.JSONMarshaler{NewUUID: uuid.NewString}
|
||
|
|
||
|
m, err := marshaler.Marshal(context.Background(), payloadToMarshal)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
var payloadToUnmarshal testPayload
|
||
|
require.NoError(t, marshaler.Unmarshal(m, &payloadToUnmarshal))
|
||
|
|
||
|
assert.Equal(t, payloadToMarshal, payloadToUnmarshal)
|
||
|
}
|