From f3e085ceccd95899d8d705a28266003709ab87b7 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 4 Jul 2025 09:20:48 -0400 Subject: refactor playerControl Allow to propagate errors in order to handle them acordingly. Use playerNotifications by value to reduce the amount of allocations. Add session managment playerNotifications. Support marshalling notifications to plain text. --- go/game/playerControl_test.go | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 go/game/playerControl_test.go (limited to 'go/game/playerControl_test.go') diff --git a/go/game/playerControl_test.go b/go/game/playerControl_test.go new file mode 100644 index 00000000..34f20c59 --- /dev/null +++ b/go/game/playerControl_test.go @@ -0,0 +1,56 @@ +package game + +import ( + "testing" +) + +const PRORITY_STRING = "!priority{}" + +func TestMarshalPriority(t *testing.T) { + exp := PRORITY_STRING + n := newPriorityNotification() + is := string(n.Marshal(nil)) + if is != exp { + t.Fatalf("expected string %s does not match %s\n", exp, is) + } +} + +func TestUnmarshalPriority(t *testing.T) { + in := PRORITY_STRING + n, err := UnmarshalPlayerNotification(nil, []byte(in)) + if err != nil { + t.Fatal(err) + } + if n.Notification != PriorityNotification { + t.Fatalf("expexted PriorityNotificaton not %s", n.Notification) + } +} + +const PICK_STRING = "!pick{[base/archer, magic/more!]}" + +func TestMarshalPick(t *testing.T) { + exp := PICK_STRING + poc := NewPileOfCards() + poc.AddCard(NewCard("base/archer")) + poc.AddCard(NewCard("magic/more!")) + n := newDraftPickPrompt(poc) + is := string(n.Marshal(nil)) + if is != exp { + t.Fatalf("expected string %s does not match %s\n", exp, is) + } +} + +func TestUnmarshalPick(t *testing.T) { + in := PICK_STRING + n, err := UnmarshalPlayerNotification(nil, []byte(in)) + if err != nil { + t.Fatal(err) + } + if n.Notification != DraftPickPrompt { + t.Fatalf("expexted DraftPickPrompt not %s", n.Notification) + } + pack := n.Context.(PileOfCards) + if len(pack.Cards()) != 2 { + t.Fatalf("expexted two cards in pack not %d", len(pack.Cards())) + } +} -- cgit v1.2.3