diff options
Diffstat (limited to 'spec/unit/provider/package/aix_spec.rb')
-rw-r--r-- | spec/unit/provider/package/aix_spec.rb | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/spec/unit/provider/package/aix_spec.rb b/spec/unit/provider/package/aix_spec.rb index 6908b1288d..5bc861b849 100644 --- a/spec/unit/provider/package/aix_spec.rb +++ b/spec/unit/provider/package/aix_spec.rb @@ -36,34 +36,33 @@ describe Chef::Provider::Package::Aix do @bffinfo ="/usr/lib/objrepos:samba.base:3.3.12.0::COMMITTED:I:Samba for AIX: /etc/objrepos:samba.base:3.3.12.0::COMMITTED:I:Samba for AIX:" - @status = double("Status", :exitstatus => 0) + @status = double("Status", :stdout => "", :exitstatus => 0) end it "should create a current resource with the name of new_resource" do - allow(@provider).to receive(:popen4).and_return(@status) + allow(@provider).to receive(:shell_out).and_return(@status) @provider.load_current_resource expect(@provider.current_resource.name).to eq("samba.base") end it "should set the current resource bff package name to the new resource bff package name" do - allow(@provider).to receive(:popen4).and_return(@status) + allow(@provider).to receive(:shell_out).and_return(@status) @provider.load_current_resource expect(@provider.current_resource.package_name).to eq("samba.base") end it "should raise an exception if a source is supplied but not found" do - allow(@provider).to receive(:popen4).and_return(@status) + allow(@provider).to receive(:shell_out).and_return(@status) allow(::File).to receive(:exists?).and_return(false) - @provider.define_resource_requirements @provider.load_current_resource + @provider.define_resource_requirements expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Package) end it "should get the source package version from lslpp if provided" do - @stdout = StringIO.new(@bffinfo) - @stdin, @stderr = StringIO.new, StringIO.new - expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status) - expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_return(@status) + status = double("Status", :stdout => @bffinfo, :exitstatus => 0) + expect(@provider).to receive(:shell_out).with("installp -L -d /tmp/samba.base").and_return(status) + expect(@provider).to receive(:shell_out).with("lslpp -lcq samba.base").and_return(@status) @provider.load_current_resource expect(@provider.current_resource.package_name).to eq("samba.base") @@ -71,31 +70,33 @@ describe Chef::Provider::Package::Aix do end it "should return the current version installed if found by lslpp" do + status = double("Status", :stdout => @bffinfo, :exitstatus => 0) @stdout = StringIO.new(@bffinfo) @stdin, @stderr = StringIO.new, StringIO.new - expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status) - expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status) + expect(@provider).to receive(:shell_out).with("installp -L -d /tmp/samba.base").and_return(@status) + expect(@provider).to receive(:shell_out).with("lslpp -lcq samba.base").and_return(status) @provider.load_current_resource expect(@provider.current_resource.version).to eq("3.3.12.0") end it "should raise an exception if the source is not set but we are installing" do + status = double("Status", :stdout => "", :exitstatus => 1, :format_for_exception => "") @new_resource = Chef::Resource::Package.new("samba.base") @provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context) - allow(@provider).to receive(:popen4).and_return(@status) + allow(@provider).to receive(:shell_out).and_return(status) expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package) end it "should raise an exception if installp/lslpp fails to run" do - @status = double("Status", :exitstatus => -1) - allow(@provider).to receive(:popen4).and_return(@status) + status = double(:stdout => "", :exitstatus => -1, :format_for_exception => "") + allow(@provider).to receive(:shell_out).and_return(status) expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package) end it "should return a current resource with a nil version if the package is not found" do - @stdout = StringIO.new - expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status) - expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status) + status = double(:stdout => "", :exitstatus => 0) + expect(@provider).to receive(:shell_out).with("installp -L -d /tmp/samba.base").and_return(status) + expect(@provider).to receive(:shell_out).with("lslpp -lcq samba.base").and_return(status) @provider.load_current_resource expect(@provider.current_resource.version).to be_nil end @@ -104,19 +105,19 @@ describe Chef::Provider::Package::Aix do describe "candidate_version" do it "should return the candidate_version variable if already setup" do @provider.candidate_version = "3.3.12.0" - expect(@provider).not_to receive(:popen4) + expect(@provider).not_to receive(:shell_out ) @provider.candidate_version end it "should lookup the candidate_version if the variable is not already set" do - @status = double("Status", :exitstatus => 0) - expect(@provider).to receive(:popen4).and_return(@status) + status = double(:stdout => "", :exitstatus => 0) + expect(@provider).to receive(:shell_out).and_return(status) @provider.candidate_version end it "should throw and exception if the exitstatus is not 0" do - @status = double("Status", :exitstatus => 1) - allow(@provider).to receive(:popen4).and_return(@status) + @status = double(:stdout => "", :exitstatus => 1, :format_for_exception => "") + allow(@provider).to receive(:shell_out).and_return(@status) expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package) end |