Example #1
0
class WorldTest(unittest.TestCase):
    RES_DIR = os.path.join('..', '..', 'res')

    def setUp(self):
        terrain = pygame.image.load(os.path.join(self.RES_DIR,
                                                       'testmap.png'))
        self.world = World(terrain.get_width(), terrain.get_height(),
                           terrain)
        self.world.ship = Ship(Vec2D(100, 100), Vec2D(50, 50))

    def test_shoot_rocket(self):
        self.assertIsNotNone(self.world.shoot())

    def test_ship_collision(self):
        self.world.check_ship_collisions()
        self.assertTrue(self.world.ship.alive)

        self.world.ship.pos = Vec2D(200, 50)
        self.world.check_ship_collisions()
        self.assertFalse(self.world.ship.alive)

        self.world.ship.pos = Vec2D(-10, -50)
        self.world.check_ship_collisions()

    def test_rocket_ship_collision(self):
        rocket = Rocket(Vec2D(200, 100), Vec2D(10, 10))
        self.world.check_rocket_movable_collisions(rocket)
        self.assertTrue(self.world.ship.alive)

        rocket.pos = Vec2D(100, 100)
        self.world.check_rocket_movable_collisions(rocket)
        self.assertFalse(self.world.ship.alive)

    def test_rocket_ground_collision(self):
        rocket = Rocket(Vec2D(100, 100), Vec2D(10, 10))
        self.world.check_rocket_ground_collisions(rocket)
        self.assertTrue(rocket.alive)
        self.assertEqual(0, len(self.world.events))

        rocket.pos = Vec2D(200, 50)
        self.world.check_rocket_ground_collisions(rocket)
        self.assertFalse(rocket.alive)
        self.assertEqual(1, len(self.world.events))

    def test_ship_shoot(self):
        self.assertIsNotNone(self.world.ship.shoot_rocket())

    def test_enemy_shoot(self):
        rocket = self.world.ship.shoot_rocket()
        self.assertIsNotNone(rocket)