summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Mundrawala <jdmundrawala@gmail.com>2014-10-17 16:16:22 -0700
committerJay Mundrawala <jdmundrawala@gmail.com>2014-10-23 18:06:05 -0700
commit03dcc254dca6ad5f01a7d5a86394dc3d7a0b9c56 (patch)
tree5687ee4319f38385694fe37f3ed4bfac96058a11
parentdc6dc017e706840a9681bef1a75391a91ab6a2e0 (diff)
downloadchef-03dcc254dca6ad5f01a7d5a86394dc3d7a0b9c56.tar.gz
Added unit tests to ensure that value for env correctly deals with having the delimiter in it
-rw-r--r--spec/unit/provider/env_spec.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/unit/provider/env_spec.rb b/spec/unit/provider/env_spec.rb
index dc6176d45c..b15990045e 100644
--- a/spec/unit/provider/env_spec.rb
+++ b/spec/unit/provider/env_spec.rb
@@ -198,6 +198,22 @@ describe Chef::Provider::Env do
@provider.delete_element.should eql(true)
@new_resource.should be_updated
end
+
+ context "when new_resource's value contains the delimiter" do
+ it "should return true if the all elements are deleted" do
+ @new_resource.value("C:/foo/bin;C:/bar/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)
+ @provider.delete_element.should eql(true)
+ @new_resource.should be_updated
+ end
+ end
end
describe "compare_value" do
@@ -228,6 +244,22 @@ describe Chef::Provider::Env do
@current_resource.value("C:/biz;C:/foo/bin;C:/baz")
@provider.compare_value.should be_true
end
+
+ context "when new_resource's value contains the delimiter" do
+ it "should return false if all the current values are contained" do
+ @new_resource.value("C:/biz;C:/baz")
+ @new_resource.delim(";")
+ @current_resource.value("C:/biz;C:/foo/bin;C:/baz")
+ @provider.compare_value.should be_false
+ end
+
+ it "should return true if any of the new values are not contained" do
+ @new_resource.value("C:/biz;C:/baz;C:/bin")
+ @new_resource.delim(";")
+ @current_resource.value("C:/biz;C:/foo/bin;C:/baz")
+ @provider.compare_value.should be_true
+ end
+ end
end
describe "modify_env" do
@@ -247,5 +279,13 @@ describe Chef::Provider::Env do
@provider.modify_env
passed_value.should == new_value
end
+
+ it "should only add values not already contained when a delimiter is provided" do
+ @new_resource.value("a;c;d")
+ @new_resource.delim(";")
+ @current_resource.value("a;b;c")
+ @provider.modify_env
+ @new_resource.value.should eq("d;a;b;c")
+ end
end
end