class Inspec::Object::Test
Attributes
expectation[RW]
matcher[RW]
negated[RW]
only_if[RW]
qualifier[RW]
skip[RW]
variables[RW]
Public Class Methods
new()
click to toggle source
# File lib/inspec/objects/test.rb, line 8 def initialize @qualifier = [] @negated = false @variables = [] end
Public Instance Methods
negate!()
click to toggle source
# File lib/inspec/objects/test.rb, line 14 def negate! @negated = !@negated end
remove_expectation()
click to toggle source
# File lib/inspec/objects/test.rb, line 37 def remove_expectation remove_instance_variable(:@expectation) end
resource()
click to toggle source
# File lib/inspec/objects/test.rb, line 28 def resource @resource ||= if qualifier.empty? || qualifier[0].empty? || qualifier[0][0].empty? nil else qualifier[0][0] end end
to_hash()
click to toggle source
# File lib/inspec/objects/test.rb, line 24 def to_hash { qualifier: qualifier, matcher: matcher, expectation: expectation, skip: skip, negated: negated } end
to_ruby()
click to toggle source
# File lib/inspec/objects/test.rb, line 18 def to_ruby return rb_skip unless skip.nil? rb_describe end
Private Instance Methods
describe_chain()
click to toggle source
# File lib/inspec/objects/test.rb, line 43 def describe_chain return if @qualifier.empty? resource = @qualifier.length > 1 ? @qualifier[0..-2] : [@qualifier[0]] res = resource.map { |q| ruby_qualifier(q) }.join(".") xres = nil if @qualifier.length > 1 last = @qualifier[-1] last_call = last.is_a?(Array) ? last[0].to_s : "" if last.length == 1 && last_call !~ /^to_.$/ && !last_call.include?("[") && !last_call.empty? # this will go in its() xres = last_call else res += "." + ruby_qualifier(last) unless last_call.empty? end end [res, xres] end
rb_describe()
click to toggle source
# File lib/inspec/objects/test.rb, line 64 def rb_describe only_if_clause = "only_if { #{only_if} }\n" if only_if vars = variables.map(&:to_ruby).join("\n") vars += "\n" unless vars.empty? res, xtra = describe_chain itsy = xtra.nil? ? "it" : "its(" + xtra.to_s.inspect + ")" naughty = @negated ? "_not" : "" xpect = if !defined?(@expectation) "" elsif @expectation.class == Regexp # without this, xpect values like / \/zones\// will not be parsed properly "(#{@expectation.inspect})" elsif xpect != "" " " + expectation.inspect end format("%s%sdescribe %s do\n %s { should%s %s%s }\nend", only_if_clause, vars, res, itsy, naughty, matcher, xpect) end
rb_skip()
click to toggle source
# File lib/inspec/objects/test.rb, line 83 def rb_skip dc = describe_chain obj = dc.nil? ? skip.inspect : dc[0] format("describe %s do\n skip %s\nend", obj, skip.inspect) end