Beispiel #1
0
class RoleMapperTests(TestCase):
    def setUp(self):
        self.state = GameState()
        self.role_mapper = RoleMapper()

    def test_givenNoMapping_whenMapById_thenMapsAllPlayers(self):
        self.state.map_players_to_roles_by_player(basic_roles)
        self.assertDictEqual(self.state.role_mapping, basic_roles)

    def test_givenBasicMapping_whenMapOtherwise_thenMapsPlayersProperly(self):
        self.state.map_players_to_roles_by_player(basic_roles)
        self.state.map_players_to_roles_by_player(inverted_roles_no_goal)
        self.assertDictEqual(self.state.role_mapping, inverted_roles_no_goal)

    def test_givenBasicMapping_whenMapFewerRobots_thenRemovesUnasignedOnes(
            self):
        self.state.map_players_to_roles_by_player(basic_roles)
        self.state.map_players_to_roles_by_player(missing_middle)
        self.assertDictEqual(self.state.role_mapping, missing_middle_expected)

    def test_whenMapRuleWithDuplicateRole_thenAssertError(self):
        A_ROLE_RULE = {Role.GOALKEEPER: None}

        with pytest.raises(AssertionError):
            self.role_mapper.map_with_rules([], A_ROLE_RULE, A_ROLE_RULE)

    def test_whenMappingWithMoreOptionalRoleThenPlayers_thenOnlyMapTheNumberOfPlayer(
            self):
        A_SET_AVAILABLE_PLAYER = {
            1: Player(1, TeamColorService.BLUE),
            2: Player(2, TeamColorService.BLUE)
        }
        LESS_ROLE_THEN_PLAYER = [
            Role.GOALKEEPER, Role.MIDDLE, Role.SECOND_ATTACK
        ]
        mapping = self.role_mapper.map_with_rules(A_SET_AVAILABLE_PLAYER, {},
                                                  LESS_ROLE_THEN_PLAYER)

        assert len(A_SET_AVAILABLE_PLAYER) == len(mapping)

    def test_whenMappingWithMoreRequiredRoleThenPlayers_thenAssert(self):
        A_SET_AVAILABLE_PLAYER = {
            1: Player(1, TeamColorService.BLUE),
            2: Player(2, TeamColorService.BLUE)
        }
        LESS_ROLE_THEN_PLAYER = [
            Role.GOALKEEPER, Role.MIDDLE, Role.SECOND_ATTACK
        ]
        with self.assertRaises(AssertionError):
            self.role_mapper.map_with_rules(A_SET_AVAILABLE_PLAYER,
                                            LESS_ROLE_THEN_PLAYER, {})
 def test_givenBasicMapping_whenMapFewerRobots_thenRemovesUnasignedOnes(
         self):
     state = GameState()
     state.map_players_to_roles_by_player(basic_roles)
     state.map_players_to_roles_by_player(missing_middle)
     self.assertDictEqual(state.get_role_mapping(), missing_middle_expected)
 def test_givenNoMapping_whenMapById_thenMapsAllPlayers(self):
     state = GameState()
     state.map_players_to_roles_by_player(basic_roles)
     self.assertDictEqual(state.get_role_mapping(), basic_roles)
 def test_givenBasicMapping_whenMapOtherwise_thenMapsPlayersProperly(self):
     state = GameState()
     state.map_players_to_roles_by_player(basic_roles)
     state.map_players_to_roles_by_player(inverted_roles_no_goal)
     self.assertDictEqual(state.get_role_mapping(), inverted_roles_no_goal)