summaryrefslogtreecommitdiff
path: root/knife/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb
diff options
context:
space:
mode:
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.rb28
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