summaryrefslogtreecommitdiff
path: root/spec/support/provider_example_group.rb
diff options
context:
space:
mode:
authorAaron Stone <aaron@serendipity.cx>2013-10-01 11:37:13 -0700
committerAaron Stone <aaron@serendipity.cx>2013-10-01 11:37:13 -0700
commit4cf58ba3536f20349443beedda05245aebe9daed (patch)
tree527f7cf79596b6f32c67abb41b64ba1a0e77d743 /spec/support/provider_example_group.rb
parent0eeb6501b1b2ea84c38b0d4464ac42c12c4e9fa7 (diff)
parentb9da4c4cea9a04b1d97e3a82fc4211b8f8b62260 (diff)
Merge pull request #93 from apenney/coverage
Move from rspec1 to rspec2
Diffstat (limited to 'spec/support/provider_example_group.rb')
-rw-r--r--spec/support/provider_example_group.rb80
1 files changed, 0 insertions, 80 deletions
diff --git a/spec/support/provider_example_group.rb b/spec/support/provider_example_group.rb
deleted file mode 100644
index 1431f78..0000000
--- a/spec/support/provider_example_group.rb
+++ /dev/null
@@ -1,80 +0,0 @@
-class ProviderExampleGroup < Spec::Example::ExampleGroup
-
- # Allow access to the current resource
- attr_reader :resource
-
- # Build up the values for the resource in this scope
- before :each do
- resource_hash = example_group_hierarchy.inject({}) do |memo, klass|
- memo.merge(klass.options[:resource] || {})
- end
- full_hash = resource_hash.merge(:provider => described_class.name)
- @resource = described_class.resource_type.new(full_hash)
- end
-
- # Build the provider
- subject { described_class.new(@resource) }
-
- # Allow access to it via +provider+
- alias :provider :subject
-
- # Generate a context for a provider operating on a resource with:
- #
- # call-seq:
- #
- # # A parameter/property set (when the value isn't important)
- # resource_with :source do
- # # ...
- # end
- #
- # # A parameter/property set to a specific value
- # resource_with :source => 'a-specific-value' do
- # # ...
- # end
- #
- # Note: Choose one or the other (mixing will create two separate contexts)
- #
- def self.resource_with(*params, &block)
- params_with_values = params.last.is_a?(Hash) ? params.pop : {}
- build_value_context(params_with_values, &block)
- build_existence_context(*params, &block)
- end
-
- def self.build_existence_context(*params, &block) #:nodoc:
- unless params.empty?
- text = params.join(', ')
- placeholders = params.inject({}) { |memo, key| memo.merge(key => 'an-unimportant-value') }
- context("and with a #{text}", {:resource => placeholders}, &block)
- end
- end
-
- def self.build_value_context(params = {}, &block) #:nodoc:
- unless params.empty?
- text = params.map { |k, v| "#{k} => #{v.inspect}" }.join(' and with ')
- context("and with #{text}", {:resource => params}, &block)
- end
- end
-
-
- # Generate a context for a provider operating on a resource without
- # a given parameter/property.
- #
- # call-seq:
- #
- # resource_without :source do
- # # ...
- # end
- #
- def self.resource_without(field, &block)
- context("and without a #{field}", &block)
- end
-
-end
-
-Spec::Example::ExampleGroupFactory.register(:provider, ProviderExampleGroup)
-
-# Outside wrapper to lookup a provider and start the spec using ProviderExampleGroup
-def describe_provider(type_name, provider_name, options = {}, &block)
- provider_class = Puppet::Type.type(type_name).provider(provider_name)
- describe(provider_class, options.merge(:type => :provider), &block)
-end