diff options
author | Steven Murawski <steven.murawski@gmail.com> | 2016-02-03 12:55:56 -0600 |
---|---|---|
committer | Steven Murawski <steven.murawski@gmail.com> | 2016-02-03 12:55:56 -0600 |
commit | 5291fd70df7b9360b186ff104115f080e949f5e5 (patch) | |
tree | e3a9c06827c624012699b3b1d51edb0717b2f1ed | |
parent | c5edc180e54629be30cd7ae228323bf2d218663d (diff) | |
download | chef-5291fd70df7b9360b186ff104115f080e949f5e5.tar.gz |
Allow PowerShellTypeCoercions to translate Chef::Node::ImmutableArraysmurawski/dsc_resource_converge_logging
-rw-r--r-- | lib/chef/mixin/powershell_type_coercions.rb | 3 | ||||
-rw-r--r-- | spec/unit/mixin/powershell_type_coercions_spec.rb | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/chef/mixin/powershell_type_coercions.rb b/lib/chef/mixin/powershell_type_coercions.rb index e9fa6b74ac..60c04e85ae 100644 --- a/lib/chef/mixin/powershell_type_coercions.rb +++ b/lib/chef/mixin/powershell_type_coercions.rb @@ -28,8 +28,9 @@ class Chef FalseClass => { :type => lambda { |x| "$false" }}, TrueClass => { :type => lambda { |x| "$true" }}, Hash => {:type => Proc.new { |x| translate_hash(x)}}, - Chef::Node::ImmutableMash => {:type => Proc.new { |x| translate_hash(x)}}, Array => {:type => Proc.new { |x| translate_array(x)}}, + Chef::Node::ImmutableMash => {:type => Proc.new { |x| translate_hash(x)}}, + Chef::Node::ImmutableArray => {:type => Proc.new { |x| translate_array(x)}}, } end diff --git a/spec/unit/mixin/powershell_type_coercions_spec.rb b/spec/unit/mixin/powershell_type_coercions_spec.rb index c1184cce7c..f7b4fcd723 100644 --- a/spec/unit/mixin/powershell_type_coercions_spec.rb +++ b/spec/unit/mixin/powershell_type_coercions_spec.rb @@ -69,6 +69,11 @@ describe Chef::Mixin::PowershellTypeCoercions do expect(test_class.translate_type(test_mash)).to eq("@{a=1;b=1.2;c=$false;d=$true}") end + it "translates a Chef::Node::ImmutableArray like an array" do + test_array = Chef::Node::ImmutableArray.new([true, false]) + expect(test_class.translate_type(test_array)).to eq("@($true,$false)") + end + it "falls back :to_psobject if we have not defined at explicit rule" do ps_obj = double("PSObject") expect(ps_obj).to receive(:to_psobject).and_return("$true") |