diff options
author | Jay Mundrawala <jdmundrawala@gmail.com> | 2014-10-20 11:54:38 -0700 |
---|---|---|
committer | Jay Mundrawala <jdmundrawala@gmail.com> | 2014-10-23 18:06:05 -0700 |
commit | ba9474e68dadea5099c935d2d56025b6df0ec54f (patch) | |
tree | fce90ad4770dbb32f9462fe3b6ffa41e356a4946 | |
parent | afd0deaf1c0ccb830b9aaf389298b40b3a6f6264 (diff) | |
download | chef-ba9474e68dadea5099c935d2d56025b6df0ec54f.tar.gz |
delete_element should return false if the key needs to be deleted
-rw-r--r-- | lib/chef/provider/env.rb | 2 | ||||
-rw-r--r-- | spec/unit/provider/env_spec.rb | 16 |
2 files changed, 12 insertions, 6 deletions
diff --git a/lib/chef/provider/env.rb b/lib/chef/provider/env.rb index 3e7b0398d7..324371254d 100644 --- a/lib/chef/provider/env.rb +++ b/lib/chef/provider/env.rb @@ -98,7 +98,7 @@ class Chef else new_value = current_values.select { |item| - new_values.include?(item) + not new_values.include?(item) }.join(@new_resource.delim) if new_value.empty? diff --git a/spec/unit/provider/env_spec.rb b/spec/unit/provider/env_spec.rb index 54b23f9950..f5e19fc5fb 100644 --- a/spec/unit/provider/env_spec.rb +++ b/spec/unit/provider/env_spec.rb @@ -200,18 +200,24 @@ describe Chef::Provider::Env do end context "when new_resource's value contains the delimiter" do - it "should return true if the all elements are deleted" do + it "should return false if all the elements are deleted" do + # This indicates that the entire key needs to be deleted @new_resource.value("C:/foo/bin;C:/bar/bin") + @provider.delete_element.should eql(false) + @new_resource.should_not be_updated # This will be updated in action_delete + end + + it "should return true if any, but not all, of the elements are deleted" do + @new_resource.value("C:/foo/bin;C:/notbaz/bin") @provider.should_receive(:create_env) @provider.delete_element.should eql(true) @new_resource.should be_updated end - it "should return true if any of the elements are deleted" do - @new_resource.value("C:/foo/bin;C:/baz/bin") - @provider.should_receive(:create_env) + it "should return true if none of the elements are deleted" do + @new_resource.value("C:/notfoo/bin;C:/notbaz/bin") @provider.delete_element.should eql(true) - @new_resource.should be_updated + @new_resource.should_not be_updated end end end |