def test_bombs_disable_production(self):
        team_factory = Factory(0, 1, 3, 10, (0, 0))
        team_factory.bombs_arriving = 1
        team_factory.resolve_bombs()

        # Bomb a factory again while producing
        again_bombed = Factory(0, -1, 3, 10, (0, 0))
        again_bombed.bombs_arriving = 1
        again_bombed.resolve_bombs()

        # Disable neutral factory then take it over
        captured_factory = Factory(0, 0, 3, 10, (0, 0))
        captured_factory.bombs_arriving = 1
        captured_factory.resolve_bombs()

        for i in range(5):
            team_factory.produce()
            captured_factory.produce()
            again_bombed.produce()
            self.assertEqual(0, team_factory.stock)
            self.assertEqual(4-i, team_factory.disabled_turns)
            self.assertEqual(0, again_bombed.stock)
            self.assertEqual(0, captured_factory.stock)
            self.assertEqual(4-i, captured_factory.disabled_turns)

            # Captured here
            if i == 2:
                captured_factory.team = -1
                again_bombed.bombs_arriving = 1
                again_bombed.resolve_bombs()

        team_factory.produce()
        self.assertEqual(3, team_factory.stock)

        captured_factory.produce()
        self.assertEqual(3, captured_factory.stock)

        again_bombed.produce()
        self.assertEqual(0, again_bombed.stock)
        self.assertEqual(2, again_bombed.disabled_turns)