inspec/test/unit/plugin/v1/resource_test.rb

97 lines
2.5 KiB
Ruby
Raw Normal View History

require "helper"
require "inspec/resource"
require "inspec/resources/os"
# require 'inspec/plugin/v1/plugin_types/resource'
2016-03-17 12:27:13 +00:00
describe Inspec::Plugins::Resource do
let(:base) { Inspec::Plugins::Resource }
describe "#name" do
2016-03-17 12:27:13 +00:00
it "won't register a nil resource" do
Class.new(base) { name nil; }
_(Inspec::Resource.registry.keys).wont_include nil
_(Inspec::Resource.registry.keys).wont_include ""
2016-03-17 12:27:13 +00:00
end
it "will register a valid name" do
Class.new(base) { name "hello"; }
_(Inspec::Resource.registry["hello"]).wont_be :nil?
2016-03-17 12:27:13 +00:00
end
end
def create(&block)
# random_name = (0...50).map { (65 + rand(26)).chr }.join
random_name = "NotSoRandomName"
2016-03-17 12:27:13 +00:00
Class.new(base) do
name random_name
instance_eval(&block)
2016-03-17 12:27:13 +00:00
end
Inspec::Resource.registry[random_name]
end
describe "#desc" do
2016-03-17 12:27:13 +00:00
it "will register a description" do
expected = rand.to_s
_(create { desc expected }.desc).must_equal expected
2016-03-17 12:27:13 +00:00
end
it "can change the description" do
c = create { desc rand.to_s }
c.desc(x = rand.to_s)
_(c.desc).must_equal x
2016-03-17 12:27:13 +00:00
end
end
describe "#example" do
2016-03-17 12:27:13 +00:00
it "will register a description" do
expected = rand.to_s
_(create { example expected }.example).must_equal expected
2016-03-17 12:27:13 +00:00
end
it "can change the description" do
c = create { example rand.to_s }
c.example(x = rand.to_s)
_(c.example).must_equal x
2016-03-17 12:27:13 +00:00
end
end
describe "supported platform" do
def supports_meta(supports)
@old = Inspec::Resource.supports[:os]
Inspec::Resource.supports[:os] = supports
load_resource("os")
end
after do
Inspec::Resource.supports[:os] = @old
end
it "loads a profile which supports multiple families" do
m = supports_meta([
{ os_family: "windows" },
{ os_family: "unix" },
])
_(m.check_supports).must_equal true
Inspec::Resource.supports["os"] = nil
end
it "loads a profile which supports multiple names" do
m = supports_meta([
{ os_family: "windows", os_name: "windows_2000" },
{ os_family: "unix", os_name: "ubuntu" },
])
_(m.check_supports).must_equal true
Inspec::Resource.supports["os"] = nil
end
it "reject a profile which supports multiple families" do
m = supports_meta([
{ os_family: "windows" },
{ os_family: "redhat" },
])
_(m.check_supports).must_equal false
Inspec::Resource.supports["os"] = nil
end
end
2016-03-17 12:27:13 +00:00
end