def test_valid_ports_returns_expected_error_for_invalid_protocol(self):
        under_test = ClcPublicIp(self.module)
        under_test._validate_ports([{'protocol': 'ICP', 'port': 'Faygo'}])

        self.module.fail_json.assert_called_once_with(
            msg="Valid protocols for this module are: [TCP, UDP]: You specified 'ICP'"
        )
    def test_valid_ports_skips_and_removes_blank_entry(self):
        expected = [{'protocol': 'TCP', 'port': 456}]
        under_test = ClcPublicIp(self.module)
        actual = under_test._validate_ports([{'protocol': 'TCP', 'port': 456}, {}])

        self.assertEqual(expected, actual)
        self.assertFalse(self.module.fail_json.called)
    def test_valid_ports_returns_expected_output(self):
        expected = [
            {'port': 80, 'protocol': 'TCP'},
            {'port': 34590, 'protocol': 'UDP'},
            {'port': 1234, 'port_to': 4567, 'protocol': 'TCP'}
        ]

        input_data = [
            {'port': 80},
            {'port': 34590, 'protocol': 'UDP'},
            {'port': 1234, 'port_to': 4567}
        ]

        under_test = ClcPublicIp(self.module)
        actual = under_test._validate_ports(input_data)

        self.assertEqual(expected, actual)
        self.assertFalse(self.module.fail_json.called)
    def test_valid_ports_returns_expected_error_for_missing_port(self):
        under_test = ClcPublicIp(self.module)
        under_test._validate_ports([{'protocol': 'UDP'}])

        self.module.fail_json.assert_called_once_with(msg="You must provide a port")