def test_should_get_server_hardware_by_name_with_options(self):
        self.server_hardware.get_by.return_value = [{"name": "Server Hardware Name", "uri": "res_uri"}]
        self.server_hardware.get_bios.return_value = {'subresource': 'value'}
        self.server_hardware.get_environmental_configuration.return_value = {'subresource': 'value'}
        self.server_hardware.get_java_remote_console_url.return_value = {'subresource': 'value'}
        self.server_hardware.get_ilo_sso_url.return_value = {'subresource': 'value'}
        self.server_hardware.get_physical_server_hardware.return_value = {'subresource': 'value'}
        self.server_hardware.get_remote_console_url.return_value = {'subresource': 'value'}
        self.server_hardware.get_utilization.return_value = {'subresource': 'value'}
        self.server_hardware.get_firmware.return_value = {'subresource': 'firmware'}
        self.mock_ansible_module.params = PARAMS_WITH_OPTIONS

        ServerHardwareFactsModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=False,
            ansible_facts={'server_hardwares': [{'name': 'Server Hardware Name', 'uri': 'res_uri'}],
                           'server_hardware_remote_console_url': {'subresource': 'value'},
                           'server_hardware_physical_server_hardware': {'subresource': 'value'},
                           'server_hardware_utilization': {'subresource': 'value'},
                           'server_hardware_ilo_sso_url': {'subresource': 'value'},
                           'server_hardware_bios': {'subresource': 'value'},
                           'server_hardware_java_remote_console_url': {'subresource': 'value'},
                           'server_hardware_env_config': {'subresource': 'value'},
                           'server_hardware_firmware': {'subresource': 'firmware'}}
        )
    def test_should_get_server_hardware_by_name(self):
        self.server_hardware.get_by.return_value = {"name": "Server Hardware Name"}
        self.mock_ansible_module.params = PARAMS_GET_BY_NAME

        ServerHardwareFactsModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=False,
            ansible_facts=dict(server_hardwares=({"name": "Server Hardware Name"}))
        )
    def test_should_get_all_firmwares_with_filters(self):
        self.server_hardware.get_all.return_value = []
        self.server_hardware.get_all_firmwares.return_value = [{'subresource': 'firmware'}]
        self.mock_ansible_module.params = PARAMS_WITH_ALL_FIRMWARES_WITH_FILTERS

        ServerHardwareFactsModule().run()

        self.server_hardware.get_all_firmwares.assert_called_once_with(filters=FIRMWARE_FILTERS)
        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=False,
            ansible_facts={
                'server_hardwares': [],
                'server_hardware_firmwares': [{'subresource': 'firmware'}]
            }
        )
    def test_should_get_server_hardware_by_uri(self):
        self.resource.data = {
            "name": "Server Hardware Name",
            "uri": "resource_uri"
        }
        self.mock_ansible_module.params = PARAMS_GET_BY_URI

        ServerHardwareFactsModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=False,
            ansible_facts=dict(server_hardwares=({
                "name": "Server Hardware Name",
                "uri": "resource_uri"
            })))