hyapp-server/pkg/roommq/messages_test.go
2026-05-20 14:34:10 +08:00

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.RoomTreasureCountdownStarted{BoxId: "box-1", Level: 2, OpenAtMs: 12345})
if err != nil {
t.Fatalf("marshal body: %v", err)
}
envelope := &roomeventsv1.EventEnvelope{
AppCode: "default",
EventId: "evt-1",
EventType: "RoomTreasureCountdownStarted",
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 TestRoomTreasureOpenDueRoundTrip(t *testing.T) {
encoded, err := EncodeRoomTreasureOpenDueMessage(RoomTreasureOpenDueMessage{
AppCode: "default",
RoomID: "room-1",
BoxID: "box-1",
Level: 1,
OpenAtMS: 12345,
ResetAtMS: 99999,
CommandID: "cmd_room_treasure_open_box-1",
})
if err != nil {
t.Fatalf("encode: %v", err)
}
decoded, err := DecodeRoomTreasureOpenDueMessage(encoded)
if err != nil {
t.Fatalf("decode: %v", err)
}
if decoded.MessageType != MessageTypeRoomTreasureOpenDue || decoded.BoxID != "box-1" || decoded.OpenAtMS != 12345 {
t.Fatalf("unexpected decoded message: %#v", decoded)
}
}