aboutsummaryrefslogtreecommitdiff
path: root/go/game/winCondition_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/winCondition_test.go')
-rw-r--r--go/game/winCondition_test.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/go/game/winCondition_test.go b/go/game/winCondition_test.go
index c50e9692..3c1551a6 100644
--- a/go/game/winCondition_test.go
+++ b/go/game/winCondition_test.go
@@ -38,3 +38,31 @@ func TestKingGame(t *testing.T) {
t.Fatal("p or o is not a winner", w)
}
}
+
+func TestConcession(t *testing.T) {
+ s := NewLocalState()
+ s.SetMap(newEmpty2x2Map())
+ p := s.AddNewPlayer("p", NewDeck())
+ s.addNewUnit(NewCard("misc/king"), Position{0, 0}, p)
+ o := s.AddNewPlayer("o", NewDeck())
+ s.addNewUnit(NewCard("misc/king"), Position{1, 1}, o)
+
+ o.concede()
+ s._map.WinCondition = KingGame
+ w := s._map.WinCondition.check(s)
+ if len(w) != 1 {
+ t.Fatal("winner not declared", w)
+ }
+ if w[0] != p {
+ t.Fatal("p is not the winner", w)
+ }
+
+ s._map.WinCondition = DeathMatch
+ w = s._map.WinCondition.check(s)
+ if len(w) != 1 {
+ t.Fatal("winner not declared", w)
+ }
+ if w[0] != p {
+ t.Fatal("p is not the winner", w)
+ }
+}