mirror of
https://github.com/inspec/inspec
synced 2024-11-24 05:33:17 +00:00
e4e7c255de
Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
149 lines
3.9 KiB
Ruby
149 lines
3.9 KiB
Ruby
require "helper"
|
|
require "inspec/objects"
|
|
|
|
describe "Objects" do
|
|
describe "Inspec::Describe" do
|
|
let(:obj) { Inspec::Describe.new }
|
|
it 'constructs a simple resource + its("argument")' do
|
|
obj.qualifier.push(["resource"])
|
|
obj.add_test("version", "cmp >=", "2.4.2")
|
|
obj.to_ruby.must_equal '
|
|
describe resource do
|
|
its("version") { should cmp >= "2.4.2" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple resource.argument" do
|
|
obj.qualifier = [["resource"], ["version"]]
|
|
obj.add_test(nil, "cmp >=", "2.4.2")
|
|
obj.to_ruby.must_equal '
|
|
describe resource.version do
|
|
it { should cmp >= "2.4.2" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple resource+argument with to_s" do
|
|
obj.qualifier = [["resource"], ["to_s"]]
|
|
obj.add_test(nil, "cmp", Regexp.new("^Desc.+$"))
|
|
obj.to_ruby.must_equal '
|
|
describe resource.to_s do
|
|
it { should cmp(/^Desc.+$/) }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple resource+argument with to_i" do
|
|
obj.qualifier = [["resource"], ["to_i"]]
|
|
obj.add_test(nil, "cmp >", 3)
|
|
obj.to_ruby.must_equal '
|
|
describe resource.to_i do
|
|
it { should cmp > 3 }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple resource+argument with array accessors" do
|
|
obj.qualifier = [["resource"], ["name[2]"]]
|
|
obj.add_test(nil, "eq", "mytest")
|
|
obj.to_ruby.must_equal '
|
|
describe resource.name[2] do
|
|
it { should eq "mytest" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple resource+argument with method calls" do
|
|
obj.qualifier = [["resource"], %w{hello world}]
|
|
obj.add_test(nil, "eq", "mytest")
|
|
obj.to_ruby.must_equal '
|
|
describe resource.hello("world") do
|
|
it { should eq "mytest" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple resource+argument with method calls" do
|
|
obj.qualifier = [["resource"]]
|
|
obj.add_test(:mode, "cmp", "0755")
|
|
obj.to_ruby.must_equal '
|
|
describe resource do
|
|
its("mode") { should cmp "0755" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a resource+argument block with method call, matcher and expectation" do
|
|
obj.qualifier = [["command", "ls /etc"]]
|
|
obj.add_test("exit_status", "eq", 0)
|
|
obj.to_ruby.must_equal '
|
|
describe command("ls /etc") do
|
|
its("exit_status") { should eq 0 }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a simple describe with static data, negated regex matcher and expectation" do
|
|
obj.qualifier = [['"aaa"']]
|
|
obj.add_test(nil, "match", Regexp.new("^aa.*")).negate!
|
|
obj.to_ruby.must_equal '
|
|
describe "aaa" do
|
|
it { should_not match(/^aa.*/) }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a resource+argument block without a property call" do
|
|
obj.qualifier = [%w{service avahi-daemon}]
|
|
obj.qualifier.push(["info['properties']['UnitFileState']"])
|
|
obj.add_test(nil, "eq", "enabled")
|
|
obj.to_ruby.must_equal '
|
|
describe service("avahi-daemon").info[\'properties\'][\'UnitFileState\'] do
|
|
it { should eq "enabled" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "contains multiple tests" do
|
|
obj.add_test(nil, "eq", 123)
|
|
obj.add_test(:aba, "cmp", "cba").negate!
|
|
obj.to_ruby.must_equal '
|
|
describe "unknown object" do
|
|
it { should eq 123 }
|
|
its("aba") { should_not cmp "cba" }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "constructs a test with an array of strings" do
|
|
obj.qualifier = [["resource"]]
|
|
obj.add_test(%w{explorer exe}, "cmp", 1)
|
|
obj.to_ruby.must_equal '
|
|
describe resource do
|
|
its(["explorer", "exe"]) { should cmp 1 }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "is negated" do
|
|
obj.qualifier = [["resource"]]
|
|
obj.add_test(%w{explorer exe}, "cmp", 1, negated: true)
|
|
obj.to_ruby.must_equal '
|
|
describe resource do
|
|
its(["explorer", "exe"]) { should_not cmp 1 }
|
|
end
|
|
'.strip
|
|
end
|
|
|
|
it "is not negated" do
|
|
obj.qualifier = [["resource"]]
|
|
obj.add_test(%w{explorer exe}, "cmp", 1, negated: false)
|
|
obj.to_ruby.must_equal '
|
|
describe resource do
|
|
its(["explorer", "exe"]) { should cmp 1 }
|
|
end
|
|
'.strip
|
|
end
|
|
end
|
|
end
|