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 = []
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)
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)
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)
def test_PotatoShouldDescendIfThereIsNotTileBehind(self): startPosition = Point(2, 4) expectedPosition = Point(60, 128) collision = {Position.BEHIND: False, Position.CHECKPOINT: False} keysPressed = [] self.collisionManager.getCollisions.return_value = collision 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.collisionManagerExpected.append(call.getCollisions()) 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)
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)
def setUp(self): self.screen = Point(600, 300) self.spriteManager = Mock(spec=ISpriteManager) self.enviroment = Mock(spec=Enviroment) self.soundManager = Mock(spec=ISoundManager) 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.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.enviromentExpected = [] self.spriteManagerExpected = [] self.spriteManagerExpected.append(call.createSprite(0, 0, 30, 30)) self.soundManagerExpected = [call.getSound(pathDeathSound), call.getSound(pathJumpSound), call.getSound(pathCheckpointSound)]
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)
def test_MovePotatoJump(self): keysPressed = [Key.Space] startPosition = Point(1, 0) expectedPosition = Point(startPosition.X * 30, -8) collision = {Position.CHECKPOINT: False} self.collisionManager.getCollisions.return_value = collision 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.soundManagerExpected.append(call.getSound().play()) self.collisionManagerExpected.append(call.getCollisions()) self.target.setActualPosition(startPosition) self.target.motion(keysPressed) self.assertFalse(self.target.isStanding)
def test_PotatoReachCheckpointTrue(self): startPosition = Point(10, 1) finishCord = startPosition expectedPosition = Point(startPosition.X * 30, startPosition.Y * 30) collision = {Position.BEHIND: True, Position.CHECKPOINT: True} keysPressed = [] 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.soundManagerExpected.append(call.getSound().play()) self.collisionManagerExpected.append(call.getCollisions()) self.target.setActualPosition(startPosition) result = self.target.motion(keysPressed) self.assertTrue(result) self.assertTrue(self.target.reachCheckpoint)