Class: RSpec::Puppet::ManifestMatchers::CountGeneric
- Inherits:
-
Object
- Object
- RSpec::Puppet::ManifestMatchers::CountGeneric
- Defined in:
- lib/rspec-puppet/matchers/count_generic.rb
Constant Summary collapse
- DEFAULT_RESOURCES =
[ 'Class[main]', 'Class[Settings]', 'Stage[main]', ].freeze
Instance Method Summary collapse
- #description ⇒ Object
- #failure_message ⇒ Object
- #failure_message_when_negated ⇒ Object
-
#initialize(type, count, *method) ⇒ CountGeneric
constructor
A new instance of CountGeneric.
- #matches?(catalogue) ⇒ Boolean
- #supports_block_expectations ⇒ Object
- #supports_value_expectations ⇒ Object
Constructor Details
#initialize(type, count, *method) ⇒ CountGeneric
Returns a new instance of CountGeneric.
10 11 12 13 14 15 16 17 18 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 10 def initialize(type, count, *method) if type.nil? @type = method[0].to_s.gsub(/^have_(.+)_resource_count$/, '\1') else @type = type end @referenced_type = referenced_type(@type) @expected_number = count.to_i end |
Instance Method Details
#description ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 40 def description desc = [] desc << "contain exactly #{@expected_number}" if @type == "class" desc << "#{@expected_number == 1 ? "class" : "classes" }" else unless @type == "resource" desc << "#{@referenced_type}" end desc << "#{@expected_number == 1 ? "resource" : "resources" }" end desc.join(" ") end |
#failure_message ⇒ Object
56 57 58 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 56 def "expected that the catalogue would " + description + " but it contains #{@actual_number}" end |
#failure_message_when_negated ⇒ Object
60 61 62 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 60 def "expected that the catalogue would not " + description + " but it does" end |
#matches?(catalogue) ⇒ Boolean
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 20 def matches?(catalogue) @catalogue = catalogue.call resources = @catalogue.resources.reject do |res| DEFAULT_RESOURCES.include?(res.ref) end @actual_number = if @type == 'resource' resources.count do |res| !['Class', 'Node'].include?(res.type) end else resources.count do |res| res.type == @referenced_type end end @actual_number == @expected_number end |
#supports_block_expectations ⇒ Object
64 65 66 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 64 def supports_block_expectations true end |
#supports_value_expectations ⇒ Object
68 69 70 |
# File 'lib/rspec-puppet/matchers/count_generic.rb', line 68 def supports_value_expectations true end |