Esempio n. 1
0
 def setUp(self):
     self.pwp = PWProtocolFactory().buildProtocol('localhost')
     self.hcriat = CreaturesHandler()
     self.hcriat.score = Score()
     self.pwp.hcriat = self.hcriat
     self.pwp.hcriat.pw_map = Mapa("mapa")
     self.tr = NoDelayTransport()
     self.pwp.makeConnection(self.tr)
     self.player = self.pwp.hcriat.create_player(Team.BLUE, 1, 1)
Esempio n. 2
0
class TestProtocol(TestCase):

    def setUp(self):
        self.pwp = PWProtocolFactory().buildProtocol('localhost')
        self.hcriat = CreaturesHandler()
        self.hcriat.score = Score()
        self.pwp.hcriat = self.hcriat
        self.pwp.hcriat.pw_map = Mapa("mapa")
        self.tr = NoDelayTransport()
        self.pwp.makeConnection(self.tr)
        self.player = self.pwp.hcriat.create_player(Team.BLUE, 1, 1)

    def tearDown(self):
        """Cancel all the pending calls to avoid problems"""
        pending = reactor.getDelayedCalls()
        for p in pending:
            if p.active():
                p.cancel()

    def test_receive_login(self):
        self.assertEqual(self.pwp.login(1), {'uid': 3})

    def test_receive_move(self):
        # moving a player who doesn't exists
        self.assertRaises(PlayerDoesNotExist, self.pwp.move, 1, 'n')
        # moving an existing player
        self.assertEqual(self.pwp.move(self.player.uid, 's'), OK_RESPONSE)
        # moving a player who can't move
        self.player.block_movement()
        # TODO: create a better response
        self.assertEqual(self.pwp.move(self.player.uid, 'n'), OK_RESPONSE)

    def test_receive_player_shoot(self):
        self.assertEqual(self.pwp.player_shoot(self.player.uid, 'n'), OK_RESPONSE)
        # testing a player who can't shot
        self.player.block_shot()
        # TODO: create a better response
        self.assertEqual(self.pwp.player_shoot(self.player.uid, 'n'), OK_RESPONSE)

    def test_restart_round(self):
        self.assertEqual(self.pwp.restart_round(self.player.uid), OK_RESPONSE)

    def test_hit(self):
        self.assertIsNone(self.pwp.hit(self.player.uid, 10))  # TODO: check what the client receive

    def test_die(self):
        self.assertIsNone(self.pwp.die(self.player.uid))  # TODO: check what the client receive

    def test_connection_lost(self):
        self.assertEqual(self.pwp.login(1), {'uid': 3})
        self.assertEqual(len(self.hcriat.jugadores), 2)
        self.pwp.connectionLost('test')
        self.assertEqual(len(self.hcriat.jugadores), 1)

    def test_add_bot(self):
        self.assertEqual(len(self.pwp.factory.bots[Team.BLUE]), 0)
        self.pwp.add_bot(Team.BLUE)
        self.assertEqual(len(self.pwp.factory.bots[Team.BLUE]), 1)

    def test_delete_bot(self):
        self.pwp.add_bot(Team.BLUE)
        self.pwp.delete_bot(Team.BLUE)
        self.assertEqual(len(self.pwp.factory.bots[Team.BLUE]), 0)

    def test_delete_non_existent_bot(self):
        self.pwp.delete_bot(Team.BLUE)
        self.assertEqual(len(self.pwp.factory.bots[Team.BLUE]), 0)