Пример #1
0
 def test_gotIntroduced(self):
     """
     When the introduction has been reciprocated, the L{UI} should
     start the Environment and create a L{Window} and call
     L{Window.go} on it.
     """
     starts = []
     environment = Environment(3, None)
     environment.start = lambda: starts.append(True)
     self.ui.gotIntroduced(environment)
     self.assertIdentical(self.ui.window.environment, environment)
     self.assertIdentical(self.ui.window.clock, self.reactor)
     self.assertEqual(self.ui.window.went, [True])
     self.assertEqual(starts, [True])
Пример #2
0
class EnvironmentTests(TestCase, ArrayMixin):
    """
    Tests for L{game.environment.Environment}.
    """

    def setUp(self):
        """
        Create an L{Environment} attached to a L{Clock} so that its behavior is
        deterministic.
        """
        self.clock = Clock()
        self.environment = Environment(1, self.clock)
        self.environment.start()


    def test_terrain(self):
        """
        An L{Environment} should start with an empty terrain array.
        """
        self.assertEquals(self.environment.terrain.dict(), {})


    def test_createPlayer(self):
        """
        L{Environment.createPlayer} should instantiate a L{Player} and
        broadcast it to all registered observers.
        """
        position = Vector(1, 2, 3)
        speed = 20
        observer = PlayerVisibilityObserver()
        self.environment.addObserver(observer)
        player = self.environment.createPlayer(position, speed)
        self.assertEqual(observer.createdPlayers, [player])
        self.assertEqual(player.getPosition(), position)
        self.assertEqual(player.speed, speed)
        self.assertEqual(player.seconds, self.environment.seconds)


    def test_removePlayer(self):
        """
        L{Environment.removePlayer} should broadcast C{playerRemoved}
        to all registered observers.
        """
        position = Vector(1, 2, 3)
        speed = 20
        observer = PlayerVisibilityObserver()
        self.environment.addObserver(observer)
        player = self.environment.createPlayer(position, speed)
        self.environment.removePlayer(player)
        self.assertEqual(observer.createdPlayers, observer.removedPlayers)


    def test_setInitialPlayer(self):
        """
        L{Environment.setInitialPlayer} should change the environment's
        C{initialPlayer} attribute from C{None} to its argument.
        """
        self.assertIdentical(self.environment.initialPlayer, None)
        player = object()
        self.environment.setInitialPlayer(player)
        self.assertIdentical(self.environment.initialPlayer, player)


    def test_setNetwork(self):
        """
        L{Environment.setNetwork} changes the environment's C{network} attribute
        from C{None} to its argument.
        """
        self.assertIdentical(self.environment.network, None)
        network = object()
        self.environment.setNetwork(network)
        self.assertIdentical(self.environment.network, network)