diff options
Diffstat (limited to 'knife/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb')
-rw-r--r-- | knife/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/knife/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb b/knife/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb new file mode 100644 index 0000000000..b86dc860d0 --- /dev/null +++ b/knife/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb @@ -0,0 +1,28 @@ +# This action tests that embedded Resources have access to the enclosing Provider's +# lexical scope (as demonstrated by the call to new_resource) and that all parameters +# are passed properly (as demonstrated by the call to generate_new_name). +attr_reader :enclosed_resource + +def without_deprecation_warnings(&block) + old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors] + Chef::Config[:treat_deprecation_warnings_as_errors] = false + begin + yield + ensure + Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors + end +end + +def action_twiddle_thumbs + @enclosed_resource = lwrp_foo :foo do + monkey generate_new_name(new_resource.monkey){ 'the monkey' } + # We know there will be a deprecation error here; head it off + without_deprecation_warnings do + provider :lwrp_monkey_name_printer + end + end +end + +def generate_new_name(str, &block) + "#{str}, #{block.call}" +end |