Game state management.
[naja.git] / naja / tests / test_gameboard.py
index a895e18b32f484a27976fded4ad8397d4da28fa0..ca973a1dc01b7c7a992594132827e09bd1ee5adf 100644 (file)
@@ -1,7 +1,33 @@
 from unittest import TestCase
 
 from naja.constants import BITS
-from naja.gameboard import LocationCard
+from naja.gameboard import GameBoard, LocationCard
+
+
+class TestGameBoard(TestCase):
+    def test_export_new_board(self):
+        board = GameBoard(None, 4, 4)
+        self.assertEqual(board.export(), {
+            'max_health': 4,
+            'health': 4,
+            'wins_required': 4,
+            'wins': 0,
+            'locations': {},
+        })
+
+    def test_lose_health(self):
+        board = GameBoard(None, 4, 4)
+        self.assertEqual(board.health, 4)
+        state_1 = board.export()
+
+        board.lose_health()
+        self.assertEqual(board.health, 3)
+        state_2 = board.export()
+
+        # Make sure nothing else has changed.
+        state_1.pop('health')
+        state_2.pop('health')
+        self.assertEqual(state_1, state_2)
 
 
 class TestLocationCard(TestCase):