mirror of
https://github.com/inspec/inspec
synced 2024-12-22 11:03:11 +00:00
a5309ea392
Signed-off-by: Ryan Davis <zenspider@chef.io>
64 lines
2.1 KiB
Ruby
64 lines
2.1 KiB
Ruby
require "helper"
|
|
require "inspec/resource"
|
|
require "inspec/resources/windows_feature"
|
|
|
|
describe "Inspec::Resources::WindowsFeature" do
|
|
it "can retrieve feature info using PowerShell" do
|
|
resource = MockLoader.new(:windows).load_resource(
|
|
"windows_feature",
|
|
"DHCP",
|
|
:powershell
|
|
)
|
|
params = {
|
|
name: "DHCP",
|
|
description: "Dynamic Host Configuration Protocol (DHCP) Server enables you to centrally configure, manage, and provide temporary IP addresses and related information for client computers.",
|
|
installed: false,
|
|
method: :powershell,
|
|
}
|
|
_(resource.info).must_equal params
|
|
_(resource.installed?).must_equal false
|
|
end
|
|
|
|
it "can retrieve feature info using DISM" do
|
|
resource = MockLoader.new(:windows).load_resource(
|
|
"windows_feature",
|
|
"IIS-WebServer",
|
|
:dism
|
|
)
|
|
params = {
|
|
name: "IIS-WebServer",
|
|
description: "Installs the IIS 10.0 World Wide Web Services. Provides support for HTML web sites and optional support for ASP.NET, Classic ASP, and web server extensions.",
|
|
installed: true,
|
|
method: :dism,
|
|
}
|
|
_(resource.info).must_equal params
|
|
_(resource.installed?).must_equal true
|
|
end
|
|
|
|
it "uses DISM when Get-WindowsFeature does not exist" do
|
|
resource = MockLoader.new(:windows)
|
|
.load_resource("windows_feature", "IIS-WebServer")
|
|
params = {
|
|
name: "IIS-WebServer",
|
|
description: "Installs the IIS 10.0 World Wide Web Services. Provides support for HTML web sites and optional support for ASP.NET, Classic ASP, and web server extensions.",
|
|
installed: true,
|
|
method: :dism,
|
|
}
|
|
_(resource.info).must_equal params
|
|
_(resource.installed?).must_equal true
|
|
end
|
|
|
|
it "fails the resource if PowerShell method is used but command not found" do
|
|
resource = MockLoader.new(:windows).load_resource(
|
|
"windows_feature",
|
|
"IIS-WebServer",
|
|
:powershell
|
|
)
|
|
|
|
e = proc {
|
|
resource.info
|
|
}.must_raise(Inspec::Exceptions::ResourceFailed)
|
|
|
|
e.message.must_match(/Could not find `Get-WindowsFeature`/)
|
|
end
|
|
end
|