diff options
author | John Keiser <john@johnkeiser.com> | 2015-06-29 12:53:16 -0600 |
---|---|---|
committer | John Keiser <john@johnkeiser.com> | 2015-06-30 11:18:41 -0600 |
commit | 65f2812ffbd306bde3b1512e87e8bfae324d8087 (patch) | |
tree | 37c3291769d60ce03d28b0bb73ce0e4e35447d27 | |
parent | 097d130a8761bca6e9f79934b0cffd2d151b302b (diff) | |
download | chef-65f2812ffbd306bde3b1512e87e8bfae324d8087.tar.gz |
Fix broken specs
-rw-r--r-- | lib/chef/provider_resolver.rb | 33 | ||||
-rw-r--r-- | spec/unit/resource_resolver_spec.rb | 12 |
2 files changed, 24 insertions, 21 deletions
diff --git a/lib/chef/provider_resolver.rb b/lib/chef/provider_resolver.rb index d810900a03..f8e161f721 100644 --- a/lib/chef/provider_resolver.rb +++ b/lib/chef/provider_resolver.rb @@ -66,8 +66,24 @@ class Chef potential_handlers.include?(provider_class) end + def enabled_handlers + @enabled_handlers ||= potential_handlers.select { |handler| handler.method(:provides?).owner == Chef::Provider || handler.provides?(node, resource) } + end + + # TODO deprecate this and allow actions to be passed as a filter to + # `provides` so we don't have to have two separate things. + # @api private + def supported_handlers + @supported_handlers ||= + enabled_handlers.select { |handler| handler.supports?(resource, action) } + end + private + def potential_handlers + priority_map.list_handlers(node, resource.resource_name).flatten(1).uniq + end + # if resource.provider is set, just return one of those objects def maybe_explicit_provider(resource) return nil unless resource.provider @@ -105,23 +121,6 @@ class Chef Chef::Platform::ProviderPriorityMap.instance end - # @api private - def potential_handlers - priority_map.list_handlers(node, resource.resource_name).flatten(1).uniq - end - - def enabled_handlers - @enabled_handlers ||= potential_handlers.select { |handler| handler.method(:provides?).owner == Chef::Provider || handler.provides?(node, resource) } - end - - # TODO deprecate this and allow actions to be passed as a filter to - # `provides` so we don't have to have two separate things. - # @api private - def supported_handlers - @supported_handlers ||= - enabled_handlers.select { |handler| handler.supports?(resource, action) } - end - module Deprecated # return a deterministically sorted list of Chef::Provider subclasses def providers diff --git a/spec/unit/resource_resolver_spec.rb b/spec/unit/resource_resolver_spec.rb index 09ff026575..b3bda9d945 100644 --- a/spec/unit/resource_resolver_spec.rb +++ b/spec/unit/resource_resolver_spec.rb @@ -31,19 +31,23 @@ describe Chef::ResourceResolver do context 'instance methods' do let(:resolver) do - described_class.new(Chef::Node.new, 'execute[echo]') + described_class.new(Chef::Node.new, 'execute') end it '#resolve' do - expect(resolver.resolve).to be_nil + expect(resolver.resolve).to eq Chef::Resource::Execute end it '#list' do - expect(resolver.list).to be_empty + expect(resolver.list).to eq [ Chef::Resource::Execute ] end - it '#provided_by?' do + it '#provided_by? returns true when resource class is in the list' do expect(resolver.provided_by?(Chef::Resource::Execute)).to be_truthy end + + it '#provided_by? returns false when resource class is not in the list' do + expect(resolver.provided_by?(Chef::Resource::File)).to be_falsey + end end end |