summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Mundrawala <jdmundrawala@gmail.com>2014-10-20 11:54:38 -0700
committerJay Mundrawala <jdmundrawala@gmail.com>2014-10-23 18:06:05 -0700
commitba9474e68dadea5099c935d2d56025b6df0ec54f (patch)
treefce90ad4770dbb32f9462fe3b6ffa41e356a4946
parentafd0deaf1c0ccb830b9aaf389298b40b3a6f6264 (diff)
downloadchef-ba9474e68dadea5099c935d2d56025b6df0ec54f.tar.gz
delete_element should return false if the key needs to be deleted
-rw-r--r--lib/chef/provider/env.rb2
-rw-r--r--spec/unit/provider/env_spec.rb16
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