def test_when_multiple_countries_are_selected_returns_no_error(self):
        countries = "england,wales"
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()

        self.assertEqual(["XF", "XI"], output_countries)
        self.assertEqual([], output_error_object)
    def test_when_wales_is_selected_returns_no_error(self):
        countries = "wales"
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()

        self.assertEqual(["XI"], output_countries)
        self.assertEqual([], output_error_object)
    def test_when_northern_ireland_is_selected_returns_no_error(self):
        countries = "northern_ireland"
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()

        self.assertEqual(["XG"], output_countries)
        self.assertEqual([], output_error_object)
    def test_when_empty_countries_returns_no_error(self):
        countries = ""
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()

        self.assertEqual([], output_countries)
        self.assertEqual([], output_error_object)
    def test_when_a_country_is_selected_prefixed_with_hyphen_returns_no_error(
            self):
        countries = "-england"
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()

        self.assertEqual(["XG", "XH", "XI"], output_countries)
        self.assertEqual([], output_error_object)
    def test_when_there_are_duplicate_countries_returns_error(self):
        countries = "england,-england"
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()
        expected_error_object = [{
            "error": "use of the same countries more than once",
            "error_values": [{
                "countries": "england"
            }],
        }]

        self.assertEqual([], output_countries)
        self.assertEqual(expected_error_object, output_error_object)
    def test_when_there_are_invalid_uk_countries_returns_error(self):
        countries = "bosnia,photosynthesis,england"
        validator = Validator(countries, "", "", "", "0", 100, "0")

        output_countries, output_error_object = validator.validate_countries()
        expected_error_object = [{
            "error":
            "invalid countries",
            "error_values": [{
                "countries": "bosnia,photosynthesis"
            }],
        }]

        self.assertEqual([], output_countries)
        self.assertEqual(expected_error_object, output_error_object)