def test_should_return_ruler_kingdom_and_allies(self, mocked_check_ruler):
        """
        Controller Should return a RulrKingdom and Allies Output for the correct input
        """

        mocked_check_ruler.return_value = Kingdom(
            'TheMaroonKingdom', 'Knight', [
                Kingdom('SPACE', 'Gorilla'),
                Kingdom('JUNGLE', 'Elephant'),
                Kingdom('SEA', 'Shark')
            ])

        messages = {
            'SPACE': {'smzsNmpkvhmkzy'},
            'JUNGLE': {'popMinlavmxgbtb'},
            'SEA': {'pifxfXffxomkfw'}
        }

        correct_output = 'TheMaroonKingdom SPACE JUNGLE SEA'

        result_output = SoutherosRulerController(
        ).check_if_kingdom_is_ruler_using_input_file(
            'TheMaroonKingdom', self.__CORRECT_MESSAGES_FILE_PATH)

        mocked_check_ruler.assert_called_with('TheMaroonKingdom', messages)
        self.assertEqual(correct_output, result_output)
Ejemplo n.º 2
0
    def get_kingdoms(self):
        """
        Helper Function to return Kingdoms Dictionary
        """

        return {
            'TheMaroonKingdom': Kingdom('TheMaroonKingdom', 'Knight'),
            'SPACE': Kingdom('SPACE', 'Gorilla'),
            'JUNGLE': Kingdom('JUNGLE', 'Elephant'),
            'SEA': Kingdom('SEA', 'Shark')
        }
Ejemplo n.º 3
0
    def test_should_ally_on_recieving_correct_message(self, mocked_decrypt):
        """
        Should return Ally response for the correct response
        """

        mocked_decrypt.return_value = 'elfase phfadsd afadsss dnd ast'

        correct_response = True

        kingdom = Kingdom('TheMaroonKingdom', 'Elephant')
        result_response = kingdom.recieve_message('mtniam xpnilal inilaaa lvl iab')

        mocked_decrypt.assert_called_with('mtniam xpnilal inilaaa lvl iab', 8)
        self.assertEqual(correct_response, result_response)
Ejemplo n.º 4
0
    def test_should_recieve_support_from_other_kingdom(self, mocked_decrypt):
        """
        Should recieve ally message when sends correct message
        """

        mocked_decrypt.return_value = 'elfase phfadsd afadsss dnd ast'

        correct_response = True

        reciever_kingdom = Kingdom('TheMaroonKingdom', 'Elephant')
        sender_kingdom = Kingdom('SPACE', 'Gorilla')
        result_response = sender_kingdom.send_message(reciever_kingdom, 'mtniam xpnilal inilaaa lvl iab')

        mocked_decrypt.assert_called_with('mtniam xpnilal inilaaa lvl iab', 8)
        self.assertEqual(correct_response, result_response)
Ejemplo n.º 5
0
    def test_should_create_correct_object(self):
        """
        Should convert to string correctly
        """

        correct_string = 'TheMaroonKingdom '

        kingdom = Kingdom('TheMaroonKingdom', 'Elephant')

        result_string = str(kingdom)

        self.assertEqual(correct_string, result_string)
def mock_data_loader(csv_path):
    """
    Mock Data loader that loads Data from our testing Repository
    """
    file_path = KINGDOM_CSV_PATH

    kingdomArr = []

    with open(file_path, newline="") as csv_file:
        reader = csv.reader(csv_file, delimiter=",")
        for row in reader:
            kingdomArr.append(Kingdom(row[0], row[1]))

    return kingdomArr
Ejemplo n.º 7
0
    def test_should_return_ruler(self, mocked_get_all_kingdoms):
        """
        Should return correct Ruler Object for correct messages
        """

        mocked_get_all_kingdoms.return_value = self.get_kingdoms()

        correct_ruler = Kingdom('TheMaroonKingdom', 'Knight', [
            Kingdom('SPACE', 'Gorilla'),
            Kingdom('JUNGLE', 'Elephant'),
            Kingdom('SEA', 'Shark')
        ])

        messages = {
            'SPACE': {'smzsNmpkvhmkzy'},
            'JUNGLE': {'popMinlavmxgbtb'},
            'SEA': {'pifxfXffxomkfw'}
        }

        result_ruler = SoutherosRulerServiceByMessagesImpl(
        ).check_ruler_of_southeros('TheMaroonKingdom', messages)

        self.assertEqual(correct_ruler, result_ruler)
Ejemplo n.º 8
0
def _load_csv_data(kingdom_csv_path: str):
    """
    Loads Data given in the input csv file present in the resources folder
    The Format:
        Kingdom Name, Kingdom Emblem
    """

    file_path = os.getcwd() + "/" + RESOURCES_DIR_PATH + "/" + kingdom_csv_path

    kingdomArr = []

    with open(file_path, newline="") as csv_file:
        reader = csv.reader(csv_file, delimiter=",")
        for row in reader:
            kingdomArr.append(Kingdom(row[0], row[1]))

    return kingdomArr
Ejemplo n.º 9
0
    def test_should_evaluate_right_allies(self):

        kingdoms = {
            'TheMaroonKingdom': Kingdom('TheMaroonKingdom', 'Knight'),
            'SPACE': Kingdom('SPACE', 'Gorilla'),
            'JUNGLE': Kingdom('JUNGLE', 'Elephant'),
            'SEA': Kingdom('SEA', 'Shark')
        }

        messages = {
            'SPACE': {'smzsNmpkvhmkzy'},
            'JUNGLE': {'popMinlavmxgbtb'},
            'SEA': {'pif'}
        }

        correct_allies = [kingdoms['SPACE'], kingdoms['JUNGLE']]

        kingdom = Kingdom('TheMaroonKingdom', 'Knight')

        kingdom.evaluate_allies(kingdoms, messages)

        result_allies = kingdom.get_allies()

        self.assertEqual(correct_allies, result_allies)
Ejemplo n.º 10
0
    def test_should_return_correct_dictionary(self):
        """
        Should Load Correct Data and return
        """
        correct_data = [
            Kingdom('SPACE', 'Gorilla'),
            Kingdom('LAND', 'Panda'),
            Kingdom('WATER', 'Octopus'),
            Kingdom('ICE', 'Mammoth'),
            Kingdom('AIR', 'Owl'),
            Kingdom('FIRE', 'Dragon'),
        ]

        data_loader = DataLoaderFactory().get_data_loader('csv')

        result_data = data_loader(self.__KINGDOM_CSV_FILE)

        self.assertEqual(correct_data, result_data)
    def test_should_return_correct_data(self, mocked_get_data_loader):
        """
        Check if the repository returns correct data
        """

        mocked_get_data_loader.return_value = mock_data_loader

        correct_kingdoms = {
            'SPACE': Kingdom('SPACE', 'Gorilla'),
            'LAND': Kingdom('LAND', 'Panda'),
            'WATER': Kingdom('WATER', 'Octopus'),
            'ICE': Kingdom('ICE', 'Mammoth'),
            'AIR': Kingdom('AIR', 'Owl'),
            'FIRE': Kingdom('FIRE', 'Dragon')
        }

        result_kingdoms = KingdomRepositoryServiceCsvImpl().get_all_kingdoms()

        for i in correct_kingdoms:

            self.assertEqual(correct_kingdoms[i], result_kingdoms[i])