예제 #1
0
	def test_PotatoDie(self):
		startPosition = Point(1,20)
		startCords = Point(0,1)
		expectedPosition = Point(startCords.X*30,startCords.Y*30)
		keysPressed = []

		self.enviroment.getStartCords.return_value = startCords
		self.enviroment.isTile.side_effect = [False]

		self.spriteManagerExpected.append(call.updateSpriteImage(
			os.path.join('JumperPY', 'bin','Resources', 'potatoStanding.png')))
		self.spriteManagerExpected.append(call.flipSpriteImage())
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X,
			expectedPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(1,21)))
		self.enviromentExpected.append(call.getStartCords())

		self.soundManagerExpected.append(call.getSound().play())

		self.target.setActualPosition(startPosition)
		self.target.isJumping = True
		self.target.isGoingDown = True

		self.target.motion(keysPressed)

		self.assertEqual(expectedPosition, self.target.ActualPosition)
예제 #2
0
	def test_PotatoShouldDescendIfThereIsNotTileBehind(self):
		startPosition = Point(2,4)
		expectedPosition = Point(60, 128)
		keysPressed = []

		self.enviroment.isTile.side_effect = [False, False]

		self.spriteManagerExpected.append(call.updateSpriteImage(
				os.path.join('JumperPY', 'bin','Resources', 'potatoJumping.png')))
		self.spriteManagerExpected.append(call.flipSpriteImage())
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X, expectedPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(2,5)))
		self.enviromentExpected.append(call.isTile(Point(2,5)))

		self.soundManagerExpected.append(call.getSound().play())

		self.target.setActualPosition(startPosition)

		self.target.motion(keysPressed)

		self.assertEqual(self.target.ActualPosition, expectedPosition)
		self.assertFalse(self.target.isStanding)
		self.assertTrue(self.target.isGoingDown)
		self.assertTrue(self.target.isJumping)
예제 #3
0
    def test_PotatoDie(self):
        startPosition = Point(1, 20)
        startCords = Point(0, 1)
        expectedPosition = Point(startCords.X * 30, startCords.Y * 30)
        collision = {Position.BEHIND: False, Position.CHECKPOINT: False}
        keysPressed = []

        self.enviroment.getStartCords.return_value = startCords
        self.collisionManager.getCollisions.return_value = collision

        self.spriteManagerExpected.append(
            call.updateSpriteImage(
                os.path.join('JumperPY', 'bin', 'Resources',
                             'potatoStanding.png')))
        self.spriteManagerExpected.append(call.flipSpriteImage())
        self.spriteManagerExpected.append(
            call.updateSprite(expectedPosition.X, expectedPosition.Y))
        self.collisionManagerExpected.append(call.getCollisions())
        self.enviromentExpected.append(call.getStartCords())

        self.soundManagerExpected.append(call.getSound().play())

        self.target.setActualPosition(startPosition)
        self.target.isJumping = True
        self.target.isGoingDown = True
        self.target.motion(keysPressed)

        self.assertEqual(expectedPosition, self.target.ActualPosition)
예제 #4
0
	def test_PotatoReachCheckpointTrue(self):
		startPosition = Point(10,1)
		finishCord = startPosition
		expectedPosition = Point(startPosition.X*30,startPosition.Y*30)
		keysPressed = []

		self.enviroment.getFinishCords.return_value = finishCord
		self.enviroment.isTile.side_effect = [True]

		self.spriteManagerExpected.append(call.updateSpriteImage(
			os.path.join('JumperPY', 'bin','Resources', 'potatoStanding.png')))
		self.spriteManagerExpected.append(call.flipSpriteImage())
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X,
			expectedPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(10,2)))
		
		self.soundManagerExpected.append(call.getSound().play())

		self.target.setActualPosition(startPosition)
		self.target.motion(keysPressed)

		self.assertTrue(self.target.reachCheckpoint)
예제 #5
0
    def setUp(self):
        self.screen = Point(600, 300)
        self.spriteManager = Mock(spec=ISpriteManager)
        self.enviroment = Mock(spec=Enviroment)
        self.soundManager = Mock(spec=ISoundManager)
        self.collisionManager = Mock(spec=ICollisionManager)
        self.trace = NullTracer()

        startCords = Point(0, 0)
        self.enviroment.getStartCords.return_value = startCords

        self.target = Potato(self.screen, self.spriteManager, self.enviroment,
                             self.soundManager, self.collisionManager,
                             self.trace)

        pathDeathSound = os.path.join('JumperPY', 'bin', 'Resources', 'sounds',
                                      'death.wav')
        pathJumpSound = os.path.join('JumperPY', 'bin', 'Resources', 'sounds',
                                     'jump.wav')
        pathCheckpointSound = os.path.join('JumperPY', 'bin', 'Resources',
                                           'sounds', 'checkpoint.wav')

        self.spriteManagerExpected = []
        self.spriteManagerExpected.append(call.createSprite(0, 0, 30, 30))
        self.enviromentExpected = [call.getStartCords()]
        self.soundManagerExpected = [
            call.getSound(pathDeathSound),
            call.getSound(pathJumpSound),
            call.getSound(pathCheckpointSound)
        ]
        self.collisionManagerExpected = []
예제 #6
0
	def test_GetPotatoSprite(self):
		spriteMock = NonCallableMock()

		self.spriteManager.getSprite.return_value = spriteMock

		sprite = self.target.getSprite()

		self.spriteManagerExpected.append(call.getSprite())
		self.enviromentExpected.append(call.getStartCords())

		self.assertIsNotNone(spriteMock)
		self.assertEqual(sprite, spriteMock)
예제 #7
0
	def test_MovePotato(self):
		startPosition = Point(1,0)
		keysPressed = []

		self.enviroment.isTile.side_effect = [True]

		self.spriteManagerExpected.append(call.updateSpriteImage(
				os.path.join('JumperPY', 'bin','Resources', 'potatoStanding.png')))
		self.spriteManagerExpected.append(call.flipSpriteImage())
		self.spriteManagerExpected.append(call.updateSprite(startPosition.X*30, startPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(1,1)))

		self.target.setActualPosition(startPosition)
		self.target.motion(keysPressed)

		self.assertTrue(self.target.isStanding)
예제 #8
0
	def test_MovePotatoJump(self):
		keysPressed = [Key.Space]
		startPosition = Point(1,0)
		expectedPosition = Point(startPosition.X*30, -8)

		self.enviroment.isTile.side_effect = [False, True]

		self.spriteManagerExpected.append(call.updateSpriteImage(
				os.path.join('JumperPY', 'bin','Resources', 'potatoJumping.png')))
		self.spriteManagerExpected.append(call.flipSpriteImage())
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X, expectedPosition.Y))
		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.getFinishCords())

		self.soundManagerExpected.append(call.getSound().play())

		self.target.setActualPosition(startPosition)
		self.target.motion(keysPressed)

		self.assertFalse(self.target.isStanding)
예제 #9
0
	def test_ShouldNotMoveIfThereIsTileGoingRight(self):
		startPosition = Point(2,4)
		expectedPosition = Point(56, startPosition.Y*30)
		keysPressed = [Key.A]

		self.enviroment.isTile.side_effect = [False, True]

		self.spriteManagerExpected.append(call.updateSpriteImage(
				os.path.join('JumperPY', 'bin','Resources', 'potatoWalking.png')))
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X, expectedPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.isTile(Point(1,4)))
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(2,5)))

		self.target.setActualPosition(startPosition)

		self.target.motion(keysPressed)

		self.assertEqual(self.target.ActualPosition, expectedPosition)
예제 #10
0
	def test_NewLevel(self):
		startPosition = Point(1,0)
		newLevelStartCords = Point(5,5)
		expectedPosition = Point(newLevelStartCords.X*30, newLevelStartCords.Y*30)

		newMockEnviroment = Mock(spec=Enviroment)
		newMockEnviroment.getStartCords.return_value = newLevelStartCords

		self.enviromentExpected.append(call.getStartCords())

		self.target.setActualPosition(startPosition)
		self.target.newLevel(newMockEnviroment)

		self.assertEqual(self.target.ActualPosition, expectedPosition)
		self.assertFalse(self.target.isJumping)
		self.assertFalse(self.target.isGoingLeft)
		self.assertFalse(self.target.isGoingDown)
		self.assertTrue(self.target.isStanding)
		self.assertFalse(self.target.reachCheckpoint)
		self.assertEqual(0, self.target.actualImageIndex)
		self.assertNotEqual(newMockEnviroment, self.enviroment)
예제 #11
0
	def test_MovePotatoLeftInTheEdgeOfTheScreen(self):
		startCord = Point(0,0)
		expectedPosition = Point(600, 0)

		self.enviroment.isTile.side_effect = [False, True, True]

		keysPressed = [Key.A]

		self.target.setActualPosition(startCord)
		self.target.motion(keysPressed)

		self.spriteManagerExpected.append(call.updateSpriteImage(
				os.path.join('JumperPY', 'bin','Resources', 'potatoWalking.png')))
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X, expectedPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.isTile(Point(-1,0)))
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(20,1)))

		self.assertTrue(self.target.isGoingLeft)
		self.assertFalse(self.target.isStanding)
예제 #12
0
	def test_MovePotatoRight(self):
		keysPressed = [Key.D]
		startPosition = Point(1,0)
		expectedPosition = Point(startPosition.X*30 + 4,
			startPosition.Y)

		self.enviroment.isTile.side_effect = [False, True]

		self.spriteManagerExpected.append(call.updateSpriteImage(
			os.path.join('JumperPY', 'bin','Resources', 'potatoWalking.png')))
		self.spriteManagerExpected.append(call.flipSpriteImage())
		self.spriteManagerExpected.append(call.updateSprite(expectedPosition.X, expectedPosition.Y))

		self.enviromentExpected.append(call.getStartCords())
		self.enviromentExpected.append(call.isTile(Point(2,0)))
		self.enviromentExpected.append(call.getFinishCords())
		self.enviromentExpected.append(call.isTile(Point(1,1)))

		self.target.setActualPosition(startPosition)
		self.target.isGoingRight = True
		self.target.motion(keysPressed)

		self.assertFalse(self.target.isGoingLeft)
		self.assertFalse(self.target.isStanding)