mirror of
https://github.com/inspec/inspec
synced 2024-12-22 11:03:11 +00:00
fae4230a41
This was the next most expensive require in the analysis. Also rearranged the way that ui handled tables to be lazy. ``` % SLOW=1 time rake test:functional before: Finished in 681.514579s, 0.5136 runs/s, 2.9919 assertions/s. after : Finished in 642.655918s, 0.5446 runs/s, 3.1728 assertions/s. ``` Signed-off-by: Ryan Davis <zenspider@chef.io>
91 lines
2.3 KiB
Ruby
91 lines
2.3 KiB
Ruby
require "helper"
|
|
require "inspec/resource"
|
|
require "inspec/resources/os"
|
|
# require 'inspec/plugin/v1/plugin_types/resource'
|
|
|
|
describe Inspec::Plugins::Resource do
|
|
let(:base) { Inspec::Plugins::Resource }
|
|
|
|
describe "#name" do
|
|
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 ""
|
|
end
|
|
|
|
it "will register a valid name" do
|
|
Class.new(base) { name "hello"; }
|
|
Inspec::Resource.registry["hello"].wont_be :nil?
|
|
end
|
|
end
|
|
|
|
def create(&block)
|
|
# random_name = (0...50).map { (65 + rand(26)).chr }.join
|
|
random_name = "NotSoRandomName"
|
|
Class.new(base) do
|
|
name random_name
|
|
instance_eval(&block)
|
|
end
|
|
Inspec::Resource.registry[random_name]
|
|
end
|
|
|
|
describe "#desc" do
|
|
it "will register a description" do
|
|
expected = rand.to_s
|
|
create { desc expected }.desc.must_equal expected
|
|
end
|
|
|
|
it "can change the description" do
|
|
c = create { desc rand.to_s }
|
|
c.desc(x = rand.to_s)
|
|
c.desc.must_equal x
|
|
end
|
|
end
|
|
|
|
describe "#example" do
|
|
it "will register a description" do
|
|
expected = rand.to_s
|
|
create { example expected }.example.must_equal expected
|
|
end
|
|
|
|
it "can change the description" do
|
|
c = create { example rand.to_s }
|
|
c.example(x = rand.to_s)
|
|
c.example.must_equal x
|
|
end
|
|
end
|
|
|
|
describe "supported platform" do
|
|
def supports_meta(supports)
|
|
Inspec::Resource.supports["os"] = supports
|
|
load_resource("os")
|
|
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
|
|
end
|