diff options
Diffstat (limited to 'go/game/cardImplementations_test.go')
| -rw-r--r-- | go/game/cardImplementations_test.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index 9b356c5b..3a6ea9e2 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -515,3 +515,50 @@ func TestNo(t *testing.T) { t.Fatal("Approach not countered") } } + +func TestRelic(t *testing.T) { + s, _, p, o := newMockState() + p.Resource = 0 + o.Resource = 0 + s.addNewArtifact(NewCard("equipments/relic"), Position{0, 0}, p) + + s.changePhase(upkeepPhase) + if !s.stack.IsEmpty() { + t.Fatal("Unexpected relic trigger") + } + + s.addNewUnit(NewCard("base/archer"), Position{0, 1}, p) + + s.changePhase(upkeepPhase) + if s.stack.IsEmpty() { + t.Fatal("Relic not triggered") + } + s.stack.pop() + if p.Resource != 1 { + t.Fatal("player did not gain 1 resource") + } + + s.addNewUnit(NewCard("base/archer"), Position{1, 1}, o) + s.changePhase(upkeepPhase) + if s.stack.IsEmpty() { + t.Fatal("Relic not triggered") + } + s.stack.pop() + if p.Resource != 2 && o.Resource != 1 { + t.Fatal("player and opponent did not gain 1 resource each") + } + + s.addNewUnit(NewCard("base/archer"), Position{1, 0}, o) + s.changePhase(upkeepPhase) + if s.stack.IsEmpty() { + t.Fatal("Relic not triggered") + } + s.stack.pop() + if p.Resource != 2 { + t.Fatal("player resource changed") + } + + if o.Resource != 2 { + t.Fatal("opponent did not gain 1 resource") + } +} |
