def test_successful_move_action(self): # Move north game_state = GameState(InfiniteMap(), self.avatar_manager) action.MoveAction(self.avatar, { "x": 0, "y": 1 }).process(game_state.world_map) target_cell = game_state.world_map.get_cell(NORTH_OF_ORIGIN) self.assertEqual(self.avatar.location, NORTH_OF_ORIGIN) self.assertEqual(self.avatar, target_cell.avatar) self.assertEqual(self.avatar.events, [event.MovedEvent(ORIGIN, NORTH_OF_ORIGIN)]) # Move east self.setUp() game_state = GameState(InfiniteMap(), self.avatar_manager) action.MoveAction(self.avatar, { "x": 1, "y": 0 }).process(game_state.world_map) self.assertEqual(self.avatar.location, EAST_OF_ORIGIN) self.assertEqual(self.avatar.events, [event.MovedEvent(ORIGIN, EAST_OF_ORIGIN)])
def test_successful_move_east_twice_action(self): game_state = GameState(InfiniteMap(), self.avatar_manager) action.MoveAction(self.avatar, { "x": 1, "y": 0 }).process(game_state.world_map) action.MoveAction(self.avatar, { "x": 1, "y": 0 }).process(game_state.world_map) self.assertEqual(self.avatar.location, Location(2, 0))
def test_failed_move_action(self): game_state = GameState(EmptyMap(), self.avatar_manager) action.MoveAction(self.avatar, {"x": 0, "y": 1}).process(game_state.world_map) self.assertEqual(self.avatar.location, ORIGIN) self.assertEqual( self.avatar.events, [event.FailedMoveEvent(ORIGIN, NORTH_OF_ORIGIN)] )
def test_successful_move_east_action(self): game_state = GameState(InfiniteMap(), self.avatar_manager) action.MoveAction(self.avatar, { 'x': 1, 'y': 0 }).process(game_state.world_map) self.assertEqual(self.avatar.location, EAST_OF_ORIGIN) self.assertEqual(self.avatar.events, [event.MovedEvent(ORIGIN, EAST_OF_ORIGIN)])
def test_successful_move_north_action(self): game_state = GameState(InfiniteMap(), self.avatar_manager) action.MoveAction(self.avatar, { 'x': 0, 'y': 1 }).process(game_state.world_map) target_cell = game_state.world_map.get_cell(NORTH_OF_ORIGIN) self.assertEqual(self.avatar.location, NORTH_OF_ORIGIN) self.assertEqual(self.avatar, target_cell.avatar) self.assertEqual(self.avatar.events, [event.MovedEvent(ORIGIN, NORTH_OF_ORIGIN)])
def test_move_action_to_score_square(self): game_state = GameState(ScoreOnOddColumnsMap(), self.avatar_manager) self.assertEqual(self.avatar.score, 0) action.MoveAction(self.avatar, { 'x': 1, 'y': 0 }).process(game_state.world_map) game_state.world_map.apply_score() self.assertEqual(self.avatar.score, 1) action.MoveAction(self.avatar, { 'x': 1, 'y': 0 }).process(game_state.world_map) game_state.world_map.apply_score() self.assertEqual(self.avatar.score, 1) action.MoveAction(self.avatar, { 'x': 1, 'y': 0 }).process(game_state.world_map) game_state.world_map.apply_score() self.assertEqual(self.avatar.score, 2)