+
+ def test_GainHealthAndClearBitsOrMSB_MSB_clear(self):
+ board = self.make_board(player_bits=[BITS.NORTH])
+ board.lose_health()
+ state_before = board.export()
+ card = self.make_location_card([BITS.BLUE, BITS.NORTH])
+ actions.GainHealthAndClearBitsOrMSB(set()).perform_action(board, card)
+ state_after = board.export()
+ self.assertEqual(state_after['health'], state_before['health'] + 1)
+ self.assert_player_bits(board)
+ self.assert_state(
+ state_before, state_after, exclude=['health'],
+ player_exclude=['bits'])
+
+ def test_GainHealthAndClearBitsOrMSB_MSB_set(self):
+ board = self.make_board(player_bits=[BITS.MSB, BITS.NORTH])
+ board.lose_health()
+ state_before = board.export()
+ card = self.make_location_card([BITS.BLUE, BITS.NORTH])
+ actions.GainHealthAndClearBitsOrMSB(set()).perform_action(board, card)
+ state_after = board.export()
+ self.assertEqual(state_after['health'], state_before['health'] + 1)
+ self.assert_player_bits(board, BITS.NORTH)
+ self.assert_state(
+ state_before, state_after, exclude=['health'],
+ player_exclude=['bits'])
+
+ def test_AllowKnightMove(self):
+ board = self.make_board(player_bits=[BITS.RED, BITS.BLUE])
+ actions.AllowChessMove(
+ set([BITS.RED, BITS.BLUE]), chesspiece="KNIGHT"
+ ).perform_action(board, None)
+ self.assertEqual(board.player.movement_mode, MOVES.KNIGHT)
+
+ def test_AllowBishopMove(self):
+ board = self.make_board(player_bits=[BITS.RED, BITS.BLUE])
+ actions.AllowChessMove(
+ set([BITS.RED, BITS.BLUE]), chesspiece="BISHOP"
+ ).perform_action(board, None)
+ self.assertEqual(board.player.movement_mode, MOVES.BISHOP)
+
+ def test_AllowCastleMove(self):
+ board = self.make_board(player_bits=[BITS.RED, BITS.BLUE])
+ actions.AllowChessMove(
+ set([BITS.RED, BITS.BLUE]), chesspiece="CASTLE"
+ ).perform_action(board, None)
+ self.assertEqual(board.player.movement_mode, MOVES.CASTLE)