diff options
Diffstat (limited to 'go/game/state_test.go')
| -rw-r--r-- | go/game/state_test.go | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/go/game/state_test.go b/go/game/state_test.go index ad7fdca7..6a9d6eb8 100644 --- a/go/game/state_test.go +++ b/go/game/state_test.go @@ -6,17 +6,47 @@ import ( func TestDeclareActions(t *testing.T) { s := NewLocalState() - s.SetMap(newEmpty2x2Map()) + m := newEmpty2x2Map() + s.SetMap(m) + p := s.AddNewPlayer("p", NewDeck()) + p.Store.AddCard(NewCard("base/sword")) p.Ctrl = newMockPlayerControl(p) o := s.AddNewPlayer("o", NewDeck()) o.Ctrl = newMockPlayerControl(o) + a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p) k := s.addNewUnit(NewCard("base/knight"), Position{1, 1}, o) + sa := NewAttackAction(a) sa.Target().AddSelection(k) s.declareAction(sa) if !s.stack.IsEmpty() { - t.Fatal("declared slow action during upkeep") + t.Fatal("declared attack action during upkeep") + } + + ma := NewMoveAction(a) + ma.Target().AddSelection(m.TileAt(Position{1, 0})) + s.declareAction(ma) + if !s.stack.IsEmpty() { + t.Fatal("declared move action during upkeep") + } + + ba := newBuyAction(p) + ba.Target().AddSelection(p.Store.Cards()[0]) + s.declareAction(ba) + if !s.stack.IsEmpty() { + t.Fatal("declared buy action during upkeep") + } + + s.activePhase = Phases.ActionPhase + s.declareAction(sa) + if s.stack.IsEmpty() { + t.Fatal("attack action not declared") + } + + s.declareAction(ma) + if len(s.stack.Actions) == 2 { + t.Fatal("declared move action with non empty stack") } } |
