58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
package roommq
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"google.golang.org/protobuf/proto"
|
|
roomeventsv1 "hyapp.local/api/proto/events/room/v1"
|
|
)
|
|
|
|
func TestRoomOutboxMessageRoundTrip(t *testing.T) {
|
|
body, err := proto.Marshal(&roomeventsv1.RoomRocketIgnited{RocketId: "rocket-1", Level: 2, LaunchAtMs: 12345})
|
|
if err != nil {
|
|
t.Fatalf("marshal body: %v", err)
|
|
}
|
|
envelope := &roomeventsv1.EventEnvelope{
|
|
AppCode: "default",
|
|
EventId: "evt-1",
|
|
EventType: "RoomRocketIgnited",
|
|
RoomId: "room-1",
|
|
RoomVersion: 9,
|
|
OccurredAtMs: 12300,
|
|
Body: body,
|
|
}
|
|
encoded, err := EncodeRoomOutboxMessage(envelope)
|
|
if err != nil {
|
|
t.Fatalf("encode: %v", err)
|
|
}
|
|
decoded, message, err := DecodeRoomOutboxMessage(encoded)
|
|
if err != nil {
|
|
t.Fatalf("decode: %v", err)
|
|
}
|
|
if message.MessageType != MessageTypeRoomOutboxEvent || decoded.GetEventId() != envelope.GetEventId() {
|
|
t.Fatalf("unexpected decoded message: %#v %#v", message, decoded)
|
|
}
|
|
}
|
|
|
|
func TestRoomRocketLaunchDueRoundTrip(t *testing.T) {
|
|
encoded, err := EncodeRoomRocketLaunchDueMessage(RoomRocketLaunchDueMessage{
|
|
AppCode: "default",
|
|
RoomID: "room-1",
|
|
RocketID: "rocket-1",
|
|
Level: 1,
|
|
LaunchAtMS: 12345,
|
|
ResetAtMS: 99999,
|
|
CommandID: "cmd_room_rocket_launch_rocket-1",
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("encode: %v", err)
|
|
}
|
|
decoded, err := DecodeRoomRocketLaunchDueMessage(encoded)
|
|
if err != nil {
|
|
t.Fatalf("decode: %v", err)
|
|
}
|
|
if decoded.MessageType != MessageTypeRoomRocketLaunchDue || decoded.RocketID != "rocket-1" || decoded.LaunchAtMS != 12345 {
|
|
t.Fatalf("unexpected decoded message: %#v", decoded)
|
|
}
|
|
}
|