summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Waldt <waldt@b1-systems.de>2016-09-29 14:14:34 +0200
committerEike Waldt <waldt@b1-systems.de>2016-09-29 14:14:34 +0200
commitb9435386d0d5f556e575ccb562f2b62c2c8c3da0 (patch)
tree417a700503e2ca143868fcf751985d45fa64159f
parentee54399ab4ec5b26f4fd3fd0b03a16af36e16f4a (diff)
downloadchef-b9435386d0d5f556e575ccb562f2b62c2c8c3da0.tar.gz
added missing tests for :(un)lock in provider/package
-rw-r--r--spec/unit/provider/package_spec.rb50
1 files changed, 50 insertions, 0 deletions
diff --git a/spec/unit/provider/package_spec.rb b/spec/unit/provider/package_spec.rb
index 5a63ba1f9e..27d28c698c 100644
--- a/spec/unit/provider/package_spec.rb
+++ b/spec/unit/provider/package_spec.rb
@@ -321,6 +321,56 @@ describe Chef::Provider::Package do
end
end
+ describe "When locking the package" do
+ before(:each) do
+ allow(provider).to receive(:lock_package).and_return(true)
+ end
+
+ it "should lock the package if it is unlocked" do
+ allow(provider).to receive(:package_locked).and_return(false)
+ expect(provider).to receive(:lock_package)
+ provider.run_action(:lock)
+ end
+
+ it "should not lock the package if it is already locked" do
+ allow(provider).to receive(:package_locked).and_return(true)
+ expect(provider).not_to receive(:lock_package)
+ provider.run_action(:lock)
+ expect(new_resource).not_to be_updated_by_last_action
+ end
+
+ it "should set the resource to updated if it locks the package" do
+ allow(provider).to receive(:package_locked).and_return(false)
+ provider.run_action(:lock)
+ expect(new_resource).to be_updated
+ end
+ end
+
+ describe "When unlocking the package" do
+ before(:each) do
+ allow(provider).to receive(:unlock_package).and_return(true)
+ end
+
+ it "should unlock the package if it is locked" do
+ allow(provider).to receive(:package_locked).and_return(true)
+ expect(provider).to receive(:unlock_package)
+ provider.run_action(:unlock)
+ end
+
+ it "should not unlock the package if it is already unlocked" do
+ allow(provider).to receive(:package_locked).and_return(false)
+ expect(provider).not_to receive(:unlock_package)
+ provider.run_action(:unlock)
+ expect(new_resource).not_to be_updated_by_last_action
+ end
+
+ it "should set the resource to updated if it unlocks the package" do
+ allow(provider).to receive(:package_locked).and_return(true)
+ provider.run_action(:unlock)
+ expect(new_resource).to be_updated
+ end
+ end
+
describe "when running commands to be implemented by subclasses" do
it "should raises UnsupportedAction for install" do
expect { provider.install_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)