2017-11-06 18:28:53 +00:00
|
|
|
# encoding: utf-8
|
|
|
|
|
|
|
|
class ExceptionResourceTest < Inspec.resource(1)
|
|
|
|
name 'exception_resource_test'
|
|
|
|
|
|
|
|
desc '
|
|
|
|
Used to test resource exceptions.
|
|
|
|
'
|
|
|
|
|
|
|
|
example "
|
|
|
|
# Should execute always and pass
|
|
|
|
describe exception_resource_test('foo') do
|
|
|
|
its('value') { should eq 'foo' }
|
|
|
|
end
|
|
|
|
|
|
|
|
# Should execute always and fail
|
|
|
|
describe exception_resource_test('foo') do
|
|
|
|
its('value') { should eq 'bar' }
|
|
|
|
end
|
|
|
|
|
|
|
|
# Should raise Inspec::Exceptions::SkipResource but not halt run
|
|
|
|
# Example: Command not found
|
|
|
|
describe exception_resource_test('foo', :skip_me) do
|
|
|
|
its('value') { should eq 'foo' }
|
|
|
|
end
|
|
|
|
|
|
|
|
# Should raise Inspec::Exceptions::FailResource but not halt run
|
|
|
|
# Example: Command failed
|
|
|
|
describe exception_resource_test('foo', :fail_me) do
|
|
|
|
its('value') { should eq 'foo' }
|
|
|
|
end
|
|
|
|
"
|
|
|
|
|
|
|
|
attr_reader :value
|
|
|
|
|
|
|
|
def initialize(value, qualifier = nil)
|
|
|
|
@value = value
|
|
|
|
@inside_matcher = inside_matcher
|
|
|
|
case qualifier
|
|
|
|
when :skip_me
|
|
|
|
raise Inspec::Exceptions::ResourceSkipped, 'Skipping because reasons'
|
|
|
|
when :fail_me
|
|
|
|
raise Inspec::Exceptions::ResourceFailed, 'Failing because reasons'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-11-29 12:32:40 +00:00
|
|
|
filter = FilterTable.create
|
|
|
|
filter.add_accessor(:where)
|
|
|
|
.add_accessor(:entries)
|
|
|
|
.add(:matters, field: 'matters')
|
|
|
|
.add(:another_filter, field: 'another_filter')
|
|
|
|
.connect(self, :filters_example)
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def filters_example
|
|
|
|
case @value
|
|
|
|
when 'skip_me'
|
|
|
|
raise Inspec::Exceptions::ResourceSkipped, 'Skipping inside FilterTable'
|
|
|
|
when 'fail_me'
|
|
|
|
raise Inspec::Exceptions::ResourceFailed, 'Failing inside FilterTable'
|
|
|
|
end
|
|
|
|
[{ 'matters' => 'it really does', 'another_filter' => 'example' }]
|
|
|
|
end
|
|
|
|
|
2017-11-06 18:28:53 +00:00
|
|
|
def inside_matcher
|
|
|
|
case @value
|
|
|
|
when 'fail inside matcher'
|
|
|
|
raise Inspec::Exceptions::ResourceFailed, 'Failing inside matcher'
|
|
|
|
when 'skip inside matcher'
|
|
|
|
raise Inspec::Exceptions::ResourceSkipped, 'Skipping inside matcher'
|
|
|
|
else
|
|
|
|
'inside_matcher'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|