aboutsummaryrefslogtreecommitdiff
path: root/go/game/cardImplementations_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/cardImplementations_test.go')
-rw-r--r--go/game/cardImplementations_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go
index b3ac5811..51aab02f 100644
--- a/go/game/cardImplementations_test.go
+++ b/go/game/cardImplementations_test.go
@@ -346,3 +346,51 @@ func TestPowerToThePeople(t *testing.T) {
t.Fatal("Not gained 4 resource")
}
}
+
+func TestReformer(t *testing.T) {
+ s, _, player, _ := newMockState()
+
+ r := s.addNewUnit(NewCard("exp1/reformer"), Position{0, 0}, player)
+
+ c1 := NewCard("base/sword")
+ player.Hand.AddCard(c1)
+
+ ra := r.FullActions[0]
+ s.ResolveAction(ra)
+ s.handleTriggers()
+
+ if len(s.triggers) != 1 {
+ t.Fatal("No active reformer trigger")
+ }
+
+ player.discardCard(c1)
+ if len(s.events) != 1 {
+ t.Fatal("No discard event fired")
+ }
+
+ s.handleTriggers()
+ if s.stack.IsEmpty() {
+ t.Fatal("reformer draw not triggered")
+ }
+
+ if len(s.triggers) != 1 {
+ t.Fatal("Reformer trigger removed")
+ }
+
+ s.stack.pop()
+ if player.Hand.IsEmpty() {
+ t.Fatal("no card drawn")
+ }
+
+ player.DiscardPile.MoveCard(c1, player.Hand)
+ da := NewFreeDiscardAction(player)
+ da.Target().AddSelection(player.Hand.Cards()[0])
+ da.Target().AddSelection(player.Hand.Cards()[1])
+ s.declareAction(da)
+ s.stack.pop()
+ s.handleTriggers()
+ s.stack.pop()
+ if player.Hand.Size() != 2 {
+ t.Fatal("not two cards drawn")
+ }
+}