summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Keiser <john@johnkeiser.com>2015-06-29 12:53:16 -0600
committerJohn Keiser <john@johnkeiser.com>2015-06-30 11:18:41 -0600
commit65f2812ffbd306bde3b1512e87e8bfae324d8087 (patch)
tree37c3291769d60ce03d28b0bb73ce0e4e35447d27
parent097d130a8761bca6e9f79934b0cffd2d151b302b (diff)
downloadchef-65f2812ffbd306bde3b1512e87e8bfae324d8087.tar.gz
Fix broken specs
-rw-r--r--lib/chef/provider_resolver.rb33
-rw-r--r--spec/unit/resource_resolver_spec.rb12
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