From 532cfbb18195ba759574e91dc6bd360978045e75 Mon Sep 17 00:00:00 2001 From: Bruce Williams Date: Wed, 17 Mar 2010 20:23:22 -0700 Subject: Build ProviderExampleGroup for refactored provider tests --- spec/support/resource_helpers.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 spec/support/resource_helpers.rb (limited to 'spec/support/resource_helpers.rb') diff --git a/spec/support/resource_helpers.rb b/spec/support/resource_helpers.rb new file mode 100644 index 0000000..8327ec0 --- /dev/null +++ b/spec/support/resource_helpers.rb @@ -0,0 +1,27 @@ +class ProviderExampleGroup < Spec::Example::ExampleGroup + + attr_reader :resource + + 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 + + subject { described_class.new(@resource) } + alias :provider :subject + + def _(name) + resource.value(name) + end + +end + +Spec::Example::ExampleGroupFactory.register(:provider, 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 -- cgit v1.2.3