summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2014-10-24 18:12:50 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2014-10-24 18:12:50 -0700
commitbd0b0a34e4dbb60fe61bbc8716df90e8f7c7d19a (patch)
treeacc7a2d09b2cec8eed863218c0400cd15cd27854
parentbdce1c5619fde7d277262df9336e06f73e4fc3f8 (diff)
downloadchef-bd0b0a34e4dbb60fe61bbc8716df90e8f7c7d19a.tar.gz
updating resources/providers unit tests to rpsec3
mechanically generated patch using transpec 2.3.7 gem
-rw-r--r--spec/unit/provider/breakpoint_spec.rb18
-rw-r--r--spec/unit/provider/cookbook_file/content_spec.rb6
-rw-r--r--spec/unit/provider/cookbook_file_spec.rb2
-rw-r--r--spec/unit/provider/cron_spec.rb350
-rw-r--r--spec/unit/provider/deploy/revision_spec.rb44
-rw-r--r--spec/unit/provider/deploy/timestamped_spec.rb6
-rw-r--r--spec/unit/provider/deploy_spec.rb462
-rw-r--r--spec/unit/provider/directory_spec.rb110
-rw-r--r--spec/unit/provider/dsc_script_spec.rb26
-rw-r--r--spec/unit/provider/env/windows_spec.rb10
-rw-r--r--spec/unit/provider/env_spec.rb116
-rw-r--r--spec/unit/provider/erl_call_spec.rb18
-rw-r--r--spec/unit/provider/execute_spec.rb54
-rw-r--r--spec/unit/provider/file/content_spec.rb18
-rw-r--r--spec/unit/provider/file_spec.rb2
-rw-r--r--spec/unit/provider/git_spec.rb344
-rw-r--r--spec/unit/provider/group/dscl_spec.rb122
-rw-r--r--spec/unit/provider/group/gpasswd_spec.rb28
-rw-r--r--spec/unit/provider/group/groupadd_spec.rb66
-rw-r--r--spec/unit/provider/group/groupmod_spec.rb46
-rw-r--r--spec/unit/provider/group/pw_spec.rb42
-rw-r--r--spec/unit/provider/group/usermod_spec.rb40
-rw-r--r--spec/unit/provider/group/windows_spec.rb30
-rw-r--r--spec/unit/provider/group_spec.rb152
-rw-r--r--spec/unit/provider/http_request_spec.rb60
-rw-r--r--spec/unit/provider/ifconfig/aix_spec.rb40
-rw-r--r--spec/unit/provider/ifconfig/debian_spec.rb4
-rw-r--r--spec/unit/provider/ifconfig/redhat_spec.rb26
-rw-r--r--spec/unit/provider/ifconfig_spec.rb86
-rw-r--r--spec/unit/provider/link_spec.rb120
-rw-r--r--spec/unit/provider/mdadm_spec.rb46
-rw-r--r--spec/unit/provider/mount/aix_spec.rb34
-rw-r--r--spec/unit/provider/mount/mount_spec.rb220
-rw-r--r--spec/unit/provider/mount/solaris_spec.rb144
-rw-r--r--spec/unit/provider/mount/windows_spec.rb48
-rw-r--r--spec/unit/provider/ohai_spec.rb22
-rw-r--r--spec/unit/provider/package/aix_spec.rb68
-rw-r--r--spec/unit/provider/package/apt_spec.rb70
-rw-r--r--spec/unit/provider/package/dpkg_spec.rb54
-rw-r--r--spec/unit/provider/package/easy_install_spec.rb32
-rw-r--r--spec/unit/provider/package/freebsd/pkg_spec.rb106
-rw-r--r--spec/unit/provider/package/freebsd/pkgng_spec.rb46
-rw-r--r--spec/unit/provider/package/freebsd/port_spec.rb68
-rw-r--r--spec/unit/provider/package/ips_spec.rb68
-rw-r--r--spec/unit/provider/package/macports_spec.rb98
-rw-r--r--spec/unit/provider/package/pacman_spec.rb70
-rw-r--r--spec/unit/provider/package/paludis_spec.rb40
-rw-r--r--spec/unit/provider/package/portage_spec.rb76
-rw-r--r--spec/unit/provider/package/rpm_spec.rb58
-rw-r--r--spec/unit/provider/package/rubygems_spec.rb268
-rw-r--r--spec/unit/provider/package/smartos_spec.rb30
-rw-r--r--spec/unit/provider/package/solaris_spec.rb70
-rw-r--r--spec/unit/provider/package/windows/msi_spec.rb6
-rw-r--r--spec/unit/provider/package/windows_spec.rb8
-rw-r--r--spec/unit/provider/package/yum_spec.rb832
-rw-r--r--spec/unit/provider/package/zypper_spec.rb94
-rw-r--r--spec/unit/provider/package_spec.rb214
-rw-r--r--spec/unit/provider/powershell_spec.rb2
-rw-r--r--spec/unit/provider/registry_key_spec.rb122
-rw-r--r--spec/unit/provider/remote_directory_spec.rb72
-rw-r--r--spec/unit/provider/remote_file/cache_control_data_spec.rb46
-rw-r--r--spec/unit/provider/remote_file/content_spec.rb90
-rw-r--r--spec/unit/provider/remote_file/fetcher_spec.rb18
-rw-r--r--spec/unit/provider/remote_file/ftp_spec.rb64
-rw-r--r--spec/unit/provider/remote_file/http_spec.rb88
-rw-r--r--spec/unit/provider/remote_file/local_file_spec.rb18
-rw-r--r--spec/unit/provider/remote_file_spec.rb6
-rw-r--r--spec/unit/provider/route_spec.rb126
-rw-r--r--spec/unit/provider/ruby_block_spec.rb8
-rw-r--r--spec/unit/provider/script_spec.rb24
-rw-r--r--spec/unit/provider/service/aix_service_spec.rb50
-rw-r--r--spec/unit/provider/service/aixinit_service_spec.rb64
-rw-r--r--spec/unit/provider/service/arch_service_spec.rb96
-rw-r--r--spec/unit/provider/service/debian_service_spec.rb80
-rw-r--r--spec/unit/provider/service/gentoo_service_spec.rb56
-rw-r--r--spec/unit/provider/service/init_service_spec.rb78
-rw-r--r--spec/unit/provider/service/insserv_service_spec.rb16
-rw-r--r--spec/unit/provider/service/invokercd_service_spec.rb70
-rw-r--r--spec/unit/provider/service/macosx_spec.rb98
-rw-r--r--spec/unit/provider/service/redhat_spec.rb54
-rw-r--r--spec/unit/provider/service/simple_service_spec.rb56
-rw-r--r--spec/unit/provider/service/solaris_smf_service_spec.rb92
-rw-r--r--spec/unit/provider/service/systemd_service_spec.rb126
-rw-r--r--spec/unit/provider/service/upstart_service_spec.rb156
-rw-r--r--spec/unit/provider/service/windows_spec.rb184
-rw-r--r--spec/unit/provider/service_spec.rb80
-rw-r--r--spec/unit/provider/subversion_spec.rb160
-rw-r--r--spec/unit/provider/template/content_spec.rb18
-rw-r--r--spec/unit/provider/template_spec.rb12
-rw-r--r--spec/unit/provider/user/dscl_spec.rb336
-rw-r--r--spec/unit/provider/user/pw_spec.rb96
-rw-r--r--spec/unit/provider/user/solaris_spec.rb14
-rw-r--r--spec/unit/provider/user/useradd_spec.rb2
-rw-r--r--spec/unit/provider/user/windows_spec.rb52
-rw-r--r--spec/unit/provider/user_spec.rb144
-rw-r--r--spec/unit/provider/whyrun_safe_ruby_block_spec.rb8
-rw-r--r--spec/unit/resource/apt_package_spec.rb2
-rw-r--r--spec/unit/resource/bash_spec.rb8
-rw-r--r--spec/unit/resource/batch_spec.rb2
-rw-r--r--spec/unit/resource/breakpoint_spec.rb6
-rw-r--r--spec/unit/resource/chef_gem_spec.rb2
-rw-r--r--spec/unit/resource/conditional_action_not_nothing_spec.rb4
-rw-r--r--spec/unit/resource/conditional_spec.rb32
-rw-r--r--spec/unit/resource/cookbook_file_spec.rb26
-rw-r--r--spec/unit/resource/cron_spec.rb74
-rw-r--r--spec/unit/resource/csh_spec.rb8
-rw-r--r--spec/unit/resource/deploy_spec.rb102
-rw-r--r--spec/unit/resource/directory_spec.rb36
-rw-r--r--spec/unit/resource/easy_install_package_spec.rb2
-rw-r--r--spec/unit/resource/env_spec.rb24
-rw-r--r--spec/unit/resource/erl_call_spec.rb22
-rw-r--r--spec/unit/resource/execute_spec.rb2
-rw-r--r--spec/unit/resource/file_spec.rb58
-rw-r--r--spec/unit/resource/freebsd_package_spec.rb18
-rw-r--r--spec/unit/resource/gem_package_spec.rb2
-rw-r--r--spec/unit/resource/git_spec.rb8
-rw-r--r--spec/unit/resource/group_spec.rb54
-rw-r--r--spec/unit/resource/http_request_spec.rb12
-rw-r--r--spec/unit/resource/ifconfig_spec.rb16
-rw-r--r--spec/unit/resource/ips_package_spec.rb2
-rw-r--r--spec/unit/resource/link_spec.rb50
-rw-r--r--spec/unit/resource/log_spec.rb18
-rw-r--r--spec/unit/resource/mdadm_spec.rb36
-rw-r--r--spec/unit/resource/mount_spec.rb90
-rw-r--r--spec/unit/resource/ohai_spec.rb14
-rw-r--r--spec/unit/resource/package_spec.rb24
-rw-r--r--spec/unit/resource/perl_spec.rb8
-rw-r--r--spec/unit/resource/portage_package_spec.rb6
-rw-r--r--spec/unit/resource/powershell_spec.rb14
-rw-r--r--spec/unit/resource/python_spec.rb8
-rw-r--r--spec/unit/resource/registry_key_spec.rb64
-rw-r--r--spec/unit/resource/remote_directory_spec.rb34
-rw-r--r--spec/unit/resource/remote_file_spec.rb82
-rw-r--r--spec/unit/resource/route_spec.rb38
-rw-r--r--spec/unit/resource/ruby_block_spec.rb16
-rw-r--r--spec/unit/resource/ruby_spec.rb8
-rw-r--r--spec/unit/resource/scm_spec.rb80
-rw-r--r--spec/unit/resource/script_spec.rb4
-rw-r--r--spec/unit/resource/service_spec.rb72
-rw-r--r--spec/unit/resource/solaris_package_spec.rb2
-rw-r--r--spec/unit/resource/subversion_spec.rb16
-rw-r--r--spec/unit/resource/template_spec.rb70
-rw-r--r--spec/unit/resource/user_spec.rb46
-rw-r--r--spec/unit/resource/windows_package_spec.rb4
-rw-r--r--spec/unit/resource/windows_service_spec.rb2
-rw-r--r--spec/unit/resource/yum_package_spec.rb14
146 files changed, 4781 insertions, 4781 deletions
diff --git a/spec/unit/provider/breakpoint_spec.rb b/spec/unit/provider/breakpoint_spec.rb
index 05f3e8e0ed..386e5a1d17 100644
--- a/spec/unit/provider/breakpoint_spec.rb
+++ b/spec/unit/provider/breakpoint_spec.rb
@@ -26,28 +26,28 @@ describe Chef::Provider::Breakpoint do
@events = Chef::EventDispatch::Dispatcher.new
@run_context = Chef::RunContext.new(@node, {}, @events)
@collection = double("resource collection")
- @run_context.stub(:resource_collection).and_return(@collection)
+ allow(@run_context).to receive(:resource_collection).and_return(@collection)
@provider = Chef::Provider::Breakpoint.new(@resource, @run_context)
end
it "responds to load_current_resource" do
- @provider.should respond_to(:load_current_resource)
+ expect(@provider).to respond_to(:load_current_resource)
end
it "gets the iterator from @collection and pauses it" do
- Shell.stub(:running?).and_return(true)
+ allow(Shell).to receive(:running?).and_return(true)
@iterator = double("stepable_iterator")
- @collection.stub(:iterator).and_return(@iterator)
- @iterator.should_receive(:pause)
+ allow(@collection).to receive(:iterator).and_return(@iterator)
+ expect(@iterator).to receive(:pause)
@provider.action_break
- @resource.should be_updated
+ expect(@resource).to be_updated
end
it "doesn't pause the iterator if chef-shell isn't running" do
- Shell.stub(:running?).and_return(false)
+ allow(Shell).to receive(:running?).and_return(false)
@iterator = double("stepable_iterator")
- @collection.stub(:iterator).and_return(@iterator)
- @iterator.should_not_receive(:pause)
+ allow(@collection).to receive(:iterator).and_return(@iterator)
+ expect(@iterator).not_to receive(:pause)
@provider.action_break
end
diff --git a/spec/unit/provider/cookbook_file/content_spec.rb b/spec/unit/provider/cookbook_file/content_spec.rb
index ed8942aaf2..6946966153 100644
--- a/spec/unit/provider/cookbook_file/content_spec.rb
+++ b/spec/unit/provider/cookbook_file/content_spec.rb
@@ -28,12 +28,12 @@ describe Chef::Provider::CookbookFile::Content do
end
it "prefers the explicit cookbook name on the resource to the implicit one" do
- new_resource.stub(:cookbook).and_return('nginx')
- content.send(:resource_cookbook).should == 'nginx'
+ allow(new_resource).to receive(:cookbook).and_return('nginx')
+ expect(content.send(:resource_cookbook)).to eq('nginx')
end
it "falls back to the implicit cookbook name on the resource" do
- content.send(:resource_cookbook).should == 'apache2'
+ expect(content.send(:resource_cookbook)).to eq('apache2')
end
end
diff --git a/spec/unit/provider/cookbook_file_spec.rb b/spec/unit/provider/cookbook_file_spec.rb
index 131fca2ba6..a7cbba97cb 100644
--- a/spec/unit/provider/cookbook_file_spec.rb
+++ b/spec/unit/provider/cookbook_file_spec.rb
@@ -37,7 +37,7 @@ describe Chef::Provider::CookbookFile do
let(:provider) do
provider = described_class.new(resource, run_context)
- provider.stub(:content).and_return(content)
+ allow(provider).to receive(:content).and_return(content)
provider
end
diff --git a/spec/unit/provider/cron_spec.rb b/spec/unit/provider/cron_spec.rb
index 460fb0ca6a..7a917a4f27 100644
--- a/spec/unit/provider/cron_spec.rb
+++ b/spec/unit/provider/cron_spec.rb
@@ -35,7 +35,7 @@ describe Chef::Provider::Cron do
context "with a matching entry in the user's crontab" do
before :each do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -49,18 +49,18 @@ CRONTAB
it "should set cron_exists" do
@provider.load_current_resource
- @provider.cron_exists.should == true
- @provider.cron_empty.should == false
+ expect(@provider.cron_exists).to eq(true)
+ expect(@provider.cron_empty).to eq(false)
end
it "should pull the details out of the cron line" do
cron = @provider.load_current_resource
- cron.time.should == :reboot
- cron.command.should == '/bin/true param1 param2'
+ expect(cron.time).to eq(:reboot)
+ expect(cron.command).to eq('/bin/true param1 param2')
end
it "should pull env vars out" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -75,16 +75,16 @@ HOME=/home/foo
# Another comment
CRONTAB
cron = @provider.load_current_resource
- cron.mailto.should == 'foo@example.com'
- cron.shell.should == '/bin/foosh'
- cron.path.should == '/bin:/foo'
- cron.home.should == '/home/foo'
- cron.time.should == :reboot
- cron.command.should == '/bin/true param1 param2'
+ expect(cron.mailto).to eq('foo@example.com')
+ expect(cron.shell).to eq('/bin/foosh')
+ expect(cron.path).to eq('/bin:/foo')
+ expect(cron.home).to eq('/home/foo')
+ expect(cron.time).to eq(:reboot)
+ expect(cron.command).to eq('/bin/true param1 param2')
end
it "should parse and load generic and standard environment variables from cron entry" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
# Chef Name: cronhole some stuff
MAILTO=warn@example.com
TEST=lol
@@ -93,12 +93,12 @@ FLAG=1
CRONTAB
cron = @provider.load_current_resource
- cron.mailto.should == "warn@example.com"
- cron.environment.should == {"TEST" => "lol", "FLAG" => "1"}
+ expect(cron.mailto).to eq("warn@example.com")
+ expect(cron.environment).to eq({"TEST" => "lol", "FLAG" => "1"})
end
it "should not break with variables that match the cron resource internals" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
# Chef Name: cronhole some stuff
MINUTE=40
REBOOT=midnight
@@ -108,19 +108,19 @@ ENVIRONMENT=production
CRONTAB
cron = @provider.load_current_resource
- cron.time.should == :reboot
- cron.environment.should == {"MINUTE" => "40", "REBOOT" => "midnight", "TEST" => "lol", "ENVIRONMENT" => "production"}
+ expect(cron.time).to eq(:reboot)
+ expect(cron.environment).to eq({"MINUTE" => "40", "REBOOT" => "midnight", "TEST" => "lol", "ENVIRONMENT" => "production"})
end
it "should report the match" do
- Chef::Log.should_receive(:debug).with("Found cron '#{@new_resource.name}'")
+ expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
@provider.load_current_resource
end
describe "action_create" do
before :each do
- @provider.stub(:write_crontab)
- @provider.stub(:read_crontab).and_return(nil)
+ allow(@provider).to receive(:write_crontab)
+ allow(@provider).to receive(:read_crontab).and_return(nil)
end
context "when there is no existing crontab" do
@@ -130,7 +130,7 @@ CRONTAB
end
it "should create a crontab with the entry" do
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
# Chef Name: cronhole some stuff
@reboot /bin/true
ENDCRON
@@ -156,24 +156,24 @@ CRONTAB
describe "when examining the current system state" do
context "with no crontab for the user" do
before :each do
- @provider.stub(:read_crontab).and_return(nil)
+ allow(@provider).to receive(:read_crontab).and_return(nil)
end
it "should set cron_empty" do
@provider.load_current_resource
- @provider.cron_empty.should == true
- @provider.cron_exists.should == false
+ expect(@provider.cron_empty).to eq(true)
+ expect(@provider.cron_exists).to eq(false)
end
it "should report an empty crontab" do
- Chef::Log.should_receive(:debug).with("Cron empty for '#{@new_resource.user}'")
+ expect(Chef::Log).to receive(:debug).with("Cron empty for '#{@new_resource.user}'")
@provider.load_current_resource
end
end
context "with no matching entry in the user's crontab" do
before :each do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: something else
@@ -185,29 +185,29 @@ CRONTAB
it "should not set cron_exists or cron_empty" do
@provider.load_current_resource
- @provider.cron_exists.should == false
- @provider.cron_empty.should == false
+ expect(@provider.cron_exists).to eq(false)
+ expect(@provider.cron_empty).to eq(false)
end
it "should report no entry found" do
- Chef::Log.should_receive(:debug).with("Cron '#{@new_resource.name}' not found")
+ expect(Chef::Log).to receive(:debug).with("Cron '#{@new_resource.name}' not found")
@provider.load_current_resource
end
it "should not fail if there's an existing cron with a numerical argument" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
# Chef Name: foo[bar] (baz)
21 */4 * * * some_prog 1234567
CRONTAB
- lambda {
+ expect {
@provider.load_current_resource
- }.should_not raise_error
+ }.not_to raise_error
end
end
context "with a matching entry in the user's crontab" do
before :each do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -221,23 +221,23 @@ CRONTAB
it "should set cron_exists" do
@provider.load_current_resource
- @provider.cron_exists.should == true
- @provider.cron_empty.should == false
+ expect(@provider.cron_exists).to eq(true)
+ expect(@provider.cron_empty).to eq(false)
end
it "should pull the details out of the cron line" do
cron = @provider.load_current_resource
- cron.minute.should == '*'
- cron.hour.should == '5'
- cron.day.should == '*'
- cron.month.should == '1'
- cron.weekday.should == '*'
- cron.time.should == nil
- cron.command.should == '/bin/true param1 param2'
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('5')
+ expect(cron.day).to eq('*')
+ expect(cron.month).to eq('1')
+ expect(cron.weekday).to eq('*')
+ expect(cron.time).to eq(nil)
+ expect(cron.command).to eq('/bin/true param1 param2')
end
it "should pull env vars out" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -252,21 +252,21 @@ HOME=/home/foo
# Another comment
CRONTAB
cron = @provider.load_current_resource
- cron.mailto.should == 'foo@example.com'
- cron.shell.should == '/bin/foosh'
- cron.path.should == '/bin:/foo'
- cron.home.should == '/home/foo'
- cron.minute.should == '*'
- cron.hour.should == '5'
- cron.day.should == '*'
- cron.month.should == '1'
- cron.weekday.should == '*'
- cron.time.should == nil
- cron.command.should == '/bin/true param1 param2'
+ expect(cron.mailto).to eq('foo@example.com')
+ expect(cron.shell).to eq('/bin/foosh')
+ expect(cron.path).to eq('/bin:/foo')
+ expect(cron.home).to eq('/home/foo')
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('5')
+ expect(cron.day).to eq('*')
+ expect(cron.month).to eq('1')
+ expect(cron.weekday).to eq('*')
+ expect(cron.time).to eq(nil)
+ expect(cron.command).to eq('/bin/true param1 param2')
end
it "should parse and load generic and standard environment variables from cron entry" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
# Chef Name: cronhole some stuff
MAILTO=warn@example.com
TEST=lol
@@ -275,12 +275,12 @@ FLAG=1
CRONTAB
cron = @provider.load_current_resource
- cron.mailto.should == "warn@example.com"
- cron.environment.should == {"TEST" => "lol", "FLAG" => "1"}
+ expect(cron.mailto).to eq("warn@example.com")
+ expect(cron.environment).to eq({"TEST" => "lol", "FLAG" => "1"})
end
it "should not break with variabels that match the cron resource internals" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
# Chef Name: cronhole some stuff
MINUTE=40
HOUR=midnight
@@ -290,20 +290,20 @@ ENVIRONMENT=production
CRONTAB
cron = @provider.load_current_resource
- cron.minute.should == '*'
- cron.hour.should == '5'
- cron.environment.should == {"MINUTE" => "40", "HOUR" => "midnight", "TEST" => "lol", "ENVIRONMENT" => "production"}
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('5')
+ expect(cron.environment).to eq({"MINUTE" => "40", "HOUR" => "midnight", "TEST" => "lol", "ENVIRONMENT" => "production"})
end
it "should report the match" do
- Chef::Log.should_receive(:debug).with("Found cron '#{@new_resource.name}'")
+ expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
@provider.load_current_resource
end
end
context "with a matching entry in the user's crontab using month names and weekday names (#CHEF-3178)" do
before :each do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -317,64 +317,64 @@ CRONTAB
it "should set cron_exists" do
@provider.load_current_resource
- @provider.cron_exists.should == true
- @provider.cron_empty.should == false
+ expect(@provider.cron_exists).to eq(true)
+ expect(@provider.cron_empty).to eq(false)
end
it "should pull the details out of the cron line" do
cron = @provider.load_current_resource
- cron.minute.should == '*'
- cron.hour.should == '5'
- cron.day.should == '*'
- cron.month.should == 'Jan'
- cron.weekday.should == 'Mon'
- cron.command.should == '/bin/true param1 param2'
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('5')
+ expect(cron.day).to eq('*')
+ expect(cron.month).to eq('Jan')
+ expect(cron.weekday).to eq('Mon')
+ expect(cron.command).to eq('/bin/true param1 param2')
end
it "should report the match" do
- Chef::Log.should_receive(:debug).with("Found cron '#{@new_resource.name}'")
+ expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
@provider.load_current_resource
end
end
context "with a matching entry without a crontab line" do
it "should set cron_exists and leave current_resource values at defaults" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
CRONTAB
cron = @provider.load_current_resource
- @provider.cron_exists.should == true
- cron.minute.should == '*'
- cron.hour.should == '*'
- cron.day.should == '*'
- cron.month.should == '*'
- cron.weekday.should == '*'
- cron.time.should == nil
- cron.command.should == nil
+ expect(@provider.cron_exists).to eq(true)
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('*')
+ expect(cron.day).to eq('*')
+ expect(cron.month).to eq('*')
+ expect(cron.weekday).to eq('*')
+ expect(cron.time).to eq(nil)
+ expect(cron.command).to eq(nil)
end
it "should not pick up a commented out crontab line" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
#* 5 * 1 * /bin/true param1 param2
CRONTAB
cron = @provider.load_current_resource
- @provider.cron_exists.should == true
- cron.minute.should == '*'
- cron.hour.should == '*'
- cron.day.should == '*'
- cron.month.should == '*'
- cron.weekday.should == '*'
- cron.time.should == nil
- cron.command.should == nil
+ expect(@provider.cron_exists).to eq(true)
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('*')
+ expect(cron.day).to eq('*')
+ expect(cron.month).to eq('*')
+ expect(cron.weekday).to eq('*')
+ expect(cron.time).to eq(nil)
+ expect(cron.command).to eq(nil)
end
it "should not pick up a later crontab entry" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -385,14 +385,14 @@ CRONTAB
# Another comment
CRONTAB
cron = @provider.load_current_resource
- @provider.cron_exists.should == true
- cron.minute.should == '*'
- cron.hour.should == '*'
- cron.day.should == '*'
- cron.month.should == '*'
- cron.weekday.should == '*'
- cron.time.should == nil
- cron.command.should == nil
+ expect(@provider.cron_exists).to eq(true)
+ expect(cron.minute).to eq('*')
+ expect(cron.hour).to eq('*')
+ expect(cron.day).to eq('*')
+ expect(cron.month).to eq('*')
+ expect(cron.weekday).to eq('*')
+ expect(cron.time).to eq(nil)
+ expect(cron.command).to eq(nil)
end
end
end
@@ -409,35 +409,35 @@ CRONTAB
[:minute, :hour, :day, :month, :weekday, :command, :mailto, :path, :shell, :home].each do |attribute|
it "should return true if #{attribute} doesn't match" do
@new_resource.send(attribute, "something_else")
- @provider.cron_different?.should eql(true)
+ expect(@provider.cron_different?).to eql(true)
end
end
it "should return true if special time string doesn't match" do
@new_resource.send(:time, :reboot)
- @provider.cron_different?.should eql(true)
+ expect(@provider.cron_different?).to eql(true)
end
it "should return true if environment doesn't match" do
@new_resource.environment "FOO" => "something_else"
- @provider.cron_different?.should eql(true)
+ expect(@provider.cron_different?).to eql(true)
end
it "should return true if mailto doesn't match" do
@current_resource.mailto "foo@bar.com"
@new_resource.mailto(nil)
- @provider.cron_different?.should eql(true)
+ expect(@provider.cron_different?).to eql(true)
end
it "should return false if the objects are identical" do
- @provider.cron_different?.should == false
+ expect(@provider.cron_different?).to eq(false)
end
end
describe "action_create" do
before :each do
- @provider.stub(:write_crontab)
- @provider.stub(:read_crontab).and_return(nil)
+ allow(@provider).to receive(:write_crontab)
+ allow(@provider).to receive(:read_crontab).and_return(nil)
end
context "when there is no existing crontab" do
@@ -447,7 +447,7 @@ CRONTAB
end
it "should create a crontab with the entry" do
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
# Chef Name: cronhole some stuff
30 * * * * /bin/true
ENDCRON
@@ -460,7 +460,7 @@ CRONTAB
@new_resource.shell '/bin/foosh'
@new_resource.home '/home/foo'
@new_resource.environment "TEST" => "LOL"
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
# Chef Name: cronhole some stuff
MAILTO=foo@example.com
PATH=/usr/bin:/my/custom/path
@@ -474,11 +474,11 @@ TEST=LOL
it "should mark the resource as updated" do
@provider.run_action(:create)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should log the action" do
- Chef::Log.should_receive(:info).with("cron[cronhole some stuff] added crontab entry")
+ expect(Chef::Log).to receive(:info).with("cron[cronhole some stuff] added crontab entry")
@provider.run_action(:create)
end
end
@@ -486,7 +486,7 @@ TEST=LOL
context "when there is a crontab with no matching section" do
before :each do
@provider.cron_exists = false
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: something else
@@ -497,7 +497,7 @@ TEST=LOL
end
it "should add the entry to the crontab" do
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: something else
@@ -516,7 +516,7 @@ TEST=LOL
@new_resource.shell '/bin/foosh'
@new_resource.home '/home/foo'
@new_resource.environment "TEST" => "LOL"
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: something else
@@ -536,11 +536,11 @@ TEST=LOL
it "should mark the resource as updated" do
@provider.run_action(:create)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should log the action" do
- Chef::Log.should_receive(:info).with("cron[cronhole some stuff] added crontab entry")
+ expect(Chef::Log).to receive(:info).with("cron[cronhole some stuff] added crontab entry")
@provider.run_action(:create)
end
end
@@ -548,8 +548,8 @@ TEST=LOL
context "when there is a crontab with a matching but different section" do
before :each do
@provider.cron_exists = true
- @provider.stub(:cron_different?).and_return(true)
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:cron_different?).and_return(true)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -562,7 +562,7 @@ TEST=LOL
end
it "should update the crontab entry" do
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -581,7 +581,7 @@ TEST=LOL
@new_resource.shell '/bin/foosh'
@new_resource.home '/home/foo'
@new_resource.environment "TEST" => "LOL"
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -601,11 +601,11 @@ TEST=LOL
it "should mark the resource as updated" do
@provider.run_action(:create)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should log the action" do
- Chef::Log.should_receive(:info).with("cron[cronhole some stuff] updated crontab entry")
+ expect(Chef::Log).to receive(:info).with("cron[cronhole some stuff] updated crontab entry")
@provider.run_action(:create)
end
end
@@ -613,16 +613,16 @@ TEST=LOL
context "when there is a crontab with a matching section with no crontab line in it" do
before :each do
@provider.cron_exists = true
- @provider.stub(:cron_different?).and_return(true)
+ allow(@provider).to receive(:cron_different?).and_return(true)
end
it "should add the crontab to the entry" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
CRONTAB
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -632,7 +632,7 @@ TEST=LOL
end
it "should not blat any following entries" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -642,7 +642,7 @@ TEST=LOL
# Another comment
CRONTAB
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -657,7 +657,7 @@ TEST=LOL
end
it "should handle env vars with no crontab" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -675,7 +675,7 @@ HOME=/home/foo
@new_resource.path '/usr/bin:/my/custom/path'
@new_resource.shell '/bin/foosh'
@new_resource.home '/home/foo'
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -697,8 +697,8 @@ HOME=/home/foo
context "when there is a crontab with a matching and identical section" do
before :each do
@provider.cron_exists = true
- @provider.stub(:cron_different?).and_return(false)
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:cron_different?).and_return(false)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -709,18 +709,18 @@ CRONTAB
end
it "should not update the crontab" do
- @provider.should_not_receive(:write_crontab)
+ expect(@provider).not_to receive(:write_crontab)
@provider.run_action(:create)
end
it "should not mark the resource as updated" do
@provider.run_action(:create)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should log nothing changed" do
- Chef::Log.should_receive(:debug).with("Found cron '#{@new_resource.name}'")
- Chef::Log.should_receive(:debug).with("Skipping existing cron entry '#{@new_resource.name}'")
+ expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
+ expect(Chef::Log).to receive(:debug).with("Skipping existing cron entry '#{@new_resource.name}'")
@provider.run_action(:create)
end
end
@@ -728,8 +728,8 @@ CRONTAB
describe "action_delete" do
before :each do
- @provider.stub(:write_crontab)
- @provider.stub(:read_crontab).and_return(nil)
+ allow(@provider).to receive(:write_crontab)
+ allow(@provider).to receive(:read_crontab).and_return(nil)
end
context "when the user's crontab has no matching section" do
@@ -738,21 +738,21 @@ CRONTAB
end
it "should do nothing" do
- @provider.should_not_receive(:write_crontab)
- Chef::Log.should_not_receive(:info)
+ expect(@provider).not_to receive(:write_crontab)
+ expect(Chef::Log).not_to receive(:info)
@provider.run_action(:delete)
end
it "should not mark the resource as updated" do
@provider.run_action(:delete)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
end
context "when the user has a crontab with a matching section" do
before :each do
@provider.cron_exists = true
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -765,7 +765,7 @@ CRONTAB
end
it "should remove the entry" do
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: something else
@@ -777,7 +777,7 @@ CRONTAB
end
it "should remove any env vars with the entry" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -789,7 +789,7 @@ FOO=test
# Another comment
CRONTAB
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
# Chef Name: something else
@@ -802,11 +802,11 @@ FOO=test
it "should mark the resource as updated" do
@provider.run_action(:delete)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should log the action" do
- Chef::Log.should_receive(:info).with("#{@new_resource} deleted crontab entry")
+ expect(Chef::Log).to receive(:info).with("#{@new_resource} deleted crontab entry")
@provider.run_action(:delete)
end
end
@@ -817,12 +817,12 @@ FOO=test
end
it "should remove the section" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
CRONTAB
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
ENDCRON
@@ -830,7 +830,7 @@ FOO=test
end
it "should not blat following sections" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -840,7 +840,7 @@ FOO=test
# Another comment
CRONTAB
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
#30 * * 3 * /bin/true
@@ -853,7 +853,7 @@ FOO=test
end
it "should remove any envvars with the section" do
- @provider.stub(:read_crontab).and_return(<<-CRONTAB)
+ allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
0 2 * * * /some/other/command
# Chef Name: cronhole some stuff
@@ -864,7 +864,7 @@ MAILTO=foo@example.com
# Another comment
CRONTAB
- @provider.should_receive(:write_crontab).with(<<-ENDCRON)
+ expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
0 2 * * * /some/other/command
#30 * * 3 * /bin/true
@@ -889,17 +889,17 @@ MAILTO=foo@example.com
# Another comment
CRONTAB
- @provider.stub(:popen4).and_yield(1234, StringIO.new, @stdout, StringIO.new).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(1234, StringIO.new, @stdout, StringIO.new).and_return(@status)
end
it "should call crontab -l with the user" do
- @provider.should_receive(:popen4).with("crontab -l -u #{@new_resource.user}").and_return(@status)
+ expect(@provider).to receive(:popen4).with("crontab -l -u #{@new_resource.user}").and_return(@status)
@provider.send(:read_crontab)
end
it "should return the contents of the crontab" do
crontab = @provider.send(:read_crontab)
- crontab.should == <<-CRONTAB
+ expect(crontab).to eq <<-CRONTAB
0 2 * * * /some/other/command
# Chef Name: something else
@@ -911,16 +911,16 @@ MAILTO=foo@example.com
it "should return nil if the user has no crontab" do
status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(status)
- @provider.send(:read_crontab).should == nil
+ allow(@provider).to receive(:popen4).and_return(status)
+ expect(@provider.send(:read_crontab)).to eq(nil)
end
it "should raise an exception if another error occurs" do
status = double("Status", :exitstatus => 2)
- @provider.stub(:popen4).and_return(status)
- lambda do
+ allow(@provider).to receive(:popen4).and_return(status)
+ expect do
@provider.send(:read_crontab)
- end.should raise_error(Chef::Exceptions::Cron, "Error determining state of #{@new_resource.name}, exit: 2")
+ end.to raise_error(Chef::Exceptions::Cron, "Error determining state of #{@new_resource.name}, exit: 2")
end
end
@@ -928,24 +928,24 @@ MAILTO=foo@example.com
before :each do
@status = double("Status", :exitstatus => 0)
@stdin = StringIO.new
- @provider.stub(:popen4).and_yield(1234, @stdin, StringIO.new, StringIO.new).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(1234, @stdin, StringIO.new, StringIO.new).and_return(@status)
end
it "should call crontab for the user" do
- @provider.should_receive(:popen4).with("crontab -u #{@new_resource.user} -", :waitlast => true).and_return(@status)
+ expect(@provider).to receive(:popen4).with("crontab -u #{@new_resource.user} -", :waitlast => true).and_return(@status)
@provider.send(:write_crontab, "Foo")
end
it "should write the given string to the crontab command" do
@provider.send(:write_crontab, "Foo\n# wibble\n wah!!")
- @stdin.string.should == "Foo\n# wibble\n wah!!"
+ expect(@stdin.string).to eq("Foo\n# wibble\n wah!!")
end
it "should raise an exception if the command returns non-zero" do
- @status.stub(:exitstatus).and_return(1)
- lambda do
+ allow(@status).to receive(:exitstatus).and_return(1)
+ expect do
@provider.send(:write_crontab, "Foo")
- end.should raise_error(Chef::Exceptions::Cron, "Error updating state of #{@new_resource.name}, exit: 1")
+ end.to raise_error(Chef::Exceptions::Cron, "Error updating state of #{@new_resource.name}, exit: 1")
end
it "should raise an exception if the command die's and parent tries to write" do
@@ -954,14 +954,14 @@ MAILTO=foo@example.com
raise Errno::EPIPE, "Test"
end
end
- @status.stub(:exitstatus).and_return(1)
- @provider.stub(:popen4).and_yield(1234, WriteErrPipe.new, StringIO.new, StringIO.new).and_return(@status)
+ allow(@status).to receive(:exitstatus).and_return(1)
+ allow(@provider).to receive(:popen4).and_yield(1234, WriteErrPipe.new, StringIO.new, StringIO.new).and_return(@status)
- Chef::Log.should_receive(:debug).with("Broken pipe - Test")
+ expect(Chef::Log).to receive(:debug).with("Broken pipe - Test")
- lambda do
+ expect do
@provider.send(:write_crontab, "Foo")
- end.should raise_error(Chef::Exceptions::Cron, "Error updating state of #{@new_resource.name}, exit: 1")
+ end.to raise_error(Chef::Exceptions::Cron, "Error updating state of #{@new_resource.name}, exit: 1")
end
end
@@ -970,7 +970,7 @@ MAILTO=foo@example.com
context "when weekday is symbol" do
it "should return weekday in crontab format" do
@new_resource.weekday :wednesday
- @provider.send(:weekday_in_crontab).should eq("3")
+ expect(@provider.send(:weekday_in_crontab)).to eq("3")
end
it "should raise an error with an unknown weekday" do
@@ -981,7 +981,7 @@ MAILTO=foo@example.com
context "when weekday is a number in a string" do
it "should return the string" do
@new_resource.weekday "3"
- @provider.send(:weekday_in_crontab).should eq("3")
+ expect(@provider.send(:weekday_in_crontab)).to eq("3")
end
it "should raise an error with an out of range number" do
@@ -992,14 +992,14 @@ MAILTO=foo@example.com
context "when weekday is string with the name of the week" do
it "should return the string" do
@new_resource.weekday "mon"
- @provider.send(:weekday_in_crontab).should eq("mon")
+ expect(@provider.send(:weekday_in_crontab)).to eq("mon")
end
end
context "when weekday is an integer" do
it "should return the integer" do
@new_resource.weekday 1
- @provider.send(:weekday_in_crontab).should eq("1")
+ expect(@provider.send(:weekday_in_crontab)).to eq("1")
end
it "should raise an error with an out of range integer" do
diff --git a/spec/unit/provider/deploy/revision_spec.rb b/spec/unit/provider/deploy/revision_spec.rb
index 9fa8bdf826..4ca64e3445 100644
--- a/spec/unit/provider/deploy/revision_spec.rb
+++ b/spec/unit/provider/deploy/revision_spec.rb
@@ -21,7 +21,7 @@ require 'spec_helper'
describe Chef::Provider::Deploy::Revision do
before do
- Chef::Platform.stub(:windows?) { false }
+ allow(Chef::Platform).to receive(:windows?) { false }
@temp_dir = Dir.mktmpdir
Chef::Config[:file_cache_path] = @temp_dir
@resource = Chef::Resource::Deploy.new("/my/deploy/dir")
@@ -32,7 +32,7 @@ describe Chef::Provider::Deploy::Revision do
@provider = Chef::Provider::Deploy::Revision.new(@resource, @run_context)
@provider.load_current_resource
@runner = double("runnah")
- Chef::Runner.stub(:new).and_return(@runner)
+ allow(Chef::Runner).to receive(:new).and_return(@runner)
@expected_release_dir = "/my/deploy/dir/releases/8a3195bf3efa246f743c5dfa83683201880f935c"
end
@@ -43,41 +43,41 @@ describe Chef::Provider::Deploy::Revision do
it "uses the resolved revision from the SCM as the release slug" do
- @provider.scm_provider.stub(:revision_slug).and_return("uglySlugly")
- @provider.send(:release_slug).should == "uglySlugly"
+ allow(@provider.scm_provider).to receive(:revision_slug).and_return("uglySlugly")
+ expect(@provider.send(:release_slug)).to eq("uglySlugly")
end
it "deploys to a dir named after the revision" do
- @provider.release_path.should == @expected_release_dir
+ expect(@provider.release_path).to eq(@expected_release_dir)
end
it "stores the release dir in the file cache in the cleanup step" do
- FileUtils.stub(:mkdir_p)
- FileUtils.stub(:cp_r)
+ allow(FileUtils).to receive(:mkdir_p)
+ allow(FileUtils).to receive(:cp_r)
@provider.cleanup!
- @provider.stub(:release_slug).and_return("73219b87e977d9c7ba1aa57e9ad1d88fa91a0ec2")
+ allow(@provider).to receive(:release_slug).and_return("73219b87e977d9c7ba1aa57e9ad1d88fa91a0ec2")
@provider.load_current_resource
@provider.cleanup!
second_release = "/my/deploy/dir/releases/73219b87e977d9c7ba1aa57e9ad1d88fa91a0ec2"
- @provider.all_releases.should == [@expected_release_dir,second_release]
+ expect(@provider.all_releases).to eq([@expected_release_dir,second_release])
end
it "removes a release from the file cache when it's used again in another release and append it to the end" do
- FileUtils.stub(:mkdir_p)
- FileUtils.stub(:cp_r)
+ allow(FileUtils).to receive(:mkdir_p)
+ allow(FileUtils).to receive(:cp_r)
@provider.cleanup!
- @provider.stub(:release_slug).and_return("73219b87e977d9c7ba1aa57e9ad1d88fa91a0ec2")
+ allow(@provider).to receive(:release_slug).and_return("73219b87e977d9c7ba1aa57e9ad1d88fa91a0ec2")
@provider.load_current_resource
@provider.cleanup!
second_release = "/my/deploy/dir/releases/73219b87e977d9c7ba1aa57e9ad1d88fa91a0ec2"
- @provider.all_releases.should == [@expected_release_dir,second_release]
+ expect(@provider.all_releases).to eq([@expected_release_dir,second_release])
@provider.cleanup!
- @provider.stub(:release_slug).and_return("8a3195bf3efa246f743c5dfa83683201880f935c")
+ allow(@provider).to receive(:release_slug).and_return("8a3195bf3efa246f743c5dfa83683201880f935c")
@provider.load_current_resource
@provider.cleanup!
- @provider.all_releases.should == [second_release, @expected_release_dir]
+ expect(@provider.all_releases).to eq([second_release, @expected_release_dir])
end
it "removes a release from the file cache when it's deleted by :cleanup!" do
@@ -87,25 +87,25 @@ describe Chef::Provider::Deploy::Revision do
release_paths.each do |release_path|
@provider.send(:release_created, release_path)
end
- @provider.all_releases.should == release_paths
+ expect(@provider.all_releases).to eq(release_paths)
- FileUtils.stub(:rm_rf)
+ allow(FileUtils).to receive(:rm_rf)
@provider.cleanup!
expected_release_paths = (%w{second third fourth fifth} << @resource.revision).map do |release_name|
"/my/deploy/dir/releases/#{release_name}"
end
- @provider.all_releases.should == expected_release_paths
+ expect(@provider.all_releases).to eq(expected_release_paths)
end
it "regenerates the file cache if it's not available" do
oldest = "/my/deploy/dir/releases/oldest"
latest = "/my/deploy/dir/releases/latest"
- Dir.should_receive(:glob).with("/my/deploy/dir/releases/*").and_return([latest, oldest])
- ::File.should_receive(:ctime).with(oldest).and_return(Time.now - 10)
- ::File.should_receive(:ctime).with(latest).and_return(Time.now - 1)
- @provider.all_releases.should == [oldest, latest]
+ expect(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return([latest, oldest])
+ expect(::File).to receive(:ctime).with(oldest).and_return(Time.now - 10)
+ expect(::File).to receive(:ctime).with(latest).and_return(Time.now - 1)
+ expect(@provider.all_releases).to eq([oldest, latest])
end
end
diff --git a/spec/unit/provider/deploy/timestamped_spec.rb b/spec/unit/provider/deploy/timestamped_spec.rb
index 1d42abfc05..b189d33502 100644
--- a/spec/unit/provider/deploy/timestamped_spec.rb
+++ b/spec/unit/provider/deploy/timestamped_spec.rb
@@ -22,7 +22,7 @@ describe Chef::Provider::Deploy::Timestamped do
before do
@release_time = Time.utc( 2004, 8, 15, 16, 23, 42)
- Time.stub(:now).and_return(@release_time)
+ allow(Time).to receive(:now).and_return(@release_time)
@expected_release_dir = "/my/deploy/dir/releases/20040815162342"
@resource = Chef::Resource::Deploy.new("/my/deploy/dir")
@node = Chef::Node.new
@@ -30,11 +30,11 @@ describe Chef::Provider::Deploy::Timestamped do
@run_context = Chef::RunContext.new(@node, {}, @events)
@timestamped_deploy = Chef::Provider::Deploy::Timestamped.new(@resource, @run_context)
@runner = double("runnah")
- Chef::Runner.stub(:new).and_return(@runner)
+ allow(Chef::Runner).to receive(:new).and_return(@runner)
end
it "gives a timestamp for release_slug" do
- @timestamped_deploy.send(:release_slug).should == "20040815162342"
+ expect(@timestamped_deploy.send(:release_slug)).to eq("20040815162342")
end
end
diff --git a/spec/unit/provider/deploy_spec.rb b/spec/unit/provider/deploy_spec.rb
index d85ee4c7fd..c95a9b3d57 100644
--- a/spec/unit/provider/deploy_spec.rb
+++ b/spec/unit/provider/deploy_spec.rb
@@ -21,205 +21,205 @@ require 'spec_helper'
describe Chef::Provider::Deploy do
before do
- Chef::Platform.stub(:windows?) { false }
+ allow(Chef::Platform).to receive(:windows?) { false }
@release_time = Time.utc( 2004, 8, 15, 16, 23, 42)
- Time.stub(:now).and_return(@release_time)
+ allow(Time).to receive(:now).and_return(@release_time)
@expected_release_dir = "/my/deploy/dir/releases/20040815162342"
@resource = Chef::Resource::Deploy.new("/my/deploy/dir")
@node = Chef::Node.new
@events = Chef::EventDispatch::Dispatcher.new
@run_context = Chef::RunContext.new(@node, {}, @events)
@provider = Chef::Provider::Deploy.new(@resource, @run_context)
- @provider.stub(:release_slug)
- @provider.stub(:release_path).and_return(@expected_release_dir)
+ allow(@provider).to receive(:release_slug)
+ allow(@provider).to receive(:release_path).and_return(@expected_release_dir)
end
it "loads scm resource" do
- @provider.scm_provider.should_receive(:load_current_resource)
+ expect(@provider.scm_provider).to receive(:load_current_resource)
@provider.load_current_resource
end
it "supports :deploy and :rollback actions" do
- @provider.should respond_to(:action_deploy)
- @provider.should respond_to(:action_rollback)
+ expect(@provider).to respond_to(:action_deploy)
+ expect(@provider).to respond_to(:action_rollback)
end
context "when the deploy resource has a timeout attribute" do
let(:ten_seconds) { 10 }
before { @resource.timeout(ten_seconds) }
it "relays the timeout to the scm resource" do
- @provider.scm_provider.new_resource.timeout.should == ten_seconds
+ expect(@provider.scm_provider.new_resource.timeout).to eq(ten_seconds)
end
end
context "when the deploy resource has no timeout attribute" do
it "should not set a timeout on the scm resource" do
- @provider.scm_provider.new_resource.timeout.should be_nil
+ expect(@provider.scm_provider.new_resource.timeout).to be_nil
end
end
context "when the deploy_to dir does not exist yet" do
before do
- FileUtils.should_receive(:mkdir_p).with(@resource.deploy_to).ordered
- FileUtils.should_receive(:mkdir_p).with(@resource.shared_path).ordered
- ::File.stub(:directory?).and_return(false)
- @provider.stub(:symlink)
- @provider.stub(:migrate)
- @provider.stub(:copy_cached_repo)
+ expect(FileUtils).to receive(:mkdir_p).with(@resource.deploy_to).ordered
+ expect(FileUtils).to receive(:mkdir_p).with(@resource.shared_path).ordered
+ allow(::File).to receive(:directory?).and_return(false)
+ allow(@provider).to receive(:symlink)
+ allow(@provider).to receive(:migrate)
+ allow(@provider).to receive(:copy_cached_repo)
end
it "creates deploy_to dir" do
- ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times
- @provider.should_receive(:enforce_ownership).twice
- @provider.stub(:update_cached_repo)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).exactly(4).times
+ expect(@provider).to receive(:enforce_ownership).twice
+ allow(@provider).to receive(:update_cached_repo)
@provider.deploy
end
end
it "does not create deploy_to dir if it exists" do
- ::File.stub(:directory?).and_return(true)
- ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times
- FileUtils.should_not_receive(:mkdir_p).with(@resource.deploy_to)
- FileUtils.should_not_receive(:mkdir_p).with(@resource.shared_path)
- @provider.should_receive(:enforce_ownership).twice
- @provider.stub(:copy_cached_repo)
- @provider.stub(:update_cached_repo)
- @provider.stub(:symlink)
- @provider.stub(:migrate)
+ allow(::File).to receive(:directory?).and_return(true)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).exactly(4).times
+ expect(FileUtils).not_to receive(:mkdir_p).with(@resource.deploy_to)
+ expect(FileUtils).not_to receive(:mkdir_p).with(@resource.shared_path)
+ expect(@provider).to receive(:enforce_ownership).twice
+ allow(@provider).to receive(:copy_cached_repo)
+ allow(@provider).to receive(:update_cached_repo)
+ allow(@provider).to receive(:symlink)
+ allow(@provider).to receive(:migrate)
@provider.deploy
end
it "ensures the deploy_to dir ownership after the verfication that it exists" do
- ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times
- @provider.should_receive(:verify_directories_exist).ordered
- @provider.should_receive(:enforce_ownership).ordered
- @provider.stub(:copy_cached_repo)
- @provider.stub(:update_cached_repo)
- @provider.stub(:install_gems)
- @provider.should_receive(:enforce_ownership).ordered
- @provider.stub(:enforce_ownership)
- @provider.stub(:symlink)
- @provider.stub(:migrate)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).exactly(4).times
+ expect(@provider).to receive(:verify_directories_exist).ordered
+ expect(@provider).to receive(:enforce_ownership).ordered
+ allow(@provider).to receive(:copy_cached_repo)
+ allow(@provider).to receive(:update_cached_repo)
+ allow(@provider).to receive(:install_gems)
+ expect(@provider).to receive(:enforce_ownership).ordered
+ allow(@provider).to receive(:enforce_ownership)
+ allow(@provider).to receive(:symlink)
+ allow(@provider).to receive(:migrate)
@provider.deploy
end
it "updates and copies the repo, then does a migrate, symlink, restart, restart, cleanup on deploy" do
- FileUtils.stub(:mkdir_p).with("/my/deploy/dir")
- FileUtils.stub(:mkdir_p).with("/my/deploy/dir/shared")
- @provider.should_receive(:enforce_ownership).twice
- @provider.should_receive(:update_cached_repo)
- @provider.should_receive(:copy_cached_repo)
- @provider.should_receive(:install_gems)
- @provider.should_receive(:callback).with(:before_migrate, nil)
- @provider.should_receive(:migrate)
- @provider.should_receive(:callback).with(:before_symlink, nil)
- @provider.should_receive(:symlink)
- @provider.should_receive(:callback).with(:before_restart, nil)
- @provider.should_receive(:restart)
- @provider.should_receive(:callback).with(:after_restart, nil)
- @provider.should_receive(:cleanup!)
+ allow(FileUtils).to receive(:mkdir_p).with("/my/deploy/dir")
+ allow(FileUtils).to receive(:mkdir_p).with("/my/deploy/dir/shared")
+ expect(@provider).to receive(:enforce_ownership).twice
+ expect(@provider).to receive(:update_cached_repo)
+ expect(@provider).to receive(:copy_cached_repo)
+ expect(@provider).to receive(:install_gems)
+ expect(@provider).to receive(:callback).with(:before_migrate, nil)
+ expect(@provider).to receive(:migrate)
+ expect(@provider).to receive(:callback).with(:before_symlink, nil)
+ expect(@provider).to receive(:symlink)
+ expect(@provider).to receive(:callback).with(:before_restart, nil)
+ expect(@provider).to receive(:restart)
+ expect(@provider).to receive(:callback).with(:after_restart, nil)
+ expect(@provider).to receive(:cleanup!)
@provider.deploy
end
it "should not deploy if there is already a deploy at release_path, and it is the current release" do
- @provider.stub(:all_releases).and_return([@expected_release_dir])
- @provider.stub(:current_release?).with(@expected_release_dir).and_return(true)
- @provider.should_not_receive(:deploy)
+ allow(@provider).to receive(:all_releases).and_return([@expected_release_dir])
+ allow(@provider).to receive(:current_release?).with(@expected_release_dir).and_return(true)
+ expect(@provider).not_to receive(:deploy)
@provider.run_action(:deploy)
end
it "should call action_rollback if there is already a deploy of this revision at release_path, and it is not the current release" do
- @provider.stub(:all_releases).and_return([@expected_release_dir, "102021"])
- @provider.stub(:current_release?).with(@expected_release_dir).and_return(false)
- @provider.should_receive(:rollback_to).with(@expected_release_dir)
- @provider.should_receive(:current_release?)
+ allow(@provider).to receive(:all_releases).and_return([@expected_release_dir, "102021"])
+ allow(@provider).to receive(:current_release?).with(@expected_release_dir).and_return(false)
+ expect(@provider).to receive(:rollback_to).with(@expected_release_dir)
+ expect(@provider).to receive(:current_release?)
@provider.run_action(:deploy)
end
it "calls deploy when deploying a new release" do
- @provider.stub(:all_releases).and_return([])
- @provider.should_receive(:deploy)
+ allow(@provider).to receive(:all_releases).and_return([])
+ expect(@provider).to receive(:deploy)
@provider.run_action(:deploy)
end
it "runs action svn_force_export when new_resource.svn_force_export is true" do
@resource.svn_force_export true
- @provider.scm_provider.should_receive(:run_action).with(:force_export)
+ expect(@provider.scm_provider).to receive(:run_action).with(:force_export)
@provider.update_cached_repo
end
it "Removes the old release before deploying when force deploying over it" do
- @provider.stub(:all_releases).and_return([@expected_release_dir])
- FileUtils.should_receive(:rm_rf).with(@expected_release_dir)
- @provider.should_receive(:deploy)
+ allow(@provider).to receive(:all_releases).and_return([@expected_release_dir])
+ expect(FileUtils).to receive(:rm_rf).with(@expected_release_dir)
+ expect(@provider).to receive(:deploy)
@provider.run_action(:force_deploy)
end
it "deploys as normal when force deploying and there's no prior release at the same path" do
- @provider.stub(:all_releases).and_return([])
- @provider.should_receive(:deploy)
+ allow(@provider).to receive(:all_releases).and_return([])
+ expect(@provider).to receive(:deploy)
@provider.run_action(:force_deploy)
end
it "dont care by default if error happens on deploy" do
- @provider.stub(:all_releases).and_return(['previous_release'])
- @provider.stub(:deploy).and_return{ raise "Unexpected error" }
- @provider.stub(:previous_release_path).and_return('previous_release')
- @provider.should_not_receive(:rollback)
- lambda {
+ allow(@provider).to receive(:all_releases).and_return(['previous_release'])
+ allow(@provider).to receive(:deploy){ raise "Unexpected error" }
+ allow(@provider).to receive(:previous_release_path).and_return('previous_release')
+ expect(@provider).not_to receive(:rollback)
+ expect {
@provider.run_action(:deploy)
- }.should raise_exception(RuntimeError, "Unexpected error")
+ }.to raise_exception(RuntimeError, "Unexpected error")
end
it "rollbacks to previous release if error happens on deploy" do
@resource.rollback_on_error true
- @provider.stub(:all_releases).and_return(['previous_release'])
- @provider.stub(:deploy).and_return{ raise "Unexpected error" }
- @provider.stub(:previous_release_path).and_return('previous_release')
- @provider.should_receive(:rollback)
- lambda {
+ allow(@provider).to receive(:all_releases).and_return(['previous_release'])
+ allow(@provider).to receive(:deploy){ raise "Unexpected error" }
+ allow(@provider).to receive(:previous_release_path).and_return('previous_release')
+ expect(@provider).to receive(:rollback)
+ expect {
@provider.run_action(:deploy)
- }.should raise_exception(RuntimeError, "Unexpected error")
+ }.to raise_exception(RuntimeError, "Unexpected error")
end
describe "on systems without broken Dir.glob results" do
it "sets the release path to the penultimate release when one is not specified, symlinks, and rm's the last release on rollback" do
- @provider.stub(:release_path).and_return("/my/deploy/dir/releases/3")
+ allow(@provider).to receive(:release_path).and_return("/my/deploy/dir/releases/3")
all_releases = ["/my/deploy/dir/releases/1", "/my/deploy/dir/releases/2", "/my/deploy/dir/releases/3", "/my/deploy/dir/releases/4", "/my/deploy/dir/releases/5"]
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- @provider.should_receive(:symlink)
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/releases/4")
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/releases/5")
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect(@provider).to receive(:symlink)
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/releases/4")
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/releases/5")
@provider.run_action(:rollback)
- @provider.release_path.should eql("/my/deploy/dir/releases/3")
- @provider.shared_path.should eql("/my/deploy/dir/shared")
+ expect(@provider.release_path).to eql("/my/deploy/dir/releases/3")
+ expect(@provider.shared_path).to eql("/my/deploy/dir/shared")
end
it "sets the release path to the specified release, symlinks, and rm's any newer releases on rollback" do
- @provider.unstub(:release_path)
+ allow(@provider).to receive(:release_path).and_call_original
all_releases = ["/my/deploy/dir/releases/20040815162342", "/my/deploy/dir/releases/20040700000000",
"/my/deploy/dir/releases/20040600000000", "/my/deploy/dir/releases/20040500000000"].sort!
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- @provider.should_receive(:symlink)
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect(@provider).to receive(:symlink)
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
@provider.run_action(:rollback)
- @provider.release_path.should eql("/my/deploy/dir/releases/20040700000000")
- @provider.shared_path.should eql("/my/deploy/dir/shared")
+ expect(@provider.release_path).to eql("/my/deploy/dir/releases/20040700000000")
+ expect(@provider.shared_path).to eql("/my/deploy/dir/shared")
end
it "sets the release path to the penultimate release, symlinks, and rm's the last release on rollback" do
- @provider.unstub(:release_path)
+ allow(@provider).to receive(:release_path).and_call_original
all_releases = [ "/my/deploy/dir/releases/20040815162342",
"/my/deploy/dir/releases/20040700000000",
"/my/deploy/dir/releases/20040600000000",
"/my/deploy/dir/releases/20040500000000"]
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- @provider.should_receive(:symlink)
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect(@provider).to receive(:symlink)
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
@provider.run_action(:rollback)
- @provider.release_path.should eql("/my/deploy/dir/releases/20040700000000")
- @provider.shared_path.should eql("/my/deploy/dir/shared")
+ expect(@provider.release_path).to eql("/my/deploy/dir/releases/20040700000000")
+ expect(@provider.shared_path).to eql("/my/deploy/dir/shared")
end
describe "if there are no releases to fallback to" do
@@ -227,143 +227,143 @@ describe Chef::Provider::Deploy do
it "an exception is raised when there is only 1 release" do
#@provider.unstub(:release_path) -- unstub the release path on top to feed our own release path
all_releases = [ "/my/deploy/dir/releases/20040815162342"]
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
#@provider.should_receive(:symlink)
#FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
#@provider.run_action(:rollback)
#@provider.release_path.should eql(NIL) -- no check needed since assertions will fail
- lambda {
+ expect {
@provider.run_action(:rollback)
- }.should raise_exception(RuntimeError, "There is no release to rollback to!")
+ }.to raise_exception(RuntimeError, "There is no release to rollback to!")
end
it "an exception is raised when there are no releases" do
all_releases = []
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- lambda {
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect {
@provider.run_action(:rollback)
- }.should raise_exception(RuntimeError, "There is no release to rollback to!")
+ }.to raise_exception(RuntimeError, "There is no release to rollback to!")
end
end
end
describe "CHEF-628: on systems with broken Dir.glob results" do
it "sets the release path to the penultimate release, symlinks, and rm's the last release on rollback" do
- @provider.unstub(:release_path)
+ allow(@provider).to receive(:release_path).and_call_original
all_releases = [ "/my/deploy/dir/releases/20040500000000",
"/my/deploy/dir/releases/20040600000000",
"/my/deploy/dir/releases/20040700000000",
"/my/deploy/dir/releases/20040815162342" ]
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- @provider.should_receive(:symlink)
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect(@provider).to receive(:symlink)
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/releases/20040815162342")
@provider.run_action(:rollback)
- @provider.release_path.should eql("/my/deploy/dir/releases/20040700000000")
- @provider.shared_path.should eql("/my/deploy/dir/shared")
+ expect(@provider.release_path).to eql("/my/deploy/dir/releases/20040700000000")
+ expect(@provider.shared_path).to eql("/my/deploy/dir/shared")
end
end
it "raises a runtime error when there's no release to rollback to" do
all_releases = []
- Dir.stub(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- lambda {@provider.run_action(:rollback)}.should raise_error(RuntimeError)
+ allow(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect {@provider.run_action(:rollback)}.to raise_error(RuntimeError)
end
it "runs the new resource collection in the runner during a callback" do
@runner = double("Runner")
- Chef::Runner.stub(:new).and_return(@runner)
- @runner.should_receive(:converge)
+ allow(Chef::Runner).to receive(:new).and_return(@runner)
+ expect(@runner).to receive(:converge)
callback_code = Proc.new { :noop }
@provider.callback(:whatevs, callback_code)
end
it "loads callback files from the release/ dir if the file exists" do
foo_callback = @expected_release_dir + "/deploy/foo.rb"
- ::File.should_receive(:exist?).with(foo_callback).once.and_return(true)
- ::Dir.should_receive(:chdir).with(@expected_release_dir).and_yield
- @provider.should_receive(:from_file).with(foo_callback)
+ expect(::File).to receive(:exist?).with(foo_callback).once.and_return(true)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).and_yield
+ expect(@provider).to receive(:from_file).with(foo_callback)
@provider.callback(:foo, "deploy/foo.rb")
end
it "raises a runtime error if a callback file is explicitly specified but does not exist" do
baz_callback = "/deploy/baz.rb"
- ::File.should_receive(:exist?).with("#{@expected_release_dir}/#{baz_callback}").and_return(false)
+ expect(::File).to receive(:exist?).with("#{@expected_release_dir}/#{baz_callback}").and_return(false)
@resource.before_migrate baz_callback
@provider.define_resource_requirements
@provider.action = :deploy
- lambda {@provider.process_resource_requirements}.should raise_error(RuntimeError)
+ expect {@provider.process_resource_requirements}.to raise_error(RuntimeError)
end
it "runs a default callback if the callback code is nil" do
bar_callback = @expected_release_dir + "/deploy/bar.rb"
- ::File.should_receive(:exist?).with(bar_callback).and_return(true)
- ::Dir.should_receive(:chdir).with(@expected_release_dir).and_yield
- @provider.should_receive(:from_file).with(bar_callback)
+ expect(::File).to receive(:exist?).with(bar_callback).and_return(true)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).and_yield
+ expect(@provider).to receive(:from_file).with(bar_callback)
@provider.callback(:bar, nil)
end
it "skips an eval callback if the file doesn't exist" do
barbaz_callback = @expected_release_dir + "/deploy/barbaz.rb"
- ::File.should_receive(:exist?).with(barbaz_callback).and_return(false)
- ::Dir.should_receive(:chdir).with(@expected_release_dir).and_yield
- @provider.should_not_receive(:from_file)
+ expect(::File).to receive(:exist?).with(barbaz_callback).and_return(false)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).and_yield
+ expect(@provider).not_to receive(:from_file)
@provider.callback(:barbaz, nil)
end
# CHEF-3449 #converge_by is called in #recipe_eval and must happen in sequence
# with the other calls to #converge_by to keep the train on the tracks
it "evaluates a callback file before the corresponding step" do
- @provider.should_receive(:verify_directories_exist)
- @provider.should_receive(:update_cached_repo)
- @provider.should_receive(:enforce_ownership)
- @provider.should_receive(:copy_cached_repo)
- @provider.should_receive(:install_gems)
- @provider.should_receive(:enforce_ownership)
- @provider.should_receive(:converge_by).ordered # before_migrate
- @provider.should_receive(:migrate).ordered
- @provider.should_receive(:converge_by).ordered # before_symlink
- @provider.should_receive(:symlink).ordered
- @provider.should_receive(:converge_by).ordered # before_restart
- @provider.should_receive(:restart).ordered
- @provider.should_receive(:converge_by).ordered # after_restart
- @provider.should_receive(:cleanup!)
+ expect(@provider).to receive(:verify_directories_exist)
+ expect(@provider).to receive(:update_cached_repo)
+ expect(@provider).to receive(:enforce_ownership)
+ expect(@provider).to receive(:copy_cached_repo)
+ expect(@provider).to receive(:install_gems)
+ expect(@provider).to receive(:enforce_ownership)
+ expect(@provider).to receive(:converge_by).ordered # before_migrate
+ expect(@provider).to receive(:migrate).ordered
+ expect(@provider).to receive(:converge_by).ordered # before_symlink
+ expect(@provider).to receive(:symlink).ordered
+ expect(@provider).to receive(:converge_by).ordered # before_restart
+ expect(@provider).to receive(:restart).ordered
+ expect(@provider).to receive(:converge_by).ordered # after_restart
+ expect(@provider).to receive(:cleanup!)
@provider.deploy
end
it "gets a SCM provider as specified by its resource" do
- @provider.scm_provider.should be_an_instance_of(Chef::Provider::Git)
- @provider.scm_provider.new_resource.destination.should eql("/my/deploy/dir/shared/cached-copy")
+ expect(@provider.scm_provider).to be_an_instance_of(Chef::Provider::Git)
+ expect(@provider.scm_provider.new_resource.destination).to eql("/my/deploy/dir/shared/cached-copy")
end
it "syncs the cached copy of the repo" do
- @provider.scm_provider.should_receive(:run_action).with(:sync)
+ expect(@provider.scm_provider).to receive(:run_action).with(:sync)
@provider.update_cached_repo
end
it "makes a copy of the cached repo in releases dir" do
- FileUtils.should_receive(:mkdir_p).with("/my/deploy/dir/releases")
- FileUtils.should_receive(:cp_r).with("/my/deploy/dir/shared/cached-copy/.", @expected_release_dir, :preserve => true)
+ expect(FileUtils).to receive(:mkdir_p).with("/my/deploy/dir/releases")
+ expect(FileUtils).to receive(:cp_r).with("/my/deploy/dir/shared/cached-copy/.", @expected_release_dir, :preserve => true)
@provider.copy_cached_repo
end
it "calls the internal callback :release_created when cleaning up the releases" do
- FileUtils.stub(:mkdir_p)
- FileUtils.stub(:cp_r)
- @provider.should_receive(:release_created)
+ allow(FileUtils).to receive(:mkdir_p)
+ allow(FileUtils).to receive(:cp_r)
+ expect(@provider).to receive(:release_created)
@provider.cleanup!
end
it "chowns the whole release dir to user and group specified in the resource" do
@resource.user "foo"
@resource.group "bar"
- FileUtils.should_receive(:chown_R).with("foo", "bar", "/my/deploy/dir")
+ expect(FileUtils).to receive(:chown_R).with("foo", "bar", "/my/deploy/dir")
@provider.enforce_ownership
end
it "skips the migration when resource.migrate => false but runs symlinks before migration" do
@resource.migrate false
- @provider.should_not_receive :run_command
- @provider.should_receive :run_symlinks_before_migrate
+ expect(@provider).not_to receive :run_command
+ expect(@provider).to receive :run_symlinks_before_migrate
@provider.migrate
end
@@ -373,12 +373,12 @@ describe Chef::Provider::Deploy do
@resource.user "deployNinja"
@resource.group "deployNinjas"
@resource.environment "RAILS_ENV" => "production"
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/config/database.yml", @expected_release_dir + "/config/database.yml")
- @provider.should_receive(:enforce_ownership)
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/config/database.yml", @expected_release_dir + "/config/database.yml")
+ expect(@provider).to receive(:enforce_ownership)
- STDOUT.stub(:tty?).and_return(true)
- Chef::Log.stub(:info?).and_return(true)
- @provider.should_receive(:run_command).with(:command => "migration_foo", :cwd => @expected_release_dir,
+ allow(STDOUT).to receive(:tty?).and_return(true)
+ allow(Chef::Log).to receive(:info?).and_return(true)
+ expect(@provider).to receive(:run_command).with(:command => "migration_foo", :cwd => @expected_release_dir,
:user => "deployNinja", :group => "deployNinjas",
:log_level => :info, :live_stream => STDOUT,
:log_tag => "deploy[/my/deploy/dir]",
@@ -387,31 +387,31 @@ describe Chef::Provider::Deploy do
end
it "purges the current release's /log /tmp/pids/ and /public/system directories" do
- FileUtils.should_receive(:rm_rf).with(@expected_release_dir + "/log")
- FileUtils.should_receive(:rm_rf).with(@expected_release_dir + "/tmp/pids")
- FileUtils.should_receive(:rm_rf).with(@expected_release_dir + "/public/system")
+ expect(FileUtils).to receive(:rm_rf).with(@expected_release_dir + "/log")
+ expect(FileUtils).to receive(:rm_rf).with(@expected_release_dir + "/tmp/pids")
+ expect(FileUtils).to receive(:rm_rf).with(@expected_release_dir + "/public/system")
@provider.purge_tempfiles_from_current_release
end
it "symlinks temporary files and logs from the shared dir into the current release" do
- FileUtils.stub(:mkdir_p).with(@resource.shared_path + "/system")
- FileUtils.stub(:mkdir_p).with(@resource.shared_path + "/pids")
- FileUtils.stub(:mkdir_p).with(@resource.shared_path + "/log")
- FileUtils.should_receive(:mkdir_p).with(@expected_release_dir + "/tmp")
- FileUtils.should_receive(:mkdir_p).with(@expected_release_dir + "/public")
- FileUtils.should_receive(:mkdir_p).with(@expected_release_dir + "/config")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/system", @expected_release_dir + "/public/system")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/pids", @expected_release_dir + "/tmp/pids")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/log", @expected_release_dir + "/log")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/config/database.yml", @expected_release_dir + "/config/database.yml")
- @provider.should_receive(:enforce_ownership)
+ allow(FileUtils).to receive(:mkdir_p).with(@resource.shared_path + "/system")
+ allow(FileUtils).to receive(:mkdir_p).with(@resource.shared_path + "/pids")
+ allow(FileUtils).to receive(:mkdir_p).with(@resource.shared_path + "/log")
+ expect(FileUtils).to receive(:mkdir_p).with(@expected_release_dir + "/tmp")
+ expect(FileUtils).to receive(:mkdir_p).with(@expected_release_dir + "/public")
+ expect(FileUtils).to receive(:mkdir_p).with(@expected_release_dir + "/config")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/system", @expected_release_dir + "/public/system")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/pids", @expected_release_dir + "/tmp/pids")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/log", @expected_release_dir + "/log")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/config/database.yml", @expected_release_dir + "/config/database.yml")
+ expect(@provider).to receive(:enforce_ownership)
@provider.link_tempfiles_to_current_release
end
it "symlinks the current release dir into production" do
- FileUtils.should_receive(:rm_f).with("/my/deploy/dir/current")
- FileUtils.should_receive(:ln_sf).with(@expected_release_dir, "/my/deploy/dir/current")
- @provider.should_receive(:enforce_ownership)
+ expect(FileUtils).to receive(:rm_f).with("/my/deploy/dir/current")
+ expect(FileUtils).to receive(:ln_sf).with(@expected_release_dir, "/my/deploy/dir/current")
+ expect(@provider).to receive(:enforce_ownership)
@provider.link_current_release_to_production
end
@@ -425,41 +425,41 @@ describe Chef::Provider::Deploy do
end
it "purges the purge_before_symlink directories" do
- FileUtils.should_receive(:rm_rf).with(@expected_release_dir + "/foo")
- FileUtils.should_receive(:rm_rf).with(@expected_release_dir + "/bar")
+ expect(FileUtils).to receive(:rm_rf).with(@expected_release_dir + "/foo")
+ expect(FileUtils).to receive(:rm_rf).with(@expected_release_dir + "/bar")
@provider.purge_tempfiles_from_current_release
end
it "symlinks files from the shared directory to the current release directory" do
- FileUtils.should_receive(:mkdir_p).with(@expected_release_dir + "/baz")
- FileUtils.should_receive(:mkdir_p).with(@expected_release_dir + "/qux")
- FileUtils.stub(:mkdir_p).with(@resource.shared_path + "/foo/bar")
- FileUtils.stub(:mkdir_p).with(@resource.shared_path + "/baz")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/foo/bar", @expected_release_dir + "/foo/bar")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/baz", @expected_release_dir + "/qux/baz")
- FileUtils.should_receive(:ln_sf).with("/my/deploy/dir/shared/radiohead/in_rainbows.yml", @expected_release_dir + "/awesome")
- @provider.should_receive(:enforce_ownership)
+ expect(FileUtils).to receive(:mkdir_p).with(@expected_release_dir + "/baz")
+ expect(FileUtils).to receive(:mkdir_p).with(@expected_release_dir + "/qux")
+ allow(FileUtils).to receive(:mkdir_p).with(@resource.shared_path + "/foo/bar")
+ allow(FileUtils).to receive(:mkdir_p).with(@resource.shared_path + "/baz")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/foo/bar", @expected_release_dir + "/foo/bar")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/baz", @expected_release_dir + "/qux/baz")
+ expect(FileUtils).to receive(:ln_sf).with("/my/deploy/dir/shared/radiohead/in_rainbows.yml", @expected_release_dir + "/awesome")
+ expect(@provider).to receive(:enforce_ownership)
@provider.link_tempfiles_to_current_release
end
end
it "does nothing for restart if restart_command is empty" do
- @provider.should_not_receive(:run_command)
+ expect(@provider).not_to receive(:run_command)
@provider.restart
end
it "runs the restart command in the current application dir when the resource has a restart_command" do
@resource.restart_command "restartcmd"
- @provider.should_receive(:run_command).with(:command => "restartcmd", :cwd => "/my/deploy/dir/current", :log_tag => "deploy[/my/deploy/dir]", :log_level => :debug)
+ expect(@provider).to receive(:run_command).with(:command => "restartcmd", :cwd => "/my/deploy/dir/current", :log_tag => "deploy[/my/deploy/dir]", :log_level => :debug)
@provider.restart
end
it "lists all available releases" do
all_releases = ["/my/deploy/dir/20040815162342", "/my/deploy/dir/20040700000000",
"/my/deploy/dir/20040600000000", "/my/deploy/dir/20040500000000"].sort!
- Dir.should_receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
- @provider.all_releases.should eql(all_releases)
+ expect(Dir).to receive(:glob).with("/my/deploy/dir/releases/*").and_return(all_releases)
+ expect(@provider.all_releases).to eql(all_releases)
end
it "removes all but the 5 newest releases" do
@@ -467,10 +467,10 @@ describe Chef::Provider::Deploy do
"/my/deploy/dir/20040600000000", "/my/deploy/dir/20040500000000",
"/my/deploy/dir/20040400000000", "/my/deploy/dir/20040300000000",
"/my/deploy/dir/20040200000000", "/my/deploy/dir/20040100000000"].sort!
- @provider.stub(:all_releases).and_return(all_releases)
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/20040100000000")
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/20040200000000")
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/20040300000000")
+ allow(@provider).to receive(:all_releases).and_return(all_releases)
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/20040100000000")
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/20040200000000")
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/20040300000000")
@provider.cleanup!
end
@@ -480,8 +480,8 @@ describe Chef::Provider::Deploy do
"/my/deploy/dir/20040600000000", "/my/deploy/dir/20040500000000",
"/my/deploy/dir/20040400000000", "/my/deploy/dir/20040300000000",
"/my/deploy/dir/20040200000000", "/my/deploy/dir/20040100000000"].sort!
- @provider.stub(:all_releases).and_return(all_releases)
- FileUtils.should_receive(:rm_rf).with("/my/deploy/dir/20040100000000")
+ allow(@provider).to receive(:all_releases).and_return(all_releases)
+ expect(FileUtils).to receive(:rm_rf).with("/my/deploy/dir/20040100000000")
@provider.cleanup!
end
@@ -489,27 +489,27 @@ describe Chef::Provider::Deploy do
all_releases = ["/my/deploy/dir/20040815162342", "/my/deploy/dir/20040700000000",
"/my/deploy/dir/20040600000000", "/my/deploy/dir/20040500000000",
"/my/deploy/dir/20040400000000", "/my/deploy/dir/20040300000000"].sort!
- @provider.stub(:all_releases).and_return(all_releases)
- FileUtils.stub(:rm_rf)
- @provider.should_receive(:release_deleted).with("/my/deploy/dir/20040300000000")
+ allow(@provider).to receive(:all_releases).and_return(all_releases)
+ allow(FileUtils).to receive(:rm_rf)
+ expect(@provider).to receive(:release_deleted).with("/my/deploy/dir/20040300000000")
@provider.cleanup!
end
it "puts resource.to_hash in @configuration for backwards compat with capistano-esque deploy hooks" do
- @provider.instance_variable_get(:@configuration).should == @resource.to_hash
+ expect(@provider.instance_variable_get(:@configuration)).to eq(@resource.to_hash)
end
it "sets @configuration[:environment] to the value of RAILS_ENV for backwards compat reasons" do
resource = Chef::Resource::Deploy.new("/my/deploy/dir")
resource.environment "production"
provider = Chef::Provider::Deploy.new(resource, @run_context)
- provider.instance_variable_get(:@configuration)[:environment].should eql("production")
+ expect(provider.instance_variable_get(:@configuration)[:environment]).to eql("production")
end
it "shouldn't give a no method error on migrate if the environment is nil" do
- @provider.stub(:enforce_ownership)
- @provider.stub(:run_symlinks_before_migrate)
- @provider.stub(:run_command)
+ allow(@provider).to receive(:enforce_ownership)
+ allow(@provider).to receive(:run_symlinks_before_migrate)
+ allow(@provider).to receive(:run_command)
@provider.migrate
end
@@ -521,13 +521,13 @@ describe Chef::Provider::Deploy do
recipe_code = Proc.new {snitch = 42}
#@provider.should_receive(:instance_eval).with(&recipe_code)
@provider.callback(:whateverz, recipe_code)
- snitch.should == 42
+ expect(snitch).to eq(42)
end
it "loads a recipe file from the specified path and from_file evals it" do
- ::File.should_receive(:exist?).with(@expected_release_dir + "/chefz/foobar_callback.rb").once.and_return(true)
- ::Dir.should_receive(:chdir).with(@expected_release_dir).and_yield
- @provider.should_receive(:from_file).with(@expected_release_dir + "/chefz/foobar_callback.rb")
+ expect(::File).to receive(:exist?).with(@expected_release_dir + "/chefz/foobar_callback.rb").once.and_return(true)
+ expect(::Dir).to receive(:chdir).with(@expected_release_dir).and_yield
+ expect(@provider).to receive(:from_file).with(@expected_release_dir + "/chefz/foobar_callback.rb")
@provider.callback(:whateverz, "chefz/foobar_callback.rb")
end
@@ -536,40 +536,40 @@ describe Chef::Provider::Deploy do
restart_cmd = Proc.new {snitch = 42}
@resource.restart(&restart_cmd)
@provider.restart
- snitch.should == 42
+ expect(snitch).to eq(42)
end
end
describe "API bridge to capistrano" do
it "defines sudo as a forwarder to execute" do
- @provider.should_receive(:execute).with("the moon, fool")
+ expect(@provider).to receive(:execute).with("the moon, fool")
@provider.sudo("the moon, fool")
end
it "defines run as a forwarder to execute, setting the user, group, cwd and environment to new_resource.user" do
mock_execution = double("Resource::Execute")
- @provider.should_receive(:execute).with("iGoToHell4this").and_return(mock_execution)
+ expect(@provider).to receive(:execute).with("iGoToHell4this").and_return(mock_execution)
@resource.user("notCoolMan")
@resource.group("Ggroup")
@resource.environment("APP_ENV" => 'staging')
@resource.deploy_to("/my/app")
- mock_execution.should_receive(:user).with("notCoolMan")
- mock_execution.should_receive(:group).with("Ggroup")
- mock_execution.should_receive(:cwd){|*args|
+ expect(mock_execution).to receive(:user).with("notCoolMan")
+ expect(mock_execution).to receive(:group).with("Ggroup")
+ expect(mock_execution).to receive(:cwd){|*args|
if args.empty?
nil
else
- args.size.should == 1
- args.first.should == @provider.release_path
+ expect(args.size).to eq(1)
+ expect(args.first).to eq(@provider.release_path)
end
}.twice
- mock_execution.should_receive(:environment){ |*args|
+ expect(mock_execution).to receive(:environment){ |*args|
if args.empty?
nil
else
- args.size.should == 1
- args.first.should == {"APP_ENV" => "staging"}
+ expect(args.size).to eq(1)
+ expect(args.first).to eq({"APP_ENV" => "staging"})
end
}.twice
@provider.run("iGoToHell4this")
@@ -578,18 +578,18 @@ describe Chef::Provider::Deploy do
it "defines run as a forwarder to execute, setting cwd and environment but not override" do
mock_execution = double("Resource::Execute")
- @provider.should_receive(:execute).with("iGoToHell4this").and_return(mock_execution)
+ expect(@provider).to receive(:execute).with("iGoToHell4this").and_return(mock_execution)
@resource.user("notCoolMan")
- mock_execution.should_receive(:user).with("notCoolMan")
- mock_execution.should_receive(:cwd).with(no_args()).and_return("/some/value")
- mock_execution.should_receive(:environment).with(no_args()).and_return({})
+ expect(mock_execution).to receive(:user).with("notCoolMan")
+ expect(mock_execution).to receive(:cwd).with(no_args()).and_return("/some/value")
+ expect(mock_execution).to receive(:environment).with(no_args()).and_return({})
@provider.run("iGoToHell4this")
end
it "converts sudo and run to exec resources in hooks" do
runner = double("tehRunner")
- Chef::Runner.stub(:new).and_return(runner)
+ allow(Chef::Runner).to receive(:new).and_return(runner)
snitch = nil
@resource.user("tehCat")
@@ -601,40 +601,40 @@ describe Chef::Provider::Deploy do
snitch = temp_collection.lookup("execute[tehMice]")
end
- runner.should_receive(:converge)
+ expect(runner).to receive(:converge)
#
@provider.callback(:phony, callback_code)
- snitch.should be_an_instance_of(Chef::Resource::Execute)
- snitch.user.should == "tehCat"
+ expect(snitch).to be_an_instance_of(Chef::Resource::Execute)
+ expect(snitch.user).to eq("tehCat")
end
end
describe "installing gems from a gems.yml" do
before do
- ::File.stub(:exist?).with("#{@expected_release_dir}/gems.yml").and_return(true)
+ allow(::File).to receive(:exist?).with("#{@expected_release_dir}/gems.yml").and_return(true)
@gem_list = [{:name=>"eventmachine", :version=>"0.12.9"}]
end
it "reads a gems.yml file, creating gem providers for each with action :upgrade" do
- IO.should_receive(:read).with("#{@expected_release_dir}/gems.yml").and_return("cookie")
- YAML.should_receive(:load).with("cookie").and_return(@gem_list)
+ expect(IO).to receive(:read).with("#{@expected_release_dir}/gems.yml").and_return("cookie")
+ expect(YAML).to receive(:load).with("cookie").and_return(@gem_list)
gems = @provider.send(:gem_packages)
- gems.map { |g| g.action }.should == [[:install]]
- gems.map { |g| g.name }.should == %w{eventmachine}
- gems.map { |g| g.version }.should == %w{0.12.9}
+ expect(gems.map { |g| g.action }).to eq([[:install]])
+ expect(gems.map { |g| g.name }).to eq(%w{eventmachine})
+ expect(gems.map { |g| g.version }).to eq(%w{0.12.9})
end
it "takes a list of gem providers converges them" do
- IO.stub(:read)
- YAML.stub(:load).and_return(@gem_list)
+ allow(IO).to receive(:read)
+ allow(YAML).to receive(:load).and_return(@gem_list)
expected_gem_resources = @provider.send(:gem_packages).map { |r| [r.name, r.version] }
gem_runner = @provider.send(:gem_resource_collection_runner)
# no one has heard of defining == to be meaningful so I have use this monstrosity
actual = gem_runner.run_context.resource_collection.all_resources.map { |r| [r.name, r.version] }
- actual.should == expected_gem_resources
+ expect(actual).to eq(expected_gem_resources)
end
end
diff --git a/spec/unit/provider/directory_spec.rb b/spec/unit/provider/directory_spec.rb
index 25ca9e0175..33df776ed4 100644
--- a/spec/unit/provider/directory_spec.rb
+++ b/spec/unit/provider/directory_spec.rb
@@ -48,31 +48,31 @@ describe Chef::Provider::Directory do
describe "scanning file security metadata on unix" do
before do
- Chef::Platform.stub(:windows?).and_return(false)
+ allow(Chef::Platform).to receive(:windows?).and_return(false)
end
let(:mock_stat) do
cstats = double("stats")
- cstats.stub(:uid).and_return(500)
- cstats.stub(:gid).and_return(500)
- cstats.stub(:mode).and_return(0755)
+ allow(cstats).to receive(:uid).and_return(500)
+ allow(cstats).to receive(:gid).and_return(500)
+ allow(cstats).to receive(:mode).and_return(0755)
cstats
end
it "describes the access mode as a String of octal integers" do
- File.stub(:exists?).and_return(true)
- File.should_receive(:stat).and_return(mock_stat)
+ allow(File).to receive(:exists?).and_return(true)
+ expect(File).to receive(:stat).and_return(mock_stat)
@directory.load_current_resource
- @directory.current_resource.mode.should == "0755"
+ expect(@directory.current_resource.mode).to eq("0755")
end
context "when user and group are specified with UID/GID" do
it "describes the current owner and group as UID and GID" do
- File.stub(:exists?).and_return(true)
- File.should_receive(:stat).and_return(mock_stat)
+ allow(File).to receive(:exists?).and_return(true)
+ expect(File).to receive(:stat).and_return(mock_stat)
@directory.load_current_resource
- @directory.current_resource.path.should eql(@new_resource.path)
- @directory.current_resource.owner.should eql(500)
- @directory.current_resource.group.should eql(500)
+ expect(@directory.current_resource.path).to eql(@new_resource.path)
+ expect(@directory.current_resource.owner).to eql(500)
+ expect(@directory.current_resource.group).to eql(500)
end
end
@@ -86,20 +86,20 @@ describe Chef::Provider::Directory do
it "should create a new directory on create, setting updated to true", :unix_only do
@new_resource.path "/tmp/foo"
- File.should_receive(:exists?).at_least(:once).and_return(false)
- File.should_receive(:directory?).with("/tmp").and_return(true)
- Dir.should_receive(:mkdir).with(@new_resource.path).once.and_return(true)
+ expect(File).to receive(:exists?).at_least(:once).and_return(false)
+ expect(File).to receive(:directory?).with("/tmp").and_return(true)
+ expect(Dir).to receive(:mkdir).with(@new_resource.path).once.and_return(true)
- @directory.should_receive(:do_acl_changes)
- @directory.stub(:do_selinux)
+ expect(@directory).to receive(:do_acl_changes)
+ allow(@directory).to receive(:do_selinux)
@directory.run_action(:create)
- @directory.new_resource.should be_updated
+ expect(@directory.new_resource).to be_updated
end
it "should raise an exception if the parent directory does not exist and recursive is false" do
@new_resource.path "/tmp/some/dir"
@new_resource.recursive false
- lambda { @directory.run_action(:create) }.should raise_error(Chef::Exceptions::EnclosingDirectoryDoesNotExist)
+ expect { @directory.run_action(:create) }.to raise_error(Chef::Exceptions::EnclosingDirectoryDoesNotExist)
end
# Unix only for now. While file security attribute reporting for windows is
@@ -108,26 +108,26 @@ describe Chef::Provider::Directory do
it "should create a new directory when parent directory does not exist if recursive is true and permissions are correct", :unix_only do
@new_resource.path "/path/to/dir"
@new_resource.recursive true
- File.should_receive(:exists?).with(@new_resource.path).ordered.and_return(false)
+ expect(File).to receive(:exists?).with(@new_resource.path).ordered.and_return(false)
- File.should_receive(:exists?).with('/path/to').ordered.and_return(false)
- File.should_receive(:exists?).with('/path').ordered.and_return(true)
- File.should_receive(:writable?).with('/path').ordered.and_return(true)
- File.should_receive(:exists?).with(@new_resource.path).ordered.and_return(false)
+ expect(File).to receive(:exists?).with('/path/to').ordered.and_return(false)
+ expect(File).to receive(:exists?).with('/path').ordered.and_return(true)
+ expect(File).to receive(:writable?).with('/path').ordered.and_return(true)
+ expect(File).to receive(:exists?).with(@new_resource.path).ordered.and_return(false)
- FileUtils.should_receive(:mkdir_p).with(@new_resource.path).and_return(true)
- @directory.should_receive(:do_acl_changes)
- @directory.stub(:do_selinux)
+ expect(FileUtils).to receive(:mkdir_p).with(@new_resource.path).and_return(true)
+ expect(@directory).to receive(:do_acl_changes)
+ allow(@directory).to receive(:do_selinux)
@directory.run_action(:create)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should raise an error when creating a directory when parent directory is a file" do
- File.should_receive(:directory?).and_return(false)
- Dir.should_not_receive(:mkdir).with(@new_resource.path)
- lambda { @directory.run_action(:create) }.should raise_error(Chef::Exceptions::EnclosingDirectoryDoesNotExist)
- @directory.new_resource.should_not be_updated
+ expect(File).to receive(:directory?).and_return(false)
+ expect(Dir).not_to receive(:mkdir).with(@new_resource.path)
+ expect { @directory.run_action(:create) }.to raise_error(Chef::Exceptions::EnclosingDirectoryDoesNotExist)
+ expect(@directory.new_resource).not_to be_updated
end
# Unix only for now. While file security attribute reporting for windows is
@@ -136,53 +136,53 @@ describe Chef::Provider::Directory do
it "should not create the directory if it already exists", :unix_only do
stub_file_cstats
@new_resource.path "/tmp/foo"
- File.should_receive(:directory?).at_least(:once).and_return(true)
- File.should_receive(:writable?).with("/tmp").and_return(true)
- File.should_receive(:exists?).at_least(:once).and_return(true)
- Dir.should_not_receive(:mkdir).with(@new_resource.path)
- @directory.should_receive(:do_acl_changes)
+ expect(File).to receive(:directory?).at_least(:once).and_return(true)
+ expect(File).to receive(:writable?).with("/tmp").and_return(true)
+ expect(File).to receive(:exists?).at_least(:once).and_return(true)
+ expect(Dir).not_to receive(:mkdir).with(@new_resource.path)
+ expect(@directory).to receive(:do_acl_changes)
@directory.run_action(:create)
end
it "should delete the directory if it exists, and is writable with action_delete" do
- File.should_receive(:directory?).and_return(true)
- File.should_receive(:writable?).once.and_return(true)
- Dir.should_receive(:delete).with(@new_resource.path).once.and_return(true)
+ expect(File).to receive(:directory?).and_return(true)
+ expect(File).to receive(:writable?).once.and_return(true)
+ expect(Dir).to receive(:delete).with(@new_resource.path).once.and_return(true)
@directory.run_action(:delete)
end
it "should raise an exception if it cannot delete the directory due to bad permissions" do
- File.stub(:exists?).and_return(true)
- File.stub(:writable?).and_return(false)
- lambda { @directory.run_action(:delete) }.should raise_error(RuntimeError)
+ allow(File).to receive(:exists?).and_return(true)
+ allow(File).to receive(:writable?).and_return(false)
+ expect { @directory.run_action(:delete) }.to raise_error(RuntimeError)
end
it "should take no action when deleting a target directory that does not exist" do
@new_resource.path "/an/invalid/path"
- File.stub(:exists?).and_return(false)
- Dir.should_not_receive(:delete).with(@new_resource.path)
+ allow(File).to receive(:exists?).and_return(false)
+ expect(Dir).not_to receive(:delete).with(@new_resource.path)
@directory.run_action(:delete)
- @directory.new_resource.should_not be_updated
+ expect(@directory.new_resource).not_to be_updated
end
it "should raise an exception when deleting a directory when target directory is a file" do
stub_file_cstats
@new_resource.path "/an/invalid/path"
- File.stub(:exists?).and_return(true)
- File.should_receive(:directory?).and_return(false)
- Dir.should_not_receive(:delete).with(@new_resource.path)
- lambda { @directory.run_action(:delete) }.should raise_error(RuntimeError)
- @directory.new_resource.should_not be_updated
+ allow(File).to receive(:exists?).and_return(true)
+ expect(File).to receive(:directory?).and_return(false)
+ expect(Dir).not_to receive(:delete).with(@new_resource.path)
+ expect { @directory.run_action(:delete) }.to raise_error(RuntimeError)
+ expect(@directory.new_resource).not_to be_updated
end
def stub_file_cstats
cstats = double("stats")
- cstats.stub(:uid).and_return(500)
- cstats.stub(:gid).and_return(500)
- cstats.stub(:mode).and_return(0755)
+ allow(cstats).to receive(:uid).and_return(500)
+ allow(cstats).to receive(:gid).and_return(500)
+ allow(cstats).to receive(:mode).and_return(0755)
# File.stat is called in:
# - Chef::Provider::File.load_current_resource_attrs
# - Chef::ScanAccessControl via Chef::Provider::File.setup_acl
- File.stub(:stat).and_return(cstats)
+ allow(File).to receive(:stat).and_return(cstats)
end
end
diff --git a/spec/unit/provider/dsc_script_spec.rb b/spec/unit/provider/dsc_script_spec.rb
index d8fbee3ff9..dab2007920 100644
--- a/spec/unit/provider/dsc_script_spec.rb
+++ b/spec/unit/provider/dsc_script_spec.rb
@@ -39,21 +39,21 @@ describe Chef::Provider::DscScript do
it "describes the resource as converged if there were 0 DSC resources" do
allow(provider).to receive(:run_configuration).with(:test).and_return([])
provider.load_current_resource
- provider.instance_variable_get('@resource_converged').should be_true
+ expect(provider.instance_variable_get('@resource_converged')).to be_true
end
it "describes the resource as not converged if there is 1 DSC resources that is converged" do
dsc_resource_info = Chef::Util::DSC::ResourceInfo.new('resource', false, ['nothing will change something'])
allow(provider).to receive(:run_configuration).with(:test).and_return([dsc_resource_info])
provider.load_current_resource
- provider.instance_variable_get('@resource_converged').should be_true
+ expect(provider.instance_variable_get('@resource_converged')).to be_true
end
it "describes the resource as not converged if there is 1 DSC resources that is not converged" do
dsc_resource_info = Chef::Util::DSC::ResourceInfo.new('resource', true, ['will change something'])
allow(provider).to receive(:run_configuration).with(:test).and_return([dsc_resource_info])
provider.load_current_resource
- provider.instance_variable_get('@resource_converged').should be_false
+ expect(provider.instance_variable_get('@resource_converged')).to be_false
end
it "describes the resource as not converged if there are any DSC resources that are not converged" do
@@ -62,7 +62,7 @@ describe Chef::Provider::DscScript do
allow(provider).to receive(:run_configuration).with(:test).and_return([dsc_resource_info1, dsc_resource_info2])
provider.load_current_resource
- provider.instance_variable_get('@resource_converged').should be_false
+ expect(provider.instance_variable_get('@resource_converged')).to be_false
end
it "describes the resource as converged if all DSC resources that are converged" do
@@ -71,7 +71,7 @@ describe Chef::Provider::DscScript do
allow(provider).to receive(:run_configuration).with(:test).and_return([dsc_resource_info1, dsc_resource_info2])
provider.load_current_resource
- provider.instance_variable_get('@resource_converged').should be_true
+ expect(provider.instance_variable_get('@resource_converged')).to be_true
end
end
@@ -82,7 +82,7 @@ describe Chef::Provider::DscScript do
allow(provider).to receive(:load_current_resource)
resource.command("path_to_script")
generator = double('Chef::Util::DSC::ConfigurationGenerator')
- generator.should_receive(:configuration_document_from_script_path)
+ expect(generator).to receive(:configuration_document_from_script_path)
allow(Chef::Util::DSC::ConfigurationGenerator).to receive(:new).and_return(generator)
provider.send(:generate_configuration_document, 'tmp', nil)
end
@@ -91,7 +91,7 @@ describe Chef::Provider::DscScript do
allow(provider).to receive(:load_current_resource)
resource.code("ImADSCResource{}")
generator = double('Chef::Util::DSC::ConfigurationGenerator')
- generator.should_receive(:configuration_document_from_script_code)
+ expect(generator).to receive(:configuration_document_from_script_code)
allow(Chef::Util::DSC::ConfigurationGenerator).to receive(:new).and_return(generator)
provider.send(:generate_configuration_document, 'tmp', nil)
end
@@ -99,7 +99,7 @@ describe Chef::Provider::DscScript do
it 'should noop if neither code or command are provided' do
allow(provider).to receive(:load_current_resource)
generator = double('Chef::Util::DSC::ConfigurationGenerator')
- generator.should_receive(:configuration_document_from_script_code).with('', anything(), anything())
+ expect(generator).to receive(:configuration_document_from_script_code).with('', anything(), anything())
allow(Chef::Util::DSC::ConfigurationGenerator).to receive(:new).and_return(generator)
provider.send(:generate_configuration_document, 'tmp', nil)
end
@@ -112,14 +112,14 @@ describe Chef::Provider::DscScript do
allow(provider).to receive(:run_configuration).with(:set)
provider.run_action(:run)
- resource.should be_updated
+ expect(resource).to be_updated
end
it 'should not converge if the script is already converged' do
allow(provider).to receive(:run_configuration).with(:test).and_return([])
provider.run_action(:run)
- resource.should_not be_updated
+ expect(resource).not_to be_updated
end
end
@@ -127,19 +127,19 @@ describe Chef::Provider::DscScript do
it 'removes the resource name from the beginning of any log line from the LCM' do
dsc_resource_info = Chef::Util::DSC::ResourceInfo.new('resourcename', true, ['resourcename doing something', 'lastline'])
provider.instance_variable_set('@dsc_resources_info', [dsc_resource_info])
- provider.send(:generate_description)[1].should match(/converge DSC resource resourcename by doing something/)
+ expect(provider.send(:generate_description)[1]).to match(/converge DSC resource resourcename by doing something/)
end
it 'ignores the last line' do
dsc_resource_info = Chef::Util::DSC::ResourceInfo.new('resourcename', true, ['resourcename doing something', 'lastline'])
provider.instance_variable_set('@dsc_resources_info', [dsc_resource_info])
- provider.send(:generate_description)[1].should_not match(/lastline/)
+ expect(provider.send(:generate_description)[1]).not_to match(/lastline/)
end
it 'reports a dsc resource has not been changed if the LCM reported no change was required' do
dsc_resource_info = Chef::Util::DSC::ResourceInfo.new('resourcename', false, ['resourcename does nothing', 'lastline'])
provider.instance_variable_set('@dsc_resources_info', [dsc_resource_info])
- provider.send(:generate_description)[1].should match(/converge DSC resource resourcename by doing nothing/)
+ expect(provider.send(:generate_description)[1]).to match(/converge DSC resource resourcename by doing nothing/)
end
end
end
diff --git a/spec/unit/provider/env/windows_spec.rb b/spec/unit/provider/env/windows_spec.rb
index 84582d8b4d..99f33d392a 100644
--- a/spec/unit/provider/env/windows_spec.rb
+++ b/spec/unit/provider/env/windows_spec.rb
@@ -31,7 +31,7 @@ describe Chef::Provider::Env::Windows, :windows_only do
}
let(:provider) {
provider = Chef::Provider::Env::Windows.new(new_resource, run_context)
- provider.stub(:env_obj).and_return(double('null object').as_null_object)
+ allow(provider).to receive(:env_obj).and_return(double('null object').as_null_object)
provider
}
@@ -53,7 +53,7 @@ describe Chef::Provider::Env::Windows, :windows_only do
end
it "should update the ruby ENV object when it updates the value" do
- provider.should_receive(:requires_modify_or_create?).and_return(true)
+ expect(provider).to receive(:requires_modify_or_create?).and_return(true)
new_resource.value("foobar")
provider.action_modify
expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql('foobar')
@@ -83,7 +83,7 @@ describe Chef::Provider::Env::Windows, :windows_only do
}
let(:provider) {
provider = Chef::Provider::Env::Windows.new(new_resource, run_context)
- provider.stub(:env_obj).and_return(double('null object').as_null_object)
+ allow(provider).to receive(:env_obj).and_return(double('null object').as_null_object)
provider
}
@@ -92,8 +92,8 @@ describe Chef::Provider::Env::Windows, :windows_only do
end
it "replaces Windows system variables" do
- provider.should_receive(:requires_modify_or_create?).and_return(true)
- provider.should_receive(:expand_path).with(system_root).and_return(system_root_value)
+ expect(provider).to receive(:requires_modify_or_create?).and_return(true)
+ expect(provider).to receive(:expand_path).with(system_root).and_return(system_root_value)
provider.action_modify
expect(ENV['PATH']).to eql(system_root_value)
end
diff --git a/spec/unit/provider/env_spec.rb b/spec/unit/provider/env_spec.rb
index f8803f9bb6..22fed4b7ac 100644
--- a/spec/unit/provider/env_spec.rb
+++ b/spec/unit/provider/env_spec.rb
@@ -30,7 +30,7 @@ describe Chef::Provider::Env do
end
it "assumes the key_name exists by default" do
- @provider.key_exists.should be_true
+ expect(@provider.key_exists).to be_true
end
describe "when loading the current status" do
@@ -38,73 +38,73 @@ describe Chef::Provider::Env do
#@current_resource = @new_resource.clone
#Chef::Resource::Env.stub(:new).and_return(@current_resource)
@provider.current_resource = @current_resource
- @provider.stub(:env_value).with("FOO").and_return("bar")
- @provider.stub(:env_key_exists).and_return(true)
+ allow(@provider).to receive(:env_value).with("FOO").and_return("bar")
+ allow(@provider).to receive(:env_key_exists).and_return(true)
end
it "should create a current resource with the same name as the new resource" do
@provider.load_current_resource
- @provider.new_resource.name.should == "FOO"
+ expect(@provider.new_resource.name).to eq("FOO")
end
it "should set the key_name to the key name of the new resource" do
@provider.load_current_resource
- @provider.current_resource.key_name.should == "FOO"
+ expect(@provider.current_resource.key_name).to eq("FOO")
end
it "should check if the key_name exists" do
- @provider.should_receive(:env_key_exists).with("FOO").and_return(true)
+ expect(@provider).to receive(:env_key_exists).with("FOO").and_return(true)
@provider.load_current_resource
- @provider.key_exists.should be_true
+ expect(@provider.key_exists).to be_true
end
it "should flip the value of exists if the key does not exist" do
- @provider.should_receive(:env_key_exists).with("FOO").and_return(false)
+ expect(@provider).to receive(:env_key_exists).with("FOO").and_return(false)
@provider.load_current_resource
- @provider.key_exists.should be_false
+ expect(@provider.key_exists).to be_false
end
it "should return the current resource" do
- @provider.load_current_resource.should be_a_kind_of(Chef::Resource::Env)
+ expect(@provider.load_current_resource).to be_a_kind_of(Chef::Resource::Env)
end
end
describe "action_create" do
before do
@provider.key_exists = false
- @provider.stub(:create_env).and_return(true)
- @provider.stub(:modify_env).and_return(true)
+ allow(@provider).to receive(:create_env).and_return(true)
+ allow(@provider).to receive(:modify_env).and_return(true)
end
it "should call create_env if the key does not exist" do
- @provider.should_receive(:create_env).and_return(true)
+ expect(@provider).to receive(:create_env).and_return(true)
@provider.action_create
end
it "should set the new_resources updated flag when it creates the key" do
@provider.action_create
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should check to see if the values are the same if the key exists" do
@provider.key_exists = true
- @provider.should_receive(:requires_modify_or_create?).and_return(false)
+ expect(@provider).to receive(:requires_modify_or_create?).and_return(false)
@provider.action_create
end
it "should call modify_env if the key exists and values are not equal" do
@provider.key_exists = true
- @provider.stub(:requires_modify_or_create?).and_return(true)
- @provider.should_receive(:modify_env).and_return(true)
+ allow(@provider).to receive(:requires_modify_or_create?).and_return(true)
+ expect(@provider).to receive(:modify_env).and_return(true)
@provider.action_create
end
it "should set the new_resources updated flag when it updates an existing value" do
@provider.key_exists = true
- @provider.stub(:requires_modify_or_create?).and_return(true)
- @provider.stub(:modify_env).and_return(true)
+ allow(@provider).to receive(:requires_modify_or_create?).and_return(true)
+ allow(@provider).to receive(:modify_env).and_return(true)
@provider.action_create
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
@@ -112,30 +112,30 @@ describe Chef::Provider::Env do
before(:each) do
@provider.current_resource = @current_resource
@provider.key_exists = false
- @provider.stub(:delete_element).and_return(false)
- @provider.stub(:delete_env).and_return(true)
+ allow(@provider).to receive(:delete_element).and_return(false)
+ allow(@provider).to receive(:delete_env).and_return(true)
end
it "should not call delete_env if the key does not exist" do
- @provider.should_not_receive(:delete_env)
+ expect(@provider).not_to receive(:delete_env)
@provider.action_delete
end
it "should not call delete_element if the key does not exist" do
- @provider.should_not_receive(:delete_element)
+ expect(@provider).not_to receive(:delete_element)
@provider.action_delete
end
it "should call delete_env if the key exists" do
@provider.key_exists = true
- @provider.should_receive(:delete_env)
+ expect(@provider).to receive(:delete_env)
@provider.action_delete
end
it "should set the new_resources updated flag to true if the key is deleted" do
@provider.key_exists = true
@provider.action_delete
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
@@ -143,31 +143,31 @@ describe Chef::Provider::Env do
before(:each) do
@provider.current_resource = @current_resource
@provider.key_exists = true
- @provider.stub(:modify_env).and_return(true)
+ allow(@provider).to receive(:modify_env).and_return(true)
end
it "should call modify_group if the key exists and values are not equal" do
- @provider.should_receive(:requires_modify_or_create?).and_return(true)
- @provider.should_receive(:modify_env).and_return(true)
+ expect(@provider).to receive(:requires_modify_or_create?).and_return(true)
+ expect(@provider).to receive(:modify_env).and_return(true)
@provider.action_modify
end
it "should set the new resources updated flag to true if modify_env is called" do
- @provider.stub(:requires_modify_or_create?).and_return(true)
- @provider.stub(:modify_env).and_return(true)
+ allow(@provider).to receive(:requires_modify_or_create?).and_return(true)
+ allow(@provider).to receive(:modify_env).and_return(true)
@provider.action_modify
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not call modify_env if the key exists but the values are equal" do
- @provider.should_receive(:requires_modify_or_create?).and_return(false)
- @provider.should_not_receive(:modify_env)
+ expect(@provider).to receive(:requires_modify_or_create?).and_return(false)
+ expect(@provider).not_to receive(:modify_env)
@provider.action_modify
end
it "should raise a Chef::Exceptions::Env if the key doesn't exist" do
@provider.key_exists = false
- lambda { @provider.action_modify }.should raise_error(Chef::Exceptions::Env)
+ expect { @provider.action_modify }.to raise_error(Chef::Exceptions::Env)
end
end
@@ -183,41 +183,41 @@ describe Chef::Provider::Env do
end
it "should return true if the element is not found" do
- @new_resource.stub(:value).and_return("C:/baz/bin")
- @provider.delete_element.should eql(true)
+ allow(@new_resource).to receive(:value).and_return("C:/baz/bin")
+ expect(@provider.delete_element).to eql(true)
end
it "should return false if the delim not defined" do
- @new_resource.stub(:delim).and_return(nil)
- @provider.delete_element.should eql(false)
+ allow(@new_resource).to receive(:delim).and_return(nil)
+ expect(@provider.delete_element).to eql(false)
end
it "should return true if the element is deleted" do
@new_resource.value("C:/foo/bin")
- @provider.should_receive(:create_env)
- @provider.delete_element.should eql(true)
- @new_resource.should be_updated
+ expect(@provider).to receive(:create_env)
+ expect(@provider.delete_element).to eql(true)
+ expect(@new_resource).to be_updated
end
context "when new_resource's value contains the delimiter" 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
+ expect(@provider.delete_element).to eql(false)
+ expect(@new_resource).not_to 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
+ expect(@provider).to receive(:create_env)
+ expect(@provider.delete_element).to eql(true)
+ expect(@new_resource).to be_updated
end
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_not be_updated
+ expect(@provider.delete_element).to eql(true)
+ expect(@new_resource).not_to be_updated
end
end
end
@@ -230,25 +230,25 @@ describe Chef::Provider::Env do
end
it "should return false if the values are equal" do
- @provider.requires_modify_or_create?.should be_false
+ expect(@provider.requires_modify_or_create?).to be_false
end
it "should return true if the values not are equal" do
@new_resource.value("C:/elsewhere")
- @provider.requires_modify_or_create?.should be_true
+ expect(@provider.requires_modify_or_create?).to be_true
end
it "should return false if the current value contains the element" do
@new_resource.delim(";")
@current_resource.value("C:/bar;C:/foo;C:/baz")
- @provider.requires_modify_or_create?.should be_false
+ expect(@provider.requires_modify_or_create?).to be_false
end
it "should return true if the current value does not contain the element" do
@new_resource.delim(";")
@current_resource.value("C:/biz;C:/foo/bin;C:/baz")
- @provider.requires_modify_or_create?.should be_true
+ expect(@provider.requires_modify_or_create?).to be_true
end
context "when new_resource's value contains the delimiter" do
@@ -256,21 +256,21 @@ describe Chef::Provider::Env do
@new_resource.value("C:/biz;C:/baz")
@new_resource.delim(";")
@current_resource.value("C:/biz;C:/foo/bin;C:/baz")
- @provider.requires_modify_or_create?.should be_false
+ expect(@provider.requires_modify_or_create?).to 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.requires_modify_or_create?.should be_true
+ expect(@provider.requires_modify_or_create?).to be_true
end
end
end
describe "modify_env" do
before(:each) do
- @provider.stub(:create_env).and_return(true)
+ allow(@provider).to receive(:create_env).and_return(true)
@new_resource.delim ";"
@current_resource = Chef::Resource::Env.new("FOO")
@@ -283,7 +283,7 @@ describe Chef::Provider::Env do
passed_value = new_value.dup
@new_resource.value(passed_value)
@provider.modify_env
- passed_value.should == new_value
+ expect(passed_value).to eq(new_value)
end
it "should only add values not already contained when a delimiter is provided" do
@@ -291,7 +291,7 @@ describe Chef::Provider::Env do
@new_resource.delim(";")
@current_resource.value("C:/foo/bar;C:/bar;C:/baz")
@provider.modify_env
- @new_resource.value.should eq("C:/foo;C:/foo/bar;C:/bar;C:/baz")
+ expect(@new_resource.value).to eq("C:/foo;C:/foo/bar;C:/bar;C:/baz")
end
end
end
diff --git a/spec/unit/provider/erl_call_spec.rb b/spec/unit/provider/erl_call_spec.rb
index 19e16f282f..2fb7e5b737 100644
--- a/spec/unit/provider/erl_call_spec.rb
+++ b/spec/unit/provider/erl_call_spec.rb
@@ -31,7 +31,7 @@ describe Chef::Provider::ErlCall do
@provider = Chef::Provider::ErlCall.new(@new_resource, @run_context)
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@stdin = StringIO.new
@stdout = StringIO.new('{ok, woohoo}')
@stderr = StringIO.new
@@ -40,11 +40,11 @@ describe Chef::Provider::ErlCall do
it "should return a Chef::Provider::ErlCall object" do
provider = Chef::Provider::ErlCall.new(@new_resource, @run_context)
- provider.should be_a_kind_of(Chef::Provider::ErlCall)
+ expect(provider).to be_a_kind_of(Chef::Provider::ErlCall)
end
it "should return true" do
- @provider.load_current_resource.should eql(true)
+ expect(@provider.load_current_resource).to eql(true)
end
describe "when running a distributed erl call resource" do
@@ -56,12 +56,12 @@ describe Chef::Provider::ErlCall do
it "should write to stdin of the erl_call command" do
expected_cmd = "erl_call -e -s -sname chef@localhost -c nomnomnom"
- @provider.should_receive(:popen4).with(expected_cmd, :waitlast => true).and_return([@pid, @stdin, @stdout, @stderr])
- Process.should_receive(:wait).with(@pid)
+ expect(@provider).to receive(:popen4).with(expected_cmd, :waitlast => true).and_return([@pid, @stdin, @stdout, @stderr])
+ expect(Process).to receive(:wait).with(@pid)
@provider.action_run
- @stdin.string.should == "#{@new_resource.code}\n"
+ expect(@stdin.string).to eq("#{@new_resource.code}\n")
end
end
@@ -73,12 +73,12 @@ describe Chef::Provider::ErlCall do
end
it "should write to stdin of the erl_call command" do
- @provider.should_receive(:popen4).with("erl_call -e -name chef@localhost ", :waitlast => true).and_return([@pid, @stdin, @stdout, @stderr])
- Process.should_receive(:wait).with(@pid)
+ expect(@provider).to receive(:popen4).with("erl_call -e -name chef@localhost ", :waitlast => true).and_return([@pid, @stdin, @stdout, @stderr])
+ expect(Process).to receive(:wait).with(@pid)
@provider.action_run
- @stdin.string.should == "#{@new_resource.code}\n"
+ expect(@stdin.string).to eq("#{@new_resource.code}\n")
end
end
diff --git a/spec/unit/provider/execute_spec.rb b/spec/unit/provider/execute_spec.rb
index 6aa48f1e2a..ea16d8cf54 100644
--- a/spec/unit/provider/execute_spec.rb
+++ b/spec/unit/provider/execute_spec.rb
@@ -33,7 +33,7 @@ describe Chef::Provider::Execute do
@provider.current_resource = @current_resource
Chef::Log.level = :info
# FIXME: There should be a test for how STDOUT.tty? changes the live_stream option being passed
- STDOUT.stub(:tty?).and_return(true)
+ allow(STDOUT).to receive(:tty?).and_return(true)
end
let(:opts) do
@@ -47,59 +47,59 @@ describe Chef::Provider::Execute do
end
it "should execute foo_resource" do
- @provider.stub(:load_current_resource)
- @provider.should_receive(:shell_out!).with(@new_resource.command, opts)
- @provider.should_receive(:converge_by).with("execute foo_resource").and_call_original
- Chef::Log.should_not_receive(:warn)
+ allow(@provider).to receive(:load_current_resource)
+ expect(@provider).to receive(:shell_out!).with(@new_resource.command, opts)
+ expect(@provider).to receive(:converge_by).with("execute foo_resource").and_call_original
+ expect(Chef::Log).not_to receive(:warn)
@provider.run_action(:run)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should honor sensitive attribute" do
@new_resource.sensitive true
@provider = Chef::Provider::Execute.new(@new_resource, @run_context)
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
# Since the resource is sensitive, it should not have :live_stream set
- @provider.should_receive(:shell_out!).with(@new_resource.command, opts.reject { |k| k == :live_stream })
- Chef::Log.should_not_receive(:warn)
- @provider.should_receive(:converge_by).with("execute sensitive resource").and_call_original
+ expect(@provider).to receive(:shell_out!).with(@new_resource.command, opts.reject { |k| k == :live_stream })
+ expect(Chef::Log).not_to receive(:warn)
+ expect(@provider).to receive(:converge_by).with("execute sensitive resource").and_call_original
@provider.run_action(:run)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should do nothing if the sentinel file exists" do
- @provider.stub(:load_current_resource)
- File.should_receive(:exists?).with(@new_resource.creates).and_return(true)
- @provider.should_not_receive(:shell_out!)
- Chef::Log.should_not_receive(:warn)
+ allow(@provider).to receive(:load_current_resource)
+ expect(File).to receive(:exists?).with(@new_resource.creates).and_return(true)
+ expect(@provider).not_to receive(:shell_out!)
+ expect(Chef::Log).not_to receive(:warn)
@provider.run_action(:run)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
it "should respect cwd options for 'creates'" do
@new_resource.cwd "/tmp"
@new_resource.creates "foo_resource"
- @provider.stub(:load_current_resource)
- File.should_receive(:exists?).with(@new_resource.creates).and_return(false)
- File.should_receive(:exists?).with(File.join("/tmp", @new_resource.creates)).and_return(true)
- Chef::Log.should_not_receive(:warn)
- @provider.should_not_receive(:shell_out!)
+ allow(@provider).to receive(:load_current_resource)
+ expect(File).to receive(:exists?).with(@new_resource.creates).and_return(false)
+ expect(File).to receive(:exists?).with(File.join("/tmp", @new_resource.creates)).and_return(true)
+ expect(Chef::Log).not_to receive(:warn)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:run)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
it "should warn if user specified relative path without cwd" do
@new_resource.creates "foo_resource"
- @provider.stub(:load_current_resource)
- Chef::Log.should_receive(:warn).with(/relative path/)
- File.should_receive(:exists?).with(@new_resource.creates).and_return(true)
- @provider.should_not_receive(:shell_out!)
+ allow(@provider).to receive(:load_current_resource)
+ expect(Chef::Log).to receive(:warn).with(/relative path/)
+ expect(File).to receive(:exists?).with(@new_resource.creates).and_return(true)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:run)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
end
diff --git a/spec/unit/provider/file/content_spec.rb b/spec/unit/provider/file/content_spec.rb
index 34d98b6619..0f2fd6632c 100644
--- a/spec/unit/provider/file/content_spec.rb
+++ b/spec/unit/provider/file/content_spec.rb
@@ -53,27 +53,27 @@ describe Chef::Provider::File::Content do
describe "when the resource has a content attribute set" do
before do
- new_resource.stub(:content).and_return("Do do do do, do do do do, do do do do, do do do do")
+ allow(new_resource).to receive(:content).and_return("Do do do do, do do do do, do do do do, do do do do")
end
it "returns a tempfile" do
- content.tempfile.should be_a_kind_of(Tempfile)
+ expect(content.tempfile).to be_a_kind_of(Tempfile)
end
it "the tempfile contents should match the resource contents" do
- IO.read(content.tempfile.path).should == new_resource.content
+ expect(IO.read(content.tempfile.path)).to eq(new_resource.content)
end
it "returns a tempfile in the tempdir when :file_staging_uses_destdir is not set" do
Chef::Config[:file_staging_uses_destdir] = false
- content.tempfile.path.start_with?(Dir::tmpdir).should be_true
- canonicalize_path(content.tempfile.path).start_with?(enclosing_directory).should be_false
+ expect(content.tempfile.path.start_with?(Dir::tmpdir)).to be_true
+ expect(canonicalize_path(content.tempfile.path).start_with?(enclosing_directory)).to be_false
end
it "returns a tempfile in the destdir when :file_desployment_uses_destdir is not set" do
Chef::Config[:file_staging_uses_destdir] = true
- content.tempfile.path.start_with?(Dir::tmpdir).should be_false
- canonicalize_path(content.tempfile.path).start_with?(enclosing_directory).should be_true
+ expect(content.tempfile.path.start_with?(Dir::tmpdir)).to be_false
+ expect(canonicalize_path(content.tempfile.path).start_with?(enclosing_directory)).to be_true
end
end
@@ -81,11 +81,11 @@ describe Chef::Provider::File::Content do
describe "when the resource does not have a content attribute set" do
before do
- new_resource.stub(:content).and_return(nil)
+ allow(new_resource).to receive(:content).and_return(nil)
end
it "should return nil instead of a tempfile" do
- content.tempfile.should be_nil
+ expect(content.tempfile).to be_nil
end
end
diff --git a/spec/unit/provider/file_spec.rb b/spec/unit/provider/file_spec.rb
index 059f1722fb..504ae045d9 100644
--- a/spec/unit/provider/file_spec.rb
+++ b/spec/unit/provider/file_spec.rb
@@ -46,7 +46,7 @@ describe Chef::Provider::File do
let(:provider) do
provider = described_class.new(resource, run_context)
- provider.stub(:content).and_return(content)
+ allow(provider).to receive(:content).and_return(content)
provider
end
diff --git a/spec/unit/provider/git_spec.rb b/spec/unit/provider/git_spec.rb
index 02d155efbd..bfbf531389 100644
--- a/spec/unit/provider/git_spec.rb
+++ b/spec/unit/provider/git_spec.rb
@@ -21,7 +21,7 @@ require 'spec_helper'
describe Chef::Provider::Git do
before(:each) do
- STDOUT.stub(:tty?).and_return(true)
+ allow(STDOUT).to receive(:tty?).and_return(true)
Chef::Log.level = :info
@current_resource = Chef::Resource::Git.new("web2.0 app")
@@ -47,36 +47,36 @@ describe Chef::Provider::Git do
end
it "sets the current revision to nil if the deploy dir does not exist" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").and_return(false)
- @provider.find_current_revision.should be_nil
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(false)
+ expect(@provider.find_current_revision).to be_nil
end
it "determines the current revision when there is one" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
@stdout = "9b4d8dc38dd471246e7cfb1c3c1ad14b0f2bee13\n"
- @provider.should_receive(:shell_out!).with('git rev-parse HEAD', {:cwd => '/my/deploy/dir', :returns => [0,128]}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.find_current_revision.should eql("9b4d8dc38dd471246e7cfb1c3c1ad14b0f2bee13")
+ expect(@provider).to receive(:shell_out!).with('git rev-parse HEAD', {:cwd => '/my/deploy/dir', :returns => [0,128]}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.find_current_revision).to eql("9b4d8dc38dd471246e7cfb1c3c1ad14b0f2bee13")
end
it "gives the current revision as nil when there is no current revision" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
@stderr = "fatal: Not a git repository (or any of the parent directories): .git"
@stdout = ""
- @provider.should_receive(:shell_out!).with('git rev-parse HEAD', :cwd => '/my/deploy/dir', :returns => [0,128]).and_return(double("ShellOut result", :stdout => "", :stderr => @stderr))
- @provider.find_current_revision.should be_nil
+ expect(@provider).to receive(:shell_out!).with('git rev-parse HEAD', :cwd => '/my/deploy/dir', :returns => [0,128]).and_return(double("ShellOut result", :stdout => "", :stderr => @stderr))
+ expect(@provider.find_current_revision).to be_nil
end
end
it "creates a current_resource with the currently deployed revision when a clone exists in the destination dir" do
- @provider.stub(:find_current_revision).and_return("681c9802d1c62a45b490786c18f0b8216b309440")
+ allow(@provider).to receive(:find_current_revision).and_return("681c9802d1c62a45b490786c18f0b8216b309440")
@provider.load_current_resource
- @provider.current_resource.name.should eql(@resource.name)
- @provider.current_resource.revision.should eql("681c9802d1c62a45b490786c18f0b8216b309440")
+ expect(@provider.current_resource.name).to eql(@resource.name)
+ expect(@provider.current_resource.revision).to eql("681c9802d1c62a45b490786c18f0b8216b309440")
end
it "keeps the node and resource passed to it on initialize" do
- @provider.node.should equal(@node)
- @provider.new_resource.should equal(@resource)
+ expect(@provider.node).to equal(@node)
+ expect(@provider.new_resource).to equal(@resource)
end
context "resolving revisions to a SHA" do
@@ -86,15 +86,15 @@ describe Chef::Provider::Git do
end
it "returns resource.revision as is if revision is already a full SHA" do
- @provider.target_revision.should eql("d35af14d41ae22b19da05d7d03a0bafc321b244c")
+ expect(@provider.target_revision).to eql("d35af14d41ae22b19da05d7d03a0bafc321b244c")
end
it "converts resource.revision from a tag to a SHA" do
@resource.revision "v1.0"
@stdout = ("d03c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("503c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("503c22a5e41f5ae3193460cca044ed1435029f53")
end
it "converts resource.revision from an annotated tag to the tagged SHA (not SHA of tag)" do
@@ -102,8 +102,8 @@ describe Chef::Provider::Git do
@stdout = ("d03c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0\n" +
"663c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0^{}\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("663c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("663c22a5e41f5ae3193460cca044ed1435029f53")
end
it "converts resource.revision from a tag to a SHA using an exact match" do
@@ -111,8 +111,8 @@ describe Chef::Provider::Git do
@stdout = ("d03c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n" +
"663c22a5e41f5ae3193460cca044ed1435029f53\trefs/tags/releases/v1.0\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/tags/v1.0\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("503c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("503c22a5e41f5ae3193460cca044ed1435029f53")
end
it "converts resource.revision from a tag to a SHA, matching tags first, then heads" do
@@ -120,8 +120,8 @@ describe Chef::Provider::Git do
@stdout = ("d03c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n" +
"663c22a5e41f5ae3193460cca044ed1435029f53\trefs/tags/v1.0\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("663c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("663c22a5e41f5ae3193460cca044ed1435029f53")
end
it "converts resource.revision from a tag to a SHA, matching heads if no tags match" do
@@ -129,8 +129,8 @@ describe Chef::Provider::Git do
@stdout = ("d03c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n" +
"663c22a5e41f5ae3193460cca044ed1435029f53\trefs/tags/v1.1\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("503c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("503c22a5e41f5ae3193460cca044ed1435029f53")
end
it "converts resource.revision from a tag to a SHA, matching tags first, then heads, then revision" do
@@ -139,8 +139,8 @@ describe Chef::Provider::Git do
"663c22a5e41f5ae3193460cca044ed1435029f53\trefs/tags/v1.0\n" +
"805c22a5e41f5ae3193460cca044ed1435029f53\trefs/pulls/v1.0\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"refs/pulls/v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("805c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"refs/pulls/v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("805c22a5e41f5ae3193460cca044ed1435029f53")
end
it "converts resource.revision from a tag to a SHA, using full path if provided" do
@@ -148,40 +148,40 @@ describe Chef::Provider::Git do
@stdout = ("d03c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n" +
"663c22a5e41f5ae3193460cca044ed1435029f53\trefs/tags/v1.0\n" +
"503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/v1.0\n")
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"refs/heads/v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("503c22a5e41f5ae3193460cca044ed1435029f53")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"refs/heads/v1.0*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("503c22a5e41f5ae3193460cca044ed1435029f53")
end
it "raises an invalid remote reference error if you try to deploy from ``origin'' and assertions are run" do
@resource.revision "origin/"
@provider.action = :checkout
@provider.define_resource_requirements
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- lambda {@provider.process_resource_requirements}.should raise_error(Chef::Exceptions::InvalidRemoteGitReference)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect {@provider.process_resource_requirements}.to raise_error(Chef::Exceptions::InvalidRemoteGitReference)
end
it "raises an unresolvable git reference error if the revision can't be resolved to any revision and assertions are run" do
@resource.revision "FAIL, that's the revision I want"
@provider.action = :checkout
- @provider.should_receive(:shell_out!).and_return(double("ShellOut result", :stdout => "\n"))
+ expect(@provider).to receive(:shell_out!).and_return(double("ShellOut result", :stdout => "\n"))
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::UnresolvableGitReference)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::UnresolvableGitReference)
end
it "does not raise an error if the revision can't be resolved when assertions are not run" do
@resource.revision "FAIL, that's the revision I want"
- @provider.should_receive(:shell_out!).and_return(double("ShellOut result", :stdout => "\n"))
- @provider.target_revision.should == nil
+ expect(@provider).to receive(:shell_out!).and_return(double("ShellOut result", :stdout => "\n"))
+ expect(@provider.target_revision).to eq(nil)
end
it "does not raise an error when the revision is valid and assertions are run." do
@resource.revision "0.8-alpha"
@stdout = "503c22a5e41f5ae3193460cca044ed1435029f53\trefs/heads/0.8-alpha\n"
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"0.8-alpha*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"0.8-alpha*\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
@provider.action = :checkout
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
it "gives the latest HEAD revision SHA if nothing is specified" do
@@ -202,13 +202,13 @@ b7d19519a1c15f1c1a324e2683bd728b6198ce5a\trefs/tags/0.7.8^{}
ebc1b392fe7e8f0fbabc305c299b4d365d2b4d9b\trefs/tags/chef-server-package
SHAS
@resource.revision ''
- @provider.should_receive(:shell_out!).with(@git_ls_remote + "\"HEAD\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
- @provider.target_revision.should eql("28af684d8460ba4793eda3e7ac238c864a5d029a")
+ expect(@provider).to receive(:shell_out!).with(@git_ls_remote + "\"HEAD\"", {:log_tag=>"git[web2.0 app]"}).and_return(double("ShellOut result", :stdout => @stdout))
+ expect(@provider.target_revision).to eql("28af684d8460ba4793eda3e7ac238c864a5d029a")
end
end
it "responds to :revision_slug as an alias for target_revision" do
- @provider.should respond_to(:revision_slug)
+ expect(@provider).to respond_to(:revision_slug)
end
context "with an ssh wrapper" do
@@ -225,11 +225,11 @@ SHAS
before do
@resource.user deploy_user
@resource.ssh_wrapper wrapper
- Etc.stub(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/deployNinja"))
+ allow(Etc).to receive(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/deployNinja"))
end
context "without a timeout set" do
it "clones a repo with default git options" do
- @provider.should_receive(:shell_out!).with(expected_cmd, default_options)
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, default_options)
@provider.clone
end
end
@@ -237,7 +237,7 @@ SHAS
let (:seconds) { 10 }
before { @resource.timeout(seconds) }
it "clones a repo with amended git options" do
- @provider.should_receive(:shell_out!).with(expected_cmd, default_options.merge(:timeout => seconds))
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, default_options.merge(:timeout => seconds))
@provider.clone
end
end
@@ -257,7 +257,7 @@ SHAS
end
before { @resource.environment(override_home) }
it "clones a repo with amended git options with specific home" do
- @provider.should_receive(:shell_out!).with(expected_cmd, overrided_options)
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, overrided_options)
@provider.clone
end
end
@@ -265,11 +265,11 @@ SHAS
it "runs a clone command with escaped destination" do
@resource.user "deployNinja"
- Etc.stub(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/deployNinja"))
+ allow(Etc).to receive(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/deployNinja"))
@resource.destination "/Application Support/with/space"
@resource.ssh_wrapper "do_it_this_way.sh"
expected_cmd = "git clone \"git://github.com/opscode/chef.git\" \"/Application Support/with/space\""
- @provider.should_receive(:shell_out!).with(expected_cmd, :user => "deployNinja",
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :user => "deployNinja",
:environment =>{"GIT_SSH"=>"do_it_this_way.sh",
"HOME" => "/home/deployNinja"},
:log_tag => "git[web2.0 app]")
@@ -280,10 +280,10 @@ SHAS
@resource.depth 5
expected_cmd = "git clone --depth 5 \"git://github.com/opscode/chef.git\" \"/my/deploy/dir\""
version_response = double('shell_out')
- version_response.stub(:stdout) { 'git version 1.7.9' }
- @provider.should_receive(:shell_out!).with("git --version",
+ allow(version_response).to receive(:stdout) { 'git version 1.7.9' }
+ expect(@provider).to receive(:shell_out!).with("git --version",
:log_tag => "git[web2.0 app]").and_return(version_response)
- @provider.should_receive(:shell_out!).with(expected_cmd, :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :log_tag => "git[web2.0 app]")
@provider.clone
end
@@ -291,24 +291,24 @@ SHAS
@resource.depth 5
expected_cmd = "git clone --depth 5 --no-single-branch \"git://github.com/opscode/chef.git\" \"/my/deploy/dir\""
version_response = double('shell_out')
- version_response.stub(:stdout) { 'git version 1.7.10' }
- @provider.should_receive(:shell_out!).with("git --version",
+ allow(version_response).to receive(:stdout) { 'git version 1.7.10' }
+ expect(@provider).to receive(:shell_out!).with("git --version",
:log_tag => "git[web2.0 app]").and_return(version_response)
- @provider.should_receive(:shell_out!).with(expected_cmd, :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :log_tag => "git[web2.0 app]")
@provider.clone
end
it "compiles a clone command with a remote other than ``origin''" do
@resource.remote "opscode"
expected_cmd = "git clone -o opscode \"git://github.com/opscode/chef.git\" \"/my/deploy/dir\""
- @provider.should_receive(:shell_out!).with(expected_cmd, :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :log_tag => "git[web2.0 app]")
@provider.clone
end
it "runs a checkout command with default options" do
- @provider.should_receive(:shell_out!).with('git branch -f deploy d35af14d41ae22b19da05d7d03a0bafc321b244c', :cwd => "/my/deploy/dir",
+ expect(@provider).to receive(:shell_out!).with('git branch -f deploy d35af14d41ae22b19da05d7d03a0bafc321b244c', :cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]").ordered
- @provider.should_receive(:shell_out!).with('git checkout deploy', :cwd => "/my/deploy/dir",
+ expect(@provider).to receive(:shell_out!).with('git checkout deploy', :cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]").ordered
@provider.checkout
end
@@ -316,32 +316,32 @@ SHAS
it "runs an enable_submodule command" do
@resource.enable_submodules true
expected_cmd = "git submodule sync"
- @provider.should_receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir",
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]")
expected_cmd = "git submodule update --init --recursive"
- @provider.should_receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
@provider.enable_submodules
end
it "does nothing for enable_submodules if resource.enable_submodules #=> false" do
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.enable_submodules
end
it "runs a sync command with default options" do
- @provider.should_receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
+ expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
expected_cmd = "git fetch origin && git fetch origin --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
- @provider.should_receive(:shell_out!).with(expected_cmd, :cwd=> "/my/deploy/dir", :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :cwd=> "/my/deploy/dir", :log_tag => "git[web2.0 app]")
@provider.fetch_updates
end
it "runs a sync command with the user and group specified in the resource" do
@resource.user("whois")
- Etc.stub(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/whois"))
+ allow(Etc).to receive(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/whois"))
@resource.group("thisis")
- @provider.should_receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
+ expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
expected_cmd = "git fetch origin && git fetch origin --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
- @provider.should_receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir",
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir",
:user => "whois", :group => "thisis",
:log_tag => "git[web2.0 app]",
:environment=>{"HOME"=>"/home/whois"})
@@ -350,17 +350,17 @@ SHAS
it "configures remote tracking branches when remote is ``origin''" do
@resource.remote "origin"
- @provider.should_receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
+ expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
fetch_command = "git fetch origin && git fetch origin --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
- @provider.should_receive(:shell_out!).with(fetch_command, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(fetch_command, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
@provider.fetch_updates
end
it "configures remote tracking branches when remote is not ``origin''" do
@resource.remote "opscode"
- @provider.should_receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
+ expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
fetch_command = "git fetch opscode && git fetch opscode --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
- @provider.should_receive(:shell_out!).with(fetch_command, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
+ expect(@provider).to receive(:shell_out!).with(fetch_command, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
@provider.fetch_updates
end
@@ -368,14 +368,14 @@ SHAS
it "checks if a remote with this name already exists" do
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 1 }
+ allow(command_response).to receive(:exitstatus) { 1 }
expected_command = "git config --get remote.#{@resource.remote}.url"
- @provider.should_receive(:shell_out!).with(expected_command,
+ expect(@provider).to receive(:shell_out!).with(expected_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:returns => [0,1,2]).and_return(command_response)
add_remote_command = "git remote add #{@resource.remote} #{@resource.repository}"
- @provider.should_receive(:shell_out!).with(add_remote_command,
+ expect(@provider).to receive(:shell_out!).with(add_remote_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]")
@provider.setup_remote_tracking_branches(@resource.remote, @resource.repository)
@@ -384,11 +384,11 @@ SHAS
it "runs the config with the user and group specified in the resource" do
@resource.user("whois")
@resource.group("thisis")
- Etc.stub(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/whois"))
+ allow(Etc).to receive(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/whois"))
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 1 }
+ allow(command_response).to receive(:exitstatus) { 1 }
expected_command = "git config --get remote.#{@resource.remote}.url"
- @provider.should_receive(:shell_out!).with(expected_command,
+ expect(@provider).to receive(:shell_out!).with(expected_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:user => "whois",
@@ -396,7 +396,7 @@ SHAS
:environment=>{"HOME"=>"/home/whois"},
:returns => [0,1,2]).and_return(command_response)
add_remote_command = "git remote add #{@resource.remote} #{@resource.repository}"
- @provider.should_receive(:shell_out!).with(add_remote_command,
+ expect(@provider).to receive(:shell_out!).with(add_remote_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:user => "whois",
@@ -408,14 +408,14 @@ SHAS
describe "when a remote with a given name hasn't been configured yet" do
it "adds a new remote " do
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 1 }
+ allow(command_response).to receive(:exitstatus) { 1 }
check_remote_command = "git config --get remote.#{@resource.remote}.url"
- @provider.should_receive(:shell_out!).with(check_remote_command,
+ expect(@provider).to receive(:shell_out!).with(check_remote_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:returns => [0,1,2]).and_return(command_response)
expected_command = "git remote add #{@resource.remote} #{@resource.repository}"
- @provider.should_receive(:shell_out!).with(expected_command,
+ expect(@provider).to receive(:shell_out!).with(expected_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]")
@provider.setup_remote_tracking_branches(@resource.remote, @resource.repository)
@@ -425,15 +425,15 @@ SHAS
describe "when a remote with a given name has already been configured" do
it "updates remote url when the url is different" do
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 0 }
- command_response.stub(:stdout) { "some_other_url" }
+ allow(command_response).to receive(:exitstatus) { 0 }
+ allow(command_response).to receive(:stdout) { "some_other_url" }
check_remote_command = "git config --get remote.#{@resource.remote}.url"
- @provider.should_receive(:shell_out!).with(check_remote_command,
+ expect(@provider).to receive(:shell_out!).with(check_remote_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:returns => [0,1,2]).and_return(command_response)
expected_command = "git config --replace-all remote.#{@resource.remote}.url #{@resource.repository}"
- @provider.should_receive(:shell_out!).with(expected_command,
+ expect(@provider).to receive(:shell_out!).with(expected_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]")
@provider.setup_remote_tracking_branches(@resource.remote, @resource.repository)
@@ -441,15 +441,15 @@ SHAS
it "doesn't update remote url when the url is the same" do
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 0 }
- command_response.stub(:stdout) { @resource.repository }
+ allow(command_response).to receive(:exitstatus) { 0 }
+ allow(command_response).to receive(:stdout) { @resource.repository }
check_remote_command = "git config --get remote.#{@resource.remote}.url"
- @provider.should_receive(:shell_out!).with(check_remote_command,
+ expect(@provider).to receive(:shell_out!).with(check_remote_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:returns => [0,1,2]).and_return(command_response)
unexpected_command = "git config --replace-all remote.#{@resource.remote}.url #{@resource.repository}"
- @provider.should_not_receive(:shell_out!).with(unexpected_command,
+ expect(@provider).not_to receive(:shell_out!).with(unexpected_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]")
@provider.setup_remote_tracking_branches(@resource.remote, @resource.repository)
@@ -457,14 +457,14 @@ SHAS
it "resets remote url when it has multiple values" do
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 2 }
+ allow(command_response).to receive(:exitstatus) { 2 }
check_remote_command = "git config --get remote.#{@resource.remote}.url"
- @provider.should_receive(:shell_out!).with(check_remote_command,
+ expect(@provider).to receive(:shell_out!).with(check_remote_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]",
:returns => [0,1,2]).and_return(command_response)
expected_command = "git config --replace-all remote.#{@resource.remote}.url #{@resource.repository}"
- @provider.should_receive(:shell_out!).with(expected_command,
+ expect(@provider).to receive(:shell_out!).with(expected_command,
:cwd => "/my/deploy/dir",
:log_tag => "git[web2.0 app]")
@provider.setup_remote_tracking_branches(@resource.remote, @resource.repository)
@@ -473,20 +473,20 @@ SHAS
end
it "raises an error if the git clone command would fail because the enclosing directory doesn't exist" do
- @provider.stub(:shell_out!)
- lambda {@provider.run_action(:sync)}.should raise_error(Chef::Exceptions::MissingParentDirectory)
+ allow(@provider).to receive(:shell_out!)
+ expect {@provider.run_action(:sync)}.to raise_error(Chef::Exceptions::MissingParentDirectory)
end
it "does a checkout by cloning the repo and then enabling submodules" do
# will be invoked in load_current_resource
- ::File.stub(:exist?).with("/my/deploy/dir/.git").and_return(false)
-
- ::File.stub(:exist?).with("/my/deploy/dir").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::Dir.stub(:entries).with("/my/deploy/dir").and_return(['.','..'])
- @provider.should_receive(:clone)
- @provider.should_receive(:checkout)
- @provider.should_receive(:enable_submodules)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(false)
+
+ allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['.','..'])
+ expect(@provider).to receive(:clone)
+ expect(@provider).to receive(:checkout)
+ expect(@provider).to receive(:enable_submodules)
@provider.run_action(:checkout)
# Even though an actual run will cause an update to occur, the fact that we've stubbed out
# the actions above will prevent updates from registering
@@ -495,119 +495,119 @@ SHAS
it "does not call checkout if enable_checkout is false" do
# will be invoked in load_current_resource
- ::File.stub(:exist?).with("/my/deploy/dir/.git").and_return(false)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(false)
- ::File.stub(:exist?).with("/my/deploy/dir").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::Dir.stub(:entries).with("/my/deploy/dir").and_return(['.','..'])
+ allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['.','..'])
@resource.enable_checkout false
- @provider.should_receive(:clone)
- @provider.should_not_receive(:checkout)
- @provider.should_receive(:enable_submodules)
+ expect(@provider).to receive(:clone)
+ expect(@provider).not_to receive(:checkout)
+ expect(@provider).to receive(:enable_submodules)
@provider.run_action(:checkout)
end
# REGRESSION TEST: on some OSes, the entries from an empty directory will be listed as
# ['..', '.'] but this shouldn't change the behavior
it "does a checkout by cloning the repo and then enabling submodules when the directory entries are listed as %w{.. .}" do
- ::File.stub(:exist?).with("/my/deploy/dir/.git").and_return(false)
- ::File.stub(:exist?).with("/my/deploy/dir").and_return(false)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::Dir.stub(:entries).with("/my/deploy/dir").and_return(['..','.'])
- @provider.should_receive(:clone)
- @provider.should_receive(:checkout)
- @provider.should_receive(:enable_submodules)
- @provider.should_receive(:add_remotes)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(false)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(false)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['..','.'])
+ expect(@provider).to receive(:clone)
+ expect(@provider).to receive(:checkout)
+ expect(@provider).to receive(:enable_submodules)
+ expect(@provider).to receive(:add_remotes)
@provider.run_action(:checkout)
# @resource.should be_updated
end
it "should not checkout if the destination exists or is a non empty directory" do
# will be invoked in load_current_resource
- ::File.stub(:exist?).with("/my/deploy/dir/.git").and_return(false)
-
- ::File.stub(:exist?).with("/my/deploy/dir").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::Dir.stub(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
- @provider.should_not_receive(:clone)
- @provider.should_not_receive(:checkout)
- @provider.should_not_receive(:enable_submodules)
- @provider.should_not_receive(:add_remotes)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(false)
+
+ allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
+ expect(@provider).not_to receive(:clone)
+ expect(@provider).not_to receive(:checkout)
+ expect(@provider).not_to receive(:enable_submodules)
+ expect(@provider).not_to receive(:add_remotes)
@provider.run_action(:checkout)
- @resource.should_not be_updated
+ expect(@resource).not_to be_updated
end
it "syncs the code by updating the source when the repo has already been checked out" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- @provider.should_receive(:find_current_revision).exactly(1).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
- @provider.should_not_receive(:fetch_updates)
- @provider.should_receive(:add_remotes)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect(@provider).to receive(:find_current_revision).exactly(1).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
+ expect(@provider).not_to receive(:fetch_updates)
+ expect(@provider).to receive(:add_remotes)
@provider.run_action(:sync)
- @resource.should_not be_updated
+ expect(@resource).not_to be_updated
end
it "marks the resource as updated when the repo is updated and gets a new version" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
# invoked twice - first time from load_current_resource
- @provider.should_receive(:find_current_revision).exactly(1).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
- @provider.stub(:target_revision).and_return('28af684d8460ba4793eda3e7ac238c864a5d029a')
- @provider.should_receive(:fetch_updates)
- @provider.should_receive(:enable_submodules)
- @provider.should_receive(:add_remotes)
+ expect(@provider).to receive(:find_current_revision).exactly(1).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
+ allow(@provider).to receive(:target_revision).and_return('28af684d8460ba4793eda3e7ac238c864a5d029a')
+ expect(@provider).to receive(:fetch_updates)
+ expect(@provider).to receive(:enable_submodules)
+ expect(@provider).to receive(:add_remotes)
@provider.run_action(:sync)
# @resource.should be_updated
end
it "does not fetch any updates if the remote revision matches the current revision" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- @provider.stub(:find_current_revision).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
- @provider.stub(:target_revision).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
- @provider.should_not_receive(:fetch_updates)
- @provider.should_receive(:add_remotes)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(@provider).to receive(:find_current_revision).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
+ allow(@provider).to receive(:target_revision).and_return('d35af14d41ae22b19da05d7d03a0bafc321b244c')
+ expect(@provider).not_to receive(:fetch_updates)
+ expect(@provider).to receive(:add_remotes)
@provider.run_action(:sync)
- @resource.should_not be_updated
+ expect(@resource).not_to be_updated
end
it "clones the repo instead of fetching it if the deploy directory doesn't exist" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").exactly(2).and_return(false)
- @provider.should_receive(:action_checkout)
- @provider.should_not_receive(:shell_out!)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").exactly(2).and_return(false)
+ expect(@provider).to receive(:action_checkout)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:sync)
# @resource.should be_updated
end
it "clones the repo instead of fetching updates if the deploy directory is empty" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.git").exactly(2).and_return(false)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::File.stub(:directory?).with("/my/deploy/dir").and_return(true)
- @provider.stub(:sync_command).and_return("huzzah!")
- @provider.should_receive(:action_checkout)
- @provider.should_not_receive(:shell_out!).with("huzzah!", :cwd => "/my/deploy/dir")
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").exactly(2).and_return(false)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
+ allow(@provider).to receive(:sync_command).and_return("huzzah!")
+ expect(@provider).to receive(:action_checkout)
+ expect(@provider).not_to receive(:shell_out!).with("huzzah!", :cwd => "/my/deploy/dir")
@provider.run_action(:sync)
#@resource.should be_updated
end
it "does an export by cloning the repo then removing the .git directory" do
- @provider.should_receive(:action_checkout)
- FileUtils.should_receive(:rm_rf).with(@resource.destination + "/.git")
+ expect(@provider).to receive(:action_checkout)
+ expect(FileUtils).to receive(:rm_rf).with(@resource.destination + "/.git")
@provider.run_action(:export)
- @resource.should be_updated
+ expect(@resource).to be_updated
end
describe "calling add_remotes" do
it "adds a new remote for each entry in additional remotes hash" do
@resource.additional_remotes({:opscode => "opscode_repo_url",
:another_repo => "some_other_repo_url"})
- STDOUT.stub(:tty?).and_return(false)
+ allow(STDOUT).to receive(:tty?).and_return(false)
command_response = double('shell_out')
- command_response.stub(:exitstatus) { 0 }
+ allow(command_response).to receive(:exitstatus) { 0 }
@resource.additional_remotes.each_pair do |remote_name, remote_url|
- @provider.should_receive(:setup_remote_tracking_branches).with(remote_name, remote_url)
+ expect(@provider).to receive(:setup_remote_tracking_branches).with(remote_name, remote_url)
end
@provider.add_remotes
end
@@ -620,22 +620,22 @@ SHAS
describe "when check remote command returns with status 2" do
it "returns true" do
- @command_response.stub(:exitstatus) { 2 }
- @provider.multiple_remotes?(@command_response).should be_true
+ allow(@command_response).to receive(:exitstatus) { 2 }
+ expect(@provider.multiple_remotes?(@command_response)).to be_true
end
end
describe "when check remote command returns with status 0" do
it "returns false" do
- @command_response.stub(:exitstatus) { 0 }
- @provider.multiple_remotes?(@command_response).should be_false
+ allow(@command_response).to receive(:exitstatus) { 0 }
+ expect(@provider.multiple_remotes?(@command_response)).to be_false
end
end
describe "when check remote command returns with status 0" do
it "returns false" do
- @command_response.stub(:exitstatus) { 1 }
- @provider.multiple_remotes?(@command_response).should be_false
+ allow(@command_response).to receive(:exitstatus) { 1 }
+ expect(@provider.multiple_remotes?(@command_response)).to be_false
end
end
end
@@ -647,17 +647,17 @@ SHAS
describe "when output of the check remote command matches the repository url" do
it "returns true" do
- @command_response.stub(:exitstatus) { 0 }
- @command_response.stub(:stdout) { @resource.repository }
- @provider.remote_matches?(@resource.repository, @command_response).should be_true
+ allow(@command_response).to receive(:exitstatus) { 0 }
+ allow(@command_response).to receive(:stdout) { @resource.repository }
+ expect(@provider.remote_matches?(@resource.repository, @command_response)).to be_true
end
end
describe "when output of the check remote command doesn't match the repository url" do
it "returns false" do
- @command_response.stub(:exitstatus) { 0 }
- @command_response.stub(:stdout) { @resource.repository + "test" }
- @provider.remote_matches?(@resource.repository, @command_response).should be_false
+ allow(@command_response).to receive(:exitstatus) { 0 }
+ allow(@command_response).to receive(:stdout) { @resource.repository + "test" }
+ expect(@provider.remote_matches?(@resource.repository, @command_response)).to be_false
end
end
end
diff --git a/spec/unit/provider/group/dscl_spec.rb b/spec/unit/provider/group/dscl_spec.rb
index f2b602ee97..acd1ba3859 100644
--- a/spec/unit/provider/group/dscl_spec.rb
+++ b/spec/unit/provider/group/dscl_spec.rb
@@ -32,64 +32,64 @@ describe Chef::Provider::Group::Dscl do
@stdin = StringIO.new
@stdout = StringIO.new("\n")
@stderr = StringIO.new("")
- @provider.stub(:popen4).and_yield(@pid,@stdin,@stdout,@stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid,@stdin,@stdout,@stderr).and_return(@status)
end
it "should run popen4 with the supplied array of arguments appended to the dscl command" do
- @provider.should_receive(:popen4).with("dscl . -cmd /Path arg1 arg2")
+ expect(@provider).to receive(:popen4).with("dscl . -cmd /Path arg1 arg2")
@provider.dscl("cmd", "/Path", "arg1", "arg2")
end
it "should return an array of four elements - cmd, status, stdout, stderr" do
dscl_retval = @provider.dscl("cmd /Path args")
- dscl_retval.should be_a_kind_of(Array)
- dscl_retval.should == ["dscl . -cmd /Path args",@status,"\n",""]
+ expect(dscl_retval).to be_a_kind_of(Array)
+ expect(dscl_retval).to eq(["dscl . -cmd /Path args",@status,"\n",""])
end
describe "safe_dscl" do
before do
@node = Chef::Node.new
@provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
- @provider.stub(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
+ allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
end
it "should run dscl with the supplied cmd /Path args" do
- @provider.should_receive(:dscl).with("cmd /Path args")
+ expect(@provider).to receive(:dscl).with("cmd /Path args")
@provider.safe_dscl("cmd /Path args")
end
describe "with the dscl command returning a non zero exit status for a delete" do
before do
@status = double("Process::Status", :exitstatus => 1)
- @provider.stub(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
+ allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
end
it "should return an empty string of standard output for a delete" do
safe_dscl_retval = @provider.safe_dscl("delete /Path args")
- safe_dscl_retval.should be_a_kind_of(String)
- safe_dscl_retval.should == ""
+ expect(safe_dscl_retval).to be_a_kind_of(String)
+ expect(safe_dscl_retval).to eq("")
end
it "should raise an exception for any other command" do
- lambda { @provider.safe_dscl("cmd /Path arguments") }.should raise_error(Chef::Exceptions::Group)
+ expect { @provider.safe_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::Group)
end
end
describe "with the dscl command returning no such key" do
before do
- @provider.stub(:dscl).and_return(["cmd", @status, "No such key: ", "stderr"])
+ allow(@provider).to receive(:dscl).and_return(["cmd", @status, "No such key: ", "stderr"])
end
it "should raise an exception" do
- lambda { @provider.safe_dscl("cmd /Path arguments") }.should raise_error(Chef::Exceptions::Group)
+ expect { @provider.safe_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::Group)
end
end
describe "with the dscl command returning a zero exit status" do
it "should return the third array element, the string of standard output" do
safe_dscl_retval = @provider.safe_dscl("cmd /Path args")
- safe_dscl_retval.should be_a_kind_of(String)
- safe_dscl_retval.should == "stdout"
+ expect(safe_dscl_retval).to be_a_kind_of(String)
+ expect(safe_dscl_retval).to eq("stdout")
end
end
end
@@ -98,21 +98,21 @@ describe Chef::Provider::Group::Dscl do
before do
@node = Chef::Node.new
@provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
- @provider.stub(:safe_dscl).and_return("\naj 200\njt 201\n")
+ allow(@provider).to receive(:safe_dscl).and_return("\naj 200\njt 201\n")
end
it "should run safe_dscl with list /Groups gid" do
- @provider.should_receive(:safe_dscl).with("list /Groups gid")
+ expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
@provider.get_free_gid
end
it "should return the first unused gid number on or above 200" do
- @provider.get_free_gid.should equal(202)
+ expect(@provider.get_free_gid).to equal(202)
end
it "should raise an exception when the search limit is exhausted" do
search_limit = 1
- lambda { @provider.get_free_gid(search_limit) }.should raise_error(RuntimeError)
+ expect { @provider.get_free_gid(search_limit) }.to raise_error(RuntimeError)
end
end
@@ -120,41 +120,41 @@ describe Chef::Provider::Group::Dscl do
before do
@node = Chef::Node.new
@provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
- @provider.stub(:safe_dscl).and_return("\naj 500\n")
+ allow(@provider).to receive(:safe_dscl).and_return("\naj 500\n")
end
it "should run safe_dscl with list /Groups gid" do
- @provider.should_receive(:safe_dscl).with("list /Groups gid")
+ expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
@provider.gid_used?(500)
end
it "should return true for a used gid number" do
- @provider.gid_used?(500).should be_true
+ expect(@provider.gid_used?(500)).to be_true
end
it "should return false for an unused gid number" do
- @provider.gid_used?(501).should be_false
+ expect(@provider.gid_used?(501)).to be_false
end
it "should return false if not given any valid gid number" do
- @provider.gid_used?(nil).should be_false
+ expect(@provider.gid_used?(nil)).to be_false
end
end
describe "set_gid" do
describe "with the new resource and a gid number which is already in use" do
before do
- @provider.stub(:gid_used?).and_return(true)
+ allow(@provider).to receive(:gid_used?).and_return(true)
end
it "should raise an exception if the new resources gid is already in use" do
- lambda { @provider.set_gid }.should raise_error(Chef::Exceptions::Group)
+ expect { @provider.set_gid }.to raise_error(Chef::Exceptions::Group)
end
end
describe "with no gid number for the new resources" do
it "should run get_free_gid and return a valid, unused gid number" do
- @provider.should_receive(:get_free_gid).and_return(501)
+ expect(@provider).to receive(:get_free_gid).and_return(501)
@provider.set_gid
end
end
@@ -162,20 +162,20 @@ describe Chef::Provider::Group::Dscl do
describe "with blank gid number for the new resources" do
before do
@new_resource.instance_variable_set(:@gid, nil)
- @new_resource.stub(:safe_dscl)
+ allow(@new_resource).to receive(:safe_dscl)
end
it "should run get_free_gid and return a valid, unused gid number" do
- @provider.should_receive(:get_free_gid).and_return(501)
+ expect(@provider).to receive(:get_free_gid).and_return(501)
@provider.set_gid
end
end
describe "with a valid gid number which is not already in use" do
it "should run safe_dscl with create /Groups/group PrimaryGroupID gid" do
- @provider.stub(:get_free_gid).and_return(50)
- @provider.should_receive(:safe_dscl).with("list /Groups gid")
- @provider.should_receive(:safe_dscl).with("create /Groups/aj PrimaryGroupID 50").and_return(true)
+ allow(@provider).to receive(:get_free_gid).and_return(50)
+ expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj PrimaryGroupID 50").and_return(true)
@provider.set_gid
end
end
@@ -185,19 +185,19 @@ describe Chef::Provider::Group::Dscl do
describe "with existing members in the current resource and append set to false in the new resource" do
before do
- @new_resource.stub(:members).and_return([])
- @new_resource.stub(:append).and_return(false)
- @current_resource.stub(:members).and_return(["all", "your", "base"])
+ allow(@new_resource).to receive(:members).and_return([])
+ allow(@new_resource).to receive(:append).and_return(false)
+ allow(@current_resource).to receive(:members).and_return(["all", "your", "base"])
end
it "should log an appropriate message" do
- Chef::Log.should_receive(:debug).with("group[aj] removing group members all your base")
+ expect(Chef::Log).to receive(:debug).with("group[aj] removing group members all your base")
@provider.set_members
end
it "should run safe_dscl with create /Groups/group GroupMembership to clear the Group's UID list" do
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
@provider.set_members
end
end
@@ -209,14 +209,14 @@ describe Chef::Provider::Group::Dscl do
end
it "should log an appropriate debug message" do
- Chef::Log.should_receive(:debug).with("group[aj] setting group members all, your, base")
+ expect(Chef::Log).to receive(:debug).with("group[aj] setting group members all, your, base")
@provider.set_members
end
it "should run safe_dscl with append /Groups/group GroupMembership and group members all, your, base" do
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
- @provider.should_receive(:safe_dscl).with("append /Groups/aj GroupMembership all your base").and_return(true)
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("append /Groups/aj GroupMembership all your base").and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
@provider.set_members
end
end
@@ -228,7 +228,7 @@ describe Chef::Provider::Group::Dscl do
end
it "should not call safe_dscl" do
- @provider.should_not_receive(:safe_dscl)
+ expect(@provider).not_to receive(:safe_dscl)
@provider.set_members
end
end
@@ -242,23 +242,23 @@ describe Chef::Provider::Group::Dscl do
end
it "raises an error if the required binary /usr/bin/dscl doesn't exist" do
- File.should_receive(:exists?).with("/usr/bin/dscl").and_return(false)
+ expect(File).to receive(:exists?).with("/usr/bin/dscl").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
it "doesn't raise an error if /usr/bin/dscl exists" do
- File.stub(:exists?).and_return(true)
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ allow(File).to receive(:exists?).and_return(true)
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
describe "when creating the group" do
it "creates the group, password field, gid, and sets group membership" do
- @provider.should_receive(:set_gid).and_return(true)
- @provider.should_receive(:set_members).and_return(true)
- @provider.should_receive(:safe_dscl).with("create /Groups/aj Password '*'")
- @provider.should_receive(:safe_dscl).with("create /Groups/aj")
+ expect(@provider).to receive(:set_gid).and_return(true)
+ expect(@provider).to receive(:set_members).and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj Password '*'")
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj")
@provider.create_group
end
end
@@ -267,30 +267,30 @@ describe Chef::Provider::Group::Dscl do
it "should manage the group_name if it changed and the new resources group_name is not null" do
@current_resource.group_name("oldval")
@new_resource.group_name("newname")
- @provider.should_receive(:set_members).and_return(true)
- @provider.should_receive(:safe_dscl).with("create /Groups/newname")
- @provider.should_receive(:safe_dscl).with("create /Groups/newname Password '*'")
+ expect(@provider).to receive(:set_members).and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/newname")
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/newname Password '*'")
@provider.manage_group
end
it "should manage the gid if it changed and the new resources gid is not null" do
@current_resource.gid(23)
@new_resource.gid(42)
- @provider.should_receive(:set_gid)
+ expect(@provider).to receive(:set_gid)
@provider.manage_group
end
it "should manage the members if it changed and the new resources members is not null" do
@current_resource.members(%{charlie root})
@new_resource.members(%{crab revenge})
- @provider.should_receive(:set_members)
+ expect(@provider).to receive(:set_members)
@provider.manage_group
end
end
describe "remove_group" do
it "should run safe_dscl with delete /Groups/group and with the new resources group name" do
- @provider.should_receive(:safe_dscl).with("delete /Groups/aj").and_return(true)
+ expect(@provider).to receive(:safe_dscl).with("delete /Groups/aj").and_return(true)
@provider.remove_group
end
end
@@ -318,17 +318,17 @@ RecordName: com.apple.aj
RecordType: dsRecTypeStandard:Groups
GroupMembership: waka bar
EOF
- @provider.stub(:safe_dscl).with("read /Groups/aj").and_return(@output)
+ allow(@provider).to receive(:safe_dscl).with("read /Groups/aj").and_return(@output)
@current_resource = @provider.load_current_resource
end
it 'should parse gid properly' do
- File.stub(:exists?).and_return(true)
- @current_resource.gid.should eq("999")
+ allow(File).to receive(:exists?).and_return(true)
+ expect(@current_resource.gid).to eq("999")
end
it 'should parse members properly' do
- File.stub(:exists?).and_return(true)
- @current_resource.members.should eq(['waka', 'bar'])
+ allow(File).to receive(:exists?).and_return(true)
+ expect(@current_resource.members).to eq(['waka', 'bar'])
end
end
diff --git a/spec/unit/provider/group/gpasswd_spec.rb b/spec/unit/provider/group/gpasswd_spec.rb
index 5bd7fdc569..55d978fa7e 100644
--- a/spec/unit/provider/group/gpasswd_spec.rb
+++ b/spec/unit/provider/group/gpasswd_spec.rb
@@ -41,14 +41,14 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
# for Chef::Provider::Group - no need to repeat it here. We'll
# include only what's specific to this provider.
it "should raise an error if the required binary /usr/bin/gpasswd doesn't exist" do
- File.stub(:exists?).and_return(true)
- File.should_receive(:exists?).with("/usr/bin/gpasswd").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ allow(File).to receive(:exists?).and_return(true)
+ expect(File).to receive(:exists?).with("/usr/bin/gpasswd").and_return(false)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
it "shouldn't raise an error if the required binaries exist" do
- File.stub(:exists?).and_return(true)
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ allow(File).to receive(:exists?).and_return(true)
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
@@ -65,8 +65,8 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
end
it "logs a message and sets group's members to 'none'" do
- Chef::Log.should_receive(:debug).with("group[wheel] setting group members to: none")
- @provider.should_receive(:shell_out!).with("gpasswd -M \"\" wheel")
+ expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
+ expect(@provider).to receive(:shell_out!).with("gpasswd -M \"\" wheel")
@provider.modify_group_members
end
end
@@ -78,20 +78,20 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
end
it "does not modify group membership" do
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.modify_group_members
end
end
describe "when the resource specifies group members" do
it "should log an appropriate debug message" do
- Chef::Log.should_receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
- @provider.stub(:shell_out!)
+ expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
+ allow(@provider).to receive(:shell_out!)
@provider.modify_group_members
end
it "should run gpasswd with the members joined by ',' followed by the target group" do
- @provider.should_receive(:shell_out!).with("gpasswd -M lobster,rage,fist wheel")
+ expect(@provider).to receive(:shell_out!).with("gpasswd -M lobster,rage,fist wheel")
@provider.modify_group_members
end
@@ -104,9 +104,9 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
it "should run gpasswd individually for each user when the append option is set" do
@new_resource.append(true)
- @provider.should_receive(:shell_out!).with("gpasswd -a lobster wheel")
- @provider.should_receive(:shell_out!).with("gpasswd -a rage wheel")
- @provider.should_receive(:shell_out!).with("gpasswd -a fist wheel")
+ expect(@provider).to receive(:shell_out!).with("gpasswd -a lobster wheel")
+ expect(@provider).to receive(:shell_out!).with("gpasswd -a rage wheel")
+ expect(@provider).to receive(:shell_out!).with("gpasswd -a fist wheel")
@provider.modify_group_members
end
end
diff --git a/spec/unit/provider/group/groupadd_spec.rb b/spec/unit/provider/group/groupadd_spec.rb
index 793615d04c..94150b7a88 100644
--- a/spec/unit/provider/group/groupadd_spec.rb
+++ b/spec/unit/provider/group/groupadd_spec.rb
@@ -43,47 +43,47 @@ describe Chef::Provider::Group::Groupadd, "set_options" do
field_list.each do |attribute, option|
it "should check for differences in #{attribute.to_s} between the current and new resources" do
- @new_resource.should_receive(attribute)
- @current_resource.should_receive(attribute)
+ expect(@new_resource).to receive(attribute)
+ expect(@current_resource).to receive(attribute)
@provider.set_options
end
it "should set the option for #{attribute} if the new resources #{attribute} is not null" do
- @new_resource.stub(attribute).and_return("wowaweea")
- @provider.set_options.should eql(" #{option} '#{@new_resource.send(attribute)}' #{@new_resource.group_name}")
+ allow(@new_resource).to receive(attribute).and_return("wowaweea")
+ expect(@provider.set_options).to eql(" #{option} '#{@new_resource.send(attribute)}' #{@new_resource.group_name}")
end
end
it "should combine all the possible options" do
match_string = ""
field_list.sort{ |a,b| a[0] <=> b[0] }.each do |attribute, option|
- @new_resource.stub(attribute).and_return("hola")
+ allow(@new_resource).to receive(attribute).and_return("hola")
match_string << " #{option} 'hola'"
end
match_string << " aj"
- @provider.set_options.should eql(match_string)
+ expect(@provider.set_options).to eql(match_string)
end
describe "when we want to create a system group" do
it "should not set groupadd_options '-r' when system is false" do
@new_resource.system(false)
- @provider.groupadd_options.should_not =~ /-r/
+ expect(@provider.groupadd_options).not_to match(/-r/)
end
it "should set groupadd -r if system is true" do
@new_resource.system(true)
- @provider.groupadd_options.should == " -r"
+ expect(@provider.groupadd_options).to eq(" -r")
end
end
describe "when we want to create a non_unique gid group" do
it "should not set groupadd_options '-o' when non_unique is false" do
@new_resource.non_unique(false)
- @provider.groupadd_options.should_not =~ /-o/
+ expect(@provider.groupadd_options).not_to match(/-o/)
end
it "should set groupadd -o if non_unique is true" do
@new_resource.non_unique(true)
- @provider.groupadd_options.should == " -o"
+ expect(@provider.groupadd_options).to eq(" -o")
end
end
end
@@ -93,19 +93,19 @@ describe Chef::Provider::Group::Groupadd, "create_group" do
@node = Chef::Node.new
@new_resource = Chef::Resource::Group.new("aj")
@provider = Chef::Provider::Group::Groupadd.new(@node, @new_resource)
- @provider.stub(:run_command).and_return(true)
- @provider.stub(:set_options).and_return(" monkey")
- @provider.stub(:groupadd_options).and_return("")
- @provider.stub(:modify_group_members).and_return(true)
+ allow(@provider).to receive(:run_command).and_return(true)
+ allow(@provider).to receive(:set_options).and_return(" monkey")
+ allow(@provider).to receive(:groupadd_options).and_return("")
+ allow(@provider).to receive(:modify_group_members).and_return(true)
end
it "should run groupadd with the return of set_options" do
- @provider.should_receive(:run_command).with({ :command => "groupadd monkey" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "groupadd monkey" }).and_return(true)
@provider.create_group
end
it "should modify the group members" do
- @provider.should_receive(:modify_group_members).and_return(true)
+ expect(@provider).to receive(:modify_group_members).and_return(true)
@provider.create_group
end
end
@@ -117,20 +117,20 @@ describe Chef::Provider::Group::Groupadd do
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Group.new("aj")
@provider = Chef::Provider::Group::Groupadd.new(@new_resource, @run_context)
- @provider.stub(:run_command).and_return(true)
- @provider.stub(:set_options).and_return(" monkey")
+ allow(@provider).to receive(:run_command).and_return(true)
+ allow(@provider).to receive(:set_options).and_return(" monkey")
end
describe "manage group" do
it "should run groupmod with the return of set_options" do
- @provider.stub(:modify_group_members).and_return(true)
- @provider.should_receive(:run_command).with({ :command => "groupmod monkey" }).and_return(true)
+ allow(@provider).to receive(:modify_group_members).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "groupmod monkey" }).and_return(true)
@provider.manage_group
end
it "should modify the group members" do
- @provider.should_receive(:modify_group_members).and_return(true)
+ expect(@provider).to receive(:modify_group_members).and_return(true)
@provider.manage_group
end
end
@@ -138,36 +138,36 @@ describe Chef::Provider::Group::Groupadd do
describe "remove_group" do
it "should run groupdel with the new resources group name" do
- @provider.should_receive(:run_command).with({ :command => "groupdel aj" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "groupdel aj" }).and_return(true)
@provider.remove_group
end
end
[:add_member, :remove_member, :set_members].each do |m|
it "should raise an error when calling #{m}" do
- lambda { @provider.send(m, [ ]) }.should raise_error(Chef::Exceptions::Group, "you must override #{m} in #{@provider.to_s}")
+ expect { @provider.send(m, [ ]) }.to raise_error(Chef::Exceptions::Group, "you must override #{m} in #{@provider.to_s}")
end
end
describe "load_current_resource" do
before do
- File.stub(:exists?).and_return(false)
+ allow(File).to receive(:exists?).and_return(false)
@provider.define_resource_requirements
end
it "should raise an error if the required binary /usr/sbin/groupadd doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/groupadd").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(false)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
it "should raise an error if the required binary /usr/sbin/groupmod doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
- File.should_receive(:exists?).with("/usr/sbin/groupmod").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
+ expect(File).to receive(:exists?).with("/usr/sbin/groupmod").and_return(false)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
it "should raise an error if the required binary /usr/sbin/groupdel doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
- File.should_receive(:exists?).with("/usr/sbin/groupmod").and_return(true)
- File.should_receive(:exists?).with("/usr/sbin/groupdel").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
+ expect(File).to receive(:exists?).with("/usr/sbin/groupmod").and_return(true)
+ expect(File).to receive(:exists?).with("/usr/sbin/groupdel").and_return(false)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
end
diff --git a/spec/unit/provider/group/groupmod_spec.rb b/spec/unit/provider/group/groupmod_spec.rb
index 001f9c66e8..496d1e28fa 100644
--- a/spec/unit/provider/group/groupmod_spec.rb
+++ b/spec/unit/provider/group/groupmod_spec.rb
@@ -33,18 +33,18 @@ describe Chef::Provider::Group::Groupmod do
describe "manage_group" do
describe "when determining the current group state" do
it "should raise an error if the required binary /usr/sbin/group doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/group").and_return(false)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Group)
+ expect(File).to receive(:exists?).with("/usr/sbin/group").and_return(false)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Group)
end
it "should raise an error if the required binary /usr/sbin/user doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/group").and_return(true)
- File.should_receive(:exists?).with("/usr/sbin/user").and_return(false)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Group)
+ expect(File).to receive(:exists?).with("/usr/sbin/group").and_return(true)
+ expect(File).to receive(:exists?).with("/usr/sbin/user").and_return(false)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Group)
end
it "shouldn't raise an error if the required binaries exist" do
- File.stub(:exists?).and_return(true)
- lambda { @provider.load_current_resource }.should_not raise_error
+ allow(File).to receive(:exists?).and_return(true)
+ expect { @provider.load_current_resource }.not_to raise_error
end
end
@@ -61,10 +61,10 @@ describe Chef::Provider::Group::Groupmod do
end
it "logs a message and sets group's members to 'none', then removes existing group members" do
- Chef::Log.should_receive(:debug).with("group[wheel] setting group members to: none")
- @provider.should_receive(:shell_out!).with("group mod -n wheel_bak wheel")
- @provider.should_receive(:shell_out!).with("group add -g '123' -o wheel")
- @provider.should_receive(:shell_out!).with("group del wheel_bak")
+ expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
+ expect(@provider).to receive(:shell_out!).with("group mod -n wheel_bak wheel")
+ expect(@provider).to receive(:shell_out!).with("group add -g '123' -o wheel")
+ expect(@provider).to receive(:shell_out!).with("group del wheel_bak")
@provider.manage_group
end
end
@@ -76,8 +76,8 @@ describe Chef::Provider::Group::Groupmod do
end
it "logs a message and does not modify group membership" do
- Chef::Log.should_receive(:debug).with("group[wheel] not changing group members, the group has no members to add")
- @provider.should_not_receive(:shell_out!)
+ expect(Chef::Log).to receive(:debug).with("group[wheel] not changing group members, the group has no members to add")
+ expect(@provider).not_to receive(:shell_out!)
@provider.manage_group
end
end
@@ -89,11 +89,11 @@ describe Chef::Provider::Group::Groupmod do
end
it "updates group membership correctly" do
- Chef::Log.stub(:debug)
- @provider.should_receive(:shell_out!).with("group mod -n wheel_bak wheel")
- @provider.should_receive(:shell_out!).with("user mod -G wheel lobster")
- @provider.should_receive(:shell_out!).with("group add -g '123' -o wheel")
- @provider.should_receive(:shell_out!).with("group del wheel_bak")
+ allow(Chef::Log).to receive(:debug)
+ expect(@provider).to receive(:shell_out!).with("group mod -n wheel_bak wheel")
+ expect(@provider).to receive(:shell_out!).with("user mod -G wheel lobster")
+ expect(@provider).to receive(:shell_out!).with("group add -g '123' -o wheel")
+ expect(@provider).to receive(:shell_out!).with("group del wheel_bak")
@provider.manage_group
end
end
@@ -108,10 +108,10 @@ describe Chef::Provider::Group::Groupmod do
end
it "should run a group add command and some user mod commands" do
- @provider.should_receive(:shell_out!).with("group add -g '123' wheel")
- @provider.should_receive(:shell_out!).with("user mod -G wheel lobster")
- @provider.should_receive(:shell_out!).with("user mod -G wheel rage")
- @provider.should_receive(:shell_out!).with("user mod -G wheel fist")
+ expect(@provider).to receive(:shell_out!).with("group add -g '123' wheel")
+ expect(@provider).to receive(:shell_out!).with("user mod -G wheel lobster")
+ expect(@provider).to receive(:shell_out!).with("user mod -G wheel rage")
+ expect(@provider).to receive(:shell_out!).with("user mod -G wheel fist")
@provider.create_group
end
end
@@ -125,7 +125,7 @@ describe Chef::Provider::Group::Groupmod do
end
it "should run a group del command" do
- @provider.should_receive(:shell_out!).with("group del wheel")
+ expect(@provider).to receive(:shell_out!).with("group del wheel")
@provider.remove_group
end
end
diff --git a/spec/unit/provider/group/pw_spec.rb b/spec/unit/provider/group/pw_spec.rb
index fdc2e35746..af74b3b2ce 100644
--- a/spec/unit/provider/group/pw_spec.rb
+++ b/spec/unit/provider/group/pw_spec.rb
@@ -37,19 +37,19 @@ describe Chef::Provider::Group::Pw do
describe "when setting options for the pw command" do
it "does not set the gid option if gids match or are unmanaged" do
- @provider.set_options.should == " wheel"
+ expect(@provider.set_options).to eq(" wheel")
end
it "sets the option for gid if it is not nil" do
@new_resource.gid(42)
- @provider.set_options.should eql(" wheel -g '42'")
+ expect(@provider.set_options).to eql(" wheel -g '42'")
end
end
describe "when creating a group" do
it "should run pw groupadd with the return of set_options and set_members_option" do
@new_resource.gid(23)
- @provider.should_receive(:run_command).with({ :command => "pw groupadd wheel -g '23' -M root,aj" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw groupadd wheel -g '23' -M root,aj" }).and_return(true)
@provider.create_group
end
end
@@ -59,8 +59,8 @@ describe Chef::Provider::Group::Pw do
it "should run pw groupmod with the return of set_options" do
@new_resource.gid(42)
@new_resource.members(["someone"])
- @provider.should_receive(:run_command).with({ :command => "pw groupmod wheel -g '42' -m someone" }).and_return(true)
- @provider.should_receive(:run_command).with({ :command => "pw groupmod wheel -g '42' -d root,aj" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw groupmod wheel -g '42' -m someone" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw groupmod wheel -g '42' -d root,aj" }).and_return(true)
@provider.manage_group
end
@@ -68,7 +68,7 @@ describe Chef::Provider::Group::Pw do
describe "when removing the group" do
it "should run pw groupdel with the new resources group name" do
- @provider.should_receive(:run_command).with({ :command => "pw groupdel wheel" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw groupdel wheel" }).and_return(true)
@provider.remove_group
end
end
@@ -77,44 +77,44 @@ describe Chef::Provider::Group::Pw do
describe "with an empty members array in both the new and current resource" do
before do
- @new_resource.stub(:members).and_return([])
- @current_resource.stub(:members).and_return([])
+ allow(@new_resource).to receive(:members).and_return([])
+ allow(@current_resource).to receive(:members).and_return([])
end
it "should set no options" do
- @provider.set_members_options.should eql([ ])
+ expect(@provider.set_members_options).to eql([ ])
end
end
describe "with an empty members array in the new resource and existing members in the current resource" do
before do
- @new_resource.stub(:members).and_return([])
- @current_resource.stub(:members).and_return(["all", "your", "base"])
+ allow(@new_resource).to receive(:members).and_return([])
+ allow(@current_resource).to receive(:members).and_return(["all", "your", "base"])
end
it "should log an appropriate message" do
- Chef::Log.should_receive(:debug).with("group[wheel] removing group members: all,your,base")
+ expect(Chef::Log).to receive(:debug).with("group[wheel] removing group members: all,your,base")
@provider.set_members_options
end
it "should set the -d option with the members joined by ','" do
- @provider.set_members_options.should eql([ " -d all,your,base" ])
+ expect(@provider.set_members_options).to eql([ " -d all,your,base" ])
end
end
describe "with supplied members array in the new resource and an empty members array in the current resource" do
before do
- @new_resource.stub(:members).and_return(["all", "your", "base"])
- @current_resource.stub(:members).and_return([])
+ allow(@new_resource).to receive(:members).and_return(["all", "your", "base"])
+ allow(@current_resource).to receive(:members).and_return([])
end
it "should log an appropriate debug message" do
- Chef::Log.should_receive(:debug).with("group[wheel] adding group members: all,your,base")
+ expect(Chef::Log).to receive(:debug).with("group[wheel] adding group members: all,your,base")
@provider.set_members_options
end
it "should set the -m option with the members joined by ','" do
- @provider.set_members_options.should eql([ " -m all,your,base" ])
+ expect(@provider.set_members_options).to eql([ " -m all,your,base" ])
end
end
end
@@ -126,13 +126,13 @@ describe Chef::Provider::Group::Pw do
@provider.define_resource_requirements
end
it "should raise an error if the required binary /usr/sbin/pw doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/pw").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ expect(File).to receive(:exists?).with("/usr/sbin/pw").and_return(false)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
it "shouldn't raise an error if /usr/sbin/pw exists" do
- File.stub(:exists?).and_return(true)
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ allow(File).to receive(:exists?).and_return(true)
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
end
diff --git a/spec/unit/provider/group/usermod_spec.rb b/spec/unit/provider/group/usermod_spec.rb
index bd9eac4ede..3f06e9ebf1 100644
--- a/spec/unit/provider/group/usermod_spec.rb
+++ b/spec/unit/provider/group/usermod_spec.rb
@@ -27,19 +27,19 @@ describe Chef::Provider::Group::Usermod do
@new_resource.members [ "all", "your", "base" ]
@new_resource.excluded_members [ ]
@provider = Chef::Provider::Group::Usermod.new(@new_resource, @run_context)
- @provider.stub(:run_command)
+ allow(@provider).to receive(:run_command)
end
describe "modify_group_members" do
describe "with an empty members array" do
before do
- @new_resource.stub(:append).and_return(true)
- @new_resource.stub(:members).and_return([])
+ allow(@new_resource).to receive(:append).and_return(true)
+ allow(@new_resource).to receive(:members).and_return([])
end
it "should log an appropriate message" do
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.modify_group_members
end
end
@@ -56,8 +56,8 @@ describe Chef::Provider::Group::Usermod do
}
before do
- @new_resource.stub(:members).and_return(["all", "your", "base"])
- File.stub(:exists?).and_return(true)
+ allow(@new_resource).to receive(:members).and_return(["all", "your", "base"])
+ allow(File).to receive(:exists?).and_return(true)
end
it "should raise an error when setting the entire group directly" do
@@ -65,7 +65,7 @@ describe Chef::Provider::Group::Usermod do
@provider.load_current_resource
@provider.instance_variable_set("@group_exists", true)
@provider.action = :modify
- lambda { @provider.run_action(@provider.process_resource_requirements) }.should raise_error(Chef::Exceptions::Group, "setting group members directly is not supported by #{@provider.to_s}, must set append true in group")
+ expect { @provider.run_action(@provider.process_resource_requirements) }.to raise_error(Chef::Exceptions::Group, "setting group members directly is not supported by #{@provider.to_s}, must set append true in group")
end
it "should raise an error when excluded_members are set" do
@@ -73,9 +73,9 @@ describe Chef::Provider::Group::Usermod do
@provider.load_current_resource
@provider.instance_variable_set("@group_exists", true)
@provider.action = :modify
- @new_resource.stub(:append).and_return(true)
- @new_resource.stub(:excluded_members).and_return(["someone"])
- lambda { @provider.run_action(@provider.process_resource_requirements) }.should raise_error(Chef::Exceptions::Group, "excluded_members is not supported by #{@provider.to_s}")
+ allow(@new_resource).to receive(:append).and_return(true)
+ allow(@new_resource).to receive(:excluded_members).and_return(["someone"])
+ expect { @provider.run_action(@provider.process_resource_requirements) }.to raise_error(Chef::Exceptions::Group, "excluded_members is not supported by #{@provider.to_s}")
end
platforms.each do |platform, flags|
@@ -84,10 +84,10 @@ describe Chef::Provider::Group::Usermod do
current_resource.members([ ])
@provider.current_resource = current_resource
@node.automatic_attrs[:platform] = platform
- @new_resource.stub(:append).and_return(true)
- @provider.should_receive(:shell_out!).with("usermod #{flags} wheel all")
- @provider.should_receive(:shell_out!).with("usermod #{flags} wheel your")
- @provider.should_receive(:shell_out!).with("usermod #{flags} wheel base")
+ allow(@new_resource).to receive(:append).and_return(true)
+ expect(@provider).to receive(:shell_out!).with("usermod #{flags} wheel all")
+ expect(@provider).to receive(:shell_out!).with("usermod #{flags} wheel your")
+ expect(@provider).to receive(:shell_out!).with("usermod #{flags} wheel base")
@provider.modify_group_members
end
end
@@ -96,20 +96,20 @@ describe Chef::Provider::Group::Usermod do
describe "when loading the current resource" do
before(:each) do
- File.stub(:exists?).and_return(false)
+ allow(File).to receive(:exists?).and_return(false)
@provider.action = :create
@provider.define_resource_requirements
end
it "should raise an error if the required binary /usr/sbin/usermod doesn't exist" do
- File.stub(:exists?).and_return(true)
- File.should_receive(:exists?).with("/usr/sbin/usermod").and_return(false)
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
+ allow(File).to receive(:exists?).and_return(true)
+ expect(File).to receive(:exists?).with("/usr/sbin/usermod").and_return(false)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
end
it "shouldn't raise an error if the required binaries exist" do
- File.stub(:exists?).and_return(true)
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ allow(File).to receive(:exists?).and_return(true)
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
end
diff --git a/spec/unit/provider/group/windows_spec.rb b/spec/unit/provider/group/windows_spec.rb
index 6888c750f5..23dfa8315f 100644
--- a/spec/unit/provider/group/windows_spec.rb
+++ b/spec/unit/provider/group/windows_spec.rb
@@ -34,14 +34,14 @@ describe Chef::Provider::Group::Windows do
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Group.new("staff")
@net_group = double("Chef::Util::Windows::NetGroup")
- Chef::Util::Windows::NetGroup.stub(:new).and_return(@net_group)
+ allow(Chef::Util::Windows::NetGroup).to receive(:new).and_return(@net_group)
@provider = Chef::Provider::Group::Windows.new(@new_resource, @run_context)
end
describe "when creating the group" do
it "should call @net_group.local_add" do
- @net_group.should_receive(:local_set_members).with([])
- @net_group.should_receive(:local_add)
+ expect(@net_group).to receive(:local_set_members).with([])
+ expect(@net_group).to receive(:local_add)
@provider.create_group
end
end
@@ -52,22 +52,22 @@ describe Chef::Provider::Group::Windows do
@current_resource = Chef::Resource::Group.new("staff")
@current_resource.members [ "all", "your", "base" ]
- Chef::Util::Windows::NetGroup.stub(:new).and_return(@net_group)
- @net_group.stub(:local_add_members)
- @net_group.stub(:local_set_members)
- @provider.stub(:local_group_name_to_sid)
+ allow(Chef::Util::Windows::NetGroup).to receive(:new).and_return(@net_group)
+ allow(@net_group).to receive(:local_add_members)
+ allow(@net_group).to receive(:local_set_members)
+ allow(@provider).to receive(:local_group_name_to_sid)
@provider.current_resource = @current_resource
end
it "should call @net_group.local_set_members" do
- @new_resource.stub(:append).and_return(false)
- @net_group.should_receive(:local_set_members).with(@new_resource.members)
+ allow(@new_resource).to receive(:append).and_return(false)
+ expect(@net_group).to receive(:local_set_members).with(@new_resource.members)
@provider.manage_group
end
it "should call @net_group.local_add_members" do
- @new_resource.stub(:append).and_return(true)
- @net_group.should_receive(:local_add_members).with(@new_resource.members)
+ allow(@new_resource).to receive(:append).and_return(true)
+ expect(@net_group).to receive(:local_add_members).with(@new_resource.members)
@provider.manage_group
end
@@ -75,12 +75,12 @@ describe Chef::Provider::Group::Windows do
describe "remove_group" do
before do
- Chef::Util::Windows::NetGroup.stub(:new).and_return(@net_group)
- @provider.stub(:run_command).and_return(true)
+ allow(Chef::Util::Windows::NetGroup).to receive(:new).and_return(@net_group)
+ allow(@provider).to receive(:run_command).and_return(true)
end
it "should call @net_group.local_delete" do
- @net_group.should_receive(:local_delete)
+ expect(@net_group).to receive(:local_delete)
@provider.remove_group
end
end
@@ -95,7 +95,7 @@ describe Chef::Provider::Group::Windows, "NetGroup" do
@new_resource.group_name "Remote Desktop Users"
end
it 'sets group_name correctly' do
- Chef::Util::Windows::NetGroup.should_receive(:new).with("Remote Desktop Users")
+ expect(Chef::Util::Windows::NetGroup).to receive(:new).with("Remote Desktop Users")
Chef::Provider::Group::Windows.new(@new_resource, @run_context)
end
end
diff --git a/spec/unit/provider/group_spec.rb b/spec/unit/provider/group_spec.rb
index e467da751f..e20486fd4a 100644
--- a/spec/unit/provider/group_spec.rb
+++ b/spec/unit/provider/group_spec.rb
@@ -41,89 +41,89 @@ describe Chef::Provider::User do
:gid => 20,
:mem => [ "root", "aj" ]
)
- Etc.stub(:getgrnam).with('wheel').and_return(@pw_group)
+ allow(Etc).to receive(:getgrnam).with('wheel').and_return(@pw_group)
end
it "assumes the group exists by default" do
- @provider.group_exists.should be_true
+ expect(@provider.group_exists).to be_true
end
describe "when establishing the current state of the group" do
it "sets the group name of the current resource to the group name of the new resource" do
@provider.load_current_resource
- @provider.current_resource.group_name.should == 'wheel'
+ expect(@provider.current_resource.group_name).to eq('wheel')
end
it "does not modify the desired gid if set" do
@provider.load_current_resource
- @new_resource.gid.should == 500
+ expect(@new_resource.gid).to eq(500)
end
it "sets the desired gid to the current gid if none is set" do
@new_resource.instance_variable_set(:@gid, nil)
@provider.load_current_resource
- @new_resource.gid.should == 20
+ expect(@new_resource.gid).to eq(20)
end
it "looks up the group in /etc/group with getgrnam" do
- Etc.should_receive(:getgrnam).with(@new_resource.group_name).and_return(@pw_group)
+ expect(Etc).to receive(:getgrnam).with(@new_resource.group_name).and_return(@pw_group)
@provider.load_current_resource
- @provider.current_resource.gid.should == 20
- @provider.current_resource.members.should == %w{root aj}
+ expect(@provider.current_resource.gid).to eq(20)
+ expect(@provider.current_resource.members).to eq(%w{root aj})
end
it "should flip the value of exists if it cannot be found in /etc/group" do
- Etc.stub(:getgrnam).and_raise(ArgumentError)
+ allow(Etc).to receive(:getgrnam).and_raise(ArgumentError)
@provider.load_current_resource
- @provider.group_exists.should be_false
+ expect(@provider.group_exists).to be_false
end
it "should return the current resource" do
- @provider.load_current_resource.should equal(@provider.current_resource)
+ expect(@provider.load_current_resource).to equal(@provider.current_resource)
end
end
describe "when determining if the system is already in the target state" do
[ :gid, :members ].each do |attribute|
it "should return true if #{attribute} doesn't match" do
- @current_resource.stub(attribute).and_return("looooooooooooooooooool")
- @provider.compare_group.should be_true
+ allow(@current_resource).to receive(attribute).and_return("looooooooooooooooooool")
+ expect(@provider.compare_group).to be_true
end
end
it "should return false if gid and members are equal" do
- @provider.compare_group.should be_false
+ expect(@provider.compare_group).to be_false
end
it "should coerce an integer to a string for comparison" do
- @current_resource.stub(:gid).and_return("500")
- @provider.compare_group.should be_false
+ allow(@current_resource).to receive(:gid).and_return("500")
+ expect(@provider.compare_group).to be_false
end
it "should return false if append is true and the group member(s) already exists" do
@current_resource.members << "extra_user"
- @new_resource.stub(:append).and_return(true)
- @provider.compare_group.should be_false
+ allow(@new_resource).to receive(:append).and_return(true)
+ expect(@provider.compare_group).to be_false
end
it "should return true if append is true and the group member(s) do not already exist" do
@new_resource.members << "extra_user"
- @new_resource.stub(:append).and_return(true)
- @provider.compare_group.should be_true
+ allow(@new_resource).to receive(:append).and_return(true)
+ expect(@provider.compare_group).to be_true
end
it "should return false if append is true and excluded_members include a non existing member" do
@new_resource.excluded_members << "extra_user"
- @new_resource.stub(:append).and_return(true)
- @provider.compare_group.should be_false
+ allow(@new_resource).to receive(:append).and_return(true)
+ expect(@provider.compare_group).to be_false
end
it "should return true if the append is true and excluded_members include an existing user" do
@new_resource.members.each {|m| @new_resource.excluded_members << m }
@new_resource.members.clear
- @new_resource.stub(:append).and_return(true)
- @provider.compare_group.should be_true
+ allow(@new_resource).to receive(:append).and_return(true)
+ expect(@provider.compare_group).to be_true
end
end
@@ -131,40 +131,40 @@ describe Chef::Provider::User do
describe "when creating a group" do
it "should call create_group if the group does not exist" do
@provider.group_exists = false
- @provider.should_receive(:create_group).and_return(true)
+ expect(@provider).to receive(:create_group).and_return(true)
@provider.run_action(:create)
end
it "should set the new_resources updated flag when it creates the group" do
@provider.group_exists = false
- @provider.stub(:create_group)
+ allow(@provider).to receive(:create_group)
@provider.run_action(:create)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should check to see if the group has mismatched attributes if the group exists" do
@provider.group_exists = true
- @provider.stub(:compare_group).and_return(false)
- @provider.stub(:change_desc).and_return([ ])
+ allow(@provider).to receive(:compare_group).and_return(false)
+ allow(@provider).to receive(:change_desc).and_return([ ])
@provider.run_action(:create)
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
it "should call manage_group if the group exists and has mismatched attributes" do
@provider.group_exists = true
- @provider.stub(:compare_group).and_return(true)
- @provider.stub(:change_desc).and_return([ ])
- @provider.should_receive(:manage_group).and_return(true)
+ allow(@provider).to receive(:compare_group).and_return(true)
+ allow(@provider).to receive(:change_desc).and_return([ ])
+ expect(@provider).to receive(:manage_group).and_return(true)
@provider.run_action(:create)
end
it "should set the new_resources updated flag when it creates the group if we call manage_group" do
@provider.group_exists = true
- @provider.stub(:compare_group).and_return(true)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.stub(:manage_group).and_return(true)
+ allow(@provider).to receive(:compare_group).and_return(true)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ allow(@provider).to receive(:manage_group).and_return(true)
@provider.run_action(:create)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
@@ -172,50 +172,50 @@ describe Chef::Provider::User do
it "should not call remove_group if the group does not exist" do
@provider.group_exists = false
- @provider.should_not_receive(:remove_group)
+ expect(@provider).not_to receive(:remove_group)
@provider.run_action(:remove)
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
it "should call remove_group if the group exists" do
@provider.group_exists = true
- @provider.should_receive(:remove_group)
+ expect(@provider).to receive(:remove_group)
@provider.run_action(:remove)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
end
describe "when updating a group" do
before(:each) do
@provider.group_exists = true
- @provider.stub(:manage_group).and_return(true)
+ allow(@provider).to receive(:manage_group).and_return(true)
end
it "should run manage_group if the group exists and has mismatched attributes" do
- @provider.should_receive(:compare_group).and_return(true)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.should_receive(:manage_group).and_return(true)
+ expect(@provider).to receive(:compare_group).and_return(true)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ expect(@provider).to receive(:manage_group).and_return(true)
@provider.run_action(:manage)
end
it "should set the new resources updated flag to true if manage_group is called" do
- @provider.stub(:compare_group).and_return(true)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.stub(:manage_group).and_return(true)
+ allow(@provider).to receive(:compare_group).and_return(true)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ allow(@provider).to receive(:manage_group).and_return(true)
@provider.run_action(:manage)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not run manage_group if the group does not exist" do
@provider.group_exists = false
- @provider.should_not_receive(:manage_group)
+ expect(@provider).not_to receive(:manage_group)
@provider.run_action(:manage)
end
it "should not run manage_group if the group exists but has no differing attributes" do
- @provider.should_receive(:compare_group).and_return(false)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.should_not_receive(:manage_group)
+ expect(@provider).to receive(:compare_group).and_return(false)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ expect(@provider).not_to receive(:manage_group)
@provider.run_action(:manage)
end
end
@@ -223,34 +223,34 @@ describe Chef::Provider::User do
describe "when modifying the group" do
before(:each) do
@provider.group_exists = true
- @provider.stub(:manage_group).and_return(true)
+ allow(@provider).to receive(:manage_group).and_return(true)
end
it "should run manage_group if the group exists and has mismatched attributes" do
- @provider.should_receive(:compare_group).and_return(true)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.should_receive(:manage_group).and_return(true)
+ expect(@provider).to receive(:compare_group).and_return(true)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ expect(@provider).to receive(:manage_group).and_return(true)
@provider.run_action(:modify)
end
it "should set the new resources updated flag to true if manage_group is called" do
- @provider.stub(:compare_group).and_return(true)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.stub(:manage_group).and_return(true)
+ allow(@provider).to receive(:compare_group).and_return(true)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ allow(@provider).to receive(:manage_group).and_return(true)
@provider.run_action(:modify)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not run manage_group if the group exists but has no differing attributes" do
- @provider.should_receive(:compare_group).and_return(false)
- @provider.stub(:change_desc).and_return(["Some changes are going to be done."])
- @provider.should_not_receive(:manage_group)
+ expect(@provider).to receive(:compare_group).and_return(false)
+ allow(@provider).to receive(:change_desc).and_return(["Some changes are going to be done."])
+ expect(@provider).not_to receive(:manage_group)
@provider.run_action(:modify)
end
it "should raise a Chef::Exceptions::Group if the group doesn't exist" do
@provider.group_exists = false
- lambda { @provider.run_action(:modify) }.should raise_error(Chef::Exceptions::Group)
+ expect { @provider.run_action(:modify) }.to raise_error(Chef::Exceptions::Group)
end
end
@@ -258,28 +258,28 @@ describe Chef::Provider::User do
it "should report which group members are missing if members are missing and appending to the group" do
@new_resource.members << "user1"
@new_resource.members << "user2"
- @new_resource.stub(:append).and_return true
- @provider.compare_group.should be_true
- @provider.change_desc.should == [ "add missing member(s): user1, user2" ]
+ allow(@new_resource).to receive(:append).and_return true
+ expect(@provider.compare_group).to be_true
+ expect(@provider.change_desc).to eq([ "add missing member(s): user1, user2" ])
end
it "should report that the group members will be overwritten if not appending" do
@new_resource.members << "user1"
- @new_resource.stub(:append).and_return false
- @provider.compare_group.should be_true
- @provider.change_desc.should == [ "replace group members with new list of members" ]
+ allow(@new_resource).to receive(:append).and_return false
+ expect(@provider.compare_group).to be_true
+ expect(@provider.change_desc).to eq([ "replace group members with new list of members" ])
end
it "should report the gid will be changed when it does not match" do
- @current_resource.stub(:gid).and_return("BADF00D")
- @provider.compare_group.should be_true
- @provider.change_desc.should == [ "change gid #{@current_resource.gid} to #{@new_resource.gid}" ]
+ allow(@current_resource).to receive(:gid).and_return("BADF00D")
+ expect(@provider.compare_group).to be_true
+ expect(@provider.change_desc).to eq([ "change gid #{@current_resource.gid} to #{@new_resource.gid}" ])
end
it "should report no change reason when no change is required" do
- @provider.compare_group.should be_false
- @provider.change_desc.should == [ ]
+ expect(@provider.compare_group).to be_false
+ expect(@provider.change_desc).to eq([ ])
end
end
diff --git a/spec/unit/provider/http_request_spec.rb b/spec/unit/provider/http_request_spec.rb
index 3077685b97..a84dd5e2a0 100644
--- a/spec/unit/provider/http_request_spec.rb
+++ b/spec/unit/provider/http_request_spec.rb
@@ -35,7 +35,7 @@ describe Chef::Provider::HttpRequest do
describe "load_current_resource" do
it "should set up a Chef::REST client, with no authentication" do
- Chef::HTTP::Simple.should_receive(:new).with(@new_resource.url)
+ expect(Chef::HTTP::Simple).to receive(:new).with(@new_resource.url)
@provider.load_current_resource
end
end
@@ -44,7 +44,7 @@ describe Chef::Provider::HttpRequest do
before(:each) do
# run_action(x) forces load_current_resource to run;
# that would overwrite our supplied mock Chef::Rest # object
- @provider.stub(:load_current_resource).and_return(true)
+ allow(@provider).to receive(:load_current_resource).and_return(true)
@http = double("Chef::REST")
@provider.http = @http
end
@@ -53,53 +53,53 @@ describe Chef::Provider::HttpRequest do
it "should inflate a message block at runtime" do
@new_resource.message { "return" }
- @http.should_receive(:get).with("http://www.opscode.com/", {})
+ expect(@http).to receive(:get).with("http://www.opscode.com/", {})
@provider.run_action(:get)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should run a GET request" do
- @http.should_receive(:get).with("http://www.opscode.com/", {})
+ expect(@http).to receive(:get).with("http://www.opscode.com/", {})
@provider.run_action(:get)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "action_put" do
it "should run a PUT request with the message as the payload" do
- @http.should_receive(:put).with("http://www.opscode.com/", @new_resource.message, {})
+ expect(@http).to receive(:put).with("http://www.opscode.com/", @new_resource.message, {})
@provider.run_action(:put)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should inflate a message block at runtime" do
- @new_resource.stub(:message).and_return(lambda { "return" })
- @http.should_receive(:put).with("http://www.opscode.com/", "return", {})
+ allow(@new_resource).to receive(:message).and_return(lambda { "return" })
+ expect(@http).to receive(:put).with("http://www.opscode.com/", "return", {})
@provider.run_action(:put)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "action_post" do
it "should run a PUT request with the message as the payload" do
- @http.should_receive(:post).with("http://www.opscode.com/", @new_resource.message, {})
+ expect(@http).to receive(:post).with("http://www.opscode.com/", @new_resource.message, {})
@provider.run_action(:post)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should inflate a message block at runtime" do
@new_resource.message { "return" }
- @http.should_receive(:post).with("http://www.opscode.com/", "return", {})
+ expect(@http).to receive(:post).with("http://www.opscode.com/", "return", {})
@provider.run_action(:post)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "action_delete" do
it "should run a DELETE request" do
- @http.should_receive(:delete).with("http://www.opscode.com/", {})
+ expect(@http).to receive(:delete).with("http://www.opscode.com/", {})
@provider.run_action(:delete)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
@@ -112,46 +112,46 @@ describe Chef::Provider::HttpRequest do
it "should inflate a message block at runtime" do
@new_resource.message { "return" }
- @http.should_receive(:head).with("http://www.opscode.com/", {}).and_return(nil)
+ expect(@http).to receive(:head).with("http://www.opscode.com/", {}).and_return(nil)
@provider.run_action(:head)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should run a HEAD request" do
- @http.should_receive(:head).with("http://www.opscode.com/", {}).and_return(nil)
+ expect(@http).to receive(:head).with("http://www.opscode.com/", {}).and_return(nil)
@provider.run_action(:head)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should update a HEAD request with empty string response body (CHEF-4762)" do
- @http.should_receive(:head).with("http://www.opscode.com/", {}).and_return("")
+ expect(@http).to receive(:head).with("http://www.opscode.com/", {}).and_return("")
@provider.run_action(:head)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should update a HEAD request with nil response body (CHEF-4762)" do
- @http.should_receive(:head).with("http://www.opscode.com/", {}).and_return(nil)
+ expect(@http).to receive(:head).with("http://www.opscode.com/", {}).and_return(nil)
@provider.run_action(:head)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not update a HEAD request if a not modified response (CHEF-4762)" do
if_modified_since = File.mtime(__FILE__).httpdate
@new_resource.headers "If-Modified-Since" => if_modified_since
- @http.should_receive(:head).with("http://www.opscode.com/", {"If-Modified-Since" => if_modified_since}).and_return(false)
+ expect(@http).to receive(:head).with("http://www.opscode.com/", {"If-Modified-Since" => if_modified_since}).and_return(false)
@provider.run_action(:head)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
it "should run a HEAD request with If-Modified-Since header" do
@new_resource.headers "If-Modified-Since" => File.mtime(__FILE__).httpdate
- @http.should_receive(:head).with("http://www.opscode.com/", @new_resource.headers)
+ expect(@http).to receive(:head).with("http://www.opscode.com/", @new_resource.headers)
@provider.run_action(:head)
end
it "doesn't call converge_by if HEAD does not return modified" do
- @http.should_receive(:head).and_return(false)
- @provider.should_not_receive(:converge_by)
+ expect(@http).to receive(:head).and_return(false)
+ expect(@provider).not_to receive(:converge_by)
@provider.run_action(:head)
end
end
diff --git a/spec/unit/provider/ifconfig/aix_spec.rb b/spec/unit/provider/ifconfig/aix_spec.rb
index 24f5fb18f3..6e685823ac 100644
--- a/spec/unit/provider/ifconfig/aix_spec.rb
+++ b/spec/unit/provider/ifconfig/aix_spec.rb
@@ -50,7 +50,7 @@ IFCONFIG
describe "#load_current_resource" do
before do
status = double("Status", :exitstatus => 0)
- @provider.should_receive(:popen4).with("ifconfig -a").and_yield(@pid,@stdin,StringIO.new(@ifconfig_output),@stderr).and_return(status)
+ expect(@provider).to receive(:popen4).with("ifconfig -a").and_yield(@pid,@stdin,StringIO.new(@ifconfig_output),@stderr).and_return(status)
@new_resource.device "en0"
end
it "should load given interface with attributes." do
@@ -67,21 +67,21 @@ IFCONFIG
it "should add an interface if it does not exist" do
@new_resource.device "en10"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
@provider.instance_variable_set("@current_resource", Chef::Resource::Ifconfig.new("10.0.0.1", @run_context))
end
command = "chdev -l #{@new_resource.device} -a netaddr=#{@new_resource.name}"
- @provider.should_receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:run_command).with(:command => command)
@provider.run_action(:add)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should raise exception if metric attribute is set" do
@new_resource.device "en0"
@new_resource.metric "1"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
@provider.instance_variable_set("@current_resource", Chef::Resource::Ifconfig.new("10.0.0.1", @run_context))
end
@@ -93,15 +93,15 @@ IFCONFIG
describe "#action_enable" do
it "should enable an interface if it does not exist" do
@new_resource.device "en10"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
@provider.instance_variable_set("@current_resource", Chef::Resource::Ifconfig.new("10.0.0.1", @run_context))
end
command = "ifconfig #{@new_resource.device} #{@new_resource.name}"
- @provider.should_receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:run_command).with(:command => command)
@provider.run_action(:enable)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
@@ -109,21 +109,21 @@ IFCONFIG
it "should not disable an interface if it does not exist" do
@new_resource.device "en10"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
@provider.instance_variable_set("@current_resource", Chef::Resource::Ifconfig.new("10.0.0.1", @run_context))
end
- @provider.should_not_receive(:run_command)
+ expect(@provider).not_to receive(:run_command)
@provider.run_action(:disable)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
context "interface exists" do
before do
@new_resource.device "en10"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
current_resource = Chef::Resource::Ifconfig.new("10.0.0.1", @run_context)
current_resource.device @new_resource.device
@@ -133,10 +133,10 @@ IFCONFIG
it "should disable an interface if it exists" do
command = "ifconfig #{@new_resource.device} down"
- @provider.should_receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:run_command).with(:command => command)
@provider.run_action(:disable)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
@@ -146,21 +146,21 @@ IFCONFIG
it "should not delete an interface if it does not exist" do
@new_resource.device "en10"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
@provider.instance_variable_set("@current_resource", Chef::Resource::Ifconfig.new("10.0.0.1", @run_context))
end
- @provider.should_not_receive(:run_command)
+ expect(@provider).not_to receive(:run_command)
@provider.run_action(:delete)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
context "interface exists" do
before do
@new_resource.device "en10"
- @provider.stub(:load_current_resource) do
+ allow(@provider).to receive(:load_current_resource) do
@provider.instance_variable_set("@status", double("Status", :exitstatus => 0))
current_resource = Chef::Resource::Ifconfig.new("10.0.0.1", @run_context)
current_resource.device @new_resource.device
@@ -170,10 +170,10 @@ IFCONFIG
it "should delete an interface if it exists" do
command = "chdev -l #{@new_resource.device} -a state=down"
- @provider.should_receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:run_command).with(:command => command)
@provider.run_action(:delete)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
end
diff --git a/spec/unit/provider/ifconfig/debian_spec.rb b/spec/unit/provider/ifconfig/debian_spec.rb
index ebb16e22af..160a0ed4eb 100644
--- a/spec/unit/provider/ifconfig/debian_spec.rb
+++ b/spec/unit/provider/ifconfig/debian_spec.rb
@@ -340,10 +340,10 @@ source #{tempdir_path}/*
current_resource.device new_resource.device
# belt and suspenders testing?
- Chef::Util::Backup.any_instance.should_receive(:do_backup).and_call_original
+ expect_any_instance_of(Chef::Util::Backup).to receive(:do_backup).and_call_original
# internal implementation detail of Ifconfig.
- Chef::Provider::File.any_instance.should_receive(:action_delete).and_call_original
+ expect_any_instance_of(Chef::Provider::File).to receive(:action_delete).and_call_original
expect(File.exist?(config_filename_ifcfg)).to be_true
provider.run_action(:delete)
diff --git a/spec/unit/provider/ifconfig/redhat_spec.rb b/spec/unit/provider/ifconfig/redhat_spec.rb
index 138c2a389d..620fd341d7 100644
--- a/spec/unit/provider/ifconfig/redhat_spec.rb
+++ b/spec/unit/provider/ifconfig/redhat_spec.rb
@@ -40,21 +40,21 @@ describe Chef::Provider::Ifconfig::Redhat do
config_filename = "/etc/sysconfig/network-scripts/ifcfg-#{@new_resource.device}"
@config = double("chef-resource-file")
- @provider.should_receive(:resource_for_config).with(config_filename).and_return(@config)
+ expect(@provider).to receive(:resource_for_config).with(config_filename).and_return(@config)
end
describe "generate_config for action_add" do
it "should write network-script for centos" do
- @provider.stub(:load_current_resource)
- @provider.stub(:run_command)
- @config.should_receive(:content) do |arg|
- arg.should match(/^\s*DEVICE=eth0\s*$/)
- arg.should match(/^\s*IPADDR=10\.0\.0\.1\s*$/)
- arg.should match(/^\s*NETMASK=255\.255\.254\.0\s*$/)
+ allow(@provider).to receive(:load_current_resource)
+ allow(@provider).to receive(:run_command)
+ expect(@config).to receive(:content) do |arg|
+ expect(arg).to match(/^\s*DEVICE=eth0\s*$/)
+ expect(arg).to match(/^\s*IPADDR=10\.0\.0\.1\s*$/)
+ expect(arg).to match(/^\s*NETMASK=255\.255\.254\.0\s*$/)
end
- @config.should_receive(:run_action).with(:create)
- @config.should_receive(:updated?).and_return(true)
+ expect(@config).to receive(:run_action).with(:create)
+ expect(@config).to receive(:updated?).and_return(true)
@provider.run_action(:add)
end
end
@@ -63,10 +63,10 @@ describe Chef::Provider::Ifconfig::Redhat do
it "should delete network-script if it exists for centos" do
@current_resource.device @new_resource.device
- @provider.stub(:load_current_resource)
- @provider.stub(:run_command)
- @config.should_receive(:run_action).with(:delete)
- @config.should_receive(:updated?).and_return(true)
+ allow(@provider).to receive(:load_current_resource)
+ allow(@provider).to receive(:run_command)
+ expect(@config).to receive(:run_action).with(:delete)
+ expect(@config).to receive(:updated?).and_return(true)
@provider.run_action(:delete)
end
end
diff --git a/spec/unit/provider/ifconfig_spec.rb b/spec/unit/provider/ifconfig_spec.rb
index b09e365c65..126112dd43 100644
--- a/spec/unit/provider/ifconfig_spec.rb
+++ b/spec/unit/provider/ifconfig_spec.rb
@@ -43,39 +43,39 @@ describe Chef::Provider::Ifconfig do
describe Chef::Provider::Ifconfig, "load_current_resource" do
before do
status = double("Status", :exitstatus => 1)
- @provider.should_receive(:popen4).and_return status
+ expect(@provider).to receive(:popen4).and_return status
@provider.load_current_resource
end
it "should track state of ifconfig failure." do
- @provider.instance_variable_get("@status").exitstatus.should_not == 0
+ expect(@provider.instance_variable_get("@status").exitstatus).not_to eq(0)
end
it "should thrown an exception when ifconfig fails" do
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error Chef::Exceptions::Ifconfig
+ expect { @provider.process_resource_requirements }.to raise_error Chef::Exceptions::Ifconfig
end
end
describe Chef::Provider::Ifconfig, "action_add" do
it "should add an interface if it does not exist" do
#@provider.stub(:run_command).and_return(true)
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
@current_resource.inet_addr nil
command = "ifconfig eth0 10.0.0.1 netmask 255.255.254.0 metric 1 mtu 1500"
- @provider.should_receive(:run_command).with(:command => command)
- @provider.should_receive(:generate_config)
+ expect(@provider).to receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:generate_config)
@provider.run_action(:add)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not add an interface if it already exists" do
- @provider.stub(:load_current_resource)
- @provider.should_not_receive(:run_command)
+ allow(@provider).to receive(:load_current_resource)
+ expect(@provider).not_to receive(:run_command)
@current_resource.inet_addr "10.0.0.1"
- @provider.should_receive(:generate_config)
+ expect(@provider).to receive(:generate_config)
@provider.run_action(:add)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
#We are not testing this case with the assumption that anyone writing the cookbook would not make a typo == lo
@@ -86,95 +86,95 @@ describe Chef::Provider::Ifconfig do
describe Chef::Provider::Ifconfig, "action_enable" do
it "should enable interface if does not exist" do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
@current_resource.inet_addr nil
command = "ifconfig eth0 10.0.0.1 netmask 255.255.254.0 metric 1 mtu 1500"
- @provider.should_receive(:run_command).with(:command => command)
- @provider.should_not_receive(:generate_config)
+ expect(@provider).to receive(:run_command).with(:command => command)
+ expect(@provider).not_to receive(:generate_config)
@provider.run_action(:enable)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not enable interface if it already exists" do
- @provider.stub(:load_current_resource)
- @provider.should_not_receive(:run_command)
+ allow(@provider).to receive(:load_current_resource)
+ expect(@provider).not_to receive(:run_command)
@current_resource.inet_addr "10.0.0.1"
- @provider.should_not_receive(:generate_config)
+ expect(@provider).not_to receive(:generate_config)
@provider.run_action(:enable)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
end
describe Chef::Provider::Ifconfig, "action_delete" do
it "should delete interface if it exists" do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
@current_resource.device "eth0"
command = "ifconfig #{@new_resource.device} down"
- @provider.should_receive(:run_command).with(:command => command)
- @provider.should_receive(:delete_config)
+ expect(@provider).to receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:delete_config)
@provider.run_action(:delete)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not delete interface if it does not exist" do
- @provider.stub(:load_current_resource)
- @provider.should_not_receive(:run_command)
- @provider.should_receive(:delete_config)
+ allow(@provider).to receive(:load_current_resource)
+ expect(@provider).not_to receive(:run_command)
+ expect(@provider).to receive(:delete_config)
@provider.run_action(:delete)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
end
describe Chef::Provider::Ifconfig, "action_disable" do
it "should disable interface if it exists" do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
@current_resource.device "eth0"
command = "ifconfig #{@new_resource.device} down"
- @provider.should_receive(:run_command).with(:command => command)
- @provider.should_not_receive(:delete_config)
+ expect(@provider).to receive(:run_command).with(:command => command)
+ expect(@provider).not_to receive(:delete_config)
@provider.run_action(:disable)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not delete interface if it does not exist" do
- @provider.stub(:load_current_resource)
- @provider.should_not_receive(:run_command)
- @provider.should_not_receive(:delete_config)
+ allow(@provider).to receive(:load_current_resource)
+ expect(@provider).not_to receive(:run_command)
+ expect(@provider).not_to receive(:delete_config)
@provider.run_action(:disable)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
end
describe Chef::Provider::Ifconfig, "action_delete" do
it "should delete interface of it exists" do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
@current_resource.device "eth0"
command = "ifconfig #{@new_resource.device} down"
- @provider.should_receive(:run_command).with(:command => command)
- @provider.should_receive(:delete_config)
+ expect(@provider).to receive(:run_command).with(:command => command)
+ expect(@provider).to receive(:delete_config)
@provider.run_action(:delete)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not delete interface if it does not exist" do
# This is so that our fake values do not get overwritten
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
# This is so that nothing actually runs
- @provider.should_not_receive(:run_command)
- @provider.should_receive(:delete_config)
+ expect(@provider).not_to receive(:run_command)
+ expect(@provider).to receive(:delete_config)
@provider.run_action(:delete)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
end
end
diff --git a/spec/unit/provider/link_spec.rb b/spec/unit/provider/link_spec.rb
index 2f0a5f2020..3ae8a71cff 100644
--- a/spec/unit/provider/link_spec.rb
+++ b/spec/unit/provider/link_spec.rb
@@ -45,36 +45,36 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
describe "when the target is a symlink" do
before(:each) do
lstat = double("stats", :ino => 5)
- lstat.stub(:uid).and_return(501)
- lstat.stub(:gid).and_return(501)
- lstat.stub(:mode).and_return(0777)
- File.stub(:lstat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(lstat)
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
- provider.file_class.stub(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
+ allow(lstat).to receive(:uid).and_return(501)
+ allow(lstat).to receive(:gid).and_return(501)
+ allow(lstat).to receive(:mode).and_return(0777)
+ allow(File).to receive(:lstat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(lstat)
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
+ allow(provider.file_class).to receive(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
end
describe "to a file that exists" do
before do
- File.stub(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
+ allow(File).to receive(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
new_resource.owner 501 # only loaded in current_resource if present in new
new_resource.group 501
provider.load_current_resource
end
it "should set the symlink target" do
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
end
it "should set the link type" do
- provider.current_resource.link_type.should == :symbolic
+ expect(provider.current_resource.link_type).to eq(:symbolic)
end
it "should update the source of the existing link with the links target" do
- paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile").should be_true
+ expect(paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile")).to be_true
end
it "should set the owner" do
- provider.current_resource.owner.should == 501
+ expect(provider.current_resource.owner).to eq(501)
end
it "should set the group" do
- provider.current_resource.group.should == 501
+ expect(provider.current_resource.group).to eq(501)
end
# We test create in unit tests because there is no other way to ensure
@@ -87,7 +87,7 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
result
end
it 'create does no work' do
- provider.access_controls.should_not_receive(:set_all)
+ expect(provider.access_controls).not_to receive(:set_all)
provider.run_action(:create)
end
end
@@ -95,139 +95,139 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
describe "to a file that doesn't exist" do
before do
- File.stub(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
- provider.file_class.stub(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
+ allow(File).to receive(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
+ allow(provider.file_class).to receive(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
new_resource.owner "501" # only loaded in current_resource if present in new
new_resource.group "501"
provider.load_current_resource
end
it "should set the symlink target" do
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
end
it "should set the link type" do
- provider.current_resource.link_type.should == :symbolic
+ expect(provider.current_resource.link_type).to eq(:symbolic)
end
it "should update the source of the existing link to the link's target" do
- paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile").should be_true
+ expect(paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile")).to be_true
end
it "should not set the owner" do
- provider.current_resource.owner.should be_nil
+ expect(provider.current_resource.owner).to be_nil
end
it "should not set the group" do
- provider.current_resource.group.should be_nil
+ expect(provider.current_resource.group).to be_nil
end
end
end
describe "when the target doesn't exist" do
before do
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
provider.load_current_resource
end
it "should set the symlink target" do
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
end
it "should update the source of the existing link to nil" do
- provider.current_resource.to.should be_nil
+ expect(provider.current_resource.to).to be_nil
end
it "should not set the owner" do
- provider.current_resource.owner.should == nil
+ expect(provider.current_resource.owner).to eq(nil)
end
it "should not set the group" do
- provider.current_resource.group.should == nil
+ expect(provider.current_resource.group).to eq(nil)
end
end
describe "when the target is a regular old file" do
before do
stat = double("stats", :ino => 5)
- stat.stub(:uid).and_return(501)
- stat.stub(:gid).and_return(501)
- stat.stub(:mode).and_return(0755)
- provider.file_class.stub(:stat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(stat)
+ allow(stat).to receive(:uid).and_return(501)
+ allow(stat).to receive(:gid).and_return(501)
+ allow(stat).to receive(:mode).and_return(0755)
+ allow(provider.file_class).to receive(:stat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(stat)
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
end
describe "and the source does not exist" do
before do
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(false)
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(false)
provider.load_current_resource
end
it "should set the symlink target" do
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
end
it "should update the current source of the existing link with an empty string" do
- provider.current_resource.to.should == ''
+ expect(provider.current_resource.to).to eq('')
end
it "should not set the owner" do
- provider.current_resource.owner.should == nil
+ expect(provider.current_resource.owner).to eq(nil)
end
it "should not set the group" do
- provider.current_resource.group.should == nil
+ expect(provider.current_resource.group).to eq(nil)
end
end
describe "and the source exists" do
before do
stat = double("stats", :ino => 6)
- stat.stub(:uid).and_return(502)
- stat.stub(:gid).and_return(502)
- stat.stub(:mode).and_return(0644)
+ allow(stat).to receive(:uid).and_return(502)
+ allow(stat).to receive(:gid).and_return(502)
+ allow(stat).to receive(:mode).and_return(0644)
- provider.file_class.stub(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
+ allow(provider.file_class).to receive(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
provider.load_current_resource
end
it "should set the symlink target" do
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
end
it "should update the current source of the existing link with an empty string" do
- provider.current_resource.to.should == ''
+ expect(provider.current_resource.to).to eq('')
end
it "should not set the owner" do
- provider.current_resource.owner.should == nil
+ expect(provider.current_resource.owner).to eq(nil)
end
it "should not set the group" do
- provider.current_resource.group.should == nil
+ expect(provider.current_resource.group).to eq(nil)
end
end
describe "and is hardlinked to the source" do
before do
stat = double("stats", :ino => 5)
- stat.stub(:uid).and_return(502)
- stat.stub(:gid).and_return(502)
- stat.stub(:mode).and_return(0644)
+ allow(stat).to receive(:uid).and_return(502)
+ allow(stat).to receive(:gid).and_return(502)
+ allow(stat).to receive(:mode).and_return(0644)
- provider.file_class.stub(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
+ allow(provider.file_class).to receive(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
provider.load_current_resource
end
it "should set the symlink target" do
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
end
it "should set the link type" do
- provider.current_resource.link_type.should == :hard
+ expect(provider.current_resource.link_type).to eq(:hard)
end
it "should update the source of the existing link to the link's target" do
- paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile").should be_true
+ expect(paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile")).to be_true
end
it "should not set the owner" do
- provider.current_resource.owner.should == nil
+ expect(provider.current_resource.owner).to eq(nil)
end
it "should not set the group" do
- provider.current_resource.group.should == nil
+ expect(provider.current_resource.group).to eq(nil)
end
# We test create in unit tests because there is no other way to ensure
@@ -241,9 +241,9 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
result
end
it 'create does no work' do
- provider.file_class.should_not_receive(:symlink)
- provider.file_class.should_not_receive(:link)
- provider.access_controls.should_not_receive(:set_all)
+ expect(provider.file_class).not_to receive(:symlink)
+ expect(provider.file_class).not_to receive(:link)
+ expect(provider.access_controls).not_to receive(:set_all)
provider.run_action(:create)
end
end
diff --git a/spec/unit/provider/mdadm_spec.rb b/spec/unit/provider/mdadm_spec.rb
index 6595728741..ddff49da13 100644
--- a/spec/unit/provider/mdadm_spec.rb
+++ b/spec/unit/provider/mdadm_spec.rb
@@ -32,22 +32,22 @@ describe Chef::Provider::Mdadm do
describe "when determining the current metadevice status" do
it "should set the current resources mount point to the new resources mount point" do
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:status => 0))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:status => 0))
@provider.load_current_resource
- @provider.current_resource.name.should == '/dev/md1'
- @provider.current_resource.raid_device.should == '/dev/md1'
+ expect(@provider.current_resource.name).to eq('/dev/md1')
+ expect(@provider.current_resource.raid_device).to eq('/dev/md1')
end
it "determines that the metadevice exists when mdadm exit code is zero" do
- @provider.stub(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 0))
+ allow(@provider).to receive(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 0))
@provider.load_current_resource
- @provider.current_resource.exists.should be_true
+ expect(@provider.current_resource.exists).to be_true
end
it "determines that the metadevice does not exist when mdadm exit code is 4" do
- @provider.stub(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 4))
+ allow(@provider).to receive(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 4))
@provider.load_current_resource
- @provider.current_resource.exists.should be_false
+ expect(@provider.current_resource.exists).to be_false
end
end
@@ -55,7 +55,7 @@ describe Chef::Provider::Mdadm do
before(:each) do
@current_resource = Chef::Resource::Mdadm.new('/dev/md1')
@new_resource.level 5
- @provider.stub(:load_current_resource).and_return(true)
+ allow(@provider).to receive(:load_current_resource).and_return(true)
@provider.current_resource = @current_resource
end
@@ -63,7 +63,7 @@ describe Chef::Provider::Mdadm do
it "should create the raid device if it doesnt exist" do
@current_resource.exists(false)
expected_command = "yes | mdadm --create /dev/md1 --level 5 --chunk=16 --metadata=0.90 --raid-devices 3 /dev/sdz1 /dev/sdz2 /dev/sdz3"
- @provider.should_receive(:shell_out!).with(expected_command)
+ expect(@provider).to receive(:shell_out!).with(expected_command)
@provider.run_action(:create)
end
@@ -71,25 +71,25 @@ describe Chef::Provider::Mdadm do
@current_resource.exists(false)
@new_resource.bitmap('grow')
expected_command = "yes | mdadm --create /dev/md1 --level 5 --chunk=16 --metadata=0.90 --bitmap=grow --raid-devices 3 /dev/sdz1 /dev/sdz2 /dev/sdz3"
- @provider.should_receive(:shell_out!).with(expected_command)
+ expect(@provider).to receive(:shell_out!).with(expected_command)
@provider.run_action(:create)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not specify a chunksize if raid level 1" do
@current_resource.exists(false)
@new_resource.level 1
expected_command = "yes | mdadm --create /dev/md1 --level 1 --metadata=0.90 --raid-devices 3 /dev/sdz1 /dev/sdz2 /dev/sdz3"
- @provider.should_receive(:shell_out!).with(expected_command)
+ expect(@provider).to receive(:shell_out!).with(expected_command)
@provider.run_action(:create)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not create the raid device if it does exist" do
@current_resource.exists(true)
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:create)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
end
@@ -97,16 +97,16 @@ describe Chef::Provider::Mdadm do
it "should assemble the raid device if it doesnt exist" do
@current_resource.exists(false)
expected_mdadm_cmd = "yes | mdadm --assemble /dev/md1 /dev/sdz1 /dev/sdz2 /dev/sdz3"
- @provider.should_receive(:shell_out!).with(expected_mdadm_cmd)
+ expect(@provider).to receive(:shell_out!).with(expected_mdadm_cmd)
@provider.run_action(:assemble)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not assemble the raid device if it doesnt exist" do
@current_resource.exists(true)
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:assemble)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
end
@@ -115,16 +115,16 @@ describe Chef::Provider::Mdadm do
it "should stop the raid device if it exists" do
@current_resource.exists(true)
expected_mdadm_cmd = "yes | mdadm --stop /dev/md1"
- @provider.should_receive(:shell_out!).with(expected_mdadm_cmd)
+ expect(@provider).to receive(:shell_out!).with(expected_mdadm_cmd)
@provider.run_action(:stop)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not attempt to stop the raid device if it does not exist" do
@current_resource.exists(false)
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:stop)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
end
end
diff --git a/spec/unit/provider/mount/aix_spec.rb b/spec/unit/provider/mount/aix_spec.rb
index dcd9170e1f..cdf4e0555d 100644
--- a/spec/unit/provider/mount/aix_spec.rb
+++ b/spec/unit/provider/mount/aix_spec.rb
@@ -60,18 +60,18 @@ ENABLED
@provider = Chef::Provider::Mount::Aix.new(@new_resource, @run_context)
- ::File.stub(:exists?).with("/dev/sdz1").and_return true
- ::File.stub(:exists?).with("/tmp/foo").and_return true
+ allow(::File).to receive(:exists?).with("/dev/sdz1").and_return true
+ allow(::File).to receive(:exists?).with("/tmp/foo").and_return true
end
def stub_mounted(provider, mounted_output)
response = double("Mixlib::ShellOut command", :exitstatus => 0, :stdout => mounted_output, :stderr => "")
- provider.should_receive(:shell_out!).with("mount").and_return(response)
+ expect(provider).to receive(:shell_out!).with("mount").and_return(response)
end
def stub_enabled(provider, enabled_output)
response = double("Mixlib::ShellOut command", :exitstatus => 0, :stdout => enabled_output, :stderr => "")
- provider.should_receive(:shell_out).with("lsfs -c #{@new_resource.mount_point}").and_return(response)
+ expect(provider).to receive(:shell_out).with("lsfs -c #{@new_resource.mount_point}").and_return(response)
end
def stub_mounted_enabled(provider, mounted_output, enabled_output)
@@ -121,7 +121,7 @@ ENABLED
it "should mount resource if it is not mounted" do
stub_mounted_enabled(@provider, @unmounted_output, "")
- @provider.should_receive(:shell_out!).with("mount -v #{@new_resource.fstype} #{@new_resource.device} #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("mount -v #{@new_resource.fstype} #{@new_resource.device} #{@new_resource.mount_point}")
@provider.run_action(:mount)
end
@@ -129,7 +129,7 @@ ENABLED
it "should not mount resource if it is already mounted" do
stub_mounted_enabled(@provider, @mounted_output, "")
- @provider.should_not_receive(:mount_fs)
+ expect(@provider).not_to receive(:mount_fs)
@provider.run_action(:mount)
end
@@ -139,7 +139,7 @@ ENABLED
it "should umount resource if it is already mounted" do
stub_mounted_enabled(@provider, @mounted_output, "")
- @provider.should_receive(:shell_out!).with("umount #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("umount #{@new_resource.mount_point}")
@provider.run_action(:umount)
end
@@ -147,7 +147,7 @@ ENABLED
it "should not umount resource if it is not mounted" do
stub_mounted_enabled(@provider, @unmounted_output, "")
- @provider.should_not_receive(:umount_fs)
+ expect(@provider).not_to receive(:umount_fs)
@provider.run_action(:umount)
end
@@ -158,7 +158,7 @@ ENABLED
@new_resource.supports({:remount => true})
stub_mounted_enabled(@provider, @mounted_output, "")
- @provider.should_receive(:shell_out!).with("mount -o remount #{@new_resource.device} #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("mount -o remount #{@new_resource.device} #{@new_resource.mount_point}")
@provider.run_action(:remount)
end
@@ -168,7 +168,7 @@ ENABLED
@new_resource.options("nodev,rw")
stub_mounted_enabled(@provider, @mounted_output, "")
- @provider.should_receive(:shell_out!).with("mount -o remount,nodev,rw #{@new_resource.device} #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("mount -o remount,nodev,rw #{@new_resource.device} #{@new_resource.mount_point}")
@provider.run_action(:remount)
end
@@ -179,18 +179,18 @@ ENABLED
@new_resource.options("nodev,rw")
stub_mounted_enabled(@provider, @mounted_output, "")
filesystems = StringIO.new
- ::File.stub(:open).with("/etc/filesystems", "a").and_yield(filesystems)
+ allow(::File).to receive(:open).with("/etc/filesystems", "a").and_yield(filesystems)
@provider.run_action(:enable)
- filesystems.string.should match(%r{^/tmp/foo:\n\tdev\t\t= /dev/sdz1\n\tvfs\t\t= jfs2\n\tmount\t\t= false\n\toptions\t\t= nodev,rw\n$})
+ expect(filesystems.string).to match(%r{^/tmp/foo:\n\tdev\t\t= /dev/sdz1\n\tvfs\t\t= jfs2\n\tmount\t\t= false\n\toptions\t\t= nodev,rw\n$})
end
it "should not enable mount if it is mounted and already enabled and mount options are unchanged" do
stub_mounted_enabled(@provider, @mounted_output, @enabled_output)
@new_resource.options "rw"
- @provider.should_not_receive(:enable_fs)
+ expect(@provider).not_to receive(:enable_fs)
@provider.run_action(:enable)
end
@@ -200,7 +200,7 @@ ENABLED
it "should disable mount if it is mounted and enabled" do
stub_mounted_enabled(@provider, @mounted_output, @enabled_output)
- ::File.stub(:open).with("/etc/filesystems", "r").and_return(<<-ETCFILESYSTEMS)
+ allow(::File).to receive(:open).with("/etc/filesystems", "r").and_return(<<-ETCFILESYSTEMS)
/tmp/foo:
dev = /dev/sdz1
vfs = jfs2
@@ -219,17 +219,17 @@ ENABLED
ETCFILESYSTEMS
filesystems = StringIO.new
- ::File.stub(:open).with("/etc/filesystems", "w").and_yield(filesystems)
+ allow(::File).to receive(:open).with("/etc/filesystems", "w").and_yield(filesystems)
@provider.run_action(:disable)
- filesystems.string.should match(%r{^/tmp/abc:\s+dev\s+= /dev/sdz2\s+vfs\s+= jfs2\s+mount\s+= true\s+options\s+= rw\n$})
+ expect(filesystems.string).to match(%r{^/tmp/abc:\s+dev\s+= /dev/sdz2\s+vfs\s+= jfs2\s+mount\s+= true\s+options\s+= rw\n$})
end
it "should not disable mount if it is not mounted" do
stub_mounted_enabled(@provider, @unmounted_output, "")
- @provider.should_not_receive(:disable_fs)
+ expect(@provider).not_to receive(:disable_fs)
@provider.run_action(:disable)
end
diff --git a/spec/unit/provider/mount/mount_spec.rb b/spec/unit/provider/mount/mount_spec.rb
index abab7640c0..40cfbcaf39 100644
--- a/spec/unit/provider/mount/mount_spec.rb
+++ b/spec/unit/provider/mount/mount_spec.rb
@@ -34,30 +34,30 @@ describe Chef::Provider::Mount::Mount do
@provider = Chef::Provider::Mount::Mount.new(@new_resource, @run_context)
- ::File.stub(:exists?).with("/dev/sdz1").and_return true
- ::File.stub(:exists?).with("/tmp/foo").and_return true
- ::File.stub(:realpath).with("/dev/sdz1").and_return "/dev/sdz1"
- ::File.stub(:realpath).with("/tmp/foo").and_return "/tmp/foo"
+ allow(::File).to receive(:exists?).with("/dev/sdz1").and_return true
+ allow(::File).to receive(:exists?).with("/tmp/foo").and_return true
+ allow(::File).to receive(:realpath).with("/dev/sdz1").and_return "/dev/sdz1"
+ allow(::File).to receive(:realpath).with("/tmp/foo").and_return "/tmp/foo"
end
describe "when discovering the current fs state" do
before do
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => ''))
- ::File.stub(:foreach).with("/etc/fstab")
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => ''))
+ allow(::File).to receive(:foreach).with("/etc/fstab")
end
it "should create a current resource with the same mount point and device" do
@provider.load_current_resource
- @provider.current_resource.name.should == '/tmp/foo'
- @provider.current_resource.mount_point.should == '/tmp/foo'
- @provider.current_resource.device.should == '/dev/sdz1'
+ expect(@provider.current_resource.name).to eq('/tmp/foo')
+ expect(@provider.current_resource.mount_point).to eq('/tmp/foo')
+ expect(@provider.current_resource.device).to eq('/dev/sdz1')
end
it "should accecpt device_type :uuid", :not_supported_on_solaris do
@new_resource.device_type :uuid
@new_resource.device "d21afe51-a0fe-4dc6-9152-ac733763ae0a"
@stdout_findfs = double("STDOUT", :first => "/dev/sdz1")
- @provider.should_receive(:popen4).with("/sbin/findfs UUID=d21afe51-a0fe-4dc6-9152-ac733763ae0a").and_yield(@pid,@stdin,@stdout_findfs,@stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("/sbin/findfs UUID=d21afe51-a0fe-4dc6-9152-ac733763ae0a").and_yield(@pid,@stdin,@stdout_findfs,@stderr).and_return(@status)
@provider.load_current_resource()
@provider.mountable?
end
@@ -67,28 +67,28 @@ describe Chef::Provider::Mount::Mount do
"cifs" => "//cifsserver/share" }.each do |type, fs_spec|
it "should detect network fs_spec (#{type})" do
@new_resource.device fs_spec
- @provider.network_device?.should be_true
+ expect(@provider.network_device?).to be_true
end
it "should ignore trailing slash and set mounted to true for network mount (#{type})" do
@new_resource.device fs_spec
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => "#{fs_spec}/ on /tmp/foo type #{type} (rw)\n"))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => "#{fs_spec}/ on /tmp/foo type #{type} (rw)\n"))
@provider.load_current_resource
- @provider.current_resource.mounted.should be_true
+ expect(@provider.current_resource.mounted).to be_true
end
end
end
it "should raise an error if the mount device does not exist" do
- ::File.stub(:exists?).with("/dev/sdz1").and_return false
- lambda { @provider.load_current_resource();@provider.mountable? }.should raise_error(Chef::Exceptions::Mount)
+ allow(::File).to receive(:exists?).with("/dev/sdz1").and_return false
+ expect { @provider.load_current_resource();@provider.mountable? }.to raise_error(Chef::Exceptions::Mount)
end
it "should not call mountable? with load_current_resource - CHEF-1565" do
- ::File.stub(:exists?).with("/dev/sdz1").and_return false
- @provider.should_receive(:mounted?).and_return(true)
- @provider.should_receive(:enabled?).and_return(true)
- @provider.should_not_receive(:mountable?)
+ allow(::File).to receive(:exists?).with("/dev/sdz1").and_return false
+ expect(@provider).to receive(:mounted?).and_return(true)
+ expect(@provider).to receive(:enabled?).and_return(true)
+ expect(@provider).not_to receive(:mountable?)
@provider.load_current_resource
end
@@ -97,51 +97,51 @@ describe Chef::Provider::Mount::Mount do
@new_resource.device "d21afe51-a0fe-4dc6-9152-ac733763ae0a"
status_findfs = double("Status", :exitstatus => 1)
stdout_findfs = double("STDOUT", :first => nil)
- @provider.should_receive(:popen4).with("/sbin/findfs UUID=d21afe51-a0fe-4dc6-9152-ac733763ae0a").and_yield(@pid,@stdin,stdout_findfs,@stderr).and_return(status_findfs)
- ::File.should_receive(:exists?).with("").and_return(false)
- lambda { @provider.load_current_resource();@provider.mountable? }.should raise_error(Chef::Exceptions::Mount)
+ expect(@provider).to receive(:popen4).with("/sbin/findfs UUID=d21afe51-a0fe-4dc6-9152-ac733763ae0a").and_yield(@pid,@stdin,stdout_findfs,@stderr).and_return(status_findfs)
+ expect(::File).to receive(:exists?).with("").and_return(false)
+ expect { @provider.load_current_resource();@provider.mountable? }.to raise_error(Chef::Exceptions::Mount)
end
it "should raise an error if the mount point does not exist" do
- ::File.stub(:exists?).with("/tmp/foo").and_return false
- lambda { @provider.load_current_resource();@provider.mountable? }.should raise_error(Chef::Exceptions::Mount)
+ allow(::File).to receive(:exists?).with("/tmp/foo").and_return false
+ expect { @provider.load_current_resource();@provider.mountable? }.to raise_error(Chef::Exceptions::Mount)
end
[ "tmpfs", "fuse", "cgroup" ].each do |fstype|
it "does not expect the device to exist for #{fstype}" do
@new_resource.fstype(fstype)
@new_resource.device("whatever")
- lambda { @provider.load_current_resource();@provider.mountable? }.should_not raise_error
+ expect { @provider.load_current_resource();@provider.mountable? }.not_to raise_error
end
end
it "does not expect the device to exist if it's none" do
@new_resource.device("none")
- lambda { @provider.load_current_resource();@provider.mountable? }.should_not raise_error
+ expect { @provider.load_current_resource();@provider.mountable? }.not_to raise_error
end
it "should set mounted true if the mount point is found in the mounts list" do
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => "/dev/sdz1 on /tmp/foo type ext3 (rw)\n"))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => "/dev/sdz1 on /tmp/foo type ext3 (rw)\n"))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_true
+ expect(@provider.current_resource.mounted).to be_true
end
it "should set mounted false if another mount point beginning with the same path is found in the mounts list" do
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => "/dev/sdz1 on /tmp/foobar type ext3 (rw)\n"))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => "/dev/sdz1 on /tmp/foobar type ext3 (rw)\n"))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_false
+ expect(@provider.current_resource.mounted).to be_false
end
it "should set mounted true if the symlink target of the device is found in the mounts list" do
# expand the target path to correct specs on Windows
target = ::File.expand_path('/dev/mapper/target')
- ::File.stub(:symlink?).with("#{@new_resource.device}").and_return(true)
- ::File.stub(:readlink).with("#{@new_resource.device}").and_return(target)
+ allow(::File).to receive(:symlink?).with("#{@new_resource.device}").and_return(true)
+ allow(::File).to receive(:readlink).with("#{@new_resource.device}").and_return(target)
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => "#{target} on /tmp/foo type ext3 (rw)\n"))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => "#{target} on /tmp/foo type ext3 (rw)\n"))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_true
+ expect(@provider.current_resource.mounted).to be_true
end
it "should set mounted true if the symlink target of the device is relative and is found in the mounts list - CHEF-4957" do
@@ -150,109 +150,109 @@ describe Chef::Provider::Mount::Mount do
# expand the target path to correct specs on Windows
absolute_target = ::File.expand_path("/dev/xsdz1")
- ::File.stub(:symlink?).with("#{@new_resource.device}").and_return(true)
- ::File.stub(:readlink).with("#{@new_resource.device}").and_return(target)
+ allow(::File).to receive(:symlink?).with("#{@new_resource.device}").and_return(true)
+ allow(::File).to receive(:readlink).with("#{@new_resource.device}").and_return(target)
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => "#{absolute_target} on /tmp/foo type ext3 (rw)\n"))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => "#{absolute_target} on /tmp/foo type ext3 (rw)\n"))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_true
+ expect(@provider.current_resource.mounted).to be_true
end
it "should set mounted true if the mount point is found last in the mounts list" do
mount = "/dev/sdy1 on #{@new_resource.mount_point} type ext3 (rw)\n"
mount << "#{@new_resource.device} on #{@new_resource.mount_point} type ext3 (rw)\n"
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => mount))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => mount))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_true
+ expect(@provider.current_resource.mounted).to be_true
end
it "should set mounted false if the mount point is not last in the mounts list" do
mount = "#{@new_resource.device} on #{@new_resource.mount_point} type ext3 (rw)\n"
mount << "/dev/sdy1 on #{@new_resource.mount_point} type ext3 (rw)\n"
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => mount))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => mount))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_false
+ expect(@provider.current_resource.mounted).to be_false
end
it "mounted should be false if the mount point is not found in the mounts list" do
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:stdout => "/dev/sdy1 on /tmp/foo type ext3 (rw)\n"))
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:stdout => "/dev/sdy1 on /tmp/foo type ext3 (rw)\n"))
@provider.load_current_resource()
- @provider.current_resource.mounted.should be_false
+ expect(@provider.current_resource.mounted).to be_false
end
it "should set enabled to true if the mount point is last in fstab" do
fstab1 = "/dev/sdy1 /tmp/foo ext3 defaults 1 2\n"
fstab2 = "#{@new_resource.device} #{@new_resource.mount_point} ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield(fstab1).and_yield(fstab2)
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield(fstab1).and_yield(fstab2)
@provider.load_current_resource
- @provider.current_resource.enabled.should be_true
+ expect(@provider.current_resource.enabled).to be_true
end
it "should set enabled to true if the mount point is not last in fstab and mount_point is a substring of another mount" do
fstab1 = "#{@new_resource.device} #{@new_resource.mount_point} ext3 defaults 1 2\n"
fstab2 = "/dev/sdy1 /tmp/foo/bar ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield(fstab1).and_yield(fstab2)
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield(fstab1).and_yield(fstab2)
@provider.load_current_resource
- @provider.current_resource.enabled.should be_true
+ expect(@provider.current_resource.enabled).to be_true
end
it "should set enabled to true if the symlink target is in fstab" do
target = "/dev/mapper/target"
- ::File.stub(:symlink?).with("#{@new_resource.device}").and_return(true)
- ::File.stub(:readlink).with("#{@new_resource.device}").and_return(target)
+ allow(::File).to receive(:symlink?).with("#{@new_resource.device}").and_return(true)
+ allow(::File).to receive(:readlink).with("#{@new_resource.device}").and_return(target)
fstab = "/dev/sdz1 /tmp/foo ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield fstab
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield fstab
@provider.load_current_resource
- @provider.current_resource.enabled.should be_true
+ expect(@provider.current_resource.enabled).to be_true
end
it "should set enabled to true if the symlink target is relative and is in fstab - CHEF-4957" do
target = "xsdz1"
- ::File.stub(:symlink?).with("#{@new_resource.device}").and_return(true)
- ::File.stub(:readlink).with("#{@new_resource.device}").and_return(target)
+ allow(::File).to receive(:symlink?).with("#{@new_resource.device}").and_return(true)
+ allow(::File).to receive(:readlink).with("#{@new_resource.device}").and_return(target)
fstab = "/dev/sdz1 /tmp/foo ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield fstab
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield fstab
@provider.load_current_resource
- @provider.current_resource.enabled.should be_true
+ expect(@provider.current_resource.enabled).to be_true
end
it "should set enabled to false if the mount point is not in fstab" do
fstab = "/dev/sdy1 #{@new_resource.mount_point} ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield fstab
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield fstab
@provider.load_current_resource
- @provider.current_resource.enabled.should be_false
+ expect(@provider.current_resource.enabled).to be_false
end
it "should ignore commented lines in fstab " do
fstab = "\# #{@new_resource.device} #{@new_resource.mount_point} ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield fstab
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield fstab
@provider.load_current_resource
- @provider.current_resource.enabled.should be_false
+ expect(@provider.current_resource.enabled).to be_false
end
it "should set enabled to false if the mount point is not last in fstab" do
line_1 = "#{@new_resource.device} #{@new_resource.mount_point} ext3 defaults 1 2\n"
line_2 = "/dev/sdy1 #{@new_resource.mount_point} ext3 defaults 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield(line_1).and_yield(line_2)
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield(line_1).and_yield(line_2)
@provider.load_current_resource
- @provider.current_resource.enabled.should be_false
+ expect(@provider.current_resource.enabled).to be_false
end
it "should not mangle the mount options if the device in fstab is a symlink" do
@@ -260,26 +260,26 @@ describe Chef::Provider::Mount::Mount do
target = "/dev/mapper/target"
options = "rw,noexec,noauto"
- ::File.stub(:symlink?).with(@new_resource.device).and_return(true)
- ::File.stub(:readlink).with(@new_resource.device).and_return(target)
+ allow(::File).to receive(:symlink?).with(@new_resource.device).and_return(true)
+ allow(::File).to receive(:readlink).with(@new_resource.device).and_return(target)
fstab = "#{@new_resource.device} #{@new_resource.mount_point} #{@new_resource.fstype} #{options} 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield fstab
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield fstab
@provider.load_current_resource
- @provider.current_resource.options.should eq(options.split(','))
+ expect(@provider.current_resource.options).to eq(options.split(','))
end
it "should not mangle the mount options if the symlink target is in fstab" do
target = ::File.expand_path("/dev/mapper/target")
options = "rw,noexec,noauto"
- ::File.stub(:symlink?).with(@new_resource.device).and_return(true)
- ::File.stub(:readlink).with(@new_resource.device).and_return(target)
+ allow(::File).to receive(:symlink?).with(@new_resource.device).and_return(true)
+ allow(::File).to receive(:readlink).with(@new_resource.device).and_return(target)
fstab = "#{target} #{@new_resource.mount_point} #{@new_resource.fstype} #{options} 1 2\n"
- ::File.stub(:foreach).with("/etc/fstab").and_yield fstab
+ allow(::File).to receive(:foreach).with("/etc/fstab").and_yield fstab
@provider.load_current_resource
- @provider.current_resource.options.should eq(options.split(','))
+ expect(@provider.current_resource.options).to eq(options.split(','))
end
end
@@ -295,14 +295,14 @@ describe Chef::Provider::Mount::Mount do
describe "mount_fs" do
it "should mount the filesystem if it is not mounted" do
- @provider.should_receive(:shell_out!).with("mount -t ext3 -o defaults /dev/sdz1 /tmp/foo")
+ expect(@provider).to receive(:shell_out!).with("mount -t ext3 -o defaults /dev/sdz1 /tmp/foo")
@provider.mount_fs()
end
it "should mount the filesystem with options if options were passed" do
options = "rw,noexec,noauto"
@new_resource.options(%w{rw noexec noauto})
- @provider.should_receive(:shell_out!).with("mount -t ext3 -o rw,noexec,noauto /dev/sdz1 /tmp/foo")
+ expect(@provider).to receive(:shell_out!).with("mount -t ext3 -o rw,noexec,noauto /dev/sdz1 /tmp/foo")
@provider.mount_fs()
end
@@ -310,16 +310,16 @@ describe Chef::Provider::Mount::Mount do
@new_resource.device "d21afe51-a0fe-4dc6-9152-ac733763ae0a"
@new_resource.device_type :uuid
@stdout_findfs = double("STDOUT", :first => "/dev/sdz1")
- @provider.stub(:popen4).with("/sbin/findfs UUID=d21afe51-a0fe-4dc6-9152-ac733763ae0a").and_yield(@pid,@stdin,@stdout_findfs,@stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).with("/sbin/findfs UUID=d21afe51-a0fe-4dc6-9152-ac733763ae0a").and_yield(@pid,@stdin,@stdout_findfs,@stderr).and_return(@status)
@stdout_mock = double('stdout mock')
- @stdout_mock.stub(:each).and_yield("#{@new_resource.device} on #{@new_resource.mount_point}")
- @provider.should_receive(:shell_out!).with("mount -t #{@new_resource.fstype} -o defaults -U #{@new_resource.device} #{@new_resource.mount_point}").and_return(@stdout_mock)
+ allow(@stdout_mock).to receive(:each).and_yield("#{@new_resource.device} on #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("mount -t #{@new_resource.fstype} -o defaults -U #{@new_resource.device} #{@new_resource.mount_point}").and_return(@stdout_mock)
@provider.mount_fs()
end
it "should not mount the filesystem if it is mounted" do
- @current_resource.stub(:mounted).and_return(true)
- @provider.should_not_receive(:shell_out!)
+ allow(@current_resource).to receive(:mounted).and_return(true)
+ expect(@provider).not_to receive(:shell_out!)
@provider.mount_fs()
end
@@ -328,13 +328,13 @@ describe Chef::Provider::Mount::Mount do
describe "umount_fs" do
it "should umount the filesystem if it is mounted" do
@current_resource.mounted(true)
- @provider.should_receive(:shell_out!).with("umount /tmp/foo")
+ expect(@provider).to receive(:shell_out!).with("umount /tmp/foo")
@provider.umount_fs()
end
it "should not umount the filesystem if it is not mounted" do
@current_resource.mounted(false)
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.umount_fs()
end
end
@@ -343,7 +343,7 @@ describe Chef::Provider::Mount::Mount do
it "should use mount -o remount if remount is supported" do
@new_resource.supports({:remount => true})
@current_resource.mounted(true)
- @provider.should_receive(:shell_out!).with("mount -o remount,defaults #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("mount -o remount,defaults #{@new_resource.mount_point}")
@provider.remount_fs
end
@@ -352,24 +352,24 @@ describe Chef::Provider::Mount::Mount do
options = "rw,noexec,noauto"
@new_resource.options(%w{rw noexec noauto})
@current_resource.mounted(true)
- @provider.should_receive(:shell_out!).with("mount -o remount,rw,noexec,noauto #{@new_resource.mount_point}")
+ expect(@provider).to receive(:shell_out!).with("mount -o remount,rw,noexec,noauto #{@new_resource.mount_point}")
@provider.remount_fs
end
it "should umount and mount if remount is not supported" do
@new_resource.supports({:remount => false})
@current_resource.mounted(true)
- @provider.should_receive(:umount_fs)
- @provider.should_receive(:sleep).with(1)
- @provider.should_receive(:mount_fs)
+ expect(@provider).to receive(:umount_fs)
+ expect(@provider).to receive(:sleep).with(1)
+ expect(@provider).to receive(:mount_fs)
@provider.remount_fs()
end
it "should not try to remount at all if mounted is false" do
@current_resource.mounted(false)
- @provider.should_not_receive(:shell_out!)
- @provider.should_not_receive(:umount_fs)
- @provider.should_not_receive(:mount_fs)
+ expect(@provider).not_to receive(:shell_out!)
+ expect(@provider).not_to receive(:umount_fs)
+ expect(@provider).not_to receive(:mount_fs)
@provider.remount_fs()
end
end
@@ -379,9 +379,9 @@ describe Chef::Provider::Mount::Mount do
@current_resource.enabled(false)
@fstab = StringIO.new
- ::File.stub(:open).with("/etc/fstab", "a").and_yield(@fstab)
+ allow(::File).to receive(:open).with("/etc/fstab", "a").and_yield(@fstab)
@provider.enable_fs
- @fstab.string.should match(%r{^/dev/sdz1\s+/tmp/foo\s+ext3\s+defaults\s+0\s+2\s*$})
+ expect(@fstab.string).to match(%r{^/dev/sdz1\s+/tmp/foo\s+ext3\s+defaults\s+0\s+2\s*$})
end
it "should not enable if enabled is true and resources match" do
@@ -390,7 +390,7 @@ describe Chef::Provider::Mount::Mount do
@current_resource.options(["defaults"])
@current_resource.dump(0)
@current_resource.pass(2)
- ::File.should_not_receive(:open).with("/etc/fstab", "a")
+ expect(::File).not_to receive(:open).with("/etc/fstab", "a")
@provider.enable_fs
end
@@ -402,9 +402,9 @@ describe Chef::Provider::Mount::Mount do
@current_resource.dump(0)
@current_resource.pass(2)
@fstab = StringIO.new
- ::File.stub(:readlines).and_return([])
- ::File.should_receive(:open).once.with("/etc/fstab", "w").and_yield(@fstab)
- ::File.should_receive(:open).once.with("/etc/fstab", "a").and_yield(@fstab)
+ allow(::File).to receive(:readlines).and_return([])
+ expect(::File).to receive(:open).once.with("/etc/fstab", "w").and_yield(@fstab)
+ expect(::File).to receive(:open).once.with("/etc/fstab", "a").and_yield(@fstab)
@provider.enable_fs
end
@@ -418,13 +418,13 @@ describe Chef::Provider::Mount::Mount do
this_mount = "/dev/sdz1 /tmp/foo ext3 defaults 1 2\n"
@fstab_read = [this_mount, other_mount]
- ::File.stub(:readlines).with("/etc/fstab").and_return(@fstab_read)
+ allow(::File).to receive(:readlines).with("/etc/fstab").and_return(@fstab_read)
@fstab_write = StringIO.new
- ::File.stub(:open).with("/etc/fstab", "w").and_yield(@fstab_write)
+ allow(::File).to receive(:open).with("/etc/fstab", "w").and_yield(@fstab_write)
@provider.disable_fs
- @fstab_write.string.should match(Regexp.escape(other_mount))
- @fstab_write.string.should_not match(Regexp.escape(this_mount))
+ expect(@fstab_write.string).to match(Regexp.escape(other_mount))
+ expect(@fstab_write.string).not_to match(Regexp.escape(this_mount))
end
it "should disable if enabled is true and ignore commented lines" do
@@ -435,37 +435,37 @@ describe Chef::Provider::Mount::Mount do
%q{#/dev/sdz1 /tmp/foo ext3 defaults 1 2}]
fstab_write = StringIO.new
- ::File.stub(:readlines).with("/etc/fstab").and_return(fstab_read)
- ::File.stub(:open).with("/etc/fstab", "w").and_yield(fstab_write)
+ allow(::File).to receive(:readlines).with("/etc/fstab").and_return(fstab_read)
+ allow(::File).to receive(:open).with("/etc/fstab", "w").and_yield(fstab_write)
@provider.disable_fs
- fstab_write.string.should match(%r{^/dev/sdy1 /tmp/foo ext3 defaults 1 2$})
- fstab_write.string.should match(%r{^#/dev/sdz1 /tmp/foo ext3 defaults 1 2$})
- fstab_write.string.should_not match(%r{^/dev/sdz1 /tmp/foo ext3 defaults 1 2$})
+ expect(fstab_write.string).to match(%r{^/dev/sdy1 /tmp/foo ext3 defaults 1 2$})
+ expect(fstab_write.string).to match(%r{^#/dev/sdz1 /tmp/foo ext3 defaults 1 2$})
+ expect(fstab_write.string).not_to match(%r{^/dev/sdz1 /tmp/foo ext3 defaults 1 2$})
end
it "should disable only the last entry if enabled is true" do
- @current_resource.stub(:enabled).and_return(true)
+ allow(@current_resource).to receive(:enabled).and_return(true)
fstab_read = ["/dev/sdz1 /tmp/foo ext3 defaults 1 2\n",
"/dev/sdy1 /tmp/foo ext3 defaults 1 2\n",
"/dev/sdz1 /tmp/foo ext3 defaults 1 2\n",
"/dev/sdz1 /tmp/foobar ext3 defaults 1 2\n"]
fstab_write = StringIO.new
- ::File.stub(:readlines).with("/etc/fstab").and_return(fstab_read)
- ::File.stub(:open).with("/etc/fstab", "w").and_yield(fstab_write)
+ allow(::File).to receive(:readlines).with("/etc/fstab").and_return(fstab_read)
+ allow(::File).to receive(:open).with("/etc/fstab", "w").and_yield(fstab_write)
@provider.disable_fs
- fstab_write.string.should == "/dev/sdz1 /tmp/foo ext3 defaults 1 2\n" +
+ expect(fstab_write.string).to eq("/dev/sdz1 /tmp/foo ext3 defaults 1 2\n" +
"/dev/sdy1 /tmp/foo ext3 defaults 1 2\n" +
- "/dev/sdz1 /tmp/foobar ext3 defaults 1 2\n"
+ "/dev/sdz1 /tmp/foobar ext3 defaults 1 2\n")
end
it "should not disable if enabled is false" do
- @current_resource.stub(:enabled).and_return(false)
+ allow(@current_resource).to receive(:enabled).and_return(false)
- ::File.stub(:readlines).with("/etc/fstab").and_return([])
- ::File.should_not_receive(:open).and_yield(@fstab)
+ allow(::File).to receive(:readlines).with("/etc/fstab").and_return([])
+ expect(::File).not_to receive(:open).and_yield(@fstab)
@provider.disable_fs
end
diff --git a/spec/unit/provider/mount/solaris_spec.rb b/spec/unit/provider/mount/solaris_spec.rb
index 50ddfaa28d..93321a8ad6 100644
--- a/spec/unit/provider/mount/solaris_spec.rb
+++ b/spec/unit/provider/mount/solaris_spec.rb
@@ -92,37 +92,37 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
before do
stub_const("Chef::Provider::Mount::Solaris::VFSTAB", vfstab_file.path )
- provider.stub(:shell_out!).with("mount -v").and_return(OpenStruct.new(:stdout => mount_output))
- File.stub(:symlink?).with(device).and_return(false)
- File.stub(:exist?).and_call_original # Tempfile.open on ruby 1.8.7 calls File.exist?
- File.stub(:exist?).with(device).and_return(true)
- File.stub(:exist?).with(mountpoint).and_return(true)
+ allow(provider).to receive(:shell_out!).with("mount -v").and_return(OpenStruct.new(:stdout => mount_output))
+ allow(File).to receive(:symlink?).with(device).and_return(false)
+ allow(File).to receive(:exist?).and_call_original # Tempfile.open on ruby 1.8.7 calls File.exist?
+ allow(File).to receive(:exist?).with(device).and_return(true)
+ allow(File).to receive(:exist?).with(mountpoint).and_return(true)
expect(File).to_not receive(:exists?)
end
describe "#define_resource_requirements" do
before do
# we're not testing the actual actions so stub them all out
- [:mount_fs, :umount_fs, :remount_fs, :enable_fs, :disable_fs].each {|m| provider.stub(m) }
+ [:mount_fs, :umount_fs, :remount_fs, :enable_fs, :disable_fs].each {|m| allow(provider).to receive(m) }
end
it "run_action(:mount) should raise an error if the device does not exist" do
- File.stub(:exist?).with(device).and_return(false)
+ allow(File).to receive(:exist?).with(device).and_return(false)
expect { provider.run_action(:mount) }.to raise_error(Chef::Exceptions::Mount)
end
it "run_action(:remount) should raise an error if the device does not exist" do
- File.stub(:exist?).with(device).and_return(false)
+ allow(File).to receive(:exist?).with(device).and_return(false)
expect { provider.run_action(:remount) }.to raise_error(Chef::Exceptions::Mount)
end
it "run_action(:mount) should raise an error if the mountpoint does not exist" do
- File.stub(:exist?).with(mountpoint).and_return false
+ allow(File).to receive(:exist?).with(mountpoint).and_return false
expect { provider.run_action(:mount) }.to raise_error(Chef::Exceptions::Mount)
end
it "run_action(:remount) should raise an error if the mountpoint does not exist" do
- File.stub(:exist?).with(mountpoint).and_return false
+ allow(File).to receive(:exist?).with(mountpoint).and_return false
expect { provider.run_action(:remount) }.to raise_error(Chef::Exceptions::Mount)
end
@@ -160,23 +160,23 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
end
it "should set the name on the current_resource" do
- provider.current_resource.name.should == mountpoint
+ expect(provider.current_resource.name).to eq(mountpoint)
end
it "should set the mount_point on the current_resource" do
- provider.current_resource.mount_point.should == mountpoint
+ expect(provider.current_resource.mount_point).to eq(mountpoint)
end
it "should set the device on the current_resource" do
- provider.current_resource.device.should == device
+ expect(provider.current_resource.device).to eq(device)
end
it "should set the fsck_device on the current_resource" do
- provider.current_resource.fsck_device.should == fsck_device
+ expect(provider.current_resource.fsck_device).to eq(fsck_device)
end
it "should set the device_type on the current_resource" do
- provider.current_resource.device_type.should == device_type
+ expect(provider.current_resource.device_type).to eq(device_type)
end
it "should set the mounted status on the current_resource" do
@@ -200,12 +200,12 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
end
it "should not throw an exception when the device does not exist - CHEF-1565" do
- File.stub(:exist?).with(device).and_return(false)
+ allow(File).to receive(:exist?).with(device).and_return(false)
expect { provider.load_current_resource }.to_not raise_error
end
it "should not throw an exception when the mount point does not exist" do
- File.stub(:exist?).with(mountpoint).and_return false
+ allow(File).to receive(:exist?).with(mountpoint).and_return false
expect { provider.load_current_resource }.to_not raise_error
end
end
@@ -288,19 +288,19 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
end
it "should set the name on the current_resource" do
- provider.current_resource.name.should == mountpoint
+ expect(provider.current_resource.name).to eq(mountpoint)
end
it "should set the mount_point on the current_resource" do
- provider.current_resource.mount_point.should == mountpoint
+ expect(provider.current_resource.mount_point).to eq(mountpoint)
end
it "should set the device on the current_resource" do
- provider.current_resource.device.should == device
+ expect(provider.current_resource.device).to eq(device)
end
it "should set the device_type on the current_resource" do
- provider.current_resource.device_type.should == device_type
+ expect(provider.current_resource.device_type).to eq(device_type)
end
it "should set the mounted status on the current_resource" do
@@ -347,8 +347,8 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
}
before do
- File.should_receive(:symlink?).with(device).at_least(:once).and_return(true)
- File.should_receive(:readlink).with(device).at_least(:once).and_return(target)
+ expect(File).to receive(:symlink?).with(device).at_least(:once).and_return(true)
+ expect(File).to receive(:readlink).with(device).at_least(:once).and_return(target)
provider.load_current_resource()
end
@@ -384,8 +384,8 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
}
before do
- File.should_receive(:symlink?).with(device).at_least(:once).and_return(true)
- File.should_receive(:readlink).with(device).at_least(:once).and_return(target)
+ expect(File).to receive(:symlink?).with(device).at_least(:once).and_return(true)
+ expect(File).to receive(:readlink).with(device).at_least(:once).and_return(target)
provider.load_current_resource()
end
@@ -412,7 +412,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
}
it "should set mounted true" do
provider.load_current_resource()
- provider.current_resource.mounted.should be_true
+ expect(provider.current_resource.mounted).to be_true
end
end
@@ -425,7 +425,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
}
it "should set mounted false" do
provider.load_current_resource()
- provider.current_resource.mounted.should be_false
+ expect(provider.current_resource.mounted).to be_false
end
end
@@ -437,7 +437,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
}
it "should set mounted false" do
provider.load_current_resource()
- provider.current_resource.mounted.should be_false
+ expect(provider.current_resource.mounted).to be_false
end
end
@@ -449,7 +449,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
}
it "should set mounted false" do
provider.load_current_resource()
- provider.current_resource.mounted.should be_false
+ expect(provider.current_resource.mounted).to be_false
end
end
@@ -463,7 +463,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
it "should set enabled to true" do
provider.load_current_resource
- provider.current_resource.enabled.should be_true
+ expect(provider.current_resource.enabled).to be_true
end
end
@@ -477,7 +477,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
it "should set enabled to true" do
provider.load_current_resource
- provider.current_resource.enabled.should be_true
+ expect(provider.current_resource.enabled).to be_true
end
end
@@ -491,7 +491,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
it "should set enabled to false" do
provider.load_current_resource
- provider.current_resource.enabled.should be_false
+ expect(provider.current_resource.enabled).to be_false
end
end
@@ -504,7 +504,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
it "should set enabled to false" do
provider.load_current_resource
- provider.current_resource.enabled.should be_false
+ expect(provider.current_resource.enabled).to be_false
end
end
@@ -517,7 +517,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
it "should set enabled to false" do
provider.load_current_resource
- provider.current_resource.enabled.should be_false
+ expect(provider.current_resource.enabled).to be_false
end
end
@@ -530,7 +530,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
it "should set enabled to false" do
provider.load_current_resource
- provider.current_resource.enabled.should be_false
+ expect(provider.current_resource.enabled).to be_false
end
end
end
@@ -538,28 +538,28 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
context "after the mount's state has been discovered" do
describe "mount_fs" do
it "should mount the filesystem" do
- provider.should_receive(:shell_out!).with("mount -F #{fstype} -o defaults #{device} #{mountpoint}")
+ expect(provider).to receive(:shell_out!).with("mount -F #{fstype} -o defaults #{device} #{mountpoint}")
provider.mount_fs()
end
it "should mount the filesystem with options if options were passed" do
options = "logging,noatime,largefiles,nosuid,rw,quota"
new_resource.options(options.split(/,/))
- provider.should_receive(:shell_out!).with("mount -F #{fstype} -o #{options} #{device} #{mountpoint}")
+ expect(provider).to receive(:shell_out!).with("mount -F #{fstype} -o #{options} #{device} #{mountpoint}")
provider.mount_fs()
end
it "should delete the 'noauto' magic option" do
options = "rw,noauto"
new_resource.options(%w{rw noauto})
- provider.should_receive(:shell_out!).with("mount -F #{fstype} -o rw #{device} #{mountpoint}")
+ expect(provider).to receive(:shell_out!).with("mount -F #{fstype} -o rw #{device} #{mountpoint}")
provider.mount_fs()
end
end
describe "umount_fs" do
it "should umount the filesystem if it is mounted" do
- provider.should_receive(:shell_out!).with("umount #{mountpoint}")
+ expect(provider).to receive(:shell_out!).with("umount #{mountpoint}")
provider.umount_fs()
end
end
@@ -567,7 +567,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
describe "remount_fs without options and do not mount at boot" do
it "should use mount -o remount" do
new_resource.options(%w{noauto})
- provider.should_receive(:shell_out!).with("mount -o remount #{new_resource.mount_point}")
+ expect(provider).to receive(:shell_out!).with("mount -o remount #{new_resource.mount_point}")
provider.remount_fs
end
end
@@ -575,7 +575,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
describe "remount_fs with options and do not mount at boot" do
it "should use mount -o remount,rw" do
new_resource.options(%w{rw noauto})
- provider.should_receive(:shell_out!).with("mount -o remount,rw #{new_resource.mount_point}")
+ expect(provider).to receive(:shell_out!).with("mount -o remount,rw #{new_resource.mount_point}")
provider.remount_fs
end
end
@@ -583,7 +583,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
describe "remount_fs with options and mount at boot" do
it "should use mount -o remount,rw" do
new_resource.options(%w{rw})
- provider.should_receive(:shell_out!).with("mount -o remount,rw #{new_resource.mount_point}")
+ expect(provider).to receive(:shell_out!).with("mount -o remount,rw #{new_resource.mount_point}")
provider.remount_fs
end
end
@@ -591,7 +591,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
describe "remount_fs without options and mount at boot" do
it "should use mount -o remount" do
new_resource.options([])
- provider.should_receive(:shell_out!).with("mount -o remount #{new_resource.mount_point}")
+ expect(provider).to receive(:shell_out!).with("mount -o remount #{new_resource.mount_point}")
provider.remount_fs
end
end
@@ -605,17 +605,17 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [other_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.load_current_resource
provider.enable_fs
end
it "should leave the other mountpoint alone" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(other_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(other_mount)}/)
end
it "should enable the mountpoint we care about" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(this_mount)}/)
end
end
@@ -629,17 +629,17 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [other_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.load_current_resource
provider.enable_fs
end
it "should leave the other mountpoint alone" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(other_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(other_mount)}/)
end
it "should enable the mountpoint we care about" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(this_mount)}/)
end
end
@@ -653,18 +653,18 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [existing_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.load_current_resource
provider.mount_options_unchanged?
provider.send(:vfstab_entry)
end
it "should detect a changed entry" do
- provider.mount_options_unchanged?.should == false
+ expect(provider.mount_options_unchanged?).to eq(false)
end
it "should change mount at boot to no" do
- provider.send(:vfstab_entry).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(provider.send(:vfstab_entry)).to match(/^#{Regexp.escape(this_mount)}/)
end
end
@@ -678,18 +678,18 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [existing_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.load_current_resource
provider.mount_options_unchanged?
provider.send(:vfstab_entry)
end
it "should detect a changed entry" do
- provider.mount_options_unchanged?.should == false
+ expect(provider.mount_options_unchanged?).to eq(false)
end
it "should change mount at boot to yes" do
- provider.send(:vfstab_entry).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(provider.send(:vfstab_entry)).to match(/^#{Regexp.escape(this_mount)}/)
end
end
@@ -703,18 +703,18 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [existing_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.load_current_resource
provider.mount_options_unchanged?
provider.send(:vfstab_entry)
end
it "should detect an unchanged entry" do
- provider.mount_options_unchanged?.should == true
+ expect(provider.mount_options_unchanged?).to eq(true)
end
it "should not change mount at boot" do
- provider.send(:vfstab_entry).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(provider.send(:vfstab_entry)).to match(/^#{Regexp.escape(this_mount)}/)
end
end
@@ -728,18 +728,18 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [existing_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.load_current_resource
provider.mount_options_unchanged?
provider.send(:vfstab_entry)
end
it "should detect an unchanged entry" do
- provider.mount_options_unchanged?.should == true
+ expect(provider.mount_options_unchanged?).to eq(true)
end
it "should not change mount at boot" do
- provider.send(:vfstab_entry).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(provider.send(:vfstab_entry)).to match(/^#{Regexp.escape(this_mount)}/)
end
end
end
@@ -753,16 +753,16 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [other_mount, this_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.disable_fs
end
it "should leave the other mountpoint alone" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(other_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(other_mount)}/)
end
it "should disable the mountpoint we care about" do
- IO.read(vfstab_file.path).should_not match(/^#{Regexp.escape(this_mount)}/)
+ expect(IO.read(vfstab_file.path)).not_to match(/^#{Regexp.escape(this_mount)}/)
end
end
@@ -776,20 +776,20 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [other_mount, this_mount, comment].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.disable_fs
end
it "should leave the other mountpoint alone" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(other_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(other_mount)}/)
end
it "should disable the mountpoint we care about" do
- IO.read(vfstab_file.path).should_not match(/^#{Regexp.escape(this_mount)}/)
+ expect(IO.read(vfstab_file.path)).not_to match(/^#{Regexp.escape(this_mount)}/)
end
it "should keep the comment" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(comment)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(comment)}/)
end
end
@@ -801,20 +801,20 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
let(:vfstab_file_contents) { [this_mount, other_mount, this_mount].join("\n") }
before do
- provider.stub(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
+ allow(provider).to receive(:etc_tempfile).and_yield(Tempfile.open("vfstab"))
provider.disable_fs
end
it "should leave the other mountpoint alone" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(other_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(other_mount)}/)
end
it "should still match the duplicated mountpoint" do
- IO.read(vfstab_file.path).should match(/^#{Regexp.escape(this_mount)}/)
+ expect(IO.read(vfstab_file.path)).to match(/^#{Regexp.escape(this_mount)}/)
end
it "should have removed the last line" do
- IO.read(vfstab_file.path).should eql( "#{this_mount}\n#{other_mount}\n" )
+ expect(IO.read(vfstab_file.path)).to eql( "#{this_mount}\n#{other_mount}\n" )
end
end
end
diff --git a/spec/unit/provider/mount/windows_spec.rb b/spec/unit/provider/mount/windows_spec.rb
index 80e7f1e695..467d923c6a 100644
--- a/spec/unit/provider/mount/windows_spec.rb
+++ b/spec/unit/provider/mount/windows_spec.rb
@@ -40,12 +40,12 @@ describe Chef::Provider::Mount::Windows do
@new_resource = Chef::Resource::Mount.new("X:")
@new_resource.device GUID
@current_resource = Chef::Resource::Mount.new("X:")
- Chef::Resource::Mount.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Mount).to receive(:new).and_return(@current_resource)
@net_use = double("Chef::Util::Windows::NetUse")
- Chef::Util::Windows::NetUse.stub(:new).and_return(@net_use)
+ allow(Chef::Util::Windows::NetUse).to receive(:new).and_return(@net_use)
@vol = double("Chef::Util::Windows::Volume")
- Chef::Util::Windows::Volume.stub(:new).and_return(@vol)
+ allow(Chef::Util::Windows::Volume).to receive(:new).and_return(@vol)
@provider = Chef::Provider::Mount::Windows.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
@@ -53,26 +53,26 @@ describe Chef::Provider::Mount::Windows do
describe "when loading the current resource" do
it "should set mounted true if the mount point is found" do
- @vol.stub(:device).and_return(@new_resource.device)
- @current_resource.should_receive(:mounted).with(true)
+ allow(@vol).to receive(:device).and_return(@new_resource.device)
+ expect(@current_resource).to receive(:mounted).with(true)
@provider.load_current_resource
end
it "should set mounted false if the mount point is not found" do
- @vol.stub(:device).and_raise(ArgumentError)
- @current_resource.should_receive(:mounted).with(false)
+ allow(@vol).to receive(:device).and_raise(ArgumentError)
+ expect(@current_resource).to receive(:mounted).with(false)
@provider.load_current_resource
end
describe "with a local device" do
before do
@new_resource.device GUID
- @vol.stub(:device).and_return(@new_resource.device)
- @net_use.stub(:device).and_raise(ArgumentError)
+ allow(@vol).to receive(:device).and_return(@new_resource.device)
+ allow(@net_use).to receive(:device).and_raise(ArgumentError)
end
it "should determine the device is a volume GUID" do
- @provider.should_receive(:is_volume).with(@new_resource.device).and_return(true)
+ expect(@provider).to receive(:is_volume).with(@new_resource.device).and_return(true)
@provider.load_current_resource
end
end
@@ -80,12 +80,12 @@ describe Chef::Provider::Mount::Windows do
describe "with a remote device" do
before do
@new_resource.device REMOTE
- @net_use.stub(:device).and_return(@new_resource.device)
- @vol.stub(:device).and_raise(ArgumentError)
+ allow(@net_use).to receive(:device).and_return(@new_resource.device)
+ allow(@vol).to receive(:device).and_raise(ArgumentError)
end
it "should determine the device is remote" do
- @provider.should_receive(:is_volume).with(@new_resource.device).and_return(false)
+ expect(@provider).to receive(:is_volume).with(@new_resource.device).and_return(false)
@provider.load_current_resource
end
end
@@ -93,13 +93,13 @@ describe Chef::Provider::Mount::Windows do
describe "when mounting a file system" do
before do
@new_resource.device GUID
- @vol.stub(:add)
- @vol.stub(:device).and_raise(ArgumentError)
+ allow(@vol).to receive(:add)
+ allow(@vol).to receive(:device).and_raise(ArgumentError)
@provider.load_current_resource
end
it "should mount the filesystem if it is not mounted" do
- @vol.should_receive(:add).with(:remote => @new_resource.device,
+ expect(@vol).to receive(:add).with(:remote => @new_resource.device,
:username => @new_resource.username,
:domainname => @new_resource.domain,
:password => @new_resource.password)
@@ -107,8 +107,8 @@ describe Chef::Provider::Mount::Windows do
end
it "should not mount the filesystem if it is mounted" do
- @vol.should_not_receive(:add)
- @current_resource.stub(:mounted).and_return(true)
+ expect(@vol).not_to receive(:add)
+ allow(@current_resource).to receive(:mounted).and_return(true)
@provider.mount_fs
end
end
@@ -116,20 +116,20 @@ describe Chef::Provider::Mount::Windows do
describe "when unmounting a file system" do
before do
@new_resource.device GUID
- @vol.stub(:delete)
- @vol.stub(:device).and_raise(ArgumentError)
+ allow(@vol).to receive(:delete)
+ allow(@vol).to receive(:device).and_raise(ArgumentError)
@provider.load_current_resource
end
it "should umount the filesystem if it is mounted" do
- @current_resource.stub(:mounted).and_return(true)
- @vol.should_receive(:delete)
+ allow(@current_resource).to receive(:mounted).and_return(true)
+ expect(@vol).to receive(:delete)
@provider.umount_fs
end
it "should not umount the filesystem if it is not mounted" do
- @current_resource.stub(:mounted).and_return(false)
- @vol.should_not_receive(:delete)
+ allow(@current_resource).to receive(:mounted).and_return(false)
+ expect(@vol).not_to receive(:delete)
@provider.umount_fs
end
end
diff --git a/spec/unit/provider/ohai_spec.rb b/spec/unit/provider/ohai_spec.rb
index 29c32e2690..45688cedb7 100644
--- a/spec/unit/provider/ohai_spec.rb
+++ b/spec/unit/provider/ohai_spec.rb
@@ -41,16 +41,16 @@ describe Chef::Provider::Ohai do
:newdata => "somevalue"
}
}
- mock_ohai.stub(:all_plugins).and_return(true)
- mock_ohai.stub(:data).and_return(mock_ohai[:data],
+ allow(mock_ohai).to receive(:all_plugins).and_return(true)
+ allow(mock_ohai).to receive(:data).and_return(mock_ohai[:data],
mock_ohai[:data2])
- Ohai::System.stub(:new).and_return(mock_ohai)
- Chef::Platform.stub(:find_platform_and_version).and_return({ "platform" => @platform,
+ allow(Ohai::System).to receive(:new).and_return(mock_ohai)
+ allow(Chef::Platform).to receive(:find_platform_and_version).and_return({ "platform" => @platform,
"platform_version" => @platform_version})
# Fake node with a dummy save
@node = Chef::Node.new
@node.name(@fqdn)
- @node.stub(:save).and_return(@node)
+ allow(@node).to receive(:save).and_return(@node)
@events = Chef::EventDispatch::Dispatcher.new
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Ohai.new("ohai_reload")
@@ -67,18 +67,18 @@ describe Chef::Provider::Ohai do
end
it "applies updated ohai data to the node" do
- @node[:origdata].should == 'somevalue'
- @node[:newdata].should be_nil
+ expect(@node[:origdata]).to eq('somevalue')
+ expect(@node[:newdata]).to be_nil
@provider.run_action(:reload)
- @node[:origdata].should == 'somevalue'
- @node[:newdata].should == 'somevalue'
+ expect(@node[:origdata]).to eq('somevalue')
+ expect(@node[:newdata]).to eq('somevalue')
end
it "should reload a specific plugin and cause node to pick up new values" do
@new_resource.plugin "someplugin"
@provider.run_action(:reload)
- @node[:origdata].should == 'somevalue'
- @node[:newdata].should == 'somevalue'
+ expect(@node[:origdata]).to eq('somevalue')
+ expect(@node[:newdata]).to eq('somevalue')
end
end
end
diff --git a/spec/unit/provider/package/aix_spec.rb b/spec/unit/provider/package/aix_spec.rb
index 5d6e23302f..6908b1288d 100644
--- a/spec/unit/provider/package/aix_spec.rb
+++ b/spec/unit/provider/package/aix_spec.rb
@@ -28,7 +28,7 @@ describe Chef::Provider::Package::Aix do
@new_resource.source("/tmp/samba.base")
@provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "assessing the current package status" do
@@ -40,118 +40,118 @@ describe Chef::Provider::Package::Aix do
end
it "should create a current resource with the name of new_resource" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.name.should == "samba.base"
+ 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
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "samba.base"
+ 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
- @provider.stub(:popen4).and_return(@status)
- ::File.stub(:exists?).and_return(false)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ allow(::File).to receive(:exists?).and_return(false)
@provider.define_resource_requirements
@provider.load_current_resource
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Package)
+ 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
- @provider.should_receive(:popen4).with("installp -L -d /tmp/samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("lslpp -lcq samba.base").and_return(@status)
+ 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)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "samba.base"
- @new_resource.version.should == "3.3.12.0"
+ expect(@provider.current_resource.package_name).to eq("samba.base")
+ expect(@new_resource.version).to eq("3.3.12.0")
end
it "should return the current version installed if found by lslpp" do
@stdout = StringIO.new(@bffinfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
- @provider.should_receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ 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)
@provider.load_current_resource
- @provider.current_resource.version.should == "3.3.12.0"
+ 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
@new_resource = Chef::Resource::Package.new("samba.base")
@provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).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)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).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
- @provider.should_receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
- @provider.should_receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ 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)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
describe "candidate_version" do
it "should return the candidate_version variable if already setup" do
@provider.candidate_version = "3.3.12.0"
- @provider.should_not_receive(:popen4)
+ expect(@provider).not_to receive(:popen4)
@provider.candidate_version
end
it "should lookup the candidate_version if the variable is not already set" do
@status = double("Status", :exitstatus => 0)
- @provider.should_receive(:popen4).and_return(@status)
+ expect(@provider).to receive(:popen4).and_return(@status)
@provider.candidate_version
end
it "should throw and exception if the exitstatus is not 0" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
end
describe "install and upgrade" do
it "should run installp -aYF -d with the package source to install" do
- @provider.should_receive(:shell_out!).with("installp -aYF -d /tmp/samba.base samba.base")
+ expect(@provider).to receive(:shell_out!).with("installp -aYF -d /tmp/samba.base samba.base")
@provider.install_package("samba.base", "3.3.12.0")
end
it "should run when the package is a path to install" do
@new_resource = Chef::Resource::Package.new("/tmp/samba.base")
@provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/samba.base"
- @provider.should_receive(:shell_out!).with("installp -aYF -d /tmp/samba.base /tmp/samba.base")
+ expect(@new_resource.source).to eq("/tmp/samba.base")
+ expect(@provider).to receive(:shell_out!).with("installp -aYF -d /tmp/samba.base /tmp/samba.base")
@provider.install_package("/tmp/samba.base", "3.3.12.0")
end
it "should run installp with -eLogfile option." do
- @new_resource.stub(:options).and_return("-e/tmp/installp.log")
- @provider.should_receive(:shell_out!).with("installp -aYF -e/tmp/installp.log -d /tmp/samba.base samba.base")
+ allow(@new_resource).to receive(:options).and_return("-e/tmp/installp.log")
+ expect(@provider).to receive(:shell_out!).with("installp -aYF -e/tmp/installp.log -d /tmp/samba.base samba.base")
@provider.install_package("samba.base", "3.3.12.0")
end
end
describe "remove" do
it "should run installp -u samba.base to remove the package" do
- @provider.should_receive(:shell_out!).with("installp -u samba.base")
+ expect(@provider).to receive(:shell_out!).with("installp -u samba.base")
@provider.remove_package("samba.base", "3.3.12.0")
end
it "should run installp -u -e/tmp/installp.log with options -e/tmp/installp.log" do
- @new_resource.stub(:options).and_return("-e/tmp/installp.log")
- @provider.should_receive(:shell_out!).with("installp -u -e/tmp/installp.log samba.base")
+ allow(@new_resource).to receive(:options).and_return("-e/tmp/installp.log")
+ expect(@provider).to receive(:shell_out!).with("installp -u -e/tmp/installp.log samba.base")
@provider.remove_package("samba.base", "3.3.12.0")
end
diff --git a/spec/unit/provider/package/apt_spec.rb b/spec/unit/provider/package/apt_spec.rb
index 90e9dd6d3f..edca3e4c22 100644
--- a/spec/unit/provider/package/apt_spec.rb
+++ b/spec/unit/provider/package/apt_spec.rb
@@ -45,17 +45,17 @@ PKG_STATUS
describe "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy #{@new_resource.package_name}",
:timeout => @timeout
).and_return(@shell_out)
@provider.load_current_resource
current_resource = @provider.current_resource
- current_resource.should be_a(Chef::Resource::Package)
- current_resource.name.should == "irssi"
- current_resource.package_name.should == "irssi"
- current_resource.version.should be_nil
+ expect(current_resource).to be_a(Chef::Resource::Package)
+ expect(current_resource.name).to eq("irssi")
+ expect(current_resource.package_name).to eq("irssi")
+ expect(current_resource.version).to be_nil
end
it "should set the installed version if package has one" do
@@ -71,10 +71,10 @@ sudo:
1.7.2p1-1ubuntu5 0
500 http://us.archive.ubuntu.com/ubuntu/ lucid/main Packages
INSTALLED
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @provider.current_resource.version.should == "1.7.2p1-1ubuntu5.3"
- @provider.candidate_version.should eql("1.7.2p1-1ubuntu5.3")
+ expect(@provider.current_resource.version).to eq("1.7.2p1-1ubuntu5.3")
+ expect(@provider.candidate_version).to eql("1.7.2p1-1ubuntu5.3")
end
# libmysqlclient-dev is a real package in newer versions of debian + ubuntu
@@ -88,7 +88,7 @@ libmysqlclient15-dev:
Version table:
VPKG_STDOUT
virtual_package = double(:stdout => virtual_package_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy libmysqlclient15-dev",
:timeout => @timeout
).and_return(virtual_package)
@@ -111,7 +111,7 @@ libmysqlclient-dev 5.1.41-3ubuntu12.10
libmysqlclient-dev 5.1.41-3ubuntu12
SHOWPKG_STDOUT
showpkg = double(:stdout => showpkg_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache showpkg libmysqlclient15-dev",
:timeout => @timeout
).and_return(showpkg)
@@ -129,7 +129,7 @@ libmysqlclient-dev:
500 http://us.archive.ubuntu.com/ubuntu/ lucid/main Packages
RPKG_STDOUT
real_package = double(:stdout => real_package_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy libmysqlclient-dev",
:timeout => @timeout
).and_return(real_package)
@@ -145,7 +145,7 @@ mp3-decoder:
Version table:
VPKG_STDOUT
virtual_package = double(:stdout => virtual_package_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy mp3-decoder",
:timeout => @timeout
).and_return(virtual_package)
@@ -171,20 +171,20 @@ mpg321 0.2.10.6
mpg123 1.12.1-0ubuntu1
SHOWPKG_STDOUT
showpkg = double(:stdout => showpkg_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache showpkg mp3-decoder",
:timeout => @timeout
).and_return(showpkg)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should run apt-cache policy with the default_release option, if there is one and provider is explicitly defined" do
@new_resource = Chef::Resource::AptPackage.new("irssi", @run_context)
@provider = Chef::Provider::Package::Apt.new(@new_resource, @run_context)
- @new_resource.stub(:default_release).and_return("lenny-backports")
- @new_resource.stub(:provider).and_return("Chef::Provider::Package::Apt")
- @provider.should_receive(:shell_out!).with(
+ allow(@new_resource).to receive(:default_release).and_return("lenny-backports")
+ allow(@new_resource).to receive(:provider).and_return("Chef::Provider::Package::Apt")
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache -o APT::Default-Release=lenny-backports policy irssi",
:timeout => @timeout
).and_return(@shell_out)
@@ -194,7 +194,7 @@ SHOWPKG_STDOUT
it "raises an exception if a source is specified (CHEF-5113)" do
@new_resource.source "pluto"
@provider.define_resource_requirements
- @provider.should_receive(:shell_out!).with("apt-cache policy irssi", {:timeout=>900}).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).with("apt-cache policy irssi", {:timeout=>900}).and_return(@shell_out)
expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
end
@@ -207,7 +207,7 @@ SHOWPKG_STDOUT
describe "install_package" do
it "should run apt-get install with the package name and version" do
- @provider.should_receive(:shell_out!). with(
+ expect(@provider).to receive(:shell_out!). with(
"apt-get -q -y install irssi=0.8.12-7",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -216,7 +216,7 @@ SHOWPKG_STDOUT
end
it "should run apt-get install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y --force-yes install irssi=0.8.12-7",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -232,7 +232,7 @@ SHOWPKG_STDOUT
@new_resource.provider = @provider
@provider.new_resource = @new_resource
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y -o APT::Default-Release=lenny-backports install irssi=0.8.12-7",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -245,7 +245,7 @@ SHOWPKG_STDOUT
describe Chef::Provider::Package::Apt, "upgrade_package" do
it "should run install_package with the name and version" do
- @provider.should_receive(:install_package).with("irssi", "0.8.12-7")
+ expect(@provider).to receive(:install_package).with("irssi", "0.8.12-7")
@provider.upgrade_package("irssi", "0.8.12-7")
end
end
@@ -253,7 +253,7 @@ SHOWPKG_STDOUT
describe Chef::Provider::Package::Apt, "remove_package" do
it "should run apt-get remove with the package name" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y remove irssi",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -262,7 +262,7 @@ SHOWPKG_STDOUT
end
it "should run apt-get remove with the package name and options if specified" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y --force-yes remove irssi",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -276,7 +276,7 @@ SHOWPKG_STDOUT
describe "when purging a package" do
it "should run apt-get purge with the package name" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y purge irssi",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -285,7 +285,7 @@ SHOWPKG_STDOUT
end
it "should run apt-get purge with the package name and options if specified" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y --force-yes purge irssi",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -298,14 +298,14 @@ SHOWPKG_STDOUT
describe "when preseeding a package" do
before(:each) do
- @provider.stub(:get_preseed_file).and_return("/tmp/irssi-0.8.12-7.seed")
+ allow(@provider).to receive(:get_preseed_file).and_return("/tmp/irssi-0.8.12-7.seed")
end
it "should get the full path to the preseed response file" do
- @provider.should_receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
+ expect(@provider).to receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
file = @provider.get_preseed_file("irssi", "0.8.12-7")
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"debconf-set-selections /tmp/irssi-0.8.12-7.seed",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -315,7 +315,7 @@ SHOWPKG_STDOUT
end
it "should run debconf-set-selections on the preseed file if it has changed" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"debconf-set-selections /tmp/irssi-0.8.12-7.seed",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -325,18 +325,18 @@ SHOWPKG_STDOUT
end
it "should not run debconf-set-selections if the preseed file has not changed" do
- @provider.stub(:check_package_state)
+ allow(@provider).to receive(:check_package_state)
@current_resource.version "0.8.11"
@new_resource.response_file "/tmp/file"
- @provider.stub(:get_preseed_file).and_return(false)
- @provider.should_not_receive(:shell_out!)
+ allow(@provider).to receive(:get_preseed_file).and_return(false)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:reconfig)
end
end
describe "when reconfiguring a package" do
it "should run dpkg-reconfigure package" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"dpkg-reconfigure irssi",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -348,7 +348,7 @@ SHOWPKG_STDOUT
describe "when installing a virtual package" do
it "should install the package without specifying a version" do
@provider.is_virtual_package = true
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y install libmysqlclient-dev",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
diff --git a/spec/unit/provider/package/dpkg_spec.rb b/spec/unit/provider/package/dpkg_spec.rb
index 439a42daa3..fdd9e50c8e 100644
--- a/spec/unit/provider/package/dpkg_spec.rb
+++ b/spec/unit/provider/package/dpkg_spec.rb
@@ -33,32 +33,32 @@ describe Chef::Provider::Package::Dpkg do
@status = double("Status", :exitstatus => 0)
@stderr = StringIO.new
@pid = double("PID")
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "when loading the current resource state" do
it "should create a current resource with the name of the new_resource" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "wget"
+ expect(@provider.current_resource.package_name).to eq("wget")
end
it "should raise an exception if a source is supplied but not found" do
@provider.load_current_resource
@provider.define_resource_requirements
- ::File.stub(:exists?).and_return(false)
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ allow(::File).to receive(:exists?).and_return(false)
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
describe 'gets the source package version from dpkg-deb' do
def check_version(version)
@stdout = StringIO.new("wget\t#{version}")
- @provider.stub(:popen4).with("dpkg-deb -W #{@new_resource.source}").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).with("dpkg-deb -W #{@new_resource.source}").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "wget"
- @new_resource.version.should == version
+ expect(@provider.current_resource.package_name).to eq("wget")
+ expect(@new_resource.version).to eq(version)
end
it 'if short version provided' do
@@ -80,9 +80,9 @@ describe Chef::Provider::Package::Dpkg do
it "gets the source package name from dpkg-deb correctly when the package name has `-', `+' or `.' characters" do
@stdout = StringIO.new("f.o.o-pkg++2\t1.11.4-1ubuntu1")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "f.o.o-pkg++2"
+ expect(@provider.current_resource.package_name).to eq("f.o.o-pkg++2")
end
it "should raise an exception if the source is not set but we are installing" do
@@ -90,7 +90,7 @@ describe Chef::Provider::Package::Dpkg do
@provider.new_resource = @new_resource
@provider.define_resource_requirements
@provider.load_current_resource
- lambda { @provider.run_action(:install)}.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.run_action(:install)}.to raise_error(Chef::Exceptions::Package)
end
it "should return the current version installed if found by dpkg" do
@@ -107,22 +107,22 @@ Config-Version: 1.11.4-1ubuntu1
Depends: libc6 (>= 2.8~20080505), libssl0.9.8 (>= 0.9.8f-5)
Conflicts: wget-ssl
DPKG_S
- @provider.stub(:popen4).with("dpkg -s wget").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).with("dpkg -s wget").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "1.11.4-1ubuntu1"
+ expect(@provider.current_resource.version).to eq("1.11.4-1ubuntu1")
end
it "should raise an exception if dpkg fails to run" do
@status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
end
describe Chef::Provider::Package::Dpkg, "install and upgrade" do
it "should run dpkg -i with the package source" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
@provider.install_package("wget", "1.11.4-1ubuntu1")
@@ -131,7 +131,7 @@ DPKG_S
it "should run dpkg -i if the package is a path and the source is nil" do
@new_resource = Chef::Resource::Package.new("/tmp/wget_1.11.4-1ubuntu1_amd64.deb")
@provider = Chef::Provider::Package::Dpkg.new(@new_resource, @run_context)
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
@provider.install_package("/tmp/wget_1.11.4-1ubuntu1_amd64.deb", "1.11.4-1ubuntu1")
@@ -140,55 +140,55 @@ DPKG_S
it "should run dpkg -i if the package is a path and the source is nil for an upgrade" do
@new_resource = Chef::Resource::Package.new("/tmp/wget_1.11.4-1ubuntu1_amd64.deb")
@provider = Chef::Provider::Package::Dpkg.new(@new_resource, @run_context)
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
@provider.upgrade_package("/tmp/wget_1.11.4-1ubuntu1_amd64.deb", "1.11.4-1ubuntu1")
end
it "should run dpkg -i with the package source and options if specified" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i --force-yes /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
- @new_resource.stub(:options).and_return("--force-yes")
+ allow(@new_resource).to receive(:options).and_return("--force-yes")
@provider.install_package("wget", "1.11.4-1ubuntu1")
end
it "should upgrade by running install_package" do
- @provider.should_receive(:install_package).with("wget", "1.11.4-1ubuntu1")
+ expect(@provider).to receive(:install_package).with("wget", "1.11.4-1ubuntu1")
@provider.upgrade_package("wget", "1.11.4-1ubuntu1")
end
end
describe Chef::Provider::Package::Dpkg, "remove and purge" do
it "should run dpkg -r to remove the package" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -r wget"
)
@provider.remove_package("wget", "1.11.4-1ubuntu1")
end
it "should run dpkg -r to remove the package with options if specified" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -r --force-yes wget"
)
- @new_resource.stub(:options).and_return("--force-yes")
+ allow(@new_resource).to receive(:options).and_return("--force-yes")
@provider.remove_package("wget", "1.11.4-1ubuntu1")
end
it "should run dpkg -P to purge the package" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -P wget"
)
@provider.purge_package("wget", "1.11.4-1ubuntu1")
end
it "should run dpkg -P to purge the package with options if specified" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -P --force-yes wget"
)
- @new_resource.stub(:options).and_return("--force-yes")
+ allow(@new_resource).to receive(:options).and_return("--force-yes")
@provider.purge_package("wget", "1.11.4-1ubuntu1")
end
diff --git a/spec/unit/provider/package/easy_install_spec.rb b/spec/unit/provider/package/easy_install_spec.rb
index 87cbabcc19..221ec8fdfc 100644
--- a/spec/unit/provider/package/easy_install_spec.rb
+++ b/spec/unit/provider/package/easy_install_spec.rb
@@ -30,79 +30,79 @@ describe Chef::Provider::Package::EasyInstall do
@current_resource.version('1.8d')
@provider = Chef::Provider::Package::EasyInstall.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@stdin = StringIO.new
@stdout = StringIO.new
@status = double("Status", :exitstatus => 0)
@stderr = StringIO.new
@pid = 2342
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
end
describe "easy_install_binary_path" do
it "should return a Chef::Provider::EasyInstall object" do
provider = Chef::Provider::Package::EasyInstall.new(@node, @new_resource)
- provider.should be_a_kind_of(Chef::Provider::Package::EasyInstall)
+ expect(provider).to be_a_kind_of(Chef::Provider::Package::EasyInstall)
end
it "should set the current resources package name to the new resources package name" do
- $stdout.stub(:write)
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ allow($stdout).to receive(:write)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should return a relative path to easy_install if no easy_install_binary is given" do
- @provider.easy_install_binary_path.should eql("easy_install")
+ expect(@provider.easy_install_binary_path).to eql("easy_install")
end
it "should return a specific path to easy_install if a easy_install_binary is given" do
- @new_resource.should_receive(:easy_install_binary).and_return("/opt/local/bin/custom/easy_install")
- @provider.easy_install_binary_path.should eql("/opt/local/bin/custom/easy_install")
+ expect(@new_resource).to receive(:easy_install_binary).and_return("/opt/local/bin/custom/easy_install")
+ expect(@provider.easy_install_binary_path).to eql("/opt/local/bin/custom/easy_install")
end
end
describe "actions_on_package" do
it "should run easy_install with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install \"boto==1.8d\""
})
@provider.install_package("boto", "1.8d")
end
it "should run easy_install with the package name and version and specified options" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install --always-unzip \"boto==1.8d\""
})
- @new_resource.stub(:options).and_return("--always-unzip")
+ allow(@new_resource).to receive(:options).and_return("--always-unzip")
@provider.install_package("boto", "1.8d")
end
it "should run easy_install with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install \"boto==1.8d\""
})
@provider.upgrade_package("boto", "1.8d")
end
it "should run easy_install -m with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install -m boto"
})
@provider.remove_package("boto", "1.8d")
end
it "should run easy_install -m with the package name and version and specified options" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install -x -m boto"
})
- @new_resource.stub(:options).and_return("-x")
+ allow(@new_resource).to receive(:options).and_return("-x")
@provider.remove_package("boto", "1.8d")
end
it "should run easy_install -m with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install -m boto"
})
@provider.purge_package("boto", "1.8d")
diff --git a/spec/unit/provider/package/freebsd/pkg_spec.rb b/spec/unit/provider/package/freebsd/pkg_spec.rb
index 9b2493a4c5..f67161930f 100644
--- a/spec/unit/provider/package/freebsd/pkg_spec.rb
+++ b/spec/unit/provider/package/freebsd/pkg_spec.rb
@@ -30,35 +30,35 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(false)
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(false)
end
describe "when determining the current package state" do
before do
- @provider.stub(:ports_candidate_version).and_return("4.3.6")
+ allow(@provider).to receive(:ports_candidate_version).and_return("4.3.6")
end
it "should create a current resource with the name of the new_resource" do
current_resource = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context).current_resource
- current_resource.name.should == "zsh"
+ expect(current_resource.name).to eq("zsh")
end
it "should return a version if the package is installed" do
- @provider.should_receive(:current_installed_version).and_return("4.3.6_7")
+ expect(@provider).to receive(:current_installed_version).and_return("4.3.6_7")
@provider.load_current_resource
- @current_resource.version.should == "4.3.6_7"
+ expect(@current_resource.version).to eq("4.3.6_7")
end
it "should return nil if the package is not installed" do
- @provider.should_receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
@provider.load_current_resource
- @current_resource.version.should be_nil
+ expect(@current_resource.version).to be_nil
end
it "should return a candidate version if it exists" do
- @provider.should_receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
@provider.load_current_resource
- @provider.candidate_version.should eql("4.3.6")
+ expect(@provider.candidate_version).to eql("4.3.6")
end
end
@@ -77,42 +77,42 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
it "should return the version number when it is installed" do
pkg_info = OpenStruct.new(:stdout => "zsh-4.3.6_7")
- @provider.should_receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
#@provider.should_receive(:popen4).with('pkg_info -E "zsh*"').and_yield(@pid, @stdin, ["zsh-4.3.6_7"], @stderr).and_return(@status)
- @provider.stub(:package_name).and_return("zsh")
- @provider.current_installed_version.should == "4.3.6_7"
+ allow(@provider).to receive(:package_name).and_return("zsh")
+ expect(@provider.current_installed_version).to eq("4.3.6_7")
end
it "does not set the current version number when the package is not installed" do
pkg_info = OpenStruct.new(:stdout => "")
- @provider.should_receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
- @provider.stub(:package_name).and_return("zsh")
- @provider.current_installed_version.should be_nil
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
+ allow(@provider).to receive(:package_name).and_return("zsh")
+ expect(@provider.current_installed_version).to be_nil
end
it "should return the port path for a valid port name" do
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
#@provider.should_receive(:popen4).with("whereis -s zsh").and_yield(@pid, @stdin, ["zsh: /usr/ports/shells/zsh"], @stderr).and_return(@status)
- @provider.stub(:port_name).and_return("zsh")
- @provider.port_path.should == "/usr/ports/shells/zsh"
+ allow(@provider).to receive(:port_name).and_return("zsh")
+ expect(@provider.port_path).to eq("/usr/ports/shells/zsh")
end
# Not happy with the form of these tests as they are far too closely tied to the implementation and so very fragile.
it "should return the ports candidate version when given a valid port path" do
- @provider.stub(:port_path).and_return("/usr/ports/shells/zsh")
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/shells/zsh")
make_v = OpenStruct.new(:stdout => "4.3.6\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("make -V PORTVERSION", {:cwd=>"/usr/ports/shells/zsh", :returns=>[0, 1], :env=>nil}).and_return(make_v)
- @provider.ports_candidate_version.should == "4.3.6"
+ expect(@provider).to receive(:shell_out!).with("make -V PORTVERSION", {:cwd=>"/usr/ports/shells/zsh", :returns=>[0, 1], :env=>nil}).and_return(make_v)
+ expect(@provider.ports_candidate_version).to eq("4.3.6")
end
it "should figure out the package name when we have ports" do
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(true)
- @provider.stub(:port_path).and_return("/usr/ports/shells/zsh")
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(true)
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/shells/zsh")
make_v = OpenStruct.new(:stdout => "zsh-4.3.6_7\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("make -V PKGNAME", {:cwd=>"/usr/ports/shells/zsh", :env=>nil, :returns=>[0, 1]}).and_return(make_v)
+ expect(@provider).to receive(:shell_out!).with("make -V PKGNAME", {:cwd=>"/usr/ports/shells/zsh", :env=>nil, :returns=>[0, 1]}).and_return(make_v)
#@provider.should_receive(:ports_makefile_variable_value).with("PKGNAME").and_return("zsh-4.3.6_7")
- @provider.package_name.should == "zsh"
+ expect(@provider.package_name).to eq("zsh")
end
end
@@ -121,13 +121,13 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@cmd_result = OpenStruct.new(:status => true)
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("zsh")
- @provider.stub(:latest_link_name).and_return("zsh")
- @provider.stub(:port_path).and_return("/usr/ports/shells/zsh")
+ allow(@provider).to receive(:package_name).and_return("zsh")
+ allow(@provider).to receive(:latest_link_name).and_return("zsh")
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/shells/zsh")
end
it "should run pkg_add -r with the package name" do
- @provider.should_receive(:shell_out!).with("pkg_add -r zsh", :env => nil).and_return(@cmd_result)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r zsh", :env => nil).and_return(@cmd_result)
@provider.install_package("zsh", "4.3.6_7")
end
end
@@ -142,15 +142,15 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
it "should figure out the port path from the package_name using whereis" do
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env=>nil).and_return(whereis)
- @provider.port_path.should == "/usr/ports/shells/zsh"
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env=>nil).and_return(whereis)
+ expect(@provider.port_path).to eq("/usr/ports/shells/zsh")
end
it "should use the package_name as the port path when it starts with /" do
new_resource = Chef::Resource::Package.new("/usr/ports/www/wordpress")
provider = Chef::Provider::Package::Freebsd::Pkg.new(new_resource, @run_context)
- provider.should_not_receive(:popen4)
- provider.port_path.should == "/usr/ports/www/wordpress"
+ expect(provider).not_to receive(:popen4)
+ expect(provider.port_path).to eq("/usr/ports/www/wordpress")
end
it "should use the package_name as a relative path from /usr/ports when it contains / but doesn't start with it" do
@@ -159,8 +159,8 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
# :cookbook_name => "xenoparadox")
new_resource = Chef::Resource::Package.new("www/wordpress")
provider = Chef::Provider::Package::Freebsd::Pkg.new(new_resource, @run_context)
- provider.should_not_receive(:popen4)
- provider.port_path.should == "/usr/ports/www/wordpress"
+ expect(provider).not_to receive(:popen4)
+ expect(provider.port_path).to eq("/usr/ports/www/wordpress")
end
end
@@ -170,15 +170,15 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("ruby-iconv")
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:port_path).and_return("/usr/ports/converters/ruby-iconv")
- @provider.stub(:package_name).and_return("ruby18-iconv")
- @provider.stub(:latest_link_name).and_return("ruby18-iconv")
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/converters/ruby-iconv")
+ allow(@provider).to receive(:package_name).and_return("ruby18-iconv")
+ allow(@provider).to receive(:latest_link_name).and_return("ruby18-iconv")
@install_result = OpenStruct.new(:status => true)
end
it "should run pkg_add -r with the package name" do
- @provider.should_receive(:shell_out!).with("pkg_add -r ruby18-iconv", :env => nil).and_return(@install_result)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r ruby18-iconv", :env => nil).and_return(@install_result)
@provider.install_package("ruby-iconv", "1.0")
end
end
@@ -189,11 +189,11 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@new_resource.version "4.3.6_7"
@current_resource.version "4.3.6_7"
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("zsh")
+ allow(@provider).to receive(:package_name).and_return("zsh")
end
it "should run pkg_delete with the package name and version" do
- @provider.should_receive(:shell_out!).with("pkg_delete zsh-4.3.6_7", :env => nil).and_return(@pkg_delete)
+ expect(@provider).to receive(:shell_out!).with("pkg_delete zsh-4.3.6_7", :env => nil).and_return(@pkg_delete)
@provider.remove_package("zsh", "4.3.6_7")
end
end
@@ -213,16 +213,16 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
it "should return the port path for a valid port name" do
whereis = OpenStruct.new(:stdout => "bonnie++: /usr/ports/benchmarks/bonnie++")
- @provider.should_receive(:shell_out!).with("whereis -s bonnie++", :env => nil).and_return(whereis)
- @provider.stub(:port_name).and_return("bonnie++")
- @provider.port_path.should == "/usr/ports/benchmarks/bonnie++"
+ expect(@provider).to receive(:shell_out!).with("whereis -s bonnie++", :env => nil).and_return(whereis)
+ allow(@provider).to receive(:port_name).and_return("bonnie++")
+ expect(@provider.port_path).to eq("/usr/ports/benchmarks/bonnie++")
end
it "should return the version number when it is installed" do
pkg_info = OpenStruct.new(:stdout => "bonnie++-1.96")
- @provider.should_receive(:shell_out!).with('pkg_info -E "bonnie++*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
- @provider.stub(:package_name).and_return("bonnie++")
- @provider.current_installed_version.should == "1.96"
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "bonnie++*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
+ allow(@provider).to receive(:package_name).and_return("bonnie++")
+ expect(@provider.current_installed_version).to eq("1.96")
end
end
@@ -249,11 +249,11 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("perl5.8")
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("perl")
- @provider.stub(:latest_link_name).and_return("perl")
+ allow(@provider).to receive(:package_name).and_return("perl")
+ allow(@provider).to receive(:latest_link_name).and_return("perl")
cmd = OpenStruct.new(:status => true)
- @provider.should_receive(:shell_out!).with("pkg_add -r perl", :env => nil).and_return(cmd)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r perl", :env => nil).and_return(cmd)
@provider.install_package("perl5.8", "5.8.8_1")
end
@@ -263,11 +263,11 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("mysql50-server")
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("mysql-server")
- @provider.stub(:latest_link_name).and_return("mysql50-server")
+ allow(@provider).to receive(:package_name).and_return("mysql-server")
+ allow(@provider).to receive(:latest_link_name).and_return("mysql50-server")
cmd = OpenStruct.new(:status => true)
- @provider.should_receive(:shell_out!).with("pkg_add -r mysql50-server", :env=>nil).and_return(cmd)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r mysql50-server", :env=>nil).and_return(cmd)
@provider.install_package("mysql50-server", "5.0.45_1")
end
end
diff --git a/spec/unit/provider/package/freebsd/pkgng_spec.rb b/spec/unit/provider/package/freebsd/pkgng_spec.rb
index c3837a251b..d314735bf0 100644
--- a/spec/unit/provider/package/freebsd/pkgng_spec.rb
+++ b/spec/unit/provider/package/freebsd/pkgng_spec.rb
@@ -33,46 +33,46 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "initialization" do
it "should create a current resource with the name of the new resource" do
- @provider.current_resource.is_a?(Chef::Resource::Package).should be_true
- @provider.current_resource.name.should == 'zsh'
+ expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_true
+ expect(@provider.current_resource.name).to eq('zsh')
end
end
describe "loading current resource" do
before(:each) do
- @provider.stub(:current_installed_version)
- @provider.stub(:candidate_version)
+ allow(@provider).to receive(:current_installed_version)
+ allow(@provider).to receive(:candidate_version)
end
it "should set the package name" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "zsh"
+ expect(@provider.current_resource.package_name).to eq("zsh")
end
it "should set the current version" do
- @provider.should_receive(:current_installed_version).and_return("5.0.2")
+ expect(@provider).to receive(:current_installed_version).and_return("5.0.2")
@provider.load_current_resource
- @provider.current_resource.version.should == "5.0.2"
+ expect(@provider.current_resource.version).to eq("5.0.2")
end
it "should set the candidate version" do
- @provider.should_receive(:candidate_version).and_return("5.0.5")
+ expect(@provider).to receive(:candidate_version).and_return("5.0.5")
@provider.load_current_resource
- @provider.instance_variable_get(:"@candidate_version").should == "5.0.5"
+ expect(@provider.instance_variable_get(:"@candidate_version")).to eq("5.0.5")
end
end
describe "determining current installed version" do
before(:each) do
- @provider.stub(:supports_pkgng?)
+ allow(@provider).to receive(:supports_pkgng?)
@pkg_info = OpenStruct.new(:stdout => "zsh-3.1.7\nVersion : 3.1.7\n")
end
it "should query pkg database" do
- @provider.should_receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ expect(@provider).to receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
end
@@ -80,20 +80,20 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "determining candidate version" do
it "should query repository" do
pkg_query = OpenStruct.new(:stdout => "5.0.5\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("pkg rquery '%v' zsh", :env => nil).and_return(pkg_query)
- @provider.candidate_version.should == "5.0.5"
+ expect(@provider).to receive(:shell_out!).with("pkg rquery '%v' zsh", :env => nil).and_return(pkg_query)
+ expect(@provider.candidate_version).to eq("5.0.5")
end
it "should query specified repository when given option" do
@provider.new_resource.options('-r LocalMirror') # This requires LocalMirror repo configuration.
pkg_query = OpenStruct.new(:stdout => "5.0.3\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("pkg rquery -r LocalMirror '%v' zsh", :env => nil).and_return(pkg_query)
- @provider.candidate_version.should == "5.0.3"
+ expect(@provider).to receive(:shell_out!).with("pkg rquery -r LocalMirror '%v' zsh", :env => nil).and_return(pkg_query)
+ expect(@provider.candidate_version).to eq("5.0.3")
end
it "should return candidate version from file when given a file" do
@provider.new_resource.source("/nas/pkg/repo/zsh-5.0.1.txz")
- @provider.candidate_version.should == "5.0.1"
+ expect(@provider.candidate_version).to eq("5.0.1")
end
end
@@ -105,7 +105,7 @@ describe Chef::Provider::Package::Freebsd::Port do
it "should handle package source from file" do
@provider.new_resource.source("/nas/pkg/repo/zsh-5.0.1.txz")
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg add /nas/pkg/repo/zsh-5.0.1.txz", :env => { 'LC_ALL' => nil }).
and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
@@ -113,21 +113,21 @@ describe Chef::Provider::Package::Freebsd::Port do
it "should handle package source over ftp or http" do
@provider.new_resource.source("http://repo.example.com/zsh-5.0.1.txz")
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg add http://repo.example.com/zsh-5.0.1.txz", :env => { 'LC_ALL' => nil }).
and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
end
it "should handle a package name" do
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg install -y zsh", :env => { 'LC_ALL' => nil }).and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
end
it "should handle a package name with a specified repo" do
@provider.new_resource.options('-r LocalMirror') # This requires LocalMirror repo configuration.
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg install -y -r LocalMirror zsh", :env => { 'LC_ALL' => nil }).and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
end
@@ -140,14 +140,14 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should call pkg delete" do
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg delete -y zsh-5.0.1", :env => nil).and_return(@install_result)
@provider.remove_package("zsh", "5.0.1")
end
it "should not include repo option in pkg delete" do
@provider.new_resource.options('-r LocalMirror') # This requires LocalMirror repo configuration.
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg delete -y zsh-5.0.1", :env => nil).and_return(@install_result)
@provider.remove_package("zsh", "5.0.1")
end
diff --git a/spec/unit/provider/package/freebsd/port_spec.rb b/spec/unit/provider/package/freebsd/port_spec.rb
index 8725e5440f..3085b16a92 100644
--- a/spec/unit/provider/package/freebsd/port_spec.rb
+++ b/spec/unit/provider/package/freebsd/port_spec.rb
@@ -33,33 +33,33 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "initialization" do
it "should create a current resource with the name of the new resource" do
- @provider.current_resource.is_a?(Chef::Resource::Package).should be_true
- @provider.current_resource.name.should == 'zsh'
+ expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_true
+ expect(@provider.current_resource.name).to eq('zsh')
end
end
describe "loading current resource" do
before(:each) do
- @provider.stub(:current_installed_version)
- @provider.stub(:candidate_version)
+ allow(@provider).to receive(:current_installed_version)
+ allow(@provider).to receive(:candidate_version)
end
it "should set the package name" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "zsh"
+ expect(@provider.current_resource.package_name).to eq("zsh")
end
it "should set the current version" do
- @provider.should_receive(:current_installed_version).and_return("5.0.2")
+ expect(@provider).to receive(:current_installed_version).and_return("5.0.2")
@provider.load_current_resource
- @provider.current_resource.version.should == "5.0.2"
+ expect(@provider.current_resource.version).to eq("5.0.2")
end
it "should set the candidate version" do
- @provider.should_receive(:candidate_version).and_return("5.0.5")
+ expect(@provider).to receive(:candidate_version).and_return("5.0.5")
@provider.load_current_resource
- @provider.instance_variable_get(:"@candidate_version").should == "5.0.5"
+ expect(@provider.instance_variable_get(:"@candidate_version")).to eq("5.0.5")
end
end
@@ -70,27 +70,27 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should check 'pkg_info' if system uses pkg_* tools" do
- @new_resource.stub(:supports_pkgng?)
- @new_resource.should_receive(:supports_pkgng?).and_return(false)
- @provider.should_receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ allow(@new_resource).to receive(:supports_pkgng?)
+ expect(@new_resource).to receive(:supports_pkgng?).and_return(false)
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
it "should check 'pkg info' if make supports WITH_PKGNG if freebsd version is < 1000017" do
pkg_enabled = OpenStruct.new(:stdout => "yes\n")
[1000016, 1000000, 901503, 902506, 802511].each do |__freebsd_version|
@node.automatic_attrs[:os_version] = __freebsd_version
- @new_resource.should_receive(:shell_out!).with('make -V WITH_PKGNG', :env => nil).and_return(pkg_enabled)
- @provider.should_receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ expect(@new_resource).to receive(:shell_out!).with('make -V WITH_PKGNG', :env => nil).and_return(pkg_enabled)
+ expect(@provider).to receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
end
it "should check 'pkg info' if the freebsd version is greater than or equal to 1000017" do
__freebsd_version = 1000017
@node.automatic_attrs[:os_version] = __freebsd_version
- @provider.should_receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ expect(@provider).to receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
end
@@ -100,15 +100,15 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should return candidate version if port exists" do
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(true)
- @provider.stub(:port_dir).and_return('/usr/ports/shells/zsh')
- @provider.should_receive(:shell_out!).with("make -V PORTVERSION", :cwd => "/usr/ports/shells/zsh", :env => nil, :returns => [0,1]).
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(true)
+ allow(@provider).to receive(:port_dir).and_return('/usr/ports/shells/zsh')
+ expect(@provider).to receive(:shell_out!).with("make -V PORTVERSION", :cwd => "/usr/ports/shells/zsh", :env => nil, :returns => [0,1]).
and_return(@port_version)
- @provider.candidate_version.should == "5.0.5"
+ expect(@provider.candidate_version).to eq("5.0.5")
end
it "should raise exception if ports tree not found" do
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(false)
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(false)
expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package, "Ports collection could not be found")
end
end
@@ -116,24 +116,24 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "determining port directory" do
it "should return name if package name is absolute path" do
- @provider.new_resource.stub(:package_name).and_return("/var/ports/shells/zsh")
- @provider.port_dir.should == "/var/ports/shells/zsh"
+ allow(@provider.new_resource).to receive(:package_name).and_return("/var/ports/shells/zsh")
+ expect(@provider.port_dir).to eq("/var/ports/shells/zsh")
end
it "should return full ports path given package name and category" do
- @provider.new_resource.stub(:package_name).and_return("shells/zsh")
- @provider.port_dir.should == "/usr/ports/shells/zsh"
+ allow(@provider.new_resource).to receive(:package_name).and_return("shells/zsh")
+ expect(@provider.port_dir).to eq("/usr/ports/shells/zsh")
end
it "should query system for path given just a name" do
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh\n")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
- @provider.port_dir.should == "/usr/ports/shells/zsh"
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
+ expect(@provider.port_dir).to eq("/usr/ports/shells/zsh")
end
it "should raise exception if not found" do
whereis = OpenStruct.new(:stdout => "zsh:\n")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
expect { @provider.port_dir }.to raise_error(Chef::Exceptions::Package, "Could not find port with the name zsh")
end
end
@@ -145,8 +145,8 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should run make install in port directory" do
- @provider.stub(:port_dir).and_return("/usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).
+ allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
+ expect(@provider).to receive(:shell_out!).
with("make -DBATCH install clean", :timeout => 1800, :cwd => "/usr/ports/shells/zsh", :env => nil).
and_return(@install_result)
@provider.install_package("zsh", "5.0.5")
@@ -160,8 +160,8 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should run make deinstall in port directory" do
- @provider.stub(:port_dir).and_return("/usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).
+ allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
+ expect(@provider).to receive(:shell_out!).
with("make deinstall", :timeout => 300, :cwd => "/usr/ports/shells/zsh", :env => nil).
and_return(@install_result)
@provider.remove_package("zsh", "5.0.5")
diff --git a/spec/unit/provider/package/ips_spec.rb b/spec/unit/provider/package/ips_spec.rb
index 07bca7f6d5..4e0afc46e9 100644
--- a/spec/unit/provider/package/ips_spec.rb
+++ b/spec/unit/provider/package/ips_spec.rb
@@ -28,7 +28,7 @@ describe Chef::Provider::Package::Ips do
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Package.new("crypto/gnupg", @run_context)
@current_resource = Chef::Resource::Package.new("crypto/gnupg", @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider = Chef::Provider::Package::Ips.new(@new_resource, @run_context)
end
@@ -65,30 +65,30 @@ PKG_STATUS
context "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
- @current_resource.package_name.should == @new_resource.package_name
+ expect(@current_resource.package_name).to eq(@new_resource.package_name)
end
it "should run pkg info with the package name" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
end
it "should set the installed version to nil on the current resource if package state is not installed" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
- @current_resource.version.should be_nil
+ expect(@current_resource.version).to be_nil
end
it "should set the installed version if package has one" do
@@ -108,28 +108,28 @@ Packaging Date: October 19, 2011 09:14:50 AM
Size: 8.07 MB
FMRI: pkg://solaris/crypto/gnupg@2.0.17,5.11-0.175.0.0.0.2.537:20111019T091450Z
INSTALLED
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
- @current_resource.version.should == "2.0.17"
+ expect(@current_resource.version).to eq("2.0.17")
end
it "should return the current resource" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
context "when installing a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
@provider.install_package("crypto/gnupg", "2.0.17")
end
it "should run pkg install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out).with("pkg --no-refresh install -q crypto/gnupg@2.0.17")
- @new_resource.stub(:options).and_return("--no-refresh")
+ expect(@provider).to receive(:shell_out).with("pkg --no-refresh install -q crypto/gnupg@2.0.17")
+ allow(@new_resource).to receive(:options).and_return("--no-refresh")
@provider.install_package("crypto/gnupg", "2.0.17")
end
@@ -147,11 +147,11 @@ Packaging Date: April 1, 2012 05:55:52 PM
Size: 2.57 MB
FMRI: pkg://omnios/security/sudo@1.8.4.1,5.11-0.151002:20120401T175552Z
PKG_STATUS
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
@provider.load_current_resource
- @current_resource.version.should be_nil
- @provider.candidate_version.should eql("1.8.4.1")
+ expect(@current_resource.version).to be_nil
+ expect(@provider.candidate_version).to eql("1.8.4.1")
end
it "should not upgrade the package if it is already installed" do
@@ -188,20 +188,20 @@ Packaging Date: October 19, 2011 09:14:50 AM
FMRI: pkg://solaris/crypto/gnupg@2.0.18,5.11-0.175.0.0.0.2.537:20111019T091450Z
REMOTE
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
@provider.load_current_resource
- @provider.should_receive(:install_package).exactly(0).times
+ expect(@provider).to receive(:install_package).exactly(0).times
@provider.action_install
end
context "when accept_license is true" do
before do
- @new_resource.stub(:accept_license).and_return(true)
+ allow(@new_resource).to receive(:accept_license).and_return(true)
end
it "should run pkg install with the --accept flag" do
- @provider.should_receive(:shell_out).with("pkg install -q --accept crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out).with("pkg install -q --accept crypto/gnupg@2.0.17")
@provider.install_package("crypto/gnupg", "2.0.17")
end
end
@@ -209,20 +209,20 @@ REMOTE
context "when upgrading a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
@provider.upgrade_package("crypto/gnupg", "2.0.17")
end
end
context "when uninstalling a package" do
it "should run pkg uninstall with the package name and version" do
- @provider.should_receive(:shell_out!).with("pkg uninstall -q crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out!).with("pkg uninstall -q crypto/gnupg@2.0.17")
@provider.remove_package("crypto/gnupg", "2.0.17")
end
it "should run pkg uninstall with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with("pkg --no-refresh uninstall -q crypto/gnupg@2.0.17")
- @new_resource.stub(:options).and_return("--no-refresh")
+ expect(@provider).to receive(:shell_out!).with("pkg --no-refresh uninstall -q crypto/gnupg@2.0.17")
+ allow(@new_resource).to receive(:options).and_return("--no-refresh")
@provider.remove_package("crypto/gnupg", "2.0.17")
end
end
diff --git a/spec/unit/provider/package/macports_spec.rb b/spec/unit/provider/package/macports_spec.rb
index 535a5d2459..23a8233c66 100644
--- a/spec/unit/provider/package/macports_spec.rb
+++ b/spec/unit/provider/package/macports_spec.rb
@@ -27,7 +27,7 @@ describe Chef::Provider::Package::Macports do
@current_resource = Chef::Resource::Package.new("zsh")
@provider = Chef::Provider::Package::Macports.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@status = double("Status", :exitstatus => 0)
@stdin = StringIO.new
@@ -38,91 +38,91 @@ describe Chef::Provider::Package::Macports do
describe "load_current_resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:current_installed_version).and_return(nil)
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.current_resource.name.should == "zsh"
+ expect(@provider.current_resource.name).to eq("zsh")
end
it "should create a current resource with the version if the package is installed" do
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
- @provider.should_receive(:current_installed_version).and_return("4.2.7")
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.candidate_version.should == "4.2.7"
+ expect(@provider.candidate_version).to eq("4.2.7")
end
it "should create a current resource with a nil version if the package is not installed" do
- @provider.should_receive(:current_installed_version).and_return(nil)
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should set a candidate version if one exists" do
- @provider.should_receive(:current_installed_version).and_return(nil)
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.candidate_version.should == "4.2.7"
+ expect(@provider.candidate_version).to eq("4.2.7")
end
end
describe "current_installed_version" do
it "should return the current version if the package is installed" do
- @stdout.should_receive(:read).and_return(<<EOF
+ expect(@stdout).to receive(:read).and_return(<<EOF
The following ports are currently installed:
openssl @0.9.8k_0 (active)
EOF
)
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.current_installed_version.should == "0.9.8k_0"
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.current_installed_version).to eq("0.9.8k_0")
end
it "should return nil if a package is not currently installed" do
- @stdout.should_receive(:read).and_return(" \n")
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.current_installed_version.should be_nil
+ expect(@stdout).to receive(:read).and_return(" \n")
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.current_installed_version).to be_nil
end
end
describe "macports_candidate_version" do
it "should return the latest available version of a given package" do
- @stdout.should_receive(:read).and_return("version: 4.2.7\n")
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.macports_candidate_version.should == "4.2.7"
+ expect(@stdout).to receive(:read).and_return("version: 4.2.7\n")
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.macports_candidate_version).to eq("4.2.7")
end
it "should return nil if there is no version for a given package" do
- @stdout.should_receive(:read).and_return("Error: port fadsfadsfads not found\n")
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.macports_candidate_version.should be_nil
+ expect(@stdout).to receive(:read).and_return("Error: port fadsfadsfads not found\n")
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.macports_candidate_version).to be_nil
end
end
describe "install_package" do
it "should run the port install command with the correct version" do
- @current_resource.should_receive(:version).and_return("4.1.6")
+ expect(@current_resource).to receive(:version).and_return("4.1.6")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("port install zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port install zsh @4.2.7")
@provider.install_package("zsh", "4.2.7")
end
it "should not do anything if a package already exists with the same version" do
- @current_resource.should_receive(:version).and_return("4.2.7")
+ expect(@current_resource).to receive(:version).and_return("4.2.7")
@provider.current_resource = @current_resource
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.install_package("zsh", "4.2.7")
end
it "should add options to the port command when specified" do
- @current_resource.should_receive(:version).and_return("4.1.6")
+ expect(@current_resource).to receive(:version).and_return("4.1.6")
@provider.current_resource = @current_resource
- @new_resource.stub(:options).and_return("-f")
- @provider.should_receive(:shell_out!).with("port -f install zsh @4.2.7")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@provider).to receive(:shell_out!).with("port -f install zsh @4.2.7")
@provider.install_package("zsh", "4.2.7")
end
@@ -130,72 +130,72 @@ EOF
describe "purge_package" do
it "should run the port uninstall command with the correct version" do
- @provider.should_receive(:shell_out!).with("port uninstall zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port uninstall zsh @4.2.7")
@provider.purge_package("zsh", "4.2.7")
end
it "should purge the currently active version if no explicit version is passed in" do
- @provider.should_receive(:shell_out!).with("port uninstall zsh")
+ expect(@provider).to receive(:shell_out!).with("port uninstall zsh")
@provider.purge_package("zsh", nil)
end
it "should add options to the port command when specified" do
- @new_resource.stub(:options).and_return("-f")
- @provider.should_receive(:shell_out!).with("port -f uninstall zsh @4.2.7")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@provider).to receive(:shell_out!).with("port -f uninstall zsh @4.2.7")
@provider.purge_package("zsh", "4.2.7")
end
end
describe "remove_package" do
it "should run the port deactivate command with the correct version" do
- @provider.should_receive(:shell_out!).with("port deactivate zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port deactivate zsh @4.2.7")
@provider.remove_package("zsh", "4.2.7")
end
it "should remove the currently active version if no explicit version is passed in" do
- @provider.should_receive(:shell_out!).with("port deactivate zsh")
+ expect(@provider).to receive(:shell_out!).with("port deactivate zsh")
@provider.remove_package("zsh", nil)
end
it "should add options to the port command when specified" do
- @new_resource.stub(:options).and_return("-f")
- @provider.should_receive(:shell_out!).with("port -f deactivate zsh @4.2.7")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@provider).to receive(:shell_out!).with("port -f deactivate zsh @4.2.7")
@provider.remove_package("zsh", "4.2.7")
end
end
describe "upgrade_package" do
it "should run the port upgrade command with the correct version" do
- @current_resource.should_receive(:version).at_least(:once).and_return("4.1.6")
+ expect(@current_resource).to receive(:version).at_least(:once).and_return("4.1.6")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("port upgrade zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port upgrade zsh @4.2.7")
@provider.upgrade_package("zsh", "4.2.7")
end
it "should not run the port upgrade command if the version is already installed" do
- @current_resource.should_receive(:version).at_least(:once).and_return("4.2.7")
+ expect(@current_resource).to receive(:version).at_least(:once).and_return("4.2.7")
@provider.current_resource = @current_resource
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.upgrade_package("zsh", "4.2.7")
end
it "should call install_package if the package isn't currently installed" do
- @current_resource.should_receive(:version).at_least(:once).and_return(nil)
+ expect(@current_resource).to receive(:version).at_least(:once).and_return(nil)
@provider.current_resource = @current_resource
- @provider.should_receive(:install_package).and_return(true)
+ expect(@provider).to receive(:install_package).and_return(true)
@provider.upgrade_package("zsh", "4.2.7")
end
it "should add options to the port command when specified" do
- @new_resource.stub(:options).and_return("-f")
- @current_resource.should_receive(:version).at_least(:once).and_return("4.1.6")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@current_resource).to receive(:version).at_least(:once).and_return("4.1.6")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("port -f upgrade zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port -f upgrade zsh @4.2.7")
@provider.upgrade_package("zsh", "4.2.7")
end
diff --git a/spec/unit/provider/package/pacman_spec.rb b/spec/unit/provider/package/pacman_spec.rb
index ed10513350..9fa5f9667c 100644
--- a/spec/unit/provider/package/pacman_spec.rb
+++ b/spec/unit/provider/package/pacman_spec.rb
@@ -28,8 +28,8 @@ describe Chef::Provider::Package::Pacman do
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Pacman.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
- @provider.stub(:popen4).and_return(@status)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
+ allow(@provider).to receive(:popen4).and_return(@status)
@stdin = StringIO.new
@stdout = StringIO.new(<<-ERR)
error: package "nano" not found
@@ -40,29 +40,29 @@ ERR
describe "when determining the current package state" do
it "should create a current resource with the name of the new_resource" do
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should run pacman query with the package name" do
- @provider.should_receive(:popen4).with("pacman -Qi #{@new_resource.package_name}").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pacman -Qi #{@new_resource.package_name}").and_return(@status)
@provider.load_current_resource
end
it "should read stdout on pacman" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @stdout.should_receive(:each).and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@stdout).to receive(:each).and_return(true)
@provider.load_current_resource
end
it "should set the installed version to nil on the current resource if pacman installed version not exists" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @current_resource.should_receive(:version).with(nil).and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@current_resource).to receive(:version).with(nil).and_return(true)
@provider.load_current_resource
end
@@ -88,16 +88,16 @@ Install Reason : Explicitly installed
Install Script : Yes
Description : Pico editor clone with enhancements
PACMAN
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @current_resource.version.should == "2.2.2-1"
+ expect(@current_resource.version).to eq("2.2.2-1")
end
it "should set the candidate version if pacman has one" do
- @stdout.stub(:each).and_yield("core nano 2.2.3-1")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@stdout).to receive(:each).and_yield("core nano 2.2.3-1")
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.candidate_version.should eql("2.2.3-1")
+ expect(@provider.candidate_version).to eql("2.2.3-1")
end
it "should use pacman.conf to determine valid repo names for package versions" do
@@ -119,45 +119,45 @@ Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
PACMAN_CONF
- ::File.stub(:exists?).with("/etc/pacman.conf").and_return(true)
- ::File.stub(:read).with("/etc/pacman.conf").and_return(@pacman_conf)
- @stdout.stub(:each).and_yield("customrepo nano 1.2.3-4")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(::File).to receive(:exists?).with("/etc/pacman.conf").and_return(true)
+ allow(::File).to receive(:read).with("/etc/pacman.conf").and_return(@pacman_conf)
+ allow(@stdout).to receive(:each).and_yield("customrepo nano 1.2.3-4")
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.candidate_version.should eql("1.2.3-4")
+ expect(@provider.candidate_version).to eql("1.2.3-4")
end
it "should raise an exception if pacman fails" do
- @status.should_receive(:exitstatus).and_return(2)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect(@status).to receive(:exitstatus).and_return(2)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should not raise an exception if pacman succeeds" do
- @status.should_receive(:exitstatus).and_return(0)
- lambda { @provider.load_current_resource }.should_not raise_error
+ expect(@status).to receive(:exitstatus).and_return(0)
+ expect { @provider.load_current_resource }.not_to raise_error
end
it "should raise an exception if pacman does not return a candidate version" do
- @stdout.stub(:each).and_yield("")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@stdout).to receive(:each).and_yield("")
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
it "should return the current resouce" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
describe Chef::Provider::Package::Pacman, "install_package" do
it "should run pacman install with the package name and version" do
- @provider.should_receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar nano")
+ expect(@provider).to receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar nano")
@provider.install_package("nano", "1.0")
end
it "should run pacman install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar --debug nano")
- @new_resource.stub(:options).and_return("--debug")
+ expect(@provider).to receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar --debug nano")
+ allow(@new_resource).to receive(:options).and_return("--debug")
@provider.install_package("nano", "1.0")
end
@@ -165,20 +165,20 @@ PACMAN_CONF
describe Chef::Provider::Package::Pacman, "upgrade_package" do
it "should run install_package with the name and version" do
- @provider.should_receive(:install_package).with("nano", "1.0")
+ expect(@provider).to receive(:install_package).with("nano", "1.0")
@provider.upgrade_package("nano", "1.0")
end
end
describe Chef::Provider::Package::Pacman, "remove_package" do
it "should run pacman remove with the package name" do
- @provider.should_receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar nano")
+ expect(@provider).to receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar nano")
@provider.remove_package("nano", "1.0")
end
it "should run pacman remove with the package name and options if specified" do
- @provider.should_receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar --debug nano")
- @new_resource.stub(:options).and_return("--debug")
+ expect(@provider).to receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar --debug nano")
+ allow(@new_resource).to receive(:options).and_return("--debug")
@provider.remove_package("nano", "1.0")
end
@@ -186,7 +186,7 @@ PACMAN_CONF
describe Chef::Provider::Package::Pacman, "purge_package" do
it "should run remove_package with the name and version" do
- @provider.should_receive(:remove_package).with("nano", "1.0")
+ expect(@provider).to receive(:remove_package).with("nano", "1.0")
@provider.purge_package("nano", "1.0")
end
diff --git a/spec/unit/provider/package/paludis_spec.rb b/spec/unit/provider/package/paludis_spec.rb
index 8387bb1252..4ed5dfc003 100644
--- a/spec/unit/provider/package/paludis_spec.rb
+++ b/spec/unit/provider/package/paludis_spec.rb
@@ -28,7 +28,7 @@ describe Chef::Provider::Package::Paludis do
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Package.new("net/ntp")
@current_resource = Chef::Resource::Package.new("net/ntp")
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider = Chef::Provider::Package::Paludis.new(@new_resource, @run_context)
@stdin = StringIO.new
@@ -47,19 +47,19 @@ PKG_STATUS
context "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should run pkg info with the package name" do
- @provider.should_receive(:shell_out!).with("cave -L warning print-ids -M none -m \"#{@new_resource.package_name}\" -f \"%c/%p %v %r\n\"").and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).with("cave -L warning print-ids -M none -m \"#{@new_resource.package_name}\" -f \"%c/%p %v %r\n\"").and_return(@shell_out)
@provider.load_current_resource
end
@@ -72,28 +72,28 @@ user/ntp 0 accounts
user/ntp 0 installed-accounts
net/ntp 4.2.6_p5-r1 installed
INSTALLED
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @current_resource.version.should == "4.2.6_p5-r1"
- @provider.candidate_version.should eql("4.2.6_p5-r2")
+ expect(@current_resource.version).to eq("4.2.6_p5-r1")
+ expect(@provider.candidate_version).to eql("4.2.6_p5-r2")
end
it "should return the current resource" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
context "when installing a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
@provider.install_package("net/ntp", "4.2.6_p5-r2")
end
it "should run pkg install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x --preserve-world \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
- @new_resource.stub(:options).and_return("--preserve-world")
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x --preserve-world \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
+ allow(@new_resource).to receive(:options).and_return("--preserve-world")
@provider.install_package("net/ntp", "4.2.6_p5-r2")
end
@@ -102,7 +102,7 @@ INSTALLED
sys-process/lsof 4.87 arbor
sys-process/lsof 4.87 x86_64
PKG_STATUS
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x \"=sys-process/lsof-4.87\"", {:timeout=>@new_resource.timeout})
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x \"=sys-process/lsof-4.87\"", {:timeout=>@new_resource.timeout})
@provider.install_package("sys-process/lsof", "4.87")
end
@@ -111,23 +111,23 @@ PKG_STATUS
sys-process/lsof 4.87 arbor
sys-process/lsof 4.87 x86_64
PKG_STATUS
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @current_resource.version.should be_nil
- @provider.candidate_version.should eql("4.87")
+ expect(@current_resource.version).to be_nil
+ expect(@provider.candidate_version).to eql("4.87")
end
end
context "when upgrading a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
@provider.upgrade_package("net/ntp", "4.2.6_p5-r2")
end
end
context "when uninstalling a package" do
it "should run pkg uninstall with the package name and version" do
- @provider.should_receive(:shell_out!).with("cave -L warning uninstall -x \"=net/ntp-4.2.6_p5-r2\"")
+ expect(@provider).to receive(:shell_out!).with("cave -L warning uninstall -x \"=net/ntp-4.2.6_p5-r2\"")
@provider.remove_package("net/ntp", "4.2.6_p5-r2")
end
diff --git a/spec/unit/provider/package/portage_spec.rb b/spec/unit/provider/package/portage_spec.rb
index 570f123168..f83eda45de 100644
--- a/spec/unit/provider/package/portage_spec.rb
+++ b/spec/unit/provider/package/portage_spec.rb
@@ -27,73 +27,73 @@ describe Chef::Provider::Package::Portage, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("dev-util/git")
@provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
end
describe "when determining the current state of the package" do
it "should create a current resource with the name of new_resource" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resource package name to the new resource package name" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should return a current resource with the correct version if the package is found" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
@provider.load_current_resource
- @provider.current_resource.version.should == "1.0.0"
+ expect(@provider.current_resource.version).to eq("1.0.0")
end
it "should return a current resource with the correct version if the package is found with revision" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0-r1"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0-r1"])
@provider.load_current_resource
- @provider.current_resource.version.should == "1.0.0-r1"
+ expect(@provider.current_resource.version).to eq("1.0.0-r1")
end
it "should return a current resource with a nil version if the package is not found" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should return a package name match from /var/db/pkg/* if a category isn't specified and a match is found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should == "1.0.0"
+ expect(@provider.current_resource.version).to eq("1.0.0")
end
it "should return a current resource with a nil version if a category isn't specified and a name match from /var/db/pkg/* is not found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should throw an exception if a category isn't specified and multiple packages are found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should return a current resource with a nil version if a category is specified and multiple packages are found" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should return a current resource with a nil version if a category is not specified and multiple packages from the same category are found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/dev-util/git-1.0.1"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/dev-util/git-1.0.1"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
@@ -102,14 +102,14 @@ describe Chef::Provider::Package::Portage, "load_current_resource" do
describe Chef::Provider::Package::Portage, "candidate_version" do
it "should return the candidate_version variable if already set" do
@provider.candidate_version = "1.0.0"
- @provider.should_not_receive(:popen4)
+ expect(@provider).not_to receive(:popen4)
@provider.candidate_version
end
it "should throw an exception if the exitstatus is not 0" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
it "should find the candidate_version if a category is specifed and there are no duplicates" do
@@ -144,8 +144,8 @@ Searching...
EOF
@status = double("Status", :exitstatus => 0)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- @provider.candidate_version.should == "1.6.0.6"
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect(@provider.candidate_version).to eq("1.6.0.6")
end
it "should find the candidate_version if a category is not specifed and there are no duplicates" do
@@ -181,8 +181,8 @@ EOF
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- @provider.candidate_version.should == "1.6.0.6"
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect(@provider.candidate_version).to eq("1.6.0.6")
end
it "should throw an exception if a category is not specified and there are duplicates" do
@@ -226,8 +226,8 @@ EOF
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
it "should find the candidate_version if a category is specifed and there are category duplicates" do
@@ -271,25 +271,25 @@ EOF
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- @provider.candidate_version.should == "1.6.0.6"
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect(@provider.candidate_version).to eq("1.6.0.6")
end
end
describe Chef::Provider::Package::Portage, "install_package" do
it "should install a normally versioned package using portage" do
- @provider.should_receive(:shell_out!).with("emerge -g --color n --nospinner --quiet =dev-util/git-1.0.0")
+ expect(@provider).to receive(:shell_out!).with("emerge -g --color n --nospinner --quiet =dev-util/git-1.0.0")
@provider.install_package("dev-util/git", "1.0.0")
end
it "should install a tilde versioned package using portage" do
- @provider.should_receive(:shell_out!).with("emerge -g --color n --nospinner --quiet ~dev-util/git-1.0.0")
+ expect(@provider).to receive(:shell_out!).with("emerge -g --color n --nospinner --quiet ~dev-util/git-1.0.0")
@provider.install_package("dev-util/git", "~1.0.0")
end
it "should add options to the emerge command when specified" do
- @provider.should_receive(:shell_out!).with("emerge -g --color n --nospinner --quiet --oneshot =dev-util/git-1.0.0")
- @new_resource.stub(:options).and_return("--oneshot")
+ expect(@provider).to receive(:shell_out!).with("emerge -g --color n --nospinner --quiet --oneshot =dev-util/git-1.0.0")
+ allow(@new_resource).to receive(:options).and_return("--oneshot")
@provider.install_package("dev-util/git", "1.0.0")
end
@@ -297,12 +297,12 @@ EOF
describe Chef::Provider::Package::Portage, "remove_package" do
it "should un-emerge the package with no version specified" do
- @provider.should_receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet dev-util/git")
+ expect(@provider).to receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet dev-util/git")
@provider.remove_package("dev-util/git", nil)
end
it "should un-emerge the package with a version specified" do
- @provider.should_receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet =dev-util/git-1.0.0")
+ expect(@provider).to receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet =dev-util/git-1.0.0")
@provider.remove_package("dev-util/git", "1.0.0")
end
end
diff --git a/spec/unit/provider/package/rpm_spec.rb b/spec/unit/provider/package/rpm_spec.rb
index 9a96d829b8..2aceee59a5 100644
--- a/spec/unit/provider/package/rpm_spec.rb
+++ b/spec/unit/provider/package/rpm_spec.rb
@@ -30,55 +30,55 @@ describe Chef::Provider::Package::Rpm do
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
@status = double("Status", :exitstatus => 0)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "when determining the current state of the package" do
it "should create a current resource with the name of new_resource" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.name.should == "ImageMagick-c++"
+ expect(@provider.current_resource.name).to eq("ImageMagick-c++")
end
it "should set the current reource package name to the new resource package name" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == 'ImageMagick-c++'
+ expect(@provider.current_resource.package_name).to eq('ImageMagick-c++')
end
it "should raise an exception if a source is supplied but not found" do
- ::File.stub(:exists?).and_return(false)
- lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
+ allow(::File).to receive(:exists?).and_return(false)
+ expect { @provider.run_action(:any) }.to raise_error(Chef::Exceptions::Package)
end
it "should get the source package version from rpm if provided" do
@stdout = StringIO.new("ImageMagick-c++ 6.5.4.7-7.el6_5")
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "ImageMagick-c++"
- @provider.new_resource.version.should == "6.5.4.7-7.el6_5"
+ expect(@provider.current_resource.package_name).to eq("ImageMagick-c++")
+ expect(@provider.new_resource.version).to eq("6.5.4.7-7.el6_5")
end
it "should return the current version installed if found by rpm" do
@stdout = StringIO.new("ImageMagick-c++ 6.5.4.7-7.el6_5")
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_return(@status)
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "6.5.4.7-7.el6_5"
+ expect(@provider.current_resource.version).to eq("6.5.4.7-7.el6_5")
end
it "should raise an exception if the source is not set but we are installing" do
new_resource = Chef::Resource::Package.new("ImageMagick-c++")
provider = Chef::Provider::Package::Rpm.new(new_resource, @run_context)
- lambda { provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
+ expect { provider.run_action(:any) }.to raise_error(Chef::Exceptions::Package)
end
it "should raise an exception if rpm fails to run" do
status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(status)
- lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(status)
+ expect { @provider.run_action(:any) }.to raise_error(Chef::Exceptions::Package)
end
it "should not detect the package name as version when not installed" do
@@ -87,10 +87,10 @@ describe Chef::Provider::Package::Rpm do
@new_resource = Chef::Resource::Package.new("openssh-askpass")
@new_resource.source 'openssh-askpass'
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
@@ -102,54 +102,54 @@ describe Chef::Provider::Package::Rpm do
describe "when installing or upgrading" do
it "should run rpm -i with the package source to install" do
- @provider.should_receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.install_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
it "should run rpm -U with the package source to upgrade" do
@current_resource.version("21.4-19.el5")
- @provider.should_receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.upgrade_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
it "should install package if missing and set to upgrade" do
@current_resource.version("ImageMagick-c++")
- @provider.should_receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.upgrade_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
it "should install from a path when the package is a path and the source is nil" do
@new_resource = Chef::Resource::Package.new("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm"
+ expect(@new_resource.source).to eq("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@current_resource = Chef::Resource::Package.new("ImageMagick-c++")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.install_package("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm", "6.5.4.7-7.el6_5")
end
it "should uprgrade from a path when the package is a path and the source is nil" do
@new_resource = Chef::Resource::Package.new("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm"
+ expect(@new_resource.source).to eq("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@current_resource = Chef::Resource::Package.new("ImageMagick-c++")
@current_resource.version("21.4-19.el5")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.upgrade_package("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm", "6.5.4.7-7.el6_5")
end
it "installs with custom options specified in the resource" do
@provider.candidate_version = '11'
@new_resource.options("--dbpath /var/lib/rpm")
- @provider.should_receive(:shell_out!).with("rpm --dbpath /var/lib/rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm --dbpath /var/lib/rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.install_package(@new_resource.name, @provider.candidate_version)
end
end
describe "when removing the package" do
it "should run rpm -e to remove the package" do
- @provider.should_receive(:shell_out!).with("rpm -e ImageMagick-c++-6.5.4.7-7.el6_5")
+ expect(@provider).to receive(:shell_out!).with("rpm -e ImageMagick-c++-6.5.4.7-7.el6_5")
@provider.remove_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
end
diff --git a/spec/unit/provider/package/rubygems_spec.rb b/spec/unit/provider/package/rubygems_spec.rb
index f4d0cebf62..bce0054220 100644
--- a/spec/unit/provider/package/rubygems_spec.rb
+++ b/spec/unit/provider/package/rubygems_spec.rb
@@ -39,23 +39,23 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
end
it "determines the gem paths from the in memory rubygems" do
- @gem_env.gem_paths.should == Gem.path
+ expect(@gem_env.gem_paths).to eq(Gem.path)
end
it "determines the installed versions of gems from Gem.source_index" do
gems = [gemspec('rspec-core', Gem::Version.new('1.2.9')), gemspec('rspec-core', Gem::Version.new('1.3.0'))]
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
- Gem::Specification.should_receive(:find_all_by_name).with('rspec-core', Gem::Dependency.new('rspec-core').requirement).and_return(gems)
+ expect(Gem::Specification).to receive(:find_all_by_name).with('rspec-core', Gem::Dependency.new('rspec-core').requirement).and_return(gems)
else
- Gem.source_index.should_receive(:search).with(Gem::Dependency.new('rspec-core', nil)).and_return(gems)
+ expect(Gem.source_index).to receive(:search).with(Gem::Dependency.new('rspec-core', nil)).and_return(gems)
end
- @gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil)).should == gems
+ expect(@gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil))).to eq(gems)
end
it "determines the installed versions of gems from the source index (part2: the unmockening)" do
expected = ['rspec-core', Gem::Version.new(RSpec::Core::Version::STRING)]
actual = @gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil)).map { |spec| [spec.name, spec.version] }
- actual.should include(expected)
+ expect(actual).to include(expected)
end
it "yields to a block with an alternate source list set" do
@@ -68,8 +68,8 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
end
rescue RuntimeError
end
- sources_in_block.should == %w{http://gems.example.org}
- Gem.sources.should == normal_sources
+ expect(sources_in_block).to eq(%w{http://gems.example.org})
+ expect(Gem.sources).to eq(normal_sources)
end
it "it doesnt alter the gem sources if none are set" do
@@ -82,29 +82,29 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
end
rescue RuntimeError
end
- sources_in_block.should == normal_sources
- Gem.sources.should == normal_sources
+ expect(sources_in_block).to eq(normal_sources)
+ expect(Gem.sources).to eq(normal_sources)
end
it "finds a matching gem candidate version" do
dep = Gem::Dependency.new('rspec', '>= 0')
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
latest = [[gemspec("rspec", Gem::Version.new("1.3.0")), "http://rubygems.org/"]]
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(latest)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0')).should == Gem::Version.new('1.3.0')
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(latest)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0'))).to eq(Gem::Version.new('1.3.0'))
end
it "finds a matching gem candidate version on rubygems 2.0.0+" do
dep = Gem::Dependency.new('rspec', '>= 0')
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
best_gem = double("best gem match", :spec => gemspec("rspec", Gem::Version.new("1.3.0")), :source => "https://rubygems.org")
available_set = double("Gem::AvailableSet test double")
- available_set.should_receive(:pick_best!)
- available_set.should_receive(:set).and_return([best_gem])
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(available_set)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0')).should == Gem::Version.new('1.3.0')
+ expect(available_set).to receive(:pick_best!)
+ expect(available_set).to receive(:set).and_return([best_gem])
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(available_set)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0'))).to eq(Gem::Version.new('1.3.0'))
end
context "when rubygems was upgraded from 1.8->2.0" do
@@ -121,7 +121,7 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
Gem.const_set(:Format, Object.new)
@remove_gem_format = true
end
- Gem::Package.stub(:respond_to?).with(:open).and_return(false)
+ allow(Gem::Package).to receive(:respond_to?).with(:open).and_return(false)
end
after do
@@ -132,8 +132,8 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
it "finds a matching gem candidate version on rubygems 2.0+ with some rubygems 1.8 code loaded" do
package = double("Gem::Package", :spec => "a gemspec from package")
- Gem::Package.should_receive(:new).with("/path/to/package.gem").and_return(package)
- @gem_env.spec_from_file("/path/to/package.gem").should == "a gemspec from package"
+ expect(Gem::Package).to receive(:new).with("/path/to/package.gem").and_return(package)
+ expect(@gem_env.spec_from_file("/path/to/package.gem")).to eq("a gemspec from package")
end
end
@@ -142,54 +142,54 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
dep = Gem::Dependency.new('rspec', '>= 0')
latest = []
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(latest)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0')).should be_nil
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(latest)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0'))).to be_nil
end
it "finds a matching candidate version from a .gem file when the path to the gem is supplied" do
location = CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem'
- @gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0'), location).should == Gem::Version.new('0.1.0')
- @gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0.2.0'), location).should be_nil
+ expect(@gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0'), location)).to eq(Gem::Version.new('0.1.0'))
+ expect(@gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0.2.0'), location)).to be_nil
end
it "finds a matching gem from a specific gemserver when explicit sources are given" do
dep = Gem::Dependency.new('rspec', '>= 0')
latest = [[gemspec("rspec", Gem::Version.new("1.3.0")), "http://rubygems.org/"]]
- @gem_env.should_receive(:with_gem_sources).with('http://gems.example.com').and_yield
+ expect(@gem_env).to receive(:with_gem_sources).with('http://gems.example.com').and_yield
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(latest)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>=0'), 'http://gems.example.com').should == Gem::Version.new('1.3.0')
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(latest)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>=0'), 'http://gems.example.com')).to eq(Gem::Version.new('1.3.0'))
end
it "installs a gem with a hash of options for the dependency installer" do
dep_installer = Gem::DependencyInstaller.new
- @gem_env.should_receive(:dependency_installer).with(:install_dir => '/foo/bar').and_return(dep_installer)
- @gem_env.should_receive(:with_gem_sources).with('http://gems.example.com').and_yield
- dep_installer.should_receive(:install).with(Gem::Dependency.new('rspec', '>= 0'))
+ expect(@gem_env).to receive(:dependency_installer).with(:install_dir => '/foo/bar').and_return(dep_installer)
+ expect(@gem_env).to receive(:with_gem_sources).with('http://gems.example.com').and_yield
+ expect(dep_installer).to receive(:install).with(Gem::Dependency.new('rspec', '>= 0'))
@gem_env.install(Gem::Dependency.new('rspec', '>= 0'), :install_dir => '/foo/bar', :sources => ['http://gems.example.com'])
end
it "builds an uninstaller for a gem with options set to avoid requiring user input" do
# default options for uninstaller should be:
# :ignore => true, :executables => true
- Gem::Uninstaller.should_receive(:new).with('rspec', :ignore => true, :executables => true)
+ expect(Gem::Uninstaller).to receive(:new).with('rspec', :ignore => true, :executables => true)
@gem_env.uninstaller('rspec')
end
it "uninstalls all versions of a gem" do
uninstaller = double('gem uninstaller')
- uninstaller.should_receive(:uninstall)
- @gem_env.should_receive(:uninstaller).with('rspec', :all => true).and_return(uninstaller)
+ expect(uninstaller).to receive(:uninstall)
+ expect(@gem_env).to receive(:uninstaller).with('rspec', :all => true).and_return(uninstaller)
@gem_env.uninstall('rspec')
end
it "uninstalls a specific version of a gem" do
uninstaller = double('gem uninstaller')
- uninstaller.should_receive(:uninstall)
- @gem_env.should_receive(:uninstaller).with('rspec', :version => '1.2.3').and_return(uninstaller)
+ expect(uninstaller).to receive(:uninstall)
+ expect(@gem_env).to receive(:uninstaller).with('rspec', :version => '1.2.3').and_return(uninstaller)
@gem_env.uninstall('rspec', '1.2.3')
end
@@ -207,35 +207,35 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
it "determines the gem paths from shelling out to gem env" do
gem_env_output = ['/path/to/gems', '/another/path/to/gems'].join(File::PATH_SEPARATOR)
shell_out_result = OpenStruct.new(:stdout => gem_env_output)
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
- @gem_env.gem_paths.should == ['/path/to/gems', '/another/path/to/gems']
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
+ expect(@gem_env.gem_paths).to eq(['/path/to/gems', '/another/path/to/gems'])
end
it "caches the gempaths by gem_binary" do
gem_env_output = ['/path/to/gems', '/another/path/to/gems'].join(File::PATH_SEPARATOR)
shell_out_result = OpenStruct.new(:stdout => gem_env_output)
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
expected = ['/path/to/gems', '/another/path/to/gems']
- @gem_env.gem_paths.should == ['/path/to/gems', '/another/path/to/gems']
- Chef::Provider::Package::Rubygems::AlternateGemEnvironment.gempath_cache['/usr/weird/bin/gem'].should == expected
+ expect(@gem_env.gem_paths).to eq(['/path/to/gems', '/another/path/to/gems'])
+ expect(Chef::Provider::Package::Rubygems::AlternateGemEnvironment.gempath_cache['/usr/weird/bin/gem']).to eq(expected)
end
it "uses the cached result for gem paths when available" do
gem_env_output = ['/path/to/gems', '/another/path/to/gems'].join(File::PATH_SEPARATOR)
shell_out_result = OpenStruct.new(:stdout => gem_env_output)
- @gem_env.should_not_receive(:shell_out!)
+ expect(@gem_env).not_to receive(:shell_out!)
expected = ['/path/to/gems', '/another/path/to/gems']
Chef::Provider::Package::Rubygems::AlternateGemEnvironment.gempath_cache['/usr/weird/bin/gem']= expected
- @gem_env.gem_paths.should == ['/path/to/gems', '/another/path/to/gems']
+ expect(@gem_env.gem_paths).to eq(['/path/to/gems', '/another/path/to/gems'])
end
it "builds the gems source index from the gem paths" do
- @gem_env.stub(:gem_paths).and_return(['/path/to/gems', '/another/path/to/gems'])
+ allow(@gem_env).to receive(:gem_paths).and_return(['/path/to/gems', '/another/path/to/gems'])
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
@gem_env.gem_specification
- Gem::Specification.dirs.should == [ '/path/to/gems/specifications', '/another/path/to/gems/specifications' ]
+ expect(Gem::Specification.dirs).to eq([ '/path/to/gems/specifications', '/another/path/to/gems/specifications' ])
else
- Gem::SourceIndex.should_receive(:from_gems_in).with('/path/to/gems/specifications', '/another/path/to/gems/specifications')
+ expect(Gem::SourceIndex).to receive(:from_gems_in).with('/path/to/gems/specifications', '/another/path/to/gems/specifications')
@gem_env.gem_source_index
end
end
@@ -244,17 +244,17 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
gems = [gemspec('rspec', Gem::Version.new('1.2.9')), gemspec('rspec', Gem::Version.new('1.3.0'))]
rspec_dep = Gem::Dependency.new('rspec', nil)
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
- @gem_env.stub(:gem_specification).and_return(Gem::Specification)
- @gem_env.gem_specification.should_receive(:find_all_by_name).with(rspec_dep.name, rspec_dep.requirement).and_return(gems)
+ allow(@gem_env).to receive(:gem_specification).and_return(Gem::Specification)
+ expect(@gem_env.gem_specification).to receive(:find_all_by_name).with(rspec_dep.name, rspec_dep.requirement).and_return(gems)
else
- @gem_env.stub(:gem_source_index).and_return(Gem.source_index)
- @gem_env.gem_source_index.should_receive(:search).with(rspec_dep).and_return(gems)
+ allow(@gem_env).to receive(:gem_source_index).and_return(Gem.source_index)
+ expect(@gem_env.gem_source_index).to receive(:search).with(rspec_dep).and_return(gems)
end
- @gem_env.installed_versions(Gem::Dependency.new('rspec', nil)).should == gems
+ expect(@gem_env.installed_versions(Gem::Dependency.new('rspec', nil))).to eq(gems)
end
it "determines the installed versions of gems from the source index (part2: the unmockening)" do
- $stdout.stub(:write)
+ allow($stdout).to receive(:write)
path_to_gem = if windows?
`where gem`.split[1]
else
@@ -264,7 +264,7 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
gem_env = Chef::Provider::Package::Rubygems::AlternateGemEnvironment.new(path_to_gem)
expected = ['rspec-core', Gem::Version.new(RSpec::Core::Version::STRING)]
actual = gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil)).map { |s| [s.name, s.version] }
- actual.should include(expected)
+ expect(actual).to include(expected)
end
it "detects when the target gem environment is the jruby platform" do
@@ -295,18 +295,18 @@ RubyGems Environment:
- http://rubygems.org/
- http://gems.github.com/
JRUBY_GEM_ENV
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('jruby_gem_env', :stdout => gem_env_out))
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('jruby_gem_env', :stdout => gem_env_out))
expected = ['ruby', Gem::Platform.new('universal-java-1.6')]
- @gem_env.gem_platforms.should == expected
+ expect(@gem_env.gem_platforms).to eq(expected)
# it should also cache the result
- Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem'].should == expected
+ expect(Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem']).to eq(expected)
end
it "uses the cached result for gem platforms if available" do
- @gem_env.should_not_receive(:shell_out!)
+ expect(@gem_env).not_to receive(:shell_out!)
expected = ['ruby', Gem::Platform.new('universal-java-1.6')]
Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem']= expected
- @gem_env.gem_platforms.should == expected
+ expect(@gem_env.gem_platforms).to eq(expected)
end
it "uses the current gem platforms when the target env is not jruby" do
@@ -337,9 +337,9 @@ RubyGems Environment:
- http://rubygems.org/
- http://gems.github.com/
RBX_GEM_ENV
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('rbx_gem_env', :stdout => gem_env_out))
- @gem_env.gem_platforms.should == Gem.platforms
- Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem'].should == Gem.platforms
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('rbx_gem_env', :stdout => gem_env_out))
+ expect(@gem_env.gem_platforms).to eq(Gem.platforms)
+ expect(Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem']).to eq(Gem.platforms)
end
it "yields to a block while masquerading as a different gems platform" do
@@ -352,8 +352,8 @@ RBX_GEM_ENV
end
rescue RuntimeError
end
- platforms_in_block.should == ['ruby', Gem::Platform.new('sparc64-java-1.7')]
- Gem.platforms.should == original_platforms
+ expect(platforms_in_block).to eq(['ruby', Gem::Platform.new('sparc64-java-1.7')])
+ expect(Gem.platforms).to eq(original_platforms)
end
end
@@ -369,7 +369,7 @@ describe Chef::Provider::Package::Rubygems do
@run_context = Chef::RunContext.new(@node, {}, @events)
# We choose detect omnibus via RbConfig::CONFIG['bindir'] in Chef::Provider::Package::Rubygems.new
- RbConfig::CONFIG.stub(:[]).with('bindir').and_return("/usr/bin/ruby")
+ allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/usr/bin/ruby")
@provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
end
@@ -378,7 +378,7 @@ describe Chef::Provider::Package::Rubygems do
it "target_version_already_installed? should return false so that we can search for candidates" do
@provider.load_current_resource
- @provider.target_version_already_installed?.should be_false
+ expect(@provider.target_version_already_installed?).to be_false
end
end
@@ -387,74 +387,74 @@ describe Chef::Provider::Package::Rubygems do
it "triggers a gem configuration load so a later one will not stomp its config values" do
# ugly, is there a better way?
- Gem.instance_variable_get(:@configuration).should_not be_nil
+ expect(Gem.instance_variable_get(:@configuration)).not_to be_nil
end
it "uses the CurrentGemEnvironment implementation when no gem_binary_path is provided" do
- @provider.gem_env.should be_a_kind_of(Chef::Provider::Package::Rubygems::CurrentGemEnvironment)
+ expect(@provider.gem_env).to be_a_kind_of(Chef::Provider::Package::Rubygems::CurrentGemEnvironment)
end
it "uses the AlternateGemEnvironment implementation when a gem_binary_path is provided" do
@new_resource.gem_binary('/usr/weird/bin/gem')
provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
- provider.gem_env.gem_binary_location.should == '/usr/weird/bin/gem'
+ expect(provider.gem_env.gem_binary_location).to eq('/usr/weird/bin/gem')
end
it "searches for a gem binary when running on Omnibus on Unix" do
platform_mock :unix do
- RbConfig::CONFIG.stub(:[]).with('bindir').and_return("/opt/chef/embedded/bin")
- ENV.stub(:[]).with('PATH').and_return("/usr/bin:/usr/sbin:/opt/chef/embedded/bin")
- File.stub(:exists?).with('/usr/bin/gem').and_return(false)
- File.stub(:exists?).with('/usr/sbin/gem').and_return(true)
- File.stub(:exists?).with('/opt/chef/embedded/bin/gem').and_return(true) # should not get here
+ allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/opt/chef/embedded/bin")
+ allow(ENV).to receive(:[]).with('PATH').and_return("/usr/bin:/usr/sbin:/opt/chef/embedded/bin")
+ allow(File).to receive(:exists?).with('/usr/bin/gem').and_return(false)
+ allow(File).to receive(:exists?).with('/usr/sbin/gem').and_return(true)
+ allow(File).to receive(:exists?).with('/opt/chef/embedded/bin/gem').and_return(true) # should not get here
provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
- provider.gem_env.gem_binary_location.should == '/usr/sbin/gem'
+ expect(provider.gem_env.gem_binary_location).to eq('/usr/sbin/gem')
end
end
it "searches for a gem binary when running on Omnibus on Windows" do
platform_mock :windows do
- RbConfig::CONFIG.stub(:[]).with('bindir').and_return("d:/opscode/chef/embedded/bin")
- ENV.stub(:[]).with('PATH').and_return('C:\windows\system32;C:\windows;C:\Ruby186\bin;d:\opscode\chef\embedded\bin')
- File.stub(:exists?).with('C:\\windows\\system32\\gem').and_return(false)
- File.stub(:exists?).with('C:\\windows\\gem').and_return(false)
- File.stub(:exists?).with('C:\\Ruby186\\bin\\gem').and_return(true)
- File.stub(:exists?).with('d:\\opscode\\chef\\bin\\gem').and_return(false) # should not get here
- File.stub(:exists?).with('d:\\opscode\\chef\\embedded\\bin\\gem').and_return(false) # should not get here
+ allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("d:/opscode/chef/embedded/bin")
+ allow(ENV).to receive(:[]).with('PATH').and_return('C:\windows\system32;C:\windows;C:\Ruby186\bin;d:\opscode\chef\embedded\bin')
+ allow(File).to receive(:exists?).with('C:\\windows\\system32\\gem').and_return(false)
+ allow(File).to receive(:exists?).with('C:\\windows\\gem').and_return(false)
+ allow(File).to receive(:exists?).with('C:\\Ruby186\\bin\\gem').and_return(true)
+ allow(File).to receive(:exists?).with('d:\\opscode\\chef\\bin\\gem').and_return(false) # should not get here
+ allow(File).to receive(:exists?).with('d:\\opscode\\chef\\embedded\\bin\\gem').and_return(false) # should not get here
provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
- provider.gem_env.gem_binary_location.should == 'C:\Ruby186\bin\gem'
+ expect(provider.gem_env.gem_binary_location).to eq('C:\Ruby186\bin\gem')
end
end
it "smites you when you try to use a hash of install options with an explicit gem binary" do
@new_resource.gem_binary('/foo/bar')
@new_resource.options(:fail => :burger)
- lambda {Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)}.should raise_error(ArgumentError)
+ expect {Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)}.to raise_error(ArgumentError)
end
it "converts the new resource into a gem dependency" do
- @provider.gem_dependency.should == Gem::Dependency.new('rspec-core', @spec_version)
+ expect(@provider.gem_dependency).to eq(Gem::Dependency.new('rspec-core', @spec_version))
@new_resource.version('~> 1.2.0')
- @provider.gem_dependency.should == Gem::Dependency.new('rspec-core', '~> 1.2.0')
+ expect(@provider.gem_dependency).to eq(Gem::Dependency.new('rspec-core', '~> 1.2.0'))
end
describe "when determining the currently installed version" do
it "sets the current version to the version specified by the new resource if that version is installed" do
@provider.load_current_resource
- @provider.current_resource.version.should == @spec_version
+ expect(@provider.current_resource.version).to eq(@spec_version)
end
it "sets the current version to the highest installed version if the requested version is not installed" do
@new_resource.version('9000.0.2')
@provider.load_current_resource
- @provider.current_resource.version.should == @spec_version
+ expect(@provider.current_resource.version).to eq(@spec_version)
end
it "leaves the current version at nil if the package is not installed" do
@new_resource.package_name("no-such-gem-should-exist-with-this-name")
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
@@ -463,23 +463,23 @@ describe Chef::Provider::Package::Rubygems do
it "does not query for available versions when the current version is the target version" do
@provider.current_resource = @new_resource.dup
- @provider.candidate_version.should be_nil
+ expect(@provider.candidate_version).to be_nil
end
it "determines the candidate version by querying the remote gem servers" do
@new_resource.source('http://mygems.example.com')
version = Gem::Version.new(@spec_version)
- @provider.gem_env.should_receive(:candidate_version_from_remote).
+ expect(@provider.gem_env).to receive(:candidate_version_from_remote).
with(Gem::Dependency.new('rspec-core', @spec_version), "http://mygems.example.com").
and_return(version)
- @provider.candidate_version.should == @spec_version
+ expect(@provider.candidate_version).to eq(@spec_version)
end
it "parses the gem's specification if the requested source is a file" do
@new_resource.package_name('chef-integration-test')
@new_resource.version('>= 0')
@new_resource.source(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.candidate_version.should == '0.1.0'
+ expect(@provider.candidate_version).to eq('0.1.0')
end
end
@@ -489,56 +489,56 @@ describe Chef::Provider::Package::Rubygems do
@current_resource = Chef::Resource::GemPackage.new('rspec-core')
@provider.current_resource = @current_resource
@gem_dep = Gem::Dependency.new('rspec-core', @spec_version)
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
end
describe "in the current gem environment" do
it "installs the gem via the gems api when no explicit options are used" do
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem via the gems api when a remote source is provided" do
@new_resource.source('http://gems.example.org')
sources = ['http://gems.example.org']
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => sources)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => sources)
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file via the gems api when no explicit options are used" do
@new_resource.source(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.gem_env.should_receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file via the gems api when the package is a path and the source is nil" do
@new_resource = Chef::Resource::GemPackage.new(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
@provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @new_resource.source.should == CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem'
- @provider.gem_env.should_receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.action_install.should be_true
+ expect(@new_resource.source).to eq(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider.gem_env).to receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider.action_install).to be_true
end
# this catches 'gem_package "foo"' when "./foo" is a file in the cwd, and instead of installing './foo' it fetches the remote gem
it "installs the gem via the gems api, when the package has no file separator characters in it, but a matching file exists in cwd" do
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
@new_resource.package_name('rspec-core')
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem by shelling out when options are provided as a String" do
@new_resource.options('-i /alt/install/location')
expected ="gem install rspec-core -q --no-rdoc --no-ri -v \"#{@spec_version}\" -i /alt/install/location"
- @provider.should_receive(:shell_out!).with(expected, :env => nil)
- @provider.action_install.should be_true
+ expect(@provider).to receive(:shell_out!).with(expected, :env => nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem via the gems api when options are given as a Hash" do
@new_resource.options(:install_dir => '/alt/install/location')
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil, :install_dir => '/alt/install/location')
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil, :install_dir => '/alt/install/location')
+ expect(@provider.action_install).to be_true
end
describe "at a specific version" do
@@ -547,24 +547,24 @@ describe Chef::Provider::Package::Rubygems do
end
it "installs the gem via the gems api" do
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil)
+ expect(@provider.action_install).to be_true
end
end
describe "at version specified with comparison operator" do
it "skips install if current version satisifies requested version" do
- @current_resource.stub(:version).and_return("2.3.3")
- @new_resource.stub(:version).and_return(">=2.3.0")
+ allow(@current_resource).to receive(:version).and_return("2.3.3")
+ allow(@new_resource).to receive(:version).and_return(">=2.3.0")
- @provider.gem_env.should_not_receive(:install)
+ expect(@provider.gem_env).not_to receive(:install)
@provider.action_install
end
it "allows user to specify gem version with fuzzy operator" do
- @current_resource.stub(:version).and_return("2.3.3")
- @new_resource.stub(:version).and_return("~>2.3.0")
+ allow(@current_resource).to receive(:version).and_return("2.3.3")
+ allow(@new_resource).to receive(:version).and_return("~>2.3.0")
- @provider.gem_env.should_not_receive(:install)
+ expect(@provider.gem_env).not_to receive(:install)
@provider.action_install
end
end
@@ -573,16 +573,16 @@ describe Chef::Provider::Package::Rubygems do
describe "in an alternate gem environment" do
it "installs the gem by shelling out to gem install" do
@new_resource.gem_binary('/usr/weird/bin/gem')
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem install rspec-core -q --no-rdoc --no-ri -v \"#{@spec_version}\"", :env=>nil)
- @provider.action_install.should be_true
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem install rspec-core -q --no-rdoc --no-ri -v \"#{@spec_version}\"", :env=>nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file by shelling out to gem install" do
@new_resource.gem_binary('/usr/weird/bin/gem')
@new_resource.source(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
@new_resource.version('>= 0')
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
- @provider.action_install.should be_true
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file by shelling out to gem install when the package is a path and the source is nil" do
@@ -591,9 +591,9 @@ describe Chef::Provider::Package::Rubygems do
@provider.current_resource = @current_resource
@new_resource.gem_binary('/usr/weird/bin/gem')
@new_resource.version('>= 0')
- @new_resource.source.should == CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem'
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
- @provider.action_install.should be_true
+ expect(@new_resource.source).to eq(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
+ expect(@provider.action_install).to be_true
end
end
@@ -611,32 +611,32 @@ describe Chef::Provider::Package::Rubygems do
describe "in the current gem environment" do
it "uninstalls via the api when no explicit options are used" do
# pre-reqs for action_remove to actually remove the package:
- @provider.new_resource.version.should be_nil
- @provider.current_resource.version.should_not be_nil
+ expect(@provider.new_resource.version).to be_nil
+ expect(@provider.current_resource.version).not_to be_nil
# the behavior we're testing:
- @provider.gem_env.should_receive(:uninstall).with('rspec', nil)
+ expect(@provider.gem_env).to receive(:uninstall).with('rspec', nil)
@provider.action_remove
end
it "uninstalls via the api when options are given as a Hash" do
# pre-reqs for action_remove to actually remove the package:
- @provider.new_resource.version.should be_nil
- @provider.current_resource.version.should_not be_nil
+ expect(@provider.new_resource.version).to be_nil
+ expect(@provider.current_resource.version).not_to be_nil
# the behavior we're testing:
@new_resource.options(:install_dir => '/alt/install/location')
- @provider.gem_env.should_receive(:uninstall).with('rspec', nil, :install_dir => '/alt/install/location')
+ expect(@provider.gem_env).to receive(:uninstall).with('rspec', nil, :install_dir => '/alt/install/location')
@provider.action_remove
end
it "uninstalls via the gem command when options are given as a String" do
@new_resource.options('-i /alt/install/location')
- @provider.should_receive(:shell_out!).with("gem uninstall rspec -q -x -I -a -i /alt/install/location", :env=>nil)
+ expect(@provider).to receive(:shell_out!).with("gem uninstall rspec -q -x -I -a -i /alt/install/location", :env=>nil)
@provider.action_remove
end
it "uninstalls a specific version of a gem when a version is provided" do
@new_resource.version('1.2.3')
- @provider.gem_env.should_receive(:uninstall).with('rspec', '1.2.3')
+ expect(@provider.gem_env).to receive(:uninstall).with('rspec', '1.2.3')
@provider.action_remove
end
end
@@ -644,7 +644,7 @@ describe Chef::Provider::Package::Rubygems do
describe "in an alternate gem environment" do
it "uninstalls via the gem command" do
@new_resource.gem_binary('/usr/weird/bin/gem')
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem uninstall rspec -q -x -I -a", :env=>nil)
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem uninstall rspec -q -x -I -a", :env=>nil)
@provider.action_remove
end
end
diff --git a/spec/unit/provider/package/smartos_spec.rb b/spec/unit/provider/package/smartos_spec.rb
index 1c690acbf5..db39589b85 100644
--- a/spec/unit/provider/package/smartos_spec.rb
+++ b/spec/unit/provider/package/smartos_spec.rb
@@ -31,7 +31,7 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::SmartOS.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@stdin = StringIO.new
@stdout = "varnish-2.1.5nb2\n"
@stderr = StringIO.new
@@ -42,28 +42,28 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
describe "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resource package name" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should set the installed version if it is installed" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @current_resource.version.should == "2.1.5nb2"
+ expect(@current_resource.version).to eq("2.1.5nb2")
end
it "should set the installed version to nil if it's not installed" do
out = OpenStruct.new(:stdout => nil)
- @provider.should_receive(:shell_out!).and_return(out)
+ expect(@provider).to receive(:shell_out!).and_return(out)
@provider.load_current_resource
- @current_resource.version.should == nil
+ expect(@current_resource.version).to eq(nil)
end
@@ -72,18 +72,18 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
describe "candidate_version" do
it "should return the candidate_version variable if already setup" do
@provider.candidate_version = "2.1.1"
- @provider.should_not_receive(:shell_out!)
+ 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
search = double()
- search.should_receive(:each_line).
+ expect(search).to receive(:each_line).
and_yield("something-varnish-1.1.1 something varnish like\n").
and_yield("varnish-2.3.4 actual varnish\n")
@shell_out = double('shell_out!', :stdout => search)
- @provider.should_receive(:shell_out!).with('/opt/local/bin/pkgin se varnish', :env => nil, :returns => [0,1]).and_return(@shell_out)
- @provider.candidate_version.should == "2.3.4"
+ expect(@provider).to receive(:shell_out!).with('/opt/local/bin/pkgin se varnish', :env => nil, :returns => [0,1]).and_return(@shell_out)
+ expect(@provider.candidate_version).to eq("2.3.4")
end
end
@@ -91,8 +91,8 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
it "run pkgin and install the package" do
out = OpenStruct.new(:stdout => nil)
- @provider.should_receive(:shell_out!).with("/opt/local/sbin/pkg_info -E \"varnish*\"", {:env => nil, :returns=>[0,1]}).and_return(@shell_out)
- @provider.should_receive(:shell_out!).with("/opt/local/bin/pkgin -y install varnish-2.1.5nb2", {:env=>nil}).and_return(out)
+ expect(@provider).to receive(:shell_out!).with("/opt/local/sbin/pkg_info -E \"varnish*\"", {:env => nil, :returns=>[0,1]}).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).with("/opt/local/bin/pkgin -y install varnish-2.1.5nb2", {:env=>nil}).and_return(out)
@provider.load_current_resource
@provider.install_package("varnish", "2.1.5nb2")
end
diff --git a/spec/unit/provider/package/solaris_spec.rb b/spec/unit/provider/package/solaris_spec.rb
index d83ccbdf06..8438202576 100644
--- a/spec/unit/provider/package/solaris_spec.rb
+++ b/spec/unit/provider/package/solaris_spec.rb
@@ -27,7 +27,7 @@ describe Chef::Provider::Package::Solaris do
@new_resource.source("/tmp/bash.pkg")
@provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "assessing the current package status" do
@@ -50,119 +50,119 @@ PKGINFO
end
it "should create a current resource with the name of new_resource" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.name.should == "SUNWbash"
+ expect(@provider.current_resource.name).to eq("SUNWbash")
end
it "should set the current reource package name to the new resource package name" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "SUNWbash"
+ expect(@provider.current_resource.package_name).to eq("SUNWbash")
end
it "should raise an exception if a source is supplied but not found" do
- @provider.stub(:popen4).and_return(@status)
- ::File.stub(:exists?).and_return(false)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ allow(::File).to receive(:exists?).and_return(false)
@provider.define_resource_requirements
@provider.load_current_resource
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Package)
end
it "should get the source package version from pkginfo if provided" do
@stdout = StringIO.new(@pkginfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "SUNWbash"
- @new_resource.version.should == "11.10.0,REV=2005.01.08.05.16"
+ expect(@provider.current_resource.package_name).to eq("SUNWbash")
+ expect(@new_resource.version).to eq("11.10.0,REV=2005.01.08.05.16")
end
it "should return the current version installed if found by pkginfo" do
@stdout = StringIO.new(@pkginfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "11.10.0,REV=2005.01.08.05.16"
+ expect(@provider.current_resource.version).to eq("11.10.0,REV=2005.01.08.05.16")
end
it "should raise an exception if the source is not set but we are installing" do
@new_resource = Chef::Resource::Package.new("SUNWbash")
@provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
it "should raise an exception if pkginfo fails to run" do
@status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).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
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
describe "candidate_version" do
it "should return the candidate_version variable if already setup" do
@provider.candidate_version = "11.10.0,REV=2005.01.08.05.16"
- @provider.should_not_receive(:popen4)
+ expect(@provider).not_to receive(:popen4)
@provider.candidate_version
end
it "should lookup the candidate_version if the variable is not already set" do
@status = double("Status", :exitstatus => 0)
- @provider.stub(:popen4).and_return(@status)
- @provider.should_receive(:popen4)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect(@provider).to receive(:popen4)
@provider.candidate_version
end
it "should throw and exception if the exitstatus is not 0" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
end
describe "install and upgrade" do
it "should run pkgadd -n -d with the package source to install" do
- @provider.should_receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
@provider.install_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
it "should run pkgadd -n -d when the package is a path to install" do
@new_resource = Chef::Resource::Package.new("/tmp/bash.pkg")
@provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/bash.pkg"
- @provider.should_receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
+ expect(@new_resource.source).to eq("/tmp/bash.pkg")
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
@provider.install_package("/tmp/bash.pkg", "11.10.0,REV=2005.01.08.05.16")
end
it "should run pkgadd -n -a /tmp/myadmin -d with the package options -a /tmp/myadmin" do
- @new_resource.stub(:options).and_return("-a /tmp/myadmin")
- @provider.should_receive(:shell_out!).with("pkgadd -n -a /tmp/myadmin -d /tmp/bash.pkg all")
+ allow(@new_resource).to receive(:options).and_return("-a /tmp/myadmin")
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -a /tmp/myadmin -d /tmp/bash.pkg all")
@provider.install_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
end
describe "remove" do
it "should run pkgrm -n to remove the package" do
- @provider.should_receive(:shell_out!).with("pkgrm -n SUNWbash")
+ expect(@provider).to receive(:shell_out!).with("pkgrm -n SUNWbash")
@provider.remove_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
it "should run pkgrm -n -a /tmp/myadmin with options -a /tmp/myadmin" do
- @new_resource.stub(:options).and_return("-a /tmp/myadmin")
- @provider.should_receive(:shell_out!).with("pkgrm -n -a /tmp/myadmin SUNWbash")
+ allow(@new_resource).to receive(:options).and_return("-a /tmp/myadmin")
+ expect(@provider).to receive(:shell_out!).with("pkgrm -n -a /tmp/myadmin SUNWbash")
@provider.remove_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
diff --git a/spec/unit/provider/package/windows/msi_spec.rb b/spec/unit/provider/package/windows/msi_spec.rb
index c8a63ad066..e539bbbb79 100644
--- a/spec/unit/provider/package/windows/msi_spec.rb
+++ b/spec/unit/provider/package/windows/msi_spec.rb
@@ -37,15 +37,15 @@ describe Chef::Provider::Package::Windows::MSI, :windows_only do
describe "installed_version" do
it "returns the installed version" do
- provider.stub(:get_product_property).and_return("{23170F69-40C1-2702-0920-000001000000}")
- provider.stub(:get_installed_version).with("{23170F69-40C1-2702-0920-000001000000}").and_return("3.14159.1337.42")
+ allow(provider).to receive(:get_product_property).and_return("{23170F69-40C1-2702-0920-000001000000}")
+ allow(provider).to receive(:get_installed_version).with("{23170F69-40C1-2702-0920-000001000000}").and_return("3.14159.1337.42")
expect(provider.installed_version).to eql("3.14159.1337.42")
end
end
describe "package_version" do
it "returns the version of a package" do
- provider.stub(:get_product_property).with(/calculator.msi$/, "ProductVersion").and_return(42)
+ allow(provider).to receive(:get_product_property).with(/calculator.msi$/, "ProductVersion").and_return(42)
expect(provider.package_version).to eql(42)
end
end
diff --git a/spec/unit/provider/package/windows_spec.rb b/spec/unit/provider/package/windows_spec.rb
index b4ababb243..5ab84e7ac7 100644
--- a/spec/unit/provider/package/windows_spec.rb
+++ b/spec/unit/provider/package/windows_spec.rb
@@ -27,8 +27,8 @@ describe Chef::Provider::Package::Windows, :windows_only do
describe "load_current_resource" do
before(:each) do
- Chef::Util::PathHelper.stub(:validate_path)
- provider.stub(:package_provider).and_return(double('package_provider',
+ allow(Chef::Util::PathHelper).to receive(:validate_path)
+ allow(provider).to receive(:package_provider).and_return(double('package_provider',
:installed_version => "1.0", :package_version => "2.0"))
end
@@ -56,12 +56,12 @@ describe Chef::Provider::Package::Windows, :windows_only do
describe "package_provider" do
it "sets the package provider to MSI if the the installer type is :msi" do
- provider.stub(:installer_type).and_return(:msi)
+ allow(provider).to receive(:installer_type).and_return(:msi)
expect(provider.package_provider).to be_a(Chef::Provider::Package::Windows::MSI)
end
it "raises an error if the installer_type is unknown" do
- provider.stub(:installer_type).and_return(:apt_for_windows)
+ allow(provider).to receive(:installer_type).and_return(:apt_for_windows)
expect { provider.package_provider }.to raise_error
end
end
diff --git a/spec/unit/provider/package/yum_spec.rb b/spec/unit/provider/package/yum_spec.rb
index 9b3b6b60e0..0d2a44f3ae 100644
--- a/spec/unit/provider/package/yum_spec.rb
+++ b/spec/unit/provider/package/yum_spec.rb
@@ -37,7 +37,7 @@ describe Chef::Provider::Package::Yum do
:package_repository => "base",
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@pid = double("PID")
end
@@ -45,32 +45,32 @@ describe Chef::Provider::Package::Yum do
describe "when loading the current system state" do
it "should create a current resource with the name of the new_resource" do
@provider.load_current_resource
- @provider.current_resource.name.should == "cups"
+ expect(@provider.current_resource.name).to eq("cups")
end
it "should set the current resources package name to the new resources package name" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "cups"
+ expect(@provider.current_resource.package_name).to eq("cups")
end
it "should set the installed version to nil on the current resource if no installed package" do
- @yum_cache.stub(:installed_version).and_return(nil)
+ allow(@yum_cache).to receive(:installed_version).and_return(nil)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should set the installed version if yum has one" do
@provider.load_current_resource
- @provider.current_resource.version.should == "1.2.4-11.18.el5"
+ expect(@provider.current_resource.version).to eq("1.2.4-11.18.el5")
end
it "should set the candidate version if yum info has one" do
@provider.load_current_resource
- @provider.candidate_version.should eql("1.2.4-11.18.el5_2.3")
+ expect(@provider.candidate_version).to eql("1.2.4-11.18.el5_2.3")
end
it "should return the current resouce" do
- @provider.load_current_resource.should eql(@provider.current_resource)
+ expect(@provider.load_current_resource).to eql(@provider.current_resource)
end
describe "when arch in package_name" do
@@ -79,11 +79,11 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# nothing installed for package_name/new_package_name
nil
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
if package_name == "testing.noarch" || package_name == "testing.more.noarch"
nil
# candidate for new_package_name
@@ -91,21 +91,21 @@ describe Chef::Provider::Package::Yum do
"1.1"
end
end
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing"
- @provider.new_resource.arch.should == "noarch"
- @provider.arch.should == "noarch"
+ expect(@provider.new_resource.package_name).to eq("testing")
+ expect(@provider.new_resource.arch).to eq("noarch")
+ expect(@provider.arch).to eq("noarch")
@new_resource = Chef::Resource::YumPackage.new('testing.more.noarch')
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.more"
- @provider.new_resource.arch.should == "noarch"
- @provider.arch.should == "noarch"
+ expect(@provider.new_resource.package_name).to eq("testing.more")
+ expect(@provider.new_resource.arch).to eq("noarch")
+ expect(@provider.arch).to eq("noarch")
end
it "should not set the arch when an existing package_name is found" do
@@ -113,7 +113,7 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# installed for package_name
if package_name == "testing.beta3" || package_name == "testing.beta3.more"
"1.1"
@@ -121,26 +121,26 @@ describe Chef::Provider::Package::Yum do
nil
end
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
# no candidate for package_name/new_package_name
nil
end
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
# annoying side effect of the fun stub'ing above
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
@new_resource = Chef::Resource::YumPackage.new('testing.beta3.more')
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3.more"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
end
it "should not set the arch when no existing package_name or new_package_name+new_arch is found" do
@@ -148,29 +148,29 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# nothing installed for package_name/new_package_name
nil
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
# no candidate for package_name/new_package_name
nil
end
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
@new_resource = Chef::Resource::YumPackage.new('testing.beta3.more')
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3.more"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
end
it "should ensure it doesn't clobber an existing arch if passed" do
@@ -179,11 +179,11 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# nothing installed for package_name/new_package_name
nil
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
if package_name == "testing.noarch"
nil
# candidate for new_package_name
@@ -191,43 +191,43 @@ describe Chef::Provider::Package::Yum do
"1.1"
end
end.and_return("something")
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.i386"
- @provider.new_resource.arch.should == "x86_64"
+ expect(@provider.new_resource.package_name).to eq("testing.i386")
+ expect(@provider.new_resource.arch).to eq("x86_64")
end
end
it "should flush the cache if :before is true" do
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => true})
- @yum_cache.should_receive(:reload).once
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => true})
+ expect(@yum_cache).to receive(:reload).once
@provider.load_current_resource
end
it "should flush the cache if :before is false" do
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => false})
- @yum_cache.should_not_receive(:reload)
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => false})
+ expect(@yum_cache).not_to receive(:reload)
@provider.load_current_resource
end
it "should detect --enablerepo or --disablerepo when passed among options, collect them preserving order and notify the yum cache" do
- @new_resource.stub(:options).and_return("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
- @yum_cache.should_receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
+ allow(@new_resource).to receive(:options).and_return("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
+ expect(@yum_cache).to receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
@provider.load_current_resource
end
it "should let the yum cache know extra repos are disabled if --enablerepo or --disablerepo aren't among options" do
- @new_resource.stub(:options).and_return("--stuff --otherthings")
- @yum_cache.should_receive(:disable_extra_repo_control)
+ allow(@new_resource).to receive(:options).and_return("--stuff --otherthings")
+ expect(@yum_cache).to receive(:disable_extra_repo_control)
@provider.load_current_resource
end
it "should let the yum cache know extra repos are disabled if options aren't set" do
- @new_resource.stub(:options).and_return(nil)
- @yum_cache.should_receive(:disable_extra_repo_control)
+ allow(@new_resource).to receive(:options).and_return(nil)
+ expect(@yum_cache).to receive(:disable_extra_repo_control)
@provider.load_current_resource
end
@@ -242,12 +242,12 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
pkg = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "1.2.4-11.18.el5", "x86_64", [])
- @yum_cache.should_receive(:packages_from_require).and_return([pkg])
+ expect(@yum_cache).to receive(:packages_from_require).and_return([pkg])
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @new_resource.package_name.should == "test-package"
+ expect(@new_resource.package_name).to eq("test-package")
end
it "should search provides if package name can't be found, warn about multiple matches, but use the first one" do
@@ -261,14 +261,14 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
pkg_x = Chef::Provider::Package::Yum::RPMPackage.new("test-package-x", "1.2.4-11.18.el5", "x86_64", [])
pkg_y = Chef::Provider::Package::Yum::RPMPackage.new("test-package-y", "1.2.6-11.3.el5", "i386", [])
- @yum_cache.should_receive(:packages_from_require).and_return([pkg_x, pkg_y])
- Chef::Log.should_receive(:warn).exactly(1).times.with(%r{matched multiple Provides})
+ expect(@yum_cache).to receive(:packages_from_require).and_return([pkg_x, pkg_y])
+ expect(Chef::Log).to receive(:warn).exactly(1).times.with(%r{matched multiple Provides})
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @new_resource.package_name.should == "test-package-x"
+ expect(@new_resource.package_name).to eq("test-package-x")
end
it "should search provides if no package is available - if no match in installed provides then load the complete set" do
@@ -282,9 +282,9 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
- @yum_cache.should_receive(:packages_from_require).twice.and_return([])
- @yum_cache.should_receive(:reload_provides)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
+ expect(@yum_cache).to receive(:packages_from_require).twice.and_return([])
+ expect(@yum_cache).to receive(:reload_provides)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
end
@@ -300,14 +300,14 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
- @yum_cache.should_receive(:packages_from_require).once.and_return([])
- @yum_cache.should_not_receive(:reload_provides)
+ expect(@yum_cache).to receive(:packages_from_require).once.and_return([])
+ expect(@yum_cache).not_to receive(:reload_provides)
@new_resource.action(:remove)
@provider.load_current_resource
- @yum_cache.should_receive(:packages_from_require).once.and_return([])
- @yum_cache.should_not_receive(:reload_provides)
+ expect(@yum_cache).to receive(:packages_from_require).once.and_return([])
+ expect(@yum_cache).not_to receive(:reload_provides)
@new_resource.action(:purge)
@provider.load_current_resource
end
@@ -324,27 +324,27 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
- @yum_cache.should_receive(:packages_from_require).twice.and_return([])
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
+ expect(@yum_cache).to receive(:packages_from_require).twice.and_return([])
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @new_resource.package_name.should == "cups"
+ expect(@new_resource.package_name).to eq("cups")
end
end
describe "when installing a package" do
it "should run yum install with the package name and version" do
@provider.load_current_resource
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-1.0"
)
@provider.install_package("emacs", "1.0")
end
it "should run yum localinstall if given a path to an rpm" do
- @new_resource.stub(:source).and_return("/tmp/emacs-21.4-20.el5.i386.rpm")
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:source).and_return("/tmp/emacs-21.4-20.el5.i386.rpm")
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y localinstall /tmp/emacs-21.4-20.el5.i386.rpm"
)
@provider.install_package("emacs", "21.4-20.el5")
@@ -352,10 +352,10 @@ describe Chef::Provider::Package::Yum do
it "should run yum localinstall if given a path to an rpm as the package" do
@new_resource = Chef::Resource::Package.new("/tmp/emacs-21.4-20.el5.i386.rpm")
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/emacs-21.4-20.el5.i386.rpm"
- @provider.should_receive(:yum_command).with(
+ expect(@new_resource.source).to eq("/tmp/emacs-21.4-20.el5.i386.rpm")
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y localinstall /tmp/emacs-21.4-20.el5.i386.rpm"
)
@provider.install_package("/tmp/emacs-21.4-20.el5.i386.rpm", "21.4-20.el5")
@@ -363,9 +363,9 @@ describe Chef::Provider::Package::Yum do
it "should run yum install with the package name, version and arch" do
@provider.load_current_resource
- @new_resource.stub(:arch).and_return("i386")
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:arch).and_return("i386")
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-21.4-20.el5.i386"
)
@provider.install_package("emacs", "21.4-20.el5")
@@ -374,9 +374,9 @@ describe Chef::Provider::Package::Yum do
it "installs the package with the options given in the resource" do
@provider.load_current_resource
@provider.candidate_version = '11'
- @new_resource.stub(:options).and_return("--disablerepo epmd")
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:options).and_return("--disablerepo epmd")
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y --disablerepo epmd install cups-11"
)
@provider.install_package(@new_resource.name, @provider.candidate_version)
@@ -393,13 +393,13 @@ describe Chef::Provider::Package::Yum do
:version_available? => nil,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
- lambda { @provider.install_package("lolcats", "0.99") }.should raise_error(Chef::Exceptions::Package, %r{Version .* not found})
+ expect { @provider.install_package("lolcats", "0.99") }.to raise_error(Chef::Exceptions::Package, %r{Version .* not found})
end
it "should raise an exception if candidate version is older than the installed version and allow_downgrade is false" do
- @new_resource.stub(:allow_downgrade).and_return(false)
+ allow(@new_resource).to receive(:allow_downgrade).and_return(false)
@yum_cache = double(
'Chef::Provider::Yum::YumCache',
:reload_installed => true,
@@ -411,10 +411,10 @@ describe Chef::Provider::Package::Yum do
:allow_multi_install => [ "kernel" ],
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- lambda { @provider.install_package("cups", "1.2.4-11.15.el5") }.should raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
+ expect { @provider.install_package("cups", "1.2.4-11.15.el5") }.to raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
end
it "should not raise an exception if candidate version is older than the installed version and the package is list in yum's installonlypkg option" do
@@ -430,17 +430,17 @@ describe Chef::Provider::Package::Yum do
:package_repository => "base",
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install cups-1.2.4-11.15.el5"
)
@provider.install_package("cups", "1.2.4-11.15.el5")
end
it "should run yum downgrade if candidate version is older than the installed version and allow_downgrade is true" do
- @new_resource.stub(:allow_downgrade).and_return(true)
+ allow(@new_resource).to receive(:allow_downgrade).and_return(true)
@yum_cache = double(
'Chef::Provider::Yum::YumCache',
:reload_installed => true,
@@ -453,34 +453,34 @@ describe Chef::Provider::Package::Yum do
:package_repository => "base",
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y downgrade cups-1.2.4-11.15.el5"
)
@provider.install_package("cups", "1.2.4-11.15.el5")
end
it "should run yum install then flush the cache if :after is true" do
- @new_resource.stub(:flush_cache).and_return({:after => true, :before => false})
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => true, :before => false})
@provider.load_current_resource
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-1.0"
)
- @yum_cache.should_receive(:reload).once
+ expect(@yum_cache).to receive(:reload).once
@provider.install_package("emacs", "1.0")
end
it "should run yum install then not flush the cache if :after is false" do
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => false})
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => false})
@provider.load_current_resource
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-1.0"
)
- @yum_cache.should_not_receive(:reload)
+ expect(@yum_cache).not_to receive(:reload)
@provider.install_package("emacs", "1.0")
end
end
@@ -489,8 +489,8 @@ describe Chef::Provider::Package::Yum do
it "should run yum install if the package is installed and a version is given" do
@provider.load_current_resource
@provider.candidate_version = '11'
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install cups-11"
)
@provider.upgrade_package(@new_resource.name, @provider.candidate_version)
@@ -500,8 +500,8 @@ describe Chef::Provider::Package::Yum do
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install cups-11"
)
@provider.upgrade_package(@new_resource.name, @provider.candidate_version)
@@ -519,19 +519,19 @@ describe Chef::Provider::Package::Yum do
:allow_multi_install => [ "kernel" ],
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- lambda { @provider.upgrade_package("cups", "1.2.4-11.15.el5") }.should raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
+ expect { @provider.upgrade_package("cups", "1.2.4-11.15.el5") }.to raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
end
# Test our little workaround, some crossover into Chef::Provider::Package territory
it "should call action_upgrade in the parent if the current resource version is nil" do
- @yum_cache.stub(:installed_version).and_return(nil)
+ allow(@yum_cache).to receive(:installed_version).and_return(nil)
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- @provider.should_receive(:upgrade_package).with(
+ expect(@provider).to receive(:upgrade_package).with(
"cups",
"11"
)
@@ -542,7 +542,7 @@ describe Chef::Provider::Package::Yum do
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = nil
- @provider.should_not_receive(:upgrade_package)
+ expect(@provider).not_to receive(:upgrade_package)
@provider.action_upgrade
end
@@ -550,7 +550,7 @@ describe Chef::Provider::Package::Yum do
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- @provider.should_receive(:upgrade_package).with(
+ expect(@provider).to receive(:upgrade_package).with(
"cups",
"11"
)
@@ -558,26 +558,26 @@ describe Chef::Provider::Package::Yum do
end
it "should not call action_upgrade in the parent if the candidate is older" do
- @yum_cache.stub(:installed_version).and_return("12")
+ allow(@yum_cache).to receive(:installed_version).and_return("12")
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- @provider.should_not_receive(:upgrade_package)
+ expect(@provider).not_to receive(:upgrade_package)
@provider.action_upgrade
end
end
describe "when removing a package" do
it "should run yum remove with the package name" do
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y remove emacs-1.0"
)
@provider.remove_package("emacs", "1.0")
end
it "should run yum remove with the package name and arch" do
- @new_resource.stub(:arch).and_return("x86_64")
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:arch).and_return("x86_64")
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y remove emacs-1.0.x86_64"
)
@provider.remove_package("emacs", "1.0")
@@ -586,7 +586,7 @@ describe Chef::Provider::Package::Yum do
describe "when purging a package" do
it "should run yum remove with the package name" do
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y remove emacs-1.0"
)
@provider.purge_package("emacs", "1.0")
@@ -596,8 +596,8 @@ describe Chef::Provider::Package::Yum do
describe "when running yum" do
it "should run yum once if it exits with a return code of 0" do
@status = double("Status", :exitstatus => 0)
- @provider.stub(:output_of_command).and_return([@status, "", ""])
- @provider.should_receive(:output_of_command).once.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "", ""])
+ expect(@provider).to receive(:output_of_command).once.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
@@ -606,34 +606,34 @@ describe Chef::Provider::Package::Yum do
it "should run yum once if it exits with a return code > 0 and no scriptlet failures" do
@status = double("Status", :exitstatus => 2)
- @provider.stub(:output_of_command).and_return([@status, "failure failure", "problem problem"])
- @provider.should_receive(:output_of_command).once.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "failure failure", "problem problem"])
+ expect(@provider).to receive(:output_of_command).once.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
end
it "should run yum once if it exits with a return code of 1 and %pre scriptlet failures" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:output_of_command).and_return([@status, "error: %pre(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
- @provider.should_receive(:output_of_command).once.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "error: %pre(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
+ expect(@provider).to receive(:output_of_command).once.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
# will still raise an exception, can't stub out the subsequent call
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
end
it "should run yum twice if it exits with a return code of 1 and %post scriptlet failures" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:output_of_command).and_return([@status, "error: %post(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
- @provider.should_receive(:output_of_command).twice.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "error: %post(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
+ expect(@provider).to receive(:output_of_command).twice.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
# will still raise an exception, can't stub out the subsequent call
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
end
end
end
@@ -650,7 +650,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "9:1.7.3", [ 9, "1.7.3", nil ] ],
[ "15:20020927", [ 15, "20020927", nil ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -660,7 +660,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "-1:1.7.3", [ nil, nil, "1:1.7.3" ] ],
[ "-:20020927", [ nil, nil, ":20020927" ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -670,7 +670,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "1.7.3", [ nil, "1.7.3", nil ] ],
[ "20020927", [ nil, "20020927", nil ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -680,7 +680,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "0001.7.3", [ nil, "0001.7.3", nil ] ],
[ "20020927,3", [ nil, "20020927,3", nil ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -690,7 +690,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "1.7.3-1jpp.2.el5", [ nil, "1.7.3", "1jpp.2.el5" ] ],
[ "20020927-46.el5", [ nil, "20020927", "46.el5" ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -700,7 +700,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "-1jpp.2.el5", [ nil, nil, "1jpp.2.el5" ] ],
[ "-0020020927-46.el5", [ nil, "-0020020927", "46.el5" ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
end
@@ -757,7 +757,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "0.0.1aa", "0.0.1aa", 0 ],
[ "0.0.1a", "0.0.1aa", -1 ],
].each do |x, y, result|
- @rpmutils.rpmvercmp(x,y).should == result
+ expect(@rpmutils.rpmvercmp(x,y)).to eq(result)
end
end
@@ -776,43 +776,43 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "", "", 0 ],
[ "", "1.0.1", -1 ]
].each do |x, y, result|
- @rpmutils.rpmvercmp(x,y).should == result
+ expect(@rpmutils.rpmvercmp(x,y)).to eq(result)
end
end
it "tests isalnum good input" do
[ 'a', 'z', 'A', 'Z', '0', '9' ].each do |t|
- @rpmutils.isalnum(t).should == true
+ expect(@rpmutils.isalnum(t)).to eq(true)
end
end
it "tests isalnum bad input" do
[ '-', '.', '!', '^', ':', '_' ].each do |t|
- @rpmutils.isalnum(t).should == false
+ expect(@rpmutils.isalnum(t)).to eq(false)
end
end
it "tests isalpha good input" do
[ 'a', 'z', 'A', 'Z', ].each do |t|
- @rpmutils.isalpha(t).should == true
+ expect(@rpmutils.isalpha(t)).to eq(true)
end
end
it "tests isalpha bad input" do
[ '0', '9', '-', '.', '!', '^', ':', '_' ].each do |t|
- @rpmutils.isalpha(t).should == false
+ expect(@rpmutils.isalpha(t)).to eq(false)
end
end
it "tests isdigit good input" do
[ '0', '9', ].each do |t|
- @rpmutils.isdigit(t).should == true
+ expect(@rpmutils.isdigit(t)).to eq(true)
end
end
it "tests isdigit bad input" do
[ 'A', 'z', '-', '.', '!', '^', ':', '_' ].each do |t|
- @rpmutils.isdigit(t).should == false
+ expect(@rpmutils.isdigit(t)).to eq(false)
end
end
end
@@ -826,15 +826,15 @@ describe Chef::Provider::Package::Yum::RPMVersion do
end
it "should expose evr (name-version-release) available" do
- @rpmv.e.should == 1
- @rpmv.v.should == "1.6.5"
- @rpmv.r.should == "9.36.el5"
+ expect(@rpmv.e).to eq(1)
+ expect(@rpmv.v).to eq("1.6.5")
+ expect(@rpmv.r).to eq("9.36.el5")
- @rpmv.evr.should == "1:1.6.5-9.36.el5"
+ expect(@rpmv.evr).to eq("1:1.6.5-9.36.el5")
end
it "should output a version-release string" do
- @rpmv.to_s.should == "1.6.5-9.36.el5"
+ expect(@rpmv.to_s).to eq("1.6.5-9.36.el5")
end
end
@@ -844,34 +844,34 @@ describe Chef::Provider::Package::Yum::RPMVersion do
end
it "should expose evr (name-version-release) available" do
- @rpmv.e.should == 1
- @rpmv.v.should == "1.6.5"
- @rpmv.r.should == "9.36.el5"
+ expect(@rpmv.e).to eq(1)
+ expect(@rpmv.v).to eq("1.6.5")
+ expect(@rpmv.r).to eq("9.36.el5")
- @rpmv.evr.should == "1:1.6.5-9.36.el5"
+ expect(@rpmv.evr).to eq("1:1.6.5-9.36.el5")
end
it "should output a version-release string" do
- @rpmv.to_s.should == "1.6.5-9.36.el5"
+ expect(@rpmv.to_s).to eq("1.6.5-9.36.el5")
end
end
it "should raise an error unless passed 1 or 3 args" do
- lambda {
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new()
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1:1.6.5-9.36.el5")
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1:1.6.5-9.36.el5", "extra")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1", "1.6.5", "9.36.el5")
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1", "1.6.5", "9.36.el5", "extra")
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
# thanks version_class_spec.rb!
@@ -898,9 +898,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
@@ -924,9 +924,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
@@ -941,7 +941,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be == lg
+ expect(sm).to eq(lg)
end
end
@@ -956,7 +956,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be == lg
+ expect(sm).to eq(lg)
end
end
end
@@ -980,9 +980,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.partial_compare(lg).should be == -1
- lg.partial_compare(sm).should be == 1
- sm.partial_compare(lg).should_not be == 0
+ expect(sm.partial_compare(lg)).to eq(-1)
+ expect(lg.partial_compare(sm)).to eq(1)
+ expect(sm.partial_compare(lg)).not_to eq(0)
end
end
@@ -997,7 +997,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.partial_compare(lg).should be == 0
+ expect(sm.partial_compare(lg)).to eq(0)
end
end
end
@@ -1011,18 +1011,18 @@ describe Chef::Provider::Package::Yum::RPMPackage do
end
it "should expose nevra (name-epoch-version-release-arch) available" do
- @rpm.name.should == "testing"
- @rpm.version.e.should == 1
- @rpm.version.v.should == "1.6.5"
- @rpm.version.r.should == "9.36.el5"
- @rpm.arch.should == "x86_64"
+ expect(@rpm.name).to eq("testing")
+ expect(@rpm.version.e).to eq(1)
+ expect(@rpm.version.v).to eq("1.6.5")
+ expect(@rpm.version.r).to eq("9.36.el5")
+ expect(@rpm.arch).to eq("x86_64")
- @rpm.nevra.should == "testing-1:1.6.5-9.36.el5.x86_64"
- @rpm.to_s.should == @rpm.nevra
+ expect(@rpm.nevra).to eq("testing-1:1.6.5-9.36.el5.x86_64")
+ expect(@rpm.to_s).to eq(@rpm.nevra)
end
it "should always have at least one provide, itself" do
- @rpm.provides.size.should == 1
+ expect(@rpm.provides.size).to eq(1)
@rpm.provides[0].name == "testing"
@rpm.provides[0].version.evr == "1:1.6.5-9.36.el5"
@rpm.provides[0].flag == :==
@@ -1035,18 +1035,18 @@ describe Chef::Provider::Package::Yum::RPMPackage do
end
it "should expose nevra (name-epoch-version-release-arch) available" do
- @rpm.name.should == "testing"
- @rpm.version.e.should == 1
- @rpm.version.v.should == "1.6.5"
- @rpm.version.r.should == "9.36.el5"
- @rpm.arch.should == "x86_64"
+ expect(@rpm.name).to eq("testing")
+ expect(@rpm.version.e).to eq(1)
+ expect(@rpm.version.v).to eq("1.6.5")
+ expect(@rpm.version.r).to eq("9.36.el5")
+ expect(@rpm.arch).to eq("x86_64")
- @rpm.nevra.should == "testing-1:1.6.5-9.36.el5.x86_64"
- @rpm.to_s.should == @rpm.nevra
+ expect(@rpm.nevra).to eq("testing-1:1.6.5-9.36.el5.x86_64")
+ expect(@rpm.to_s).to eq(@rpm.nevra)
end
it "should always have at least one provide, itself" do
- @rpm.provides.size.should == 1
+ expect(@rpm.provides.size).to eq(1)
@rpm.provides[0].name == "testing"
@rpm.provides[0].version.evr == "1:1.6.5-9.36.el5"
@rpm.provides[0].flag == :==
@@ -1054,30 +1054,30 @@ describe Chef::Provider::Package::Yum::RPMPackage do
end
it "should raise an error unless passed 4 or 6 args" do
- lambda {
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new()
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5", "x86_64")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5", "x86_64", [])
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64", [])
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64", [], "extra")
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
describe "<=>" do
@@ -1096,9 +1096,9 @@ describe Chef::Provider::Package::Yum::RPMPackage do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMPackage.new(smaller, "0:0.0.1-1", "x86_64", [])
lg = Chef::Provider::Package::Yum::RPMPackage.new(larger, "0:0.0.1-1", "x86_64", [])
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
@@ -1113,9 +1113,9 @@ describe Chef::Provider::Package::Yum::RPMPackage do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "0:0.0.1-1", smaller, [])
lg = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "0:0.0.1-1", larger, [])
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
end
@@ -1132,31 +1132,31 @@ describe Chef::Provider::Package::Yum::RPMDbPackage do
describe "initialize" do
it "should return a Chef::Provider::Package::Yum::RPMDbPackage object" do
- @rpm_x.should be_kind_of(Chef::Provider::Package::Yum::RPMDbPackage)
+ expect(@rpm_x).to be_kind_of(Chef::Provider::Package::Yum::RPMDbPackage)
end
end
describe "available" do
it "should return true" do
- @rpm_x.available.should be == true
- @rpm_y.available.should be == true
- @rpm_z.available.should be == false
+ expect(@rpm_x.available).to eq(true)
+ expect(@rpm_y.available).to eq(true)
+ expect(@rpm_z.available).to eq(false)
end
end
describe "installed" do
it "should return true" do
- @rpm_x.installed.should be == false
- @rpm_y.installed.should be == true
- @rpm_z.installed.should be == true
+ expect(@rpm_x.installed).to eq(false)
+ expect(@rpm_y.installed).to eq(true)
+ expect(@rpm_z.installed).to eq(true)
end
end
describe "repoid" do
it "should return the source repository repoid" do
- @rpm_x.repoid.should be == "base"
- @rpm_y.repoid.should be == "extras"
- @rpm_z.repoid.should be == "other"
+ expect(@rpm_x.repoid).to eq("base")
+ expect(@rpm_y.repoid).to eq("extras")
+ expect(@rpm_z.repoid).to eq("other")
end
end
end
@@ -1168,11 +1168,11 @@ describe Chef::Provider::Package::Yum::RPMDependency do
end
it "should expose name, version, flag available" do
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == 1
- @rpmdep.version.v.should == "1.6.5"
- @rpmdep.version.r.should == "9.36.el5"
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(1)
+ expect(@rpmdep.version.v).to eq("1.6.5")
+ expect(@rpmdep.version.r).to eq("9.36.el5")
+ expect(@rpmdep.flag).to eq(:==)
end
end
@@ -1182,67 +1182,67 @@ describe Chef::Provider::Package::Yum::RPMDependency do
end
it "should expose name, version, flag available" do
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == 1
- @rpmdep.version.v.should == "1.6.5"
- @rpmdep.version.r.should == "9.36.el5"
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(1)
+ expect(@rpmdep.version.v).to eq("1.6.5")
+ expect(@rpmdep.version.r).to eq("9.36.el5")
+ expect(@rpmdep.flag).to eq(:==)
end
end
it "should raise an error unless passed 3 or 5 args" do
- lambda {
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new()
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==, "extra")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1", "1.6.5", "9.36.el5", :==)
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1", "1.6.5", "9.36.el5", :==, "extra")
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
describe "parse" do
it "should parse a name, flag, version string into a valid RPMDependency object" do
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing >= 1:1.6.5-9.36.el5")
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == 1
- @rpmdep.version.v.should == "1.6.5"
- @rpmdep.version.r.should == "9.36.el5"
- @rpmdep.flag.should == :>=
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(1)
+ expect(@rpmdep.version.v).to eq("1.6.5")
+ expect(@rpmdep.version.r).to eq("9.36.el5")
+ expect(@rpmdep.flag).to eq(:>=)
end
it "should parse a name into a valid RPMDependency object" do
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing")
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == nil
- @rpmdep.version.v.should == nil
- @rpmdep.version.r.should == nil
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(nil)
+ expect(@rpmdep.version.v).to eq(nil)
+ expect(@rpmdep.version.r).to eq(nil)
+ expect(@rpmdep.flag).to eq(:==)
end
it "should parse an invalid string into the name of a RPMDependency object" do
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing blah >")
- @rpmdep.name.should == "testing blah >"
- @rpmdep.version.e.should == nil
- @rpmdep.version.v.should == nil
- @rpmdep.version.r.should == nil
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing blah >")
+ expect(@rpmdep.version.e).to eq(nil)
+ expect(@rpmdep.version.v).to eq(nil)
+ expect(@rpmdep.version.r).to eq(nil)
+ expect(@rpmdep.flag).to eq(:==)
end
it "should parse various valid flags" do
@@ -1255,7 +1255,7 @@ describe Chef::Provider::Package::Yum::RPMDependency do
[ "<", :< ]
].each do |before, after|
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing #{before} 1:1.1-1")
- @rpmdep.flag.should == after
+ expect(@rpmdep.flag).to eq(after)
end
end
@@ -1269,8 +1269,8 @@ describe Chef::Provider::Package::Yum::RPMDependency do
[ "~", :== ]
].each do |before, after|
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing #{before} 1:1.1-1")
- @rpmdep.name.should == "testing #{before} 1:1.1-1"
- @rpmdep.flag.should == after
+ expect(@rpmdep.name).to eq("testing #{before} 1:1.1-1")
+ expect(@rpmdep.flag).to eq(after)
end
end
end
@@ -1279,12 +1279,12 @@ describe Chef::Provider::Package::Yum::RPMDependency do
it "should raise an error unless a RPMDependency is passed" do
@rpmprovide = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :>=)
- lambda {
+ expect {
@rpmprovide.satisfy?("hi")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
@rpmprovide.satisfy?(@rpmrequire)
- }.should_not raise_error
+ }.not_to raise_error
end
it "should validate dependency satisfaction logic for standard examples" do
@@ -1326,8 +1326,8 @@ describe Chef::Provider::Package::Yum::RPMDependency do
@rpmprovide = Chef::Provider::Package::Yum::RPMDependency.parse(prov)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse(req)
- @rpmprovide.satisfy?(@rpmrequire).should == result
- @rpmrequire.satisfy?(@rpmprovide).should == result
+ expect(@rpmprovide.satisfy?(@rpmrequire)).to eq(result)
+ expect(@rpmrequire.satisfy?(@rpmprovide)).to eq(result)
end
end
end
@@ -1358,89 +1358,89 @@ describe Chef::Provider::Package::Yum::RPMDb do
describe "initialize" do
it "should return a Chef::Provider::Package::Yum::RPMDb object" do
- @rpmdb.should be_kind_of(Chef::Provider::Package::Yum::RPMDb)
+ expect(@rpmdb).to be_kind_of(Chef::Provider::Package::Yum::RPMDb)
end
end
describe "push" do
it "should accept an RPMDbPackage object through pushing" do
- lambda { @rpmdb.push(@rpm_w) }.should_not raise_error
+ expect { @rpmdb.push(@rpm_w) }.not_to raise_error
end
it "should accept multiple RPMDbPackage object through pushing" do
- lambda { @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z) }.should_not raise_error
+ expect { @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z) }.not_to raise_error
end
it "should only accept an RPMDbPackage object" do
- lambda { @rpmdb.push("string") }.should raise_error
+ expect { @rpmdb.push("string") }.to raise_error
end
it "should add the package to the package db" do
@rpmdb.push(@rpm_w)
- @rpmdb["test-package-b"].should_not be == nil
+ expect(@rpmdb["test-package-b"]).not_to eq(nil)
end
it "should add conditionally add the package to the available list" do
- @rpmdb.available_size.should be == 0
+ expect(@rpmdb.available_size).to eq(0)
@rpmdb.push(@rpm_v, @rpm_w)
- @rpmdb.available_size.should be == 1
+ expect(@rpmdb.available_size).to eq(1)
end
it "should add conditionally add the package to the installed list" do
- @rpmdb.installed_size.should be == 0
+ expect(@rpmdb.installed_size).to eq(0)
@rpmdb.push(@rpm_w, @rpm_x)
- @rpmdb.installed_size.should be == 1
+ expect(@rpmdb.installed_size).to eq(1)
end
it "should have a total of 2 packages in the RPMDb" do
- @rpmdb.size.should be == 0
+ expect(@rpmdb.size).to eq(0)
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.size.should be == 2
+ expect(@rpmdb.size).to eq(2)
end
it "should keep the Array unique when a duplicate is pushed" do
@rpmdb.push(@rpm_z, @rpm_z_mirror)
- @rpmdb["test-package-c"].size.should be == 1
+ expect(@rpmdb["test-package-c"].size).to eq(1)
end
it "should register the package provides in the provides index" do
@rpmdb.push(@rpm_v, @rpm_w, @rpm_z)
- @rpmdb.lookup_provides("test-package-a")[0].should be == @rpm_v
- @rpmdb.lookup_provides("config(test)")[0].should be == @rpm_z
- @rpmdb.lookup_provides("libz.so.1()(64bit)")[0].should be == @rpm_v
- @rpmdb.lookup_provides("libz.so.1()(64bit)")[1].should be == @rpm_z
+ expect(@rpmdb.lookup_provides("test-package-a")[0]).to eq(@rpm_v)
+ expect(@rpmdb.lookup_provides("config(test)")[0]).to eq(@rpm_z)
+ expect(@rpmdb.lookup_provides("libz.so.1()(64bit)")[0]).to eq(@rpm_v)
+ expect(@rpmdb.lookup_provides("libz.so.1()(64bit)")[1]).to eq(@rpm_z)
end
end
describe "<<" do
it "should accept an RPMPackage object through the << operator" do
- lambda { @rpmdb << @rpm_w }.should_not raise_error
+ expect { @rpmdb << @rpm_w }.not_to raise_error
end
end
describe "lookup" do
it "should return an Array of RPMPackage objects by index" do
@rpmdb << @rpm_w
- @rpmdb.lookup("test-package-b").should be_kind_of(Array)
+ expect(@rpmdb.lookup("test-package-b")).to be_kind_of(Array)
end
end
describe "[]" do
it "should return an Array of RPMPackage objects though the [index] operator" do
@rpmdb << @rpm_w
- @rpmdb["test-package-b"].should be_kind_of(Array)
+ expect(@rpmdb["test-package-b"]).to be_kind_of(Array)
end
it "should return an Array of 3 RPMPackage objects" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb["test-package-b"].size.should be == 3
+ expect(@rpmdb["test-package-b"].size).to eq(3)
end
it "should return an Array of RPMPackage objects sorted from newest to oldest" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb["test-package-b"][0].should be == @rpm_y
- @rpmdb["test-package-b"][1].should be == @rpm_x
- @rpmdb["test-package-b"][2].should be == @rpm_w
+ expect(@rpmdb["test-package-b"][0]).to eq(@rpm_y)
+ expect(@rpmdb["test-package-b"][1]).to eq(@rpm_x)
+ expect(@rpmdb["test-package-b"][2]).to eq(@rpm_w)
end
end
@@ -1448,57 +1448,57 @@ describe Chef::Provider::Package::Yum::RPMDb do
it "should return an Array of RPMPackage objects by index" do
@rpmdb << @rpm_z
x = @rpmdb.lookup_provides("config(test)")
- x.should be_kind_of(Array)
- x[0].should be == @rpm_z
+ expect(x).to be_kind_of(Array)
+ expect(x[0]).to eq(@rpm_z)
end
end
describe "clear" do
it "should clear the RPMDb" do
- @rpmdb.should_receive(:clear_available).once
- @rpmdb.should_receive(:clear_installed).once
+ expect(@rpmdb).to receive(:clear_available).once
+ expect(@rpmdb).to receive(:clear_installed).once
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.size.should_not be == 0
- @rpmdb.lookup_provides("config(test)").should be_kind_of(Array)
+ expect(@rpmdb.size).not_to eq(0)
+ expect(@rpmdb.lookup_provides("config(test)")).to be_kind_of(Array)
@rpmdb.clear
- @rpmdb.lookup_provides("config(test)").should be == nil
- @rpmdb.size.should be == 0
+ expect(@rpmdb.lookup_provides("config(test)")).to eq(nil)
+ expect(@rpmdb.size).to eq(0)
end
end
describe "clear_available" do
it "should clear the available list" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.available_size.should_not be == 0
+ expect(@rpmdb.available_size).not_to eq(0)
@rpmdb.clear_available
- @rpmdb.available_size.should be == 0
+ expect(@rpmdb.available_size).to eq(0)
end
end
describe "available?" do
it "should return true if a package is available" do
- @rpmdb.available?(@rpm_w).should be == false
+ expect(@rpmdb.available?(@rpm_w)).to eq(false)
@rpmdb.push(@rpm_v, @rpm_w)
- @rpmdb.available?(@rpm_v).should be == false
- @rpmdb.available?(@rpm_w).should be == true
+ expect(@rpmdb.available?(@rpm_v)).to eq(false)
+ expect(@rpmdb.available?(@rpm_w)).to eq(true)
end
end
describe "clear_installed" do
it "should clear the installed list" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.installed_size.should_not be == 0
+ expect(@rpmdb.installed_size).not_to eq(0)
@rpmdb.clear_installed
- @rpmdb.installed_size.should be == 0
+ expect(@rpmdb.installed_size).to eq(0)
end
end
describe "installed?" do
it "should return true if a package is installed" do
- @rpmdb.installed?(@rpm_w).should be == false
+ expect(@rpmdb.installed?(@rpm_w)).to eq(false)
@rpmdb.push(@rpm_w, @rpm_x)
- @rpmdb.installed?(@rpm_w).should be == true
- @rpmdb.installed?(@rpm_x).should be == false
+ expect(@rpmdb.installed?(@rpm_w)).to eq(true)
+ expect(@rpmdb.installed?(@rpm_x)).to eq(false)
end
end
@@ -1506,12 +1506,12 @@ describe Chef::Provider::Package::Yum::RPMDb do
it "should raise an error unless a RPMDependency is passed" do
@rpmprovide = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :>=)
- lambda {
+ expect {
@rpmdb.whatprovides("hi")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
@rpmdb.whatprovides(@rpmrequire)
- }.should_not raise_error
+ }.not_to raise_error
end
it "should return an Array of packages statisfying a RPMDependency" do
@@ -1519,14 +1519,14 @@ describe Chef::Provider::Package::Yum::RPMDb do
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse("test-package-a >= 1.6.5")
x = @rpmdb.whatprovides(@rpmrequire)
- x.should be_kind_of(Array)
- x[0].should be == @rpm_v
+ expect(x).to be_kind_of(Array)
+ expect(x[0]).to eq(@rpm_v)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse("libz.so.1()(64bit)")
x = @rpmdb.whatprovides(@rpmrequire)
- x.should be_kind_of(Array)
- x[0].should be == @rpm_v
- x[1].should be == @rpm_z
+ expect(x).to be_kind_of(Array)
+ expect(x[0]).to eq(@rpm_v)
+ expect(x[1]).to eq(@rpm_z)
end
end
@@ -1592,18 +1592,18 @@ EOF
Chef::Provider::Package::Yum::YumCache.reset_instance
@yc = Chef::Provider::Package::Yum::YumCache.instance
# load valid data
- @yc.stub(:shell_out!).and_return(@status)
+ allow(@yc).to receive(:shell_out!).and_return(@status)
end
describe "initialize" do
it "should return a Chef::Provider::Package::Yum::YumCache object" do
- @yc.should be_kind_of(Chef::Provider::Package::Yum::YumCache)
+ expect(@yc).to be_kind_of(Chef::Provider::Package::Yum::YumCache)
end
it "should register reload for start of Chef::Client runs" do
Chef::Provider::Package::Yum::YumCache.reset_instance
- Chef::Client.should_receive(:when_run_starts) do |&b|
- b.should_not be_nil
+ expect(Chef::Client).to receive(:when_run_starts) do |&b|
+ expect(b).not_to be_nil
end
@yc = Chef::Provider::Package::Yum::YumCache.instance
end
@@ -1611,7 +1611,7 @@ EOF
describe "refresh" do
it "should implicitly call yum-dump.py only once by default after being instantiated" do
- @yc.should_receive(:shell_out!).once
+ expect(@yc).to receive(:shell_out!).once
@yc.installed_version("zlib")
@yc.reset
@yc.installed_version("zlib")
@@ -1619,226 +1619,226 @@ EOF
it "should run yum-dump.py using the system python when next_refresh is for :all" do
@yc.reload
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should run yum-dump.py with the installed flag when next_refresh is for :installed" do
@yc.reload_installed
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --installed --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --installed --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should run yum-dump.py with the all-provides flag when next_refresh is for :provides" do
@yc.reload_provides
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --all-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --all-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should pass extra_repo_control args to yum-dump.py" do
@yc.enable_extra_repo_control("--enablerepo=foo --disablerepo=bar")
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should pass extra_repo_control args and configured yum lock timeout to yum-dump.py" do
Chef::Config[:yum_lock_timeout] = 999
@yc.enable_extra_repo_control("--enablerepo=foo --disablerepo=bar")
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 999$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 999$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should warn about invalid data with too many separators" do
@status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_bad_separators, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- Chef::Log.should_receive(:warn).exactly(3).times.with(%r{Problem parsing})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect(Chef::Log).to receive(:warn).exactly(3).times.with(%r{Problem parsing})
@yc.refresh
end
it "should warn about invalid data with an incorrect type" do
@status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_bad_type, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- Chef::Log.should_receive(:warn).exactly(2).times.with(%r{Problem parsing})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect(Chef::Log).to receive(:warn).exactly(2).times.with(%r{Problem parsing})
@yc.refresh
end
it "should warn about no output from yum-dump.py" do
@status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_no_output, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- Chef::Log.should_receive(:warn).exactly(1).times.with(%r{no output from yum-dump.py})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect(Chef::Log).to receive(:warn).exactly(1).times.with(%r{no output from yum-dump.py})
@yc.refresh
end
it "should raise exception yum-dump.py exits with a non zero status" do
@status = double("Status", :exitstatus => 1, :stdin => @stdin, :stdout => @stdout_no_output, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- lambda { @yc.refresh}.should raise_error(Chef::Exceptions::Package, %r{CentOS-Base.repo, line: 12})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect { @yc.refresh}.to raise_error(Chef::Exceptions::Package, %r{CentOS-Base.repo, line: 12})
end
it "should parse type 'i' into an installed state for a package" do
- @yc.available_version("erlang-mochiweb").should be == nil
- @yc.installed_version("erlang-mochiweb").should_not be == nil
+ expect(@yc.available_version("erlang-mochiweb")).to eq(nil)
+ expect(@yc.installed_version("erlang-mochiweb")).not_to eq(nil)
end
it "should parse type 'a' into an available state for a package" do
- @yc.available_version("znc").should_not be == nil
- @yc.installed_version("znc").should be == nil
+ expect(@yc.available_version("znc")).not_to eq(nil)
+ expect(@yc.installed_version("znc")).to eq(nil)
end
it "should parse type 'r' into an installed and available states for a package" do
- @yc.available_version("zip").should_not be == nil
- @yc.installed_version("zip").should_not be == nil
+ expect(@yc.available_version("zip")).not_to eq(nil)
+ expect(@yc.installed_version("zip")).not_to eq(nil)
end
it "should parse installonlypkgs from yum-dump.py options output" do
- @yc.allow_multi_install.should be == %w{kernel kernel-bigmem kernel-enterprise}
+ expect(@yc.allow_multi_install).to eq(%w{kernel kernel-bigmem kernel-enterprise})
end
end
describe "installed_version" do
it "should take one or two arguments" do
- lambda { @yc.installed_version("zip") }.should_not raise_error
- lambda { @yc.installed_version("zip", "i386") }.should_not raise_error
- lambda { @yc.installed_version("zip", "i386", "extra") }.should raise_error(ArgumentError)
+ expect { @yc.installed_version("zip") }.not_to raise_error
+ expect { @yc.installed_version("zip", "i386") }.not_to raise_error
+ expect { @yc.installed_version("zip", "i386", "extra") }.to raise_error(ArgumentError)
end
it "should return version-release for matching package regardless of arch" do
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.installed_version("zip", nil).should be == "2.31-2.el5"
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.installed_version("zip", nil)).to eq("2.31-2.el5")
end
it "should return version-release for matching package and arch" do
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.installed_version("zisofs-tools", "i386").should be == nil
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.installed_version("zisofs-tools", "i386")).to eq(nil)
end
it "should return nil for an unmatched package" do
- @yc.installed_version(nil, nil).should be == nil
- @yc.installed_version("test1", nil).should be == nil
- @yc.installed_version("test2", "x86_64").should be == nil
+ expect(@yc.installed_version(nil, nil)).to eq(nil)
+ expect(@yc.installed_version("test1", nil)).to eq(nil)
+ expect(@yc.installed_version("test2", "x86_64")).to eq(nil)
end
end
describe "available_version" do
it "should take one or two arguments" do
- lambda { @yc.available_version("zisofs-tools") }.should_not raise_error
- lambda { @yc.available_version("zisofs-tools", "i386") }.should_not raise_error
- lambda { @yc.available_version("zisofs-tools", "i386", "extra") }.should raise_error(ArgumentError)
+ expect { @yc.available_version("zisofs-tools") }.not_to raise_error
+ expect { @yc.available_version("zisofs-tools", "i386") }.not_to raise_error
+ expect { @yc.available_version("zisofs-tools", "i386", "extra") }.to raise_error(ArgumentError)
end
it "should return version-release for matching package regardless of arch" do
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.available_version("zip", nil).should be == "2.31-2.el5"
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.available_version("zip", nil)).to eq("2.31-2.el5")
end
it "should return version-release for matching package and arch" do
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.available_version("zisofs-tools", "i386").should be == nil
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.available_version("zisofs-tools", "i386")).to eq(nil)
end
it "should return nil for an unmatched package" do
- @yc.available_version(nil, nil).should be == nil
- @yc.available_version("test1", nil).should be == nil
- @yc.available_version("test2", "x86_64").should be == nil
+ expect(@yc.available_version(nil, nil)).to eq(nil)
+ expect(@yc.available_version("test1", nil)).to eq(nil)
+ expect(@yc.available_version("test2", "x86_64")).to eq(nil)
end
end
describe "version_available?" do
it "should take two or three arguments" do
- lambda { @yc.version_available?("zisofs-tools") }.should raise_error(ArgumentError)
- lambda { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2") }.should_not raise_error
- lambda { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error
+ expect { @yc.version_available?("zisofs-tools") }.to raise_error(ArgumentError)
+ expect { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2") }.not_to raise_error
+ expect { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.not_to raise_error
end
it "should return true if our package-version-arch is available" do
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64").should be == true
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64")).to eq(true)
end
it "should return true if our package-version, no arch, is available" do
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", nil).should be == true
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2").should be == true
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", nil)).to eq(true)
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2")).to eq(true)
end
it "should return false if our package-version-arch isn't available" do
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "pretend").should be == false
- @yc.version_available?("zisofs-tools", "pretend", "x86_64").should be == false
- @yc.version_available?("pretend", "1.0.6-3.2.2", "x86_64").should be == false
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "pretend")).to eq(false)
+ expect(@yc.version_available?("zisofs-tools", "pretend", "x86_64")).to eq(false)
+ expect(@yc.version_available?("pretend", "1.0.6-3.2.2", "x86_64")).to eq(false)
end
it "should return false if our package-version, no arch, isn't available" do
- @yc.version_available?("zisofs-tools", "pretend", nil).should be == false
- @yc.version_available?("zisofs-tools", "pretend").should be == false
- @yc.version_available?("pretend", "1.0.6-3.2.2").should be == false
+ expect(@yc.version_available?("zisofs-tools", "pretend", nil)).to eq(false)
+ expect(@yc.version_available?("zisofs-tools", "pretend")).to eq(false)
+ expect(@yc.version_available?("pretend", "1.0.6-3.2.2")).to eq(false)
end
end
describe "package_repository" do
it "should take two or three arguments" do
- lambda { @yc.package_repository("zisofs-tools") }.should raise_error(ArgumentError)
- lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2") }.should_not raise_error
- lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error
+ expect { @yc.package_repository("zisofs-tools") }.to raise_error(ArgumentError)
+ expect { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2") }.not_to raise_error
+ expect { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.not_to raise_error
end
it "should return repoid for package-version-arch" do
- @yc.package_repository("zlib-devel", "1.2.3-3", "i386").should be == "extras"
- @yc.package_repository("zlib-devel", "1.2.3-3", "x86_64").should be == "base"
+ expect(@yc.package_repository("zlib-devel", "1.2.3-3", "i386")).to eq("extras")
+ expect(@yc.package_repository("zlib-devel", "1.2.3-3", "x86_64")).to eq("base")
end
it "should return repoid for package-version, no arch" do
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", nil).should be == "extras"
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2").should be == "extras"
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2", nil)).to eq("extras")
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2")).to eq("extras")
end
it "should return nil when no match for package-version-arch" do
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "pretend").should be == nil
- @yc.package_repository("zisofs-tools", "pretend", "x86_64").should be == nil
- @yc.package_repository("pretend", "1.0.6-3.2.2", "x86_64").should be == nil
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "pretend")).to eq(nil)
+ expect(@yc.package_repository("zisofs-tools", "pretend", "x86_64")).to eq(nil)
+ expect(@yc.package_repository("pretend", "1.0.6-3.2.2", "x86_64")).to eq(nil)
end
it "should return nil when no match for package-version, no arch" do
- @yc.package_repository("zisofs-tools", "pretend", nil).should be == nil
- @yc.package_repository("zisofs-tools", "pretend").should be == nil
- @yc.package_repository("pretend", "1.0.6-3.2.2").should be == nil
+ expect(@yc.package_repository("zisofs-tools", "pretend", nil)).to eq(nil)
+ expect(@yc.package_repository("zisofs-tools", "pretend")).to eq(nil)
+ expect(@yc.package_repository("pretend", "1.0.6-3.2.2")).to eq(nil)
end
end
describe "reset" do
it "should empty the installed and available packages RPMDb" do
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
@yc.reset
- @yc.available_version("zip", "x86_64").should be == nil
- @yc.installed_version("zip", "x86_64").should be == nil
+ expect(@yc.available_version("zip", "x86_64")).to eq(nil)
+ expect(@yc.installed_version("zip", "x86_64")).to eq(nil)
end
end
describe "package_available?" do
it "should return true a package name is available" do
- @yc.package_available?("zisofs-tools").should be == true
- @yc.package_available?("moo").should be == false
- @yc.package_available?(nil).should be == false
+ expect(@yc.package_available?("zisofs-tools")).to eq(true)
+ expect(@yc.package_available?("moo")).to eq(false)
+ expect(@yc.package_available?(nil)).to eq(false)
end
it "should return true a package name + arch is available" do
- @yc.package_available?("zlib-devel.i386").should be == true
- @yc.package_available?("zisofs-tools.x86_64").should be == true
- @yc.package_available?("znc-test.beta1.x86_64").should be == true
- @yc.package_available?("znc-test.beta1").should be == true
- @yc.package_available?("znc-test.test.beta1").should be == true
- @yc.package_available?("moo.i386").should be == false
- @yc.package_available?("zisofs-tools.beta").should be == false
- @yc.package_available?("znc-test.test").should be == false
+ expect(@yc.package_available?("zlib-devel.i386")).to eq(true)
+ expect(@yc.package_available?("zisofs-tools.x86_64")).to eq(true)
+ expect(@yc.package_available?("znc-test.beta1.x86_64")).to eq(true)
+ expect(@yc.package_available?("znc-test.beta1")).to eq(true)
+ expect(@yc.package_available?("znc-test.test.beta1")).to eq(true)
+ expect(@yc.package_available?("moo.i386")).to eq(false)
+ expect(@yc.package_available?("zisofs-tools.beta")).to eq(false)
+ expect(@yc.package_available?("znc-test.test")).to eq(false)
end
end
describe "enable_extra_repo_control" do
it "should set @extra_repo_control to arg" do
@yc.enable_extra_repo_control("--enablerepo=test")
- @yc.extra_repo_control.should be == "--enablerepo=test"
+ expect(@yc.extra_repo_control).to eq("--enablerepo=test")
end
it "should call reload once when set to flag cache for update" do
- @yc.should_receive(:reload).once
+ expect(@yc).to receive(:reload).once
@yc.enable_extra_repo_control("--enablerepo=test")
@yc.enable_extra_repo_control("--enablerepo=test")
end
@@ -1848,13 +1848,13 @@ EOF
it "should set @extra_repo_control to nil" do
@yc.enable_extra_repo_control("--enablerepo=test")
@yc.disable_extra_repo_control
- @yc.extra_repo_control.should be == nil
+ expect(@yc.extra_repo_control).to eq(nil)
end
it "should call reload once when cleared to flag cache for update" do
- @yc.should_receive(:reload).once
+ expect(@yc).to receive(:reload).once
@yc.enable_extra_repo_control("--enablerepo=test")
- @yc.should_receive(:reload).once
+ expect(@yc).to receive(:reload).once
@yc.disable_extra_repo_control
@yc.disable_extra_repo_control
end
diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb
index 87f02d7794..17d99640e6 100644
--- a/spec/unit/provider/package/zypper_spec.rb
+++ b/spec/unit/provider/package/zypper_spec.rb
@@ -30,84 +30,84 @@ describe Chef::Provider::Package::Zypper do
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Zypper.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
- @provider.stub(:popen4).and_return(@status)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
+ allow(@provider).to receive(:popen4).and_return(@status)
@stderr = StringIO.new
@stdout = StringIO.new
@pid = double("PID")
- @provider.stub(:`).and_return("2.0")
+ allow(@provider).to receive(:`).and_return("2.0")
end
describe "when loading the current package state" do
it "should create a current resource with the name of the new_resource" do
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should run zypper info with the package name" do
- @provider.should_receive(:popen4).with("zypper --non-interactive info #{@new_resource.package_name}").and_return(@status)
+ expect(@provider).to receive(:popen4).with("zypper --non-interactive info #{@new_resource.package_name}").and_return(@status)
@provider.load_current_resource
end
it "should set the installed version to nil on the current resource if zypper info installed version is (none)" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @current_resource.should_receive(:version).with(nil).and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@current_resource).to receive(:version).with(nil).and_return(true)
@provider.load_current_resource
end
it "should set the installed version if zypper info has one" do
@stdout = StringIO.new("Version: 1.0\nInstalled: Yes\n")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @current_resource.should_receive(:version).with("1.0").and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@current_resource).to receive(:version).with("1.0").and_return(true)
@provider.load_current_resource
end
it "should set the candidate version if zypper info has one" do
@stdout = StringIO.new("Version: 1.0\nInstalled: No\nStatus: out-of-date (version 0.9 installed)")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.candidate_version.should eql("1.0")
+ expect(@provider.candidate_version).to eql("1.0")
end
it "should raise an exception if zypper info fails" do
- @status.should_receive(:exitstatus).and_return(1)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect(@status).to receive(:exitstatus).and_return(1)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should not raise an exception if zypper info succeeds" do
- @status.should_receive(:exitstatus).and_return(0)
- lambda { @provider.load_current_resource }.should_not raise_error
+ expect(@status).to receive(:exitstatus).and_return(0)
+ expect { @provider.load_current_resource }.not_to raise_error
end
it "should return the current resouce" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
describe "install_package" do
it "should run zypper install with the package name and version" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive install --auto-agree-with-licenses emacs=1.0")
@provider.install_package("emacs", "1.0")
end
it "should run zypper install without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.install_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper install" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.install_package("emacs", "1.0")
@@ -116,28 +116,28 @@ describe Chef::Provider::Package::Zypper do
describe "upgrade_package" do
it "should run zypper update with the package name and version" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive install --auto-agree-with-licenses emacs=1.0")
@provider.upgrade_package("emacs", "1.0")
end
it "should run zypper update without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.upgrade_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper upgrade" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.upgrade_package("emacs", "1.0")
end
it "should run zypper upgrade without gpg checks" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@@ -149,8 +149,8 @@ describe Chef::Provider::Package::Zypper do
context "when package version is not explicitly specified" do
it "should run zypper remove with the package name" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive remove emacs")
@provider.remove_package("emacs", nil)
end
@@ -158,21 +158,21 @@ describe Chef::Provider::Package::Zypper do
context "when package version is explicitly specified" do
it "should run zypper remove with the package name" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive remove emacs=1.0")
@provider.remove_package("emacs", "1.0")
end
it "should run zypper remove without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove emacs=1.0")
@provider.remove_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper remove" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove emacs=1.0")
@provider.remove_package("emacs", "1.0")
@@ -182,20 +182,20 @@ describe Chef::Provider::Package::Zypper do
describe "purge_package" do
it "should run remove_package with the name and version" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
@provider.purge_package("emacs", "1.0")
end
it "should run zypper purge without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
@provider.purge_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper purge" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
@provider.purge_package("emacs", "1.0")
end
@@ -203,12 +203,12 @@ describe Chef::Provider::Package::Zypper do
describe "on an older zypper" do
before(:each) do
- @provider.stub(:`).and_return("0.11.6")
+ allow(@provider).to receive(:`).and_return("0.11.6")
end
describe "install_package" do
it "should run zypper install with the package name and version" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --no-gpg-checks install --auto-agree-with-licenses -y emacs")
@provider.install_package("emacs", "1.0")
end
@@ -216,7 +216,7 @@ describe Chef::Provider::Package::Zypper do
describe "upgrade_package" do
it "should run zypper update with the package name and version" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --no-gpg-checks install --auto-agree-with-licenses -y emacs")
@provider.upgrade_package("emacs", "1.0")
end
@@ -224,7 +224,7 @@ describe Chef::Provider::Package::Zypper do
describe "remove_package" do
it "should run zypper remove with the package name" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --no-gpg-checks remove -y emacs")
@provider.remove_package("emacs", "1.0")
end
diff --git a/spec/unit/provider/package_spec.rb b/spec/unit/provider/package_spec.rb
index 375a0d0646..3a42bcacf6 100644
--- a/spec/unit/provider/package_spec.rb
+++ b/spec/unit/provider/package_spec.rb
@@ -34,80 +34,80 @@ describe Chef::Provider::Package do
describe "when installing a package" do
before(:each) do
@provider.current_resource = @current_resource
- @provider.stub(:install_package).and_return(true)
+ allow(@provider).to receive(:install_package).and_return(true)
end
it "should raise a Chef::Exceptions::Package if no version is specified, and no candidate is available" do
@provider.candidate_version = nil
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
it "should call preseed_package if a response_file is given" do
@new_resource.response_file("foo")
- @provider.should_receive(:get_preseed_file).with(
+ expect(@provider).to receive(:get_preseed_file).with(
@new_resource.name,
@provider.candidate_version
).and_return("/var/cache/preseed-test")
- @provider.should_receive(:preseed_package).with(
+ expect(@provider).to receive(:preseed_package).with(
"/var/cache/preseed-test"
).and_return(true)
@provider.run_action(:install)
end
it "should not call preseed_package if a response_file is not given" do
- @provider.should_not_receive(:preseed_package)
+ expect(@provider).not_to receive(:preseed_package)
@provider.run_action(:install)
end
it "should install the package at the candidate_version if it is not already installed" do
- @provider.should_receive(:install_package).with(
+ expect(@provider).to receive(:install_package).with(
@new_resource.name,
@provider.candidate_version
).and_return(true)
@provider.run_action(:install)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should install the package at the version specified if it is not already installed" do
@new_resource.version("1.0")
- @provider.should_receive(:install_package).with(
+ expect(@provider).to receive(:install_package).with(
@new_resource.name,
@new_resource.version
).and_return(true)
@provider.run_action(:install)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should install the package at the version specified if a different version is installed" do
@new_resource.version("1.0")
- @current_resource.stub(:version).and_return("0.99")
- @provider.should_receive(:install_package).with(
+ allow(@current_resource).to receive(:version).and_return("0.99")
+ expect(@provider).to receive(:install_package).with(
@new_resource.name,
@new_resource.version
).and_return(true)
@provider.run_action(:install)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not install the package if it is already installed and no version is specified" do
@current_resource.version("1.0")
- @provider.should_not_receive(:install_package)
+ expect(@provider).not_to receive(:install_package)
@provider.run_action(:install)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should not install the package if it is already installed at the version specified" do
@current_resource.version("1.0")
@new_resource.version("1.0")
- @provider.should_not_receive(:install_package)
+ expect(@provider).not_to receive(:install_package)
@provider.run_action(:install)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should call the candidate_version accessor only once if the package is already installed and no version is specified" do
@current_resource.version("1.0")
- @provider.stub(:candidate_version).and_return("1.0")
+ allow(@provider).to receive(:candidate_version).and_return("1.0")
@provider.run_action(:install)
end
@@ -119,220 +119,220 @@ describe Chef::Provider::Package do
it "should set the resource to updated if it installs the package" do
@provider.run_action(:install)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "when upgrading the package" do
before(:each) do
- @provider.stub(:upgrade_package).and_return(true)
+ allow(@provider).to receive(:upgrade_package).and_return(true)
end
it "should upgrade the package if the current version is not the candidate version" do
- @provider.should_receive(:upgrade_package).with(
+ expect(@provider).to receive(:upgrade_package).with(
@new_resource.name,
@provider.candidate_version
).and_return(true)
@provider.run_action(:upgrade)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should set the resource to updated if it installs the package" do
@provider.run_action(:upgrade)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not install the package if the current version is the candidate version" do
@current_resource.version "1.0"
- @provider.should_not_receive(:upgrade_package)
+ expect(@provider).not_to receive(:upgrade_package)
@provider.run_action(:upgrade)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should print the word 'uninstalled' if there was no original version" do
- @current_resource.stub(:version).and_return(nil)
- Chef::Log.should_receive(:info).with("package[emacs] upgraded from uninstalled to 1.0")
+ allow(@current_resource).to receive(:version).and_return(nil)
+ expect(Chef::Log).to receive(:info).with("package[emacs] upgraded from uninstalled to 1.0")
@provider.run_action(:upgrade)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should raise a Chef::Exceptions::Package if current version and candidate are nil" do
- @current_resource.stub(:version).and_return(nil)
+ allow(@current_resource).to receive(:version).and_return(nil)
@provider.candidate_version = nil
- lambda { @provider.run_action(:upgrade) }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
end
it "should not install the package if candidate version is nil" do
@current_resource.version "1.0"
@provider.candidate_version = nil
- @provider.should_not_receive(:upgrade_package)
+ expect(@provider).not_to receive(:upgrade_package)
@provider.run_action(:upgrade)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
end
describe "When removing the package" do
before(:each) do
- @provider.stub(:remove_package).and_return(true)
+ allow(@provider).to receive(:remove_package).and_return(true)
@current_resource.version '1.4.2'
end
it "should remove the package if it is installed" do
- @provider.should be_removing_package
- @provider.should_receive(:remove_package).with('emacs', nil)
+ expect(@provider).to be_removing_package
+ expect(@provider).to receive(:remove_package).with('emacs', nil)
@provider.run_action(:remove)
- @new_resource.should be_updated
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated
+ expect(@new_resource).to be_updated_by_last_action
end
it "should remove the package at a specific version if it is installed at that version" do
@new_resource.version "1.4.2"
- @provider.should be_removing_package
- @provider.should_receive(:remove_package).with('emacs', '1.4.2')
+ expect(@provider).to be_removing_package
+ expect(@provider).to receive(:remove_package).with('emacs', '1.4.2')
@provider.run_action(:remove)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not remove the package at a specific version if it is not installed at that version" do
@new_resource.version "1.0"
- @provider.should_not be_removing_package
- @provider.should_not_receive(:remove_package)
+ expect(@provider).not_to be_removing_package
+ expect(@provider).not_to receive(:remove_package)
@provider.run_action(:remove)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should not remove the package if it is not installed" do
- @provider.should_not_receive(:remove_package)
- @current_resource.stub(:version).and_return(nil)
+ expect(@provider).not_to receive(:remove_package)
+ allow(@current_resource).to receive(:version).and_return(nil)
@provider.run_action(:remove)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should set the resource to updated if it removes the package" do
@provider.run_action(:remove)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "When purging the package" do
before(:each) do
- @provider.stub(:purge_package).and_return(true)
+ allow(@provider).to receive(:purge_package).and_return(true)
@current_resource.version '1.4.2'
end
it "should purge the package if it is installed" do
- @provider.should be_removing_package
- @provider.should_receive(:purge_package).with('emacs', nil)
+ expect(@provider).to be_removing_package
+ expect(@provider).to receive(:purge_package).with('emacs', nil)
@provider.run_action(:purge)
- @new_resource.should be_updated
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated
+ expect(@new_resource).to be_updated_by_last_action
end
it "should purge the package at a specific version if it is installed at that version" do
@new_resource.version "1.4.2"
- @provider.should be_removing_package
- @provider.should_receive(:purge_package).with('emacs', '1.4.2')
+ expect(@provider).to be_removing_package
+ expect(@provider).to receive(:purge_package).with('emacs', '1.4.2')
@provider.run_action(:purge)
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated_by_last_action
end
it "should not purge the package at a specific version if it is not installed at that version" do
@new_resource.version "1.0"
- @provider.should_not be_removing_package
- @provider.should_not_receive(:purge_package)
+ expect(@provider).not_to be_removing_package
+ expect(@provider).not_to receive(:purge_package)
@provider.run_action(:purge)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should not purge the package if it is not installed" do
@current_resource.instance_variable_set(:@version, nil)
- @provider.should_not be_removing_package
+ expect(@provider).not_to be_removing_package
- @provider.should_not_receive(:purge_package)
+ expect(@provider).not_to receive(:purge_package)
@provider.run_action(:purge)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should set the resource to updated if it purges the package" do
@provider.run_action(:purge)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "when reconfiguring the package" do
before(:each) do
- @provider.stub(:reconfig_package).and_return(true)
+ allow(@provider).to receive(:reconfig_package).and_return(true)
end
it "should info log, reconfigure the package and update the resource" do
- @current_resource.stub(:version).and_return('1.0')
- @new_resource.stub(:response_file).and_return(true)
- @provider.should_receive(:get_preseed_file).and_return('/var/cache/preseed-test')
- @provider.stub(:preseed_package).and_return(true)
- @provider.stub(:reconfig_package).and_return(true)
- Chef::Log.should_receive(:info).with("package[emacs] reconfigured")
- @provider.should_receive(:reconfig_package)
+ allow(@current_resource).to receive(:version).and_return('1.0')
+ allow(@new_resource).to receive(:response_file).and_return(true)
+ expect(@provider).to receive(:get_preseed_file).and_return('/var/cache/preseed-test')
+ allow(@provider).to receive(:preseed_package).and_return(true)
+ allow(@provider).to receive(:reconfig_package).and_return(true)
+ expect(Chef::Log).to receive(:info).with("package[emacs] reconfigured")
+ expect(@provider).to receive(:reconfig_package)
@provider.run_action(:reconfig)
- @new_resource.should be_updated
- @new_resource.should be_updated_by_last_action
+ expect(@new_resource).to be_updated
+ expect(@new_resource).to be_updated_by_last_action
end
it "should debug log and not reconfigure the package if the package is not installed" do
- @current_resource.stub(:version).and_return(nil)
- Chef::Log.should_receive(:debug).with("package[emacs] is NOT installed - nothing to do")
- @provider.should_not_receive(:reconfig_package)
+ allow(@current_resource).to receive(:version).and_return(nil)
+ expect(Chef::Log).to receive(:debug).with("package[emacs] is NOT installed - nothing to do")
+ expect(@provider).not_to receive(:reconfig_package)
@provider.run_action(:reconfig)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should debug log and not reconfigure the package if no response_file is given" do
- @current_resource.stub(:version).and_return('1.0')
- @new_resource.stub(:response_file).and_return(nil)
- Chef::Log.should_receive(:debug).with("package[emacs] no response_file provided - nothing to do")
- @provider.should_not_receive(:reconfig_package)
+ allow(@current_resource).to receive(:version).and_return('1.0')
+ allow(@new_resource).to receive(:response_file).and_return(nil)
+ expect(Chef::Log).to receive(:debug).with("package[emacs] no response_file provided - nothing to do")
+ expect(@provider).not_to receive(:reconfig_package)
@provider.run_action(:reconfig)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
it "should debug log and not reconfigure the package if the response_file has not changed" do
- @current_resource.stub(:version).and_return('1.0')
- @new_resource.stub(:response_file).and_return(true)
- @provider.should_receive(:get_preseed_file).and_return(false)
- @provider.stub(:preseed_package).and_return(false)
- Chef::Log.should_receive(:debug).with("package[emacs] preseeding has not changed - nothing to do")
- @provider.should_not_receive(:reconfig_package)
+ allow(@current_resource).to receive(:version).and_return('1.0')
+ allow(@new_resource).to receive(:response_file).and_return(true)
+ expect(@provider).to receive(:get_preseed_file).and_return(false)
+ allow(@provider).to receive(:preseed_package).and_return(false)
+ expect(Chef::Log).to receive(:debug).with("package[emacs] preseeding has not changed - nothing to do")
+ expect(@provider).not_to receive(:reconfig_package)
@provider.run_action(:reconfig)
- @new_resource.should_not be_updated_by_last_action
+ expect(@new_resource).not_to be_updated_by_last_action
end
end
describe "when running commands to be implemented by subclasses" do
it "should raises UnsupportedAction for install" do
- lambda { @provider.install_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.install_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should raises UnsupportedAction for upgrade" do
- lambda { @provider.upgrade_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.upgrade_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should raises UnsupportedAction for remove" do
- lambda { @provider.remove_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.remove_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should raises UnsupportedAction for purge" do
- lambda { @provider.purge_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.purge_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should raise UnsupportedAction for preseed_package" do
preseed_file = "/tmp/sun-jdk-package-preseed-file.seed"
- lambda { @provider.preseed_package(preseed_file) }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.preseed_package(preseed_file) }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should raise UnsupportedAction for reconfig" do
- lambda { @provider.reconfig_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.reconfig_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
end
@@ -358,29 +358,29 @@ describe Chef::Provider::Package do
describe "creating the cookbook file resource to fetch the response file" do
before do
- Chef::FileCache.should_receive(:create_cache_path).with('preseed/java').and_return("/tmp/preseed/java")
+ expect(Chef::FileCache).to receive(:create_cache_path).with('preseed/java').and_return("/tmp/preseed/java")
end
it "sets the preseed resource's runcontext to its own run context" do
- Chef::FileCache.stub(:create_cache_path).and_return("/tmp/preseed/java")
- @provider.preseed_resource('java', '6').run_context.should_not be_nil
- @provider.preseed_resource('java', '6').run_context.should equal(@provider.run_context)
+ allow(Chef::FileCache).to receive(:create_cache_path).and_return("/tmp/preseed/java")
+ expect(@provider.preseed_resource('java', '6').run_context).not_to be_nil
+ expect(@provider.preseed_resource('java', '6').run_context).to equal(@provider.run_context)
end
it "should set the cookbook name of the remote file to the new resources cookbook name" do
- @provider.preseed_resource('java', '6').cookbook_name.should == 'java'
+ expect(@provider.preseed_resource('java', '6').cookbook_name).to eq('java')
end
it "should set remote files source to the new resources response file" do
- @provider.preseed_resource('java', '6').source.should == 'java.response'
+ expect(@provider.preseed_resource('java', '6').source).to eq('java.response')
end
it "should never back up the cached response file" do
- @provider.preseed_resource('java', '6').backup.should be_false
+ expect(@provider.preseed_resource('java', '6').backup).to be_false
end
it "sets the install path of the resource to $file_cache/$cookbook/$pkg_name-$pkg_version.seed" do
- @provider.preseed_resource('java', '6').path.should == '/tmp/preseed/java/java-6.seed'
+ expect(@provider.preseed_resource('java', '6').path).to eq('/tmp/preseed/java/java-6.seed')
end
end
@@ -397,7 +397,7 @@ describe Chef::Provider::Package do
@response_file_resource.source('java.response')
- @provider.should_receive(:preseed_resource).with('java', '6').and_return(@response_file_resource)
+ expect(@provider).to receive(:preseed_resource).with('java', '6').and_return(@response_file_resource)
end
after do
@@ -405,20 +405,20 @@ describe Chef::Provider::Package do
end
it "creates the preseed file in the cache" do
- @response_file_resource.should_receive(:run_action).with(:create)
+ expect(@response_file_resource).to receive(:run_action).with(:create)
@provider.get_preseed_file("java", "6")
end
it "returns the path to the response file if the response file was updated" do
- @provider.get_preseed_file("java", "6").should == @response_file_destination
+ expect(@provider.get_preseed_file("java", "6")).to eq(@response_file_destination)
end
it "should return false if the response file has not been updated" do
@response_file_resource.updated_by_last_action(false)
- @response_file_resource.should_not be_updated_by_last_action
+ expect(@response_file_resource).not_to be_updated_by_last_action
# don't let the response_file_resource set updated to true
- @response_file_resource.should_receive(:run_action).with(:create)
- @provider.get_preseed_file("java", "6").should be(false)
+ expect(@response_file_resource).to receive(:run_action).with(:create)
+ expect(@provider.get_preseed_file("java", "6")).to be(false)
end
end
diff --git a/spec/unit/provider/powershell_spec.rb b/spec/unit/provider/powershell_spec.rb
index 33c402836b..60dbcf80b0 100644
--- a/spec/unit/provider/powershell_spec.rb
+++ b/spec/unit/provider/powershell_spec.rb
@@ -32,7 +32,7 @@ describe Chef::Provider::PowershellScript, "action_run" do
end
it "should set the -File flag as the last flag" do
- @provider.flags.split(' ').pop.should == "-File"
+ expect(@provider.flags.split(' ').pop).to eq("-File")
end
end
diff --git a/spec/unit/provider/registry_key_spec.rb b/spec/unit/provider/registry_key_spec.rb
index 2cfbcf98f1..79811fdab8 100644
--- a/spec/unit/provider/registry_key_spec.rb
+++ b/spec/unit/provider/registry_key_spec.rb
@@ -31,9 +31,9 @@ shared_examples_for "a registry key" do
@provider = Chef::Provider::RegistryKey.new(@new_resource, @run_context)
- @provider.stub(:running_on_windows!).and_return(true)
+ allow(@provider).to receive(:running_on_windows!).and_return(true)
@double_registry = double(Chef::Win32::Registry)
- @provider.stub(:registry).and_return(@double_registry)
+ allow(@provider).to receive(:registry).and_return(@double_registry)
end
describe "when first created" do
@@ -42,36 +42,36 @@ shared_examples_for "a registry key" do
describe "executing load_current_resource" do
describe "when the key exists" do
before(:each) do
- @double_registry.should_receive(:key_exists?).with(keyname).and_return(true)
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval2 )
+ expect(@double_registry).to receive(:key_exists?).with(keyname).and_return(true)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval2 )
@provider.load_current_resource
end
it "should set the key of the current resource to the key of the new resource" do
- @provider.current_resource.key.should == @new_resource.key
+ expect(@provider.current_resource.key).to eq(@new_resource.key)
end
it "should set the architecture of the current resource to the architecture of the new resource" do
- @provider.current_resource.architecture.should == @new_resource.architecture
+ expect(@provider.current_resource.architecture).to eq(@new_resource.architecture)
end
it "should set the recursive flag of the current resource to the recursive flag of the new resource" do
- @provider.current_resource.recursive.should == @new_resource.recursive
+ expect(@provider.current_resource.recursive).to eq(@new_resource.recursive)
end
it "should set the unscrubbed values of the current resource to the values it got from the registry" do
- @provider.current_resource.unscrubbed_values.should == [ testval2 ]
+ expect(@provider.current_resource.unscrubbed_values).to eq([ testval2 ])
end
end
describe "when the key does not exist" do
before(:each) do
- @double_registry.should_receive(:key_exists?).with(keyname).and_return(false)
+ expect(@double_registry).to receive(:key_exists?).with(keyname).and_return(false)
@provider.load_current_resource
end
it "should set the values in the current resource to empty array" do
- @provider.current_resource.values.should == []
+ expect(@provider.current_resource.values).to eq([])
end
end
end
@@ -79,29 +79,29 @@ shared_examples_for "a registry key" do
describe "action_create" do
context "when the key exists" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(true)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
end
it "should do nothing if the key and the value both exist" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1 )
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1 )
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create
end
it "should create the value if the key exists but the value does not" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval2 )
- @double_registry.should_receive(:set_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval2 )
+ expect(@double_registry).to receive(:set_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_create
end
it "should set the value if the key exists but the data does not match" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1_wrong_data )
- @double_registry.should_receive(:set_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1_wrong_data )
+ expect(@double_registry).to receive(:set_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_create
end
it "should set the value if the key exists but the type does not match" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1_wrong_type )
- @double_registry.should_receive(:set_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1_wrong_type )
+ expect(@double_registry).to receive(:set_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_create
end
@@ -109,30 +109,30 @@ shared_examples_for "a registry key" do
context "when the key exists and the values in the new resource are empty" do
it "when a value is in the key, it should do nothing" do
@provider.new_resource.values([])
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(true)
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1 )
- @double_registry.should_not_receive(:create_key)
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1 )
+ expect(@double_registry).not_to receive(:create_key)
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create
end
it "when no value is in the key, it should do nothing" do
@provider.new_resource.values([])
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(true)
- @double_registry.should_receive(:get_values).with(keyname).and_return( nil )
- @double_registry.should_not_receive(:create_key)
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( nil )
+ expect(@double_registry).not_to receive(:create_key)
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create
end
end
context "when the key does not exist" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(false)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(false)
end
it "should create the key and the value" do
- @double_registry.should_receive(:create_key).with(keyname, false)
- @double_registry.should_receive(:set_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:create_key).with(keyname, false)
+ expect(@double_registry).to receive(:set_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_create
end
@@ -140,9 +140,9 @@ shared_examples_for "a registry key" do
context "when the key does not exist and the values in the new resource are empty" do
it "should create the key" do
@new_resource.values([])
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(false)
- @double_registry.should_receive(:create_key).with(keyname, false)
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(false)
+ expect(@double_registry).to receive(:create_key).with(keyname, false)
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create
end
@@ -152,40 +152,40 @@ shared_examples_for "a registry key" do
describe "action_create_if_missing" do
context "when the key exists" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(true)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
end
it "should do nothing if the key and the value both exist" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1 )
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1 )
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create_if_missing
end
it "should create the value if the key exists but the value does not" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval2 )
- @double_registry.should_receive(:set_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval2 )
+ expect(@double_registry).to receive(:set_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_create_if_missing
end
it "should not set the value if the key exists but the data does not match" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1_wrong_data )
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1_wrong_data )
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create_if_missing
end
it "should not set the value if the key exists but the type does not match" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1_wrong_type )
- @double_registry.should_not_receive(:set_value)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1_wrong_type )
+ expect(@double_registry).not_to receive(:set_value)
@provider.load_current_resource
@provider.action_create_if_missing
end
end
context "when the key does not exist" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(false)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(false)
end
it "should create the key and the value" do
- @double_registry.should_receive(:create_key).with(keyname, false)
- @double_registry.should_receive(:set_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:create_key).with(keyname, false)
+ expect(@double_registry).to receive(:set_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_create_if_missing
end
@@ -195,39 +195,39 @@ shared_examples_for "a registry key" do
describe "action_delete" do
context "when the key exists" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(true)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
end
it "deletes the value when the value exists" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1 )
- @double_registry.should_receive(:delete_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1 )
+ expect(@double_registry).to receive(:delete_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_delete
end
it "deletes the value when the value exists, but the type is wrong" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1_wrong_type )
- @double_registry.should_receive(:delete_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1_wrong_type )
+ expect(@double_registry).to receive(:delete_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_delete
end
it "deletes the value when the value exists, but the data is wrong" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1_wrong_data )
- @double_registry.should_receive(:delete_value).with(keyname, testval1)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1_wrong_data )
+ expect(@double_registry).to receive(:delete_value).with(keyname, testval1)
@provider.load_current_resource
@provider.action_delete
end
it "does not delete the value when the value does not exist" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval2 )
- @double_registry.should_not_receive(:delete_value)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval2 )
+ expect(@double_registry).not_to receive(:delete_value)
@provider.load_current_resource
@provider.action_delete
end
end
context "when the key does not exist" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(false)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(false)
end
it "does nothing" do
- @double_registry.should_not_receive(:delete_value)
+ expect(@double_registry).not_to receive(:delete_value)
@provider.load_current_resource
@provider.action_delete
end
@@ -237,21 +237,21 @@ shared_examples_for "a registry key" do
describe "action_delete_key" do
context "when the key exists" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(true)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
end
it "deletes the key" do
- @double_registry.should_receive(:get_values).with(keyname).and_return( testval1 )
- @double_registry.should_receive(:delete_key).with(keyname, false)
+ expect(@double_registry).to receive(:get_values).with(keyname).and_return( testval1 )
+ expect(@double_registry).to receive(:delete_key).with(keyname, false)
@provider.load_current_resource
@provider.action_delete_key
end
end
context "when the key does not exist" do
before(:each) do
- @double_registry.should_receive(:key_exists?).twice.with(keyname).and_return(false)
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(false)
end
it "does nothing" do
- @double_registry.should_not_receive(:delete_key)
+ expect(@double_registry).not_to receive(:delete_key)
@provider.load_current_resource
@provider.action_delete_key
end
diff --git a/spec/unit/provider/remote_directory_spec.rb b/spec/unit/provider/remote_directory_spec.rb
index b986e2c8ad..a2f5092f57 100644
--- a/spec/unit/provider/remote_directory_spec.rb
+++ b/spec/unit/provider/remote_directory_spec.rb
@@ -27,7 +27,7 @@ end
describe Chef::Provider::RemoteDirectory do
before do
- Chef::FileAccessControl.any_instance.stub(:set_all)
+ allow_any_instance_of(Chef::FileAccessControl).to receive(:set_all)
@resource = Chef::Resource::RemoteDirectory.new(File.join(Dir.tmpdir, "tafty"))
# in CHEF_SPEC_DATA/cookbooks/openldap/files/default/remotedir
@@ -80,11 +80,11 @@ describe Chef::Provider::RemoteDirectory do
it "configures access control on intermediate directorys" do
directory_resource = @provider.send(:resource_for_directory, File.join(Dir.tmpdir, "intermediate_dir"))
- directory_resource.path.should == File.join(Dir.tmpdir, "intermediate_dir")
- directory_resource.mode.should == "0750"
- directory_resource.group.should == "wheel"
- directory_resource.owner.should == "root"
- directory_resource.recursive.should be_true
+ expect(directory_resource.path).to eq(File.join(Dir.tmpdir, "intermediate_dir"))
+ expect(directory_resource.mode).to eq("0750")
+ expect(directory_resource.group).to eq("wheel")
+ expect(directory_resource.owner).to eq("root")
+ expect(directory_resource.recursive).to be_true
end
it "configures access control on files in the directory" do
@@ -92,12 +92,12 @@ describe Chef::Provider::RemoteDirectory do
cookbook_file = @provider.send(:cookbook_file_resource,
"/target/destination/path.txt",
"relative/source/path.txt")
- cookbook_file.cookbook_name.should == "berlin_style_tasty_cupcakes"
- cookbook_file.source.should == "remotedir_root/relative/source/path.txt"
- cookbook_file.mode.should == "0640"
- cookbook_file.group.should == "staff"
- cookbook_file.owner.should == "toor"
- cookbook_file.backup.should == 23
+ expect(cookbook_file.cookbook_name).to eq("berlin_style_tasty_cupcakes")
+ expect(cookbook_file.source).to eq("remotedir_root/relative/source/path.txt")
+ expect(cookbook_file.mode).to eq("0640")
+ expect(cookbook_file.group).to eq("staff")
+ expect(cookbook_file.owner).to eq("toor")
+ expect(cookbook_file.backup).to eq(23)
end
end
@@ -116,17 +116,17 @@ describe Chef::Provider::RemoteDirectory do
it "creates the toplevel directory without error " do
@resource.recursive(false)
@provider.run_action(:create)
- ::File.exist?(@destination_dir).should be_true
+ expect(::File.exist?(@destination_dir)).to be_true
end
it "transfers the directory with all contents" do
@provider.run_action(:create)
- ::File.exist?(@destination_dir + '/remote_dir_file1.txt').should be_true
- ::File.exist?(@destination_dir + '/remote_dir_file2.txt').should be_true
- ::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file1.txt').should be_true
- ::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file2.txt').should be_true
- ::File.exist?(@destination_dir + '/remotesubdir/.a_dotfile').should be_true
- ::File.exist?(@destination_dir + '/.a_dotdir/.a_dotfile_in_a_dotdir').should be_true
+ expect(::File.exist?(@destination_dir + '/remote_dir_file1.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remote_dir_file2.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file1.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file2.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remotesubdir/.a_dotfile')).to be_true
+ expect(::File.exist?(@destination_dir + '/.a_dotdir/.a_dotfile_in_a_dotdir')).to be_true
end
describe "only if it is missing" do
@@ -141,8 +141,8 @@ describe Chef::Provider::RemoteDirectory do
@provider.run_action(:create_if_missing)
- file1md5.eql?(Digest::MD5.hexdigest(File.read(@destination_dir + '/remote_dir_file1.txt'))).should be_true
- subdirfile1md5.eql?(Digest::MD5.hexdigest(File.read(@destination_dir + '/remotesubdir/remote_subdir_file1.txt'))).should be_true
+ expect(file1md5.eql?(Digest::MD5.hexdigest(File.read(@destination_dir + '/remote_dir_file1.txt')))).to be_true
+ expect(subdirfile1md5.eql?(Digest::MD5.hexdigest(File.read(@destination_dir + '/remotesubdir/remote_subdir_file1.txt')))).to be_true
end
end
@@ -155,13 +155,13 @@ describe Chef::Provider::RemoteDirectory do
FileUtils.touch(@destination_dir + '/remotesubdir/marked_for_death_again.txt')
@provider.run_action(:create)
- ::File.exist?(@destination_dir + '/remote_dir_file1.txt').should be_true
- ::File.exist?(@destination_dir + '/remote_dir_file2.txt').should be_true
- ::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file1.txt').should be_true
- ::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file2.txt').should be_true
+ expect(::File.exist?(@destination_dir + '/remote_dir_file1.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remote_dir_file2.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file1.txt')).to be_true
+ expect(::File.exist?(@destination_dir + '/remotesubdir/remote_subdir_file2.txt')).to be_true
- ::File.exist?(@destination_dir + '/marked_for_death.txt').should be_false
- ::File.exist?(@destination_dir + '/remotesubdir/marked_for_death_again.txt').should be_false
+ expect(::File.exist?(@destination_dir + '/marked_for_death.txt')).to be_false
+ expect(::File.exist?(@destination_dir + '/remotesubdir/marked_for_death_again.txt')).to be_false
end
it "removes files in subdirectories before files above" do
@@ -172,10 +172,10 @@ describe Chef::Provider::RemoteDirectory do
FileUtils.touch(@destination_dir + '/a/multiply/nested/baz.txt')
FileUtils.touch(@destination_dir + '/a/multiply/nested/directory/qux.txt')
@provider.run_action(:create)
- ::File.exist?(@destination_dir + '/a/foo.txt').should be_false
- ::File.exist?(@destination_dir + '/a/multiply/bar.txt').should be_false
- ::File.exist?(@destination_dir + '/a/multiply/nested/baz.txt').should be_false
- ::File.exist?(@destination_dir + '/a/multiply/nested/directory/qux.txt').should be_false
+ expect(::File.exist?(@destination_dir + '/a/foo.txt')).to be_false
+ expect(::File.exist?(@destination_dir + '/a/multiply/bar.txt')).to be_false
+ expect(::File.exist?(@destination_dir + '/a/multiply/nested/baz.txt')).to be_false
+ expect(::File.exist?(@destination_dir + '/a/multiply/nested/directory/qux.txt')).to be_false
end
it "removes directory symlinks properly", :not_supported_on_win2k3 do
@@ -188,12 +188,12 @@ describe Chef::Provider::RemoteDirectory do
Dir.mktmpdir do |tmp_dir|
begin
@fclass.file_class.symlink(tmp_dir.dup, symlinked_dir_path)
- ::File.exist?(symlinked_dir_path).should be_true
+ expect(::File.exist?(symlinked_dir_path)).to be_true
@provider.run_action
- ::File.exist?(symlinked_dir_path).should be_false
- ::File.exist?(tmp_dir).should be_true
+ expect(::File.exist?(symlinked_dir_path)).to be_false
+ expect(::File.exist?(tmp_dir)).to be_true
rescue Chef::Exceptions::Win32APIError => e
pending "This must be run as an Administrator to create symlinks"
end
@@ -212,8 +212,8 @@ describe Chef::Provider::RemoteDirectory do
file1md5 = Digest::MD5.hexdigest(::File.read(@destination_dir + '/remote_dir_file1.txt'))
subdirfile1md5 = Digest::MD5.hexdigest(::File.read(@destination_dir + '/remotesubdir/remote_subdir_file1.txt'))
@provider.run_action(:create)
- file1md5.eql?(Digest::MD5.hexdigest(::File.read(@destination_dir + '/remote_dir_file1.txt'))).should be_true
- subdirfile1md5.eql?(Digest::MD5.hexdigest(::File.read(@destination_dir + '/remotesubdir/remote_subdir_file1.txt'))).should be_true
+ expect(file1md5.eql?(Digest::MD5.hexdigest(::File.read(@destination_dir + '/remote_dir_file1.txt')))).to be_true
+ expect(subdirfile1md5.eql?(Digest::MD5.hexdigest(::File.read(@destination_dir + '/remotesubdir/remote_subdir_file1.txt')))).to be_true
end
end
diff --git a/spec/unit/provider/remote_file/cache_control_data_spec.rb b/spec/unit/provider/remote_file/cache_control_data_spec.rb
index 8a849d9d7d..11f2af3edc 100644
--- a/spec/unit/provider/remote_file/cache_control_data_spec.rb
+++ b/spec/unit/provider/remote_file/cache_control_data_spec.rb
@@ -44,21 +44,21 @@ describe Chef::Provider::RemoteFile::CacheControlData do
context "when loading data for an unknown URI" do
before do
- Chef::FileCache.should_receive(:load).with(cache_path).and_raise(Chef::Exceptions::FileNotFound, "nope")
+ expect(Chef::FileCache).to receive(:load).with(cache_path).and_raise(Chef::Exceptions::FileNotFound, "nope")
end
context "and there is no current copy of the file" do
let(:current_file_checksum) { nil }
it "returns empty cache control data" do
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
end
end
it "returns empty cache control data" do
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
end
context "and the URI contains a password" do
@@ -89,15 +89,15 @@ describe Chef::Provider::RemoteFile::CacheControlData do
end
before do
- Chef::FileCache.should_receive(:load).with(cache_path).and_return(cache_json_data)
+ expect(Chef::FileCache).to receive(:load).with(cache_path).and_return(cache_json_data)
end
context "and there is no on-disk copy of the file" do
let(:current_file_checksum) { nil }
it "returns empty cache control data" do
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
end
end
@@ -105,16 +105,16 @@ describe Chef::Provider::RemoteFile::CacheControlData do
let(:current_file_checksum) { "e2a8938cc31754f6c067b35aab1d0d4864272e9bf8504536ef3e79ebf8432305" }
it "returns empty cache control data" do
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
end
end
context "and the cached checksum matches the on-disk copy" do
it "populates the cache control data" do
- cache_control_data.etag.should == etag
- cache_control_data.mtime.should == mtime
+ expect(cache_control_data.etag).to eq(etag)
+ expect(cache_control_data.mtime).to eq(mtime)
end
end
@@ -122,16 +122,16 @@ describe Chef::Provider::RemoteFile::CacheControlData do
let(:cache_json_data) { '{"foo",,"bar" []}' }
it "returns empty cache control data" do
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
end
context "and it still is valid JSON" do
let(:cache_json_data) { '' }
it "returns empty cache control data" do
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
end
end
end
@@ -162,12 +162,12 @@ describe Chef::Provider::RemoteFile::CacheControlData do
# so we can't count on the order of the keys in the json format.
json_data = cache_control_data.json_data
- Chef::JSONCompat.from_json(json_data).should == expected_serialization_data
+ expect(Chef::JSONCompat.from_json(json_data)).to eq(expected_serialization_data)
end
it "writes data to the cache" do
json_data = cache_control_data.json_data
- Chef::FileCache.should_receive(:store).with(cache_path, json_data)
+ expect(Chef::FileCache).to receive(:store).with(cache_path, json_data)
cache_control_data.save
end
@@ -178,7 +178,7 @@ describe Chef::Provider::RemoteFile::CacheControlData do
it "writes the data to the cache with a sanitized path name" do
json_data = cache_control_data.json_data
- Chef::FileCache.should_receive(:store).with(cache_path, json_data)
+ expect(Chef::FileCache).to receive(:store).with(cache_path, json_data)
cache_control_data.save
end
end
@@ -199,18 +199,18 @@ describe Chef::Provider::RemoteFile::CacheControlData do
it "truncates the file cache path to 102 characters" do
normalized_cache_path = cache_control_data.send('sanitized_cache_file_basename')
- Chef::FileCache.should_receive(:store).with("remote_file/" + normalized_cache_path, cache_control_data.json_data)
+ expect(Chef::FileCache).to receive(:store).with("remote_file/" + normalized_cache_path, cache_control_data.json_data)
cache_control_data.save
- normalized_cache_path.length.should == CACHE_FILE_PATH_LIMIT
+ expect(normalized_cache_path.length).to eq(CACHE_FILE_PATH_LIMIT)
end
it "uses a file cache path that starts with the first #{CACHE_FILE_TRUNCATED_FRIENDLY_FILE_NAME_LENGTH} characters of the URI" do
normalized_cache_path = cache_control_data.send('sanitized_cache_file_basename')
- truncated_file_cache_path.length.should == CACHE_FILE_TRUNCATED_FRIENDLY_FILE_NAME_LENGTH
- normalized_cache_path.start_with?(truncated_file_cache_path).should == true
+ expect(truncated_file_cache_path.length).to eq(CACHE_FILE_TRUNCATED_FRIENDLY_FILE_NAME_LENGTH)
+ expect(normalized_cache_path.start_with?(truncated_file_cache_path)).to eq(true)
end
end
diff --git a/spec/unit/provider/remote_file/content_spec.rb b/spec/unit/provider/remote_file/content_spec.rb
index 4ee33aeefb..ce18d23a09 100644
--- a/spec/unit/provider/remote_file/content_spec.rb
+++ b/spec/unit/provider/remote_file/content_spec.rb
@@ -47,31 +47,31 @@ describe Chef::Provider::RemoteFile::Content do
describe "when the checksum of the current_resource matches the checksum set on the resource" do
before do
- new_resource.stub(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
- current_resource.stub(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
+ allow(new_resource).to receive(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
+ allow(current_resource).to receive(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
end
it "should return nil for the tempfile" do
- content.tempfile.should be_nil
+ expect(content.tempfile).to be_nil
end
it "should not call any fetcher" do
- Chef::Provider::RemoteFile::Fetcher.should_not_receive(:for_resource)
+ expect(Chef::Provider::RemoteFile::Fetcher).not_to receive(:for_resource)
end
end
describe "when the checksum of the current_resource is a partial match for the checksum set on the resource" do
before do
- new_resource.stub(:checksum).and_return("0fd012fd")
- current_resource.stub(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
+ allow(new_resource).to receive(:checksum).and_return("0fd012fd")
+ allow(current_resource).to receive(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
end
it "should return nil for the tempfile" do
- content.tempfile.should be_nil
+ expect(content.tempfile).to be_nil
end
it "should not call any fetcher" do
- Chef::Provider::RemoteFile::Fetcher.should_not_receive(:for_resource)
+ expect(Chef::Provider::RemoteFile::Fetcher).not_to receive(:for_resource)
end
end
@@ -79,17 +79,17 @@ describe Chef::Provider::RemoteFile::Content do
before do
# FIXME: test one or the other nil, test both not nil and not equal, abuse the regexp a little
@uri = double("URI")
- URI.should_receive(:parse).with(new_resource.source[0]).and_return(@uri)
+ expect(URI).to receive(:parse).with(new_resource.source[0]).and_return(@uri)
end
describe "when the fetcher returns nil for the tempfile" do
before do
http_fetcher = double("Chef::Provider::RemoteFile::HTTP", :fetch => nil)
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri, new_resource, current_resource).and_return(http_fetcher)
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri, new_resource, current_resource).and_return(http_fetcher)
end
it "should return nil for the tempfile" do
- content.tempfile.should be_nil
+ expect(content.tempfile).to be_nil
end
end
@@ -100,43 +100,43 @@ describe Chef::Provider::RemoteFile::Content do
let(:http_fetcher) { double("Chef::Provider::RemoteFile::HTTP", :fetch => tempfile) }
before do
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri, new_resource, current_resource).and_return(http_fetcher)
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri, new_resource, current_resource).and_return(http_fetcher)
end
it "should return the tempfile object to the caller" do
- content.tempfile.should == tempfile
+ expect(content.tempfile).to eq(tempfile)
end
end
end
describe "when the checksum are both nil" do
before do
- new_resource.checksum.should be_nil
- current_resource.checksum.should be_nil
+ expect(new_resource.checksum).to be_nil
+ expect(current_resource.checksum).to be_nil
end
it_behaves_like "the resource needs fetching"
end
describe "when the current_resource checksum is nil" do
before do
- new_resource.stub(:checksum).and_return("fd012fd")
- current_resource.stub(:checksum).and_return(nil)
+ allow(new_resource).to receive(:checksum).and_return("fd012fd")
+ allow(current_resource).to receive(:checksum).and_return(nil)
end
it_behaves_like "the resource needs fetching"
end
describe "when the new_resource checksum is nil" do
before do
- new_resource.stub(:checksum).and_return(nil)
- current_resource.stub(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
+ allow(new_resource).to receive(:checksum).and_return(nil)
+ allow(current_resource).to receive(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
end
it_behaves_like "the resource needs fetching"
end
describe "when the checksums are a partial match, but not to the leading portion" do
before do
- new_resource.stub(:checksum).and_return("fd012fd")
- current_resource.stub(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
+ allow(new_resource).to receive(:checksum).and_return("fd012fd")
+ allow(current_resource).to receive(:checksum).and_return("0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa")
end
it_behaves_like "the resource needs fetching"
end
@@ -144,17 +144,17 @@ describe Chef::Provider::RemoteFile::Content do
describe "when the fetcher throws an exception" do
before do
- new_resource.stub(:checksum).and_return(nil)
- current_resource.stub(:checksum).and_return(nil)
+ allow(new_resource).to receive(:checksum).and_return(nil)
+ allow(current_resource).to receive(:checksum).and_return(nil)
@uri = double("URI")
- URI.should_receive(:parse).with(new_resource.source[0]).and_return(@uri)
+ expect(URI).to receive(:parse).with(new_resource.source[0]).and_return(@uri)
http_fetcher = double("Chef::Provider::RemoteFile::HTTP")
- http_fetcher.should_receive(:fetch).and_raise(Errno::ECONNREFUSED)
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri, new_resource, current_resource).and_return(http_fetcher)
+ expect(http_fetcher).to receive(:fetch).and_raise(Errno::ECONNREFUSED)
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri, new_resource, current_resource).and_return(http_fetcher)
end
it "should propagate the error back to the caller" do
- lambda { content.tempfile }.should raise_error(Errno::ECONNREFUSED)
+ expect { content.tempfile }.to raise_error(Errno::ECONNREFUSED)
end
end
@@ -184,15 +184,15 @@ describe Chef::Provider::RemoteFile::Content do
].each do |exception|
describe "with an exception of #{exception}" do
before do
- new_resource.stub(:checksum).and_return(nil)
- current_resource.stub(:checksum).and_return(nil)
+ allow(new_resource).to receive(:checksum).and_return(nil)
+ allow(current_resource).to receive(:checksum).and_return(nil)
@uri0 = double("URI0")
@uri1 = double("URI1")
- URI.should_receive(:parse).with(new_resource.source[0]).and_return(@uri0)
- URI.should_receive(:parse).with(new_resource.source[1]).and_return(@uri1)
+ expect(URI).to receive(:parse).with(new_resource.source[0]).and_return(@uri0)
+ expect(URI).to receive(:parse).with(new_resource.source[1]).and_return(@uri1)
@http_fetcher_throws_exception = double("Chef::Provider::RemoteFile::HTTP")
- @http_fetcher_throws_exception.should_receive(:fetch).at_least(:once).and_raise(create_exception(exception))
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri0, new_resource, current_resource).and_return(@http_fetcher_throws_exception)
+ expect(@http_fetcher_throws_exception).to receive(:fetch).at_least(:once).and_raise(create_exception(exception))
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri0, new_resource, current_resource).and_return(@http_fetcher_throws_exception)
end
describe "the second url should succeed" do
@@ -200,26 +200,26 @@ describe Chef::Provider::RemoteFile::Content do
@tempfile = double("Tempfile")
mtime = Time.now
http_fetcher_works = double("Chef::Provider::RemoteFile::HTTP", :fetch => @tempfile)
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri1, new_resource, current_resource).and_return(http_fetcher_works)
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri1, new_resource, current_resource).and_return(http_fetcher_works)
end
it "should return a valid tempfile" do
- content.tempfile.should == @tempfile
+ expect(content.tempfile).to eq(@tempfile)
end
it "should not mutate the new_resource" do
content.tempfile
- new_resource.source.length.should == 2
+ expect(new_resource.source.length).to eq(2)
end
end
describe "when both urls fail" do
before do
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri1, new_resource, current_resource).and_return(@http_fetcher_throws_exception)
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri1, new_resource, current_resource).and_return(@http_fetcher_throws_exception)
end
it "should propagate the error back to the caller" do
- lambda { content.tempfile }.should raise_error(exception)
+ expect { content.tempfile }.to raise_error(exception)
end
end
end
@@ -229,24 +229,24 @@ describe Chef::Provider::RemoteFile::Content do
describe "when there is an array of sources and the first succeeds" do
let(:source) { [ "http://opscode.com/seattle.txt", "http://opscode.com/nyc.txt" ] }
before do
- new_resource.stub(:checksum).and_return(nil)
- current_resource.stub(:checksum).and_return(nil)
+ allow(new_resource).to receive(:checksum).and_return(nil)
+ allow(current_resource).to receive(:checksum).and_return(nil)
@uri0 = double("URI0")
- URI.should_receive(:parse).with(new_resource.source[0]).and_return(@uri0)
- URI.should_not_receive(:parse).with(new_resource.source[1])
+ expect(URI).to receive(:parse).with(new_resource.source[0]).and_return(@uri0)
+ expect(URI).not_to receive(:parse).with(new_resource.source[1])
@tempfile = double("Tempfile")
mtime = Time.now
http_fetcher_works = double("Chef::Provider::RemoteFile::HTTP", :fetch => @tempfile)
- Chef::Provider::RemoteFile::Fetcher.should_receive(:for_resource).with(@uri0, new_resource, current_resource).and_return(http_fetcher_works)
+ expect(Chef::Provider::RemoteFile::Fetcher).to receive(:for_resource).with(@uri0, new_resource, current_resource).and_return(http_fetcher_works)
end
it "should return a valid tempfile" do
- content.tempfile.should == @tempfile
+ expect(content.tempfile).to eq(@tempfile)
end
it "should not mutate the new_resource" do
content.tempfile
- new_resource.source.length.should == 2
+ expect(new_resource.source.length).to eq(2)
end
end
diff --git a/spec/unit/provider/remote_file/fetcher_spec.rb b/spec/unit/provider/remote_file/fetcher_spec.rb
index b5594b50e6..c049848fbf 100644
--- a/spec/unit/provider/remote_file/fetcher_spec.rb
+++ b/spec/unit/provider/remote_file/fetcher_spec.rb
@@ -27,47 +27,47 @@ describe Chef::Provider::RemoteFile::Fetcher do
describe "when passed an http url" do
let(:uri) { double("uri", :scheme => "http" ) }
before do
- Chef::Provider::RemoteFile::HTTP.should_receive(:new).and_return(fetcher_instance)
+ expect(Chef::Provider::RemoteFile::HTTP).to receive(:new).and_return(fetcher_instance)
end
it "returns an http fetcher" do
- described_class.for_resource(uri, new_resource, current_resource).should == fetcher_instance
+ expect(described_class.for_resource(uri, new_resource, current_resource)).to eq(fetcher_instance)
end
end
describe "when passed an https url" do
let(:uri) { double("uri", :scheme => "https" ) }
before do
- Chef::Provider::RemoteFile::HTTP.should_receive(:new).and_return(fetcher_instance)
+ expect(Chef::Provider::RemoteFile::HTTP).to receive(:new).and_return(fetcher_instance)
end
it "returns an http fetcher" do
- described_class.for_resource(uri, new_resource, current_resource).should == fetcher_instance
+ expect(described_class.for_resource(uri, new_resource, current_resource)).to eq(fetcher_instance)
end
end
describe "when passed an ftp url" do
let(:uri) { double("uri", :scheme => "ftp" ) }
before do
- Chef::Provider::RemoteFile::FTP.should_receive(:new).and_return(fetcher_instance)
+ expect(Chef::Provider::RemoteFile::FTP).to receive(:new).and_return(fetcher_instance)
end
it "returns an ftp fetcher" do
- described_class.for_resource(uri, new_resource, current_resource).should == fetcher_instance
+ expect(described_class.for_resource(uri, new_resource, current_resource)).to eq(fetcher_instance)
end
end
describe "when passed a file url" do
let(:uri) { double("uri", :scheme => "file" ) }
before do
- Chef::Provider::RemoteFile::LocalFile.should_receive(:new).and_return(fetcher_instance)
+ expect(Chef::Provider::RemoteFile::LocalFile).to receive(:new).and_return(fetcher_instance)
end
it "returns a localfile fetcher" do
- described_class.for_resource(uri, new_resource, current_resource).should == fetcher_instance
+ expect(described_class.for_resource(uri, new_resource, current_resource)).to eq(fetcher_instance)
end
end
describe "when passed a url we do not recognize" do
let(:uri) { double("uri", :scheme => "xyzzy" ) }
it "throws an ArgumentError exception" do
- lambda { described_class.for_resource(uri, new_resource, current_resource) }.should raise_error(ArgumentError)
+ expect { described_class.for_resource(uri, new_resource, current_resource) }.to raise_error(ArgumentError)
end
end
diff --git a/spec/unit/provider/remote_file/ftp_spec.rb b/spec/unit/provider/remote_file/ftp_spec.rb
index b393912ef9..b3a3fcf376 100644
--- a/spec/unit/provider/remote_file/ftp_spec.rb
+++ b/spec/unit/provider/remote_file/ftp_spec.rb
@@ -39,13 +39,13 @@ describe Chef::Provider::RemoteFile::FTP do
let(:ftp) do
ftp = double(Net::FTP, { })
- ftp.stub(:connect)
- ftp.stub(:login)
- ftp.stub(:voidcmd)
- ftp.stub(:mtime).and_return(Time.now)
- ftp.stub(:getbinaryfile)
- ftp.stub(:close)
- ftp.stub(:passive=)
+ allow(ftp).to receive(:connect)
+ allow(ftp).to receive(:login)
+ allow(ftp).to receive(:voidcmd)
+ allow(ftp).to receive(:mtime).and_return(Time.now)
+ allow(ftp).to receive(:getbinaryfile)
+ allow(ftp).to receive(:close)
+ allow(ftp).to receive(:passive=)
ftp
end
@@ -53,49 +53,49 @@ describe Chef::Provider::RemoteFile::FTP do
let(:tempfile) do
t = StringIO.new
- t.stub(:path).and_return(tempfile_path)
+ allow(t).to receive(:path).and_return(tempfile_path)
t
end
let(:uri) { URI.parse("ftp://opscode.com/seattle.txt") }
before(:each) do
- Net::FTP.stub(:new).with().and_return(ftp)
- Tempfile.stub(:new).and_return(tempfile)
+ allow(Net::FTP).to receive(:new).with().and_return(ftp)
+ allow(Tempfile).to receive(:new).and_return(tempfile)
end
describe "when first created" do
it "throws an argument exception when no path is given" do
uri.path = ""
- lambda { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.should raise_error(ArgumentError)
+ expect { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.to raise_error(ArgumentError)
end
it "throws an argument exception when only a / is given" do
uri.path = "/"
- lambda { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.should raise_error(ArgumentError)
+ expect { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.to raise_error(ArgumentError)
end
it "throws an argument exception when no filename is given" do
uri.path = "/the/whole/path/"
- lambda { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.should raise_error(ArgumentError)
+ expect { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.to raise_error(ArgumentError)
end
it "throws an argument exception when the typecode is invalid" do
uri.typecode = "d"
- lambda { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.should raise_error(ArgumentError)
+ expect { Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource) }.to raise_error(ArgumentError)
end
it "does not use passive mode when new_resource sets ftp_active_mode to true" do
new_resource.ftp_active_mode(true)
fetcher = Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource)
- fetcher.use_passive_mode?.should be_false
+ expect(fetcher.use_passive_mode?).to be_false
end
it "uses passive mode when new_resource sets ftp_active_mode to false" do
new_resource.ftp_active_mode(false)
fetcher = Chef::Provider::RemoteFile::FTP.new(uri, new_resource, current_resource)
- fetcher.use_passive_mode?.should be_true
+ expect(fetcher.use_passive_mode?).to be_true
end
end
@@ -112,24 +112,24 @@ describe Chef::Provider::RemoteFile::FTP do
end
it "should connect to the host from the uri on the default port 21" do
- ftp.should_receive(:connect).with("opscode.com", 21)
+ expect(ftp).to receive(:connect).with("opscode.com", 21)
fetcher.fetch
end
it "should set passive true when ftp_active_mode is false" do
new_resource.ftp_active_mode(false)
- ftp.should_receive(:passive=).with(true)
+ expect(ftp).to receive(:passive=).with(true)
fetcher.fetch
end
it "should set passive false when ftp_active_mode is false" do
new_resource.ftp_active_mode(true)
- ftp.should_receive(:passive=).with(false)
+ expect(ftp).to receive(:passive=).with(false)
fetcher.fetch
end
it "should use anonymous ftp when no userinfo is provided" do
- ftp.should_receive(:login).with("anonymous", nil)
+ expect(ftp).to receive(:login).with("anonymous", nil)
fetcher.fetch
end
@@ -138,7 +138,7 @@ describe Chef::Provider::RemoteFile::FTP do
it "should connect on an alternate port when one is provided" do
uri = URI.parse("ftp://opscode.com:8021/seattle.txt")
- ftp.should_receive(:connect).with("opscode.com", 8021)
+ expect(ftp).to receive(:connect).with("opscode.com", 8021)
fetcher.fetch
end
@@ -148,7 +148,7 @@ describe Chef::Provider::RemoteFile::FTP do
let(:uri) { URI.parse("ftp://the_user:the_password@opscode.com/seattle.txt") }
it "should use authenticated ftp when userinfo is provided" do
- ftp.should_receive(:login).with("the_user", "the_password")
+ expect(ftp).to receive(:login).with("the_user", "the_password")
fetcher.fetch
end
end
@@ -157,7 +157,7 @@ describe Chef::Provider::RemoteFile::FTP do
let(:uri) { URI.parse("ftp://the_user:the_password@opscode.com/seattle.txt;type=a") }
it "fetches the file with ascii typecode set" do
- ftp.should_receive(:voidcmd).with("TYPE A").once
+ expect(ftp).to receive(:voidcmd).with("TYPE A").once
fetcher.fetch
end
@@ -167,7 +167,7 @@ describe Chef::Provider::RemoteFile::FTP do
let(:uri) { URI.parse("ftp://the_user:the_password@opscode.com/seattle.txt;type=i") }
it "should accept image for the typecode" do
- ftp.should_receive(:voidcmd).with("TYPE I").once
+ expect(ftp).to receive(:voidcmd).with("TYPE I").once
fetcher.fetch
end
@@ -177,10 +177,10 @@ describe Chef::Provider::RemoteFile::FTP do
let(:uri) { URI.parse("ftp://opscode.com/the/whole/path/seattle.txt") }
it "should fetch the file from the correct path" do
- ftp.should_receive(:voidcmd).with("CWD the").once
- ftp.should_receive(:voidcmd).with("CWD whole").once
- ftp.should_receive(:voidcmd).with("CWD path").once
- ftp.should_receive(:getbinaryfile).with("seattle.txt", tempfile.path)
+ expect(ftp).to receive(:voidcmd).with("CWD the").once
+ expect(ftp).to receive(:voidcmd).with("CWD whole").once
+ expect(ftp).to receive(:voidcmd).with("CWD path").once
+ expect(ftp).to receive(:getbinaryfile).with("seattle.txt", tempfile.path)
fetcher.fetch
end
@@ -193,7 +193,7 @@ describe Chef::Provider::RemoteFile::FTP do
it "should return a tempfile in the result" do
result = fetcher.fetch
- result.should equal(tempfile)
+ expect(result).to equal(tempfile)
end
end
@@ -207,10 +207,10 @@ describe Chef::Provider::RemoteFile::FTP do
it "fetches the file via the proxy" do
current_socks_server = ENV["SOCKS_SERVER"]
- ENV.should_receive(:[]=).with("SOCKS_SERVER", "socks5://bill:ted@socks.example.com:5000").ordered
- ENV.should_receive(:[]=).with("SOCKS_SERVER", current_socks_server).ordered
+ expect(ENV).to receive(:[]=).with("SOCKS_SERVER", "socks5://bill:ted@socks.example.com:5000").ordered
+ expect(ENV).to receive(:[]=).with("SOCKS_SERVER", current_socks_server).ordered
result = fetcher.fetch
- result.should equal(tempfile)
+ expect(result).to equal(tempfile)
end
end
diff --git a/spec/unit/provider/remote_file/http_spec.rb b/spec/unit/provider/remote_file/http_spec.rb
index 951d9f0a05..d9cfaa15eb 100644
--- a/spec/unit/provider/remote_file/http_spec.rb
+++ b/spec/unit/provider/remote_file/http_spec.rb
@@ -48,11 +48,11 @@ describe Chef::Provider::RemoteFile::HTTP do
context "and there is no valid cache control data for this URI on disk" do
before do
- Chef::Provider::RemoteFile::CacheControlData.should_receive(:load_and_validate).with(uri, current_resource_checksum).and_return(cache_control_data)
+ expect(Chef::Provider::RemoteFile::CacheControlData).to receive(:load_and_validate).with(uri, current_resource_checksum).and_return(cache_control_data)
end
it "does not add conditional GET headers" do
- fetcher.conditional_get_headers.should == {}
+ expect(fetcher.conditional_get_headers).to eq({})
end
context "and the resource specifies custom headers" do
@@ -61,7 +61,7 @@ describe Chef::Provider::RemoteFile::HTTP do
end
it "has the user-specified custom headers" do
- fetcher.headers.should == {"x-myapp-header" => "custom-header-value"}
+ expect(fetcher.headers).to eq({"x-myapp-header" => "custom-header-value"})
end
end
@@ -79,7 +79,7 @@ describe Chef::Provider::RemoteFile::HTTP do
cache_control_data.etag = etag
cache_control_data.mtime = mtime
- Chef::Provider::RemoteFile::CacheControlData.should_receive(:load_and_validate).with(uri, current_resource_checksum).and_return(cache_control_data)
+ expect(Chef::Provider::RemoteFile::CacheControlData).to receive(:load_and_validate).with(uri, current_resource_checksum).and_return(cache_control_data)
end
context "and no conditional get features are enabled" do
@@ -88,7 +88,7 @@ describe Chef::Provider::RemoteFile::HTTP do
end
it "does not add headers to the request" do
- fetcher.headers.should == {}
+ expect(fetcher.headers).to eq({})
end
end
@@ -99,8 +99,8 @@ describe Chef::Provider::RemoteFile::HTTP do
it "adds If-None-Match and If-Modified-Since headers to the request" do
headers = fetcher.headers
- headers["if-none-match"].should == etag
- headers["if-modified-since"].should == mtime
+ expect(headers["if-none-match"]).to eq(etag)
+ expect(headers["if-modified-since"]).to eq(mtime)
end
context "and custom headers are provided" do
@@ -111,13 +111,13 @@ describe Chef::Provider::RemoteFile::HTTP do
end
it "preserves non-conflicting headers" do
- fetcher.headers["x-myapp-header"].should == "app-specific-header"
+ expect(fetcher.headers["x-myapp-header"]).to eq("app-specific-header")
end
it "prefers user-supplied cache control headers" do
headers = fetcher.headers
- headers["if-none-match"].should == "custom-etag"
- headers["if-modified-since"].should == "custom-last-modified"
+ expect(headers["if-none-match"]).to eq("custom-etag")
+ expect(headers["if-modified-since"]).to eq("custom-last-modified")
end
end
@@ -131,8 +131,8 @@ describe Chef::Provider::RemoteFile::HTTP do
it "only adds If-None-Match headers to the request" do
headers = fetcher.headers
- headers["if-none-match"].should == etag
- headers.should_not have_key("if-modified-since")
+ expect(headers["if-none-match"]).to eq(etag)
+ expect(headers).not_to have_key("if-modified-since")
end
end
@@ -144,8 +144,8 @@ describe Chef::Provider::RemoteFile::HTTP do
it "only adds If-Modified-Since headers to the request" do
headers = fetcher.headers
- headers["if-modified-since"].should == mtime
- headers.should_not have_key("if-none-match")
+ expect(headers["if-modified-since"]).to eq(mtime)
+ expect(headers).not_to have_key("if-none-match")
end
end
end
@@ -165,17 +165,17 @@ describe Chef::Provider::RemoteFile::HTTP do
let(:rest) do
rest = double(Chef::HTTP::Simple)
- rest.stub(:streaming_request).and_return(tempfile)
- rest.stub(:last_response).and_return(last_response)
+ allow(rest).to receive(:streaming_request).and_return(tempfile)
+ allow(rest).to receive(:last_response).and_return(last_response)
rest
end
before do
new_resource.headers({})
new_resource.use_last_modified(false)
- Chef::Provider::RemoteFile::CacheControlData.should_receive(:load_and_validate).with(uri, current_resource_checksum).and_return(cache_control_data)
+ expect(Chef::Provider::RemoteFile::CacheControlData).to receive(:load_and_validate).with(uri, current_resource_checksum).and_return(cache_control_data)
- Chef::HTTP::Simple.should_receive(:new).with(*expected_http_args).and_return(rest)
+ expect(Chef::HTTP::Simple).to receive(:new).with(*expected_http_args).and_return(rest)
end
@@ -183,8 +183,8 @@ describe Chef::Provider::RemoteFile::HTTP do
it "should return a nil tempfile for a 304 HTTPNotModifed" do
# Streaming request returns nil for 304 errors
- rest.stub(:streaming_request).and_return(nil)
- fetcher.fetch.should be_nil
+ allow(rest).to receive(:streaming_request).and_return(nil)
+ expect(fetcher.fetch).to be_nil
end
end
@@ -194,25 +194,25 @@ describe Chef::Provider::RemoteFile::HTTP do
let(:fetched_content_checksum) { "e2a8938cc31754f6c067b35aab1d0d4864272e9bf8504536ef3e79ebf8432305" }
before do
- cache_control_data.should_receive(:save)
- Chef::Digester.should_receive(:checksum_for_file).with(tempfile_path).and_return(fetched_content_checksum)
+ expect(cache_control_data).to receive(:save)
+ expect(Chef::Digester).to receive(:checksum_for_file).with(tempfile_path).and_return(fetched_content_checksum)
end
it "should return a tempfile" do
result = fetcher.fetch
- result.should == tempfile
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
- cache_control_data.checksum.should == fetched_content_checksum
+ expect(result).to eq(tempfile)
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
+ expect(cache_control_data.checksum).to eq(fetched_content_checksum)
end
context "and the response does not contain an etag" do
let(:last_response) { {"etag" => nil} }
it "does not include an etag in the result" do
fetcher.fetch
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
- cache_control_data.checksum.should == fetched_content_checksum
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
+ expect(cache_control_data.checksum).to eq(fetched_content_checksum)
end
end
@@ -221,9 +221,9 @@ describe Chef::Provider::RemoteFile::HTTP do
it "includes the etag value in the response" do
fetcher.fetch
- cache_control_data.etag.should == "abc123"
- cache_control_data.mtime.should be_nil
- cache_control_data.checksum.should == fetched_content_checksum
+ expect(cache_control_data.etag).to eq("abc123")
+ expect(cache_control_data.mtime).to be_nil
+ expect(cache_control_data.checksum).to eq(fetched_content_checksum)
end
end
@@ -234,9 +234,9 @@ describe Chef::Provider::RemoteFile::HTTP do
# RFC 2616 suggests that servers that do not set a Date header do not
# have a reliable clock, so no use in making them deal with dates.
fetcher.fetch
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
- cache_control_data.checksum.should == fetched_content_checksum
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
+ expect(cache_control_data.checksum).to eq(fetched_content_checksum)
end
end
@@ -248,8 +248,8 @@ describe Chef::Provider::RemoteFile::HTTP do
it "sets the mtime to the Last-Modified time in the response" do
fetcher.fetch
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should == last_response["last_modified"]
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to eq(last_response["last_modified"])
end
end
@@ -260,9 +260,9 @@ describe Chef::Provider::RemoteFile::HTTP do
it "sets the mtime to the Date in the response" do
fetcher.fetch
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should == last_response["date"]
- cache_control_data.checksum.should == fetched_content_checksum
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to eq(last_response["date"])
+ expect(cache_control_data.checksum).to eq(fetched_content_checksum)
end
end
@@ -288,11 +288,11 @@ describe Chef::Provider::RemoteFile::HTTP do
# This is intended to provide insurance that refactoring of the parent
# context does not negate the value of this particular example.
Chef::HTTP::Simple.new(*expected_http_args)
- Chef::HTTP::Simple.should_receive(:new).once.with(*expected_http_args).and_return(rest)
+ expect(Chef::HTTP::Simple).to receive(:new).once.with(*expected_http_args).and_return(rest)
fetcher.fetch
- cache_control_data.etag.should be_nil
- cache_control_data.mtime.should be_nil
- cache_control_data.checksum.should == fetched_content_checksum
+ expect(cache_control_data.etag).to be_nil
+ expect(cache_control_data.mtime).to be_nil
+ expect(cache_control_data.checksum).to eq(fetched_content_checksum)
end
end
end
diff --git a/spec/unit/provider/remote_file/local_file_spec.rb b/spec/unit/provider/remote_file/local_file_spec.rb
index b65c917c44..b33d82f624 100644
--- a/spec/unit/provider/remote_file/local_file_spec.rb
+++ b/spec/unit/provider/remote_file/local_file_spec.rb
@@ -30,21 +30,21 @@ describe Chef::Provider::RemoteFile::LocalFile do
describe "when given local unix path" do
let(:uri) { URI.parse("file:///nyan_cat.png") }
it "returns a correct unix path" do
- fetcher.fix_windows_path(uri.path).should == "/nyan_cat.png"
+ expect(fetcher.fix_windows_path(uri.path)).to eq("/nyan_cat.png")
end
end
describe "when given local windows path" do
let(:uri) { URI.parse("file:///z:/windows/path/file.txt") }
it "returns a valid windows local path" do
- fetcher.fix_windows_path(uri.path).should == "z:/windows/path/file.txt"
+ expect(fetcher.fix_windows_path(uri.path)).to eq("z:/windows/path/file.txt")
end
end
describe "when given unc windows path" do
let(:uri) { URI.parse("file:////server/share/windows/path/file.txt") }
it "returns a valid windows unc path" do
- fetcher.fix_windows_path(uri.path).should == "//server/share/windows/path/file.txt"
+ expect(fetcher.fix_windows_path(uri.path)).to eq("//server/share/windows/path/file.txt")
end
end
end
@@ -52,11 +52,11 @@ describe Chef::Provider::RemoteFile::LocalFile do
context "when first created" do
it "stores the uri it is passed" do
- fetcher.uri.should == uri
+ expect(fetcher.uri).to eq(uri)
end
it "stores the new_resource" do
- fetcher.new_resource.should == new_resource
+ expect(fetcher.new_resource).to eq(new_resource)
end
end
@@ -71,12 +71,12 @@ describe Chef::Provider::RemoteFile::LocalFile do
end
it "stages the local file to a temporary file" do
- Chef::FileContentManagement::Tempfile.should_receive(:new).with(new_resource).and_return(chef_tempfile)
- ::FileUtils.should_receive(:cp).with(uri.path, tempfile.path)
- tempfile.should_receive(:close)
+ expect(Chef::FileContentManagement::Tempfile).to receive(:new).with(new_resource).and_return(chef_tempfile)
+ expect(::FileUtils).to receive(:cp).with(uri.path, tempfile.path)
+ expect(tempfile).to receive(:close)
result = fetcher.fetch
- result.should == tempfile
+ expect(result).to eq(tempfile)
end
end
diff --git a/spec/unit/provider/remote_file_spec.rb b/spec/unit/provider/remote_file_spec.rb
index 3fa3866743..de4a897847 100644
--- a/spec/unit/provider/remote_file_spec.rb
+++ b/spec/unit/provider/remote_file_spec.rb
@@ -47,13 +47,13 @@ describe Chef::Provider::RemoteFile do
subject(:provider) do
provider = described_class.new(resource, run_context)
- provider.stub(:content).and_return(content)
- provider.stub(:update_new_resource_checksum).and_return(nil) # Otherwise it doesn't behave like a File provider
+ allow(provider).to receive(:content).and_return(content)
+ allow(provider).to receive(:update_new_resource_checksum).and_return(nil) # Otherwise it doesn't behave like a File provider
provider
end
before do
- Chef::FileCache.stub(:load).with("remote_file/#{resource.name}").and_raise(Chef::Exceptions::FileNotFound)
+ allow(Chef::FileCache).to receive(:load).with("remote_file/#{resource.name}").and_raise(Chef::Exceptions::FileNotFound)
end
it_behaves_like Chef::Provider::File
diff --git a/spec/unit/provider/route_spec.rb b/spec/unit/provider/route_spec.rb
index 2a6d48c79e..e63029ad07 100644
--- a/spec/unit/provider/route_spec.rb
+++ b/spec/unit/provider/route_spec.rb
@@ -36,14 +36,14 @@ describe Chef::Provider::Route do
describe Chef::Provider::Route, "hex2ip" do
it "should return nil if ip address is invalid" do
- @provider.hex2ip('foo').should be_nil # does not even look like an ip
- @provider.hex2ip('ABCDEFGH').should be_nil # 8 chars, but invalid
+ expect(@provider.hex2ip('foo')).to be_nil # does not even look like an ip
+ expect(@provider.hex2ip('ABCDEFGH')).to be_nil # 8 chars, but invalid
end
it "should return quad-dotted notation for a valid IP" do
- @provider.hex2ip('01234567').should == '103.69.35.1'
- @provider.hex2ip('0064a8c0').should == '192.168.100.0'
- @provider.hex2ip('00FFFFFF').should == '255.255.255.0'
+ expect(@provider.hex2ip('01234567')).to eq('103.69.35.1')
+ expect(@provider.hex2ip('0064a8c0')).to eq('192.168.100.0')
+ expect(@provider.hex2ip('00FFFFFF')).to eq('255.255.255.0')
end
end
@@ -55,158 +55,158 @@ describe Chef::Provider::Route do
routing_table = "Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT\n" +
"eth0 0064A8C0 0984A8C0 0003 0 0 0 00FFFFFF 0 0 0\n"
route_file = StringIO.new(routing_table)
- File.stub(:open).with("/proc/net/route", "r").and_return(route_file)
+ allow(File).to receive(:open).with("/proc/net/route", "r").and_return(route_file)
end
it "should set is_running to false when a route is not detected" do
resource = Chef::Resource::Route.new('10.10.10.0/24')
- resource.stub(:gateway).and_return("10.0.0.1")
- resource.stub(:device).and_return("eth0")
+ allow(resource).to receive(:gateway).and_return("10.0.0.1")
+ allow(resource).to receive(:device).and_return("eth0")
provider = Chef::Provider::Route.new(resource, @run_context)
provider.load_current_resource
- provider.is_running.should be_false
+ expect(provider.is_running).to be_false
end
it "should detect existing routes and set is_running attribute correctly" do
resource = Chef::Resource::Route.new('192.168.100.0/24')
- resource.stub(:gateway).and_return("192.168.132.9")
- resource.stub(:device).and_return("eth0")
+ allow(resource).to receive(:gateway).and_return("192.168.132.9")
+ allow(resource).to receive(:device).and_return("eth0")
provider = Chef::Provider::Route.new(resource, @run_context)
provider.load_current_resource
- provider.is_running.should be_true
+ expect(provider.is_running).to be_true
end
it "should use gateway value when matching routes" do
resource = Chef::Resource::Route.new('192.168.100.0/24')
- resource.stub(:gateway).and_return("10.10.10.10")
- resource.stub(:device).and_return("eth0")
+ allow(resource).to receive(:gateway).and_return("10.10.10.10")
+ allow(resource).to receive(:device).and_return("eth0")
provider = Chef::Provider::Route.new(resource, @run_context)
provider.load_current_resource
- provider.is_running.should be_false
+ expect(provider.is_running).to be_false
end
end
end
describe Chef::Provider::Route, "action_add" do
it "should add the route if it does not exist" do
- @provider.stub(:run_command).and_return(true)
- @current_resource.stub(:gateway).and_return(nil)
- @provider.should_receive(:generate_command).once.with(:add)
- @provider.should_receive(:generate_config)
+ allow(@provider).to receive(:run_command).and_return(true)
+ allow(@current_resource).to receive(:gateway).and_return(nil)
+ expect(@provider).to receive(:generate_command).once.with(:add)
+ expect(@provider).to receive(:generate_config)
@provider.run_action(:add)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not add the route if it exists" do
- @provider.stub(:run_command).and_return(true)
- @provider.stub(:is_running).and_return(true)
- @provider.should_not_receive(:generate_command).with(:add)
- @provider.should_receive(:generate_config)
+ allow(@provider).to receive(:run_command).and_return(true)
+ allow(@provider).to receive(:is_running).and_return(true)
+ expect(@provider).not_to receive(:generate_command).with(:add)
+ expect(@provider).to receive(:generate_config)
@provider.run_action(:add)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
it "should not delete config file for :add action (CHEF-3332)" do
@node.automatic_attrs[:platform] = 'centos'
route_file = StringIO.new
- File.should_receive(:new).and_return(route_file)
+ expect(File).to receive(:new).and_return(route_file)
@resource_add = Chef::Resource::Route.new('192.168.1.0/24 via 192.168.0.1')
@run_context.resource_collection << @resource_add
- @provider.stub(:run_command).and_return(true)
+ allow(@provider).to receive(:run_command).and_return(true)
@resource_add.action(:add)
@provider.run_action(:add)
- route_file.string.split("\n").should have(1).items
- route_file.string.should match(/^192\.168\.1\.0\/24 via 192\.168\.0\.1$/)
+ expect(route_file.string.split("\n").size).to eq(1)
+ expect(route_file.string).to match(/^192\.168\.1\.0\/24 via 192\.168\.0\.1$/)
end
end
describe Chef::Provider::Route, "action_delete" do
it "should delete the route if it exists" do
- @provider.stub(:run_command).and_return(true)
- @provider.should_receive(:generate_command).once.with(:delete)
- @provider.stub(:is_running).and_return(true)
+ allow(@provider).to receive(:run_command).and_return(true)
+ expect(@provider).to receive(:generate_command).once.with(:delete)
+ allow(@provider).to receive(:is_running).and_return(true)
@provider.run_action(:delete)
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not delete the route if it does not exist" do
- @current_resource.stub(:gateway).and_return(nil)
- @provider.stub(:run_command).and_return(true)
- @provider.should_not_receive(:generate_command).with(:add)
+ allow(@current_resource).to receive(:gateway).and_return(nil)
+ allow(@provider).to receive(:run_command).and_return(true)
+ expect(@provider).not_to receive(:generate_command).with(:add)
@provider.run_action(:delete)
- @new_resource.should_not be_updated
+ expect(@new_resource).not_to be_updated
end
end
describe Chef::Provider::Route, "generate_command for action_add" do
it "should include a netmask when a one is specified" do
- @new_resource.stub(:netmask).and_return('255.255.0.0')
- @provider.generate_command(:add).should match(/\/\d{1,2}\s/)
+ allow(@new_resource).to receive(:netmask).and_return('255.255.0.0')
+ expect(@provider.generate_command(:add)).to match(/\/\d{1,2}\s/)
end
it "should not include a netmask when a one is specified" do
- @new_resource.stub(:netmask).and_return(nil)
- @provider.generate_command(:add).should_not match(/\/\d{1,2}\s/)
+ allow(@new_resource).to receive(:netmask).and_return(nil)
+ expect(@provider.generate_command(:add)).not_to match(/\/\d{1,2}\s/)
end
it "should include ' via $gateway ' when a gateway is specified" do
- @provider.generate_command(:add).should match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
+ expect(@provider.generate_command(:add)).to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
end
it "should not include ' via $gateway ' when a gateway is not specified" do
- @new_resource.stub(:gateway).and_return(nil)
- @provider.generate_command(:add).should_not match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
+ allow(@new_resource).to receive(:gateway).and_return(nil)
+ expect(@provider.generate_command(:add)).not_to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
end
end
describe Chef::Provider::Route, "generate_command for action_delete" do
it "should include a netmask when a one is specified" do
- @new_resource.stub(:netmask).and_return('255.255.0.0')
- @provider.generate_command(:delete).should match(/\/\d{1,2}\s/)
+ allow(@new_resource).to receive(:netmask).and_return('255.255.0.0')
+ expect(@provider.generate_command(:delete)).to match(/\/\d{1,2}\s/)
end
it "should not include a netmask when a one is specified" do
- @new_resource.stub(:netmask).and_return(nil)
- @provider.generate_command(:delete).should_not match(/\/\d{1,2}\s/)
+ allow(@new_resource).to receive(:netmask).and_return(nil)
+ expect(@provider.generate_command(:delete)).not_to match(/\/\d{1,2}\s/)
end
it "should include ' via $gateway ' when a gateway is specified" do
- @provider.generate_command(:delete).should match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
+ expect(@provider.generate_command(:delete)).to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
end
it "should not include ' via $gateway ' when a gateway is not specified" do
- @new_resource.stub(:gateway).and_return(nil)
- @provider.generate_command(:delete).should_not match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
+ allow(@new_resource).to receive(:gateway).and_return(nil)
+ expect(@provider.generate_command(:delete)).not_to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\s/)
end
end
describe Chef::Provider::Route, "config_file_contents for action_add" do
it "should include a netmask when a one is specified" do
- @new_resource.stub(:netmask).and_return('255.255.0.0')
- @provider.config_file_contents(:add, { :target => @new_resource.target, :netmask => @new_resource.netmask}).should match(/\/\d{1,2}.*\n$/)
+ allow(@new_resource).to receive(:netmask).and_return('255.255.0.0')
+ expect(@provider.config_file_contents(:add, { :target => @new_resource.target, :netmask => @new_resource.netmask})).to match(/\/\d{1,2}.*\n$/)
end
it "should not include a netmask when a one is specified" do
- @provider.config_file_contents(:add, { :target => @new_resource.target}).should_not match(/\/\d{1,2}.*\n$/)
+ expect(@provider.config_file_contents(:add, { :target => @new_resource.target})).not_to match(/\/\d{1,2}.*\n$/)
end
it "should include ' via $gateway ' when a gateway is specified" do
- @provider.config_file_contents(:add, { :target => @new_resource.target, :gateway => @new_resource.gateway}).should match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\n/)
+ expect(@provider.config_file_contents(:add, { :target => @new_resource.target, :gateway => @new_resource.gateway})).to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\n/)
end
it "should not include ' via $gateway ' when a gateway is not specified" do
- @provider.generate_command(:add).should_not match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\n/)
+ expect(@provider.generate_command(:add)).not_to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}\n/)
end
end
describe Chef::Provider::Route, "config_file_contents for action_delete" do
it "should return an empty string" do
- @provider.config_file_contents(:delete).should match(/^$/)
+ expect(@provider.config_file_contents(:delete)).to match(/^$/)
end
end
@@ -216,7 +216,7 @@ describe Chef::Provider::Route do
@node.automatic_attrs[:platform] = platform
route_file = StringIO.new
- File.should_receive(:new).with("/etc/sysconfig/network-scripts/route-eth0", "w").and_return(route_file)
+ expect(File).to receive(:new).with("/etc/sysconfig/network-scripts/route-eth0", "w").and_return(route_file)
#Chef::Log.should_receive(:debug).with("route[10.0.0.10] writing route.eth0\n10.0.0.10 via 10.0.0.9\n")
@run_context.resource_collection << @new_resource
@provider.generate_config
@@ -227,17 +227,17 @@ describe Chef::Provider::Route do
@node.automatic_attrs[:platform] = 'centos'
route_file = StringIO.new
- File.should_receive(:new).and_return(route_file)
+ expect(File).to receive(:new).and_return(route_file)
@run_context.resource_collection << Chef::Resource::Route.new('192.168.1.0/24 via 192.168.0.1')
@run_context.resource_collection << Chef::Resource::Route.new('192.168.2.0/24 via 192.168.0.1')
@run_context.resource_collection << Chef::Resource::Route.new('192.168.3.0/24 via 192.168.0.1')
@provider.action = :add
@provider.generate_config
- route_file.string.split("\n").should have(3).items
- route_file.string.should match(/^192\.168\.1\.0\/24 via 192\.168\.0\.1$/)
- route_file.string.should match(/^192\.168\.2\.0\/24 via 192\.168\.0\.1$/)
- route_file.string.should match(/^192\.168\.3\.0\/24 via 192\.168\.0\.1$/)
+ expect(route_file.string.split("\n").size).to eq(3)
+ expect(route_file.string).to match(/^192\.168\.1\.0\/24 via 192\.168\.0\.1$/)
+ expect(route_file.string).to match(/^192\.168\.2\.0\/24 via 192\.168\.0\.1$/)
+ expect(route_file.string).to match(/^192\.168\.3\.0\/24 via 192\.168\.0\.1$/)
end
end
end
diff --git a/spec/unit/provider/ruby_block_spec.rb b/spec/unit/provider/ruby_block_spec.rb
index 6e5c9a638b..266c943367 100644
--- a/spec/unit/provider/ruby_block_spec.rb
+++ b/spec/unit/provider/ruby_block_spec.rb
@@ -31,16 +31,16 @@ describe Chef::Provider::RubyBlock, "initialize" do
it "should call the block and flag the resource as updated" do
@provider.run_action(:run)
- $evil_global_evil_laugh.should == :mwahahaha
- @new_resource.should be_updated
+ expect($evil_global_evil_laugh).to eq(:mwahahaha)
+ expect(@new_resource).to be_updated
end
it "accepts `create' as an alias for `run'" do
# SEE ALSO: CHEF-3500
# "create" used to be the default action, it was renamed.
@provider.run_action(:create)
- $evil_global_evil_laugh.should == :mwahahaha
- @new_resource.should be_updated
+ expect($evil_global_evil_laugh).to eq(:mwahahaha)
+ expect(@new_resource).to be_updated
end
end
diff --git a/spec/unit/provider/script_spec.rb b/spec/unit/provider/script_spec.rb
index d072eddd04..7dc8588397 100644
--- a/spec/unit/provider/script_spec.rb
+++ b/spec/unit/provider/script_spec.rb
@@ -30,44 +30,44 @@ describe Chef::Provider::Script, "action_run" do
@provider = Chef::Provider::Script.new(@new_resource, @run_context)
@script_file = StringIO.new
- @script_file.stub(:path).and_return('/tmp/the_script_file')
+ allow(@script_file).to receive(:path).and_return('/tmp/the_script_file')
- @provider.stub(:shell_out!).and_return(true)
+ allow(@provider).to receive(:shell_out!).and_return(true)
end
it "creates a temporary file to store the script" do
- @provider.script_file.should be_an_instance_of(Tempfile)
+ expect(@provider.script_file).to be_an_instance_of(Tempfile)
end
it "unlinks the tempfile when finished" do
tempfile_path = @provider.script_file.path
@provider.unlink_script_file
- File.exist?(tempfile_path).should be_false
+ expect(File.exist?(tempfile_path)).to be_false
end
it "sets the owner and group for the script file" do
@new_resource.user 'toor'
@new_resource.group 'wheel'
- @provider.stub(:script_file).and_return(@script_file)
- FileUtils.should_receive(:chown).with('toor', 'wheel', "/tmp/the_script_file")
+ allow(@provider).to receive(:script_file).and_return(@script_file)
+ expect(FileUtils).to receive(:chown).with('toor', 'wheel', "/tmp/the_script_file")
@provider.set_owner_and_group
end
context "with the script file set to the correct owner and group" do
before do
- @provider.stub(:set_owner_and_group)
- @provider.stub(:script_file).and_return(@script_file)
+ allow(@provider).to receive(:set_owner_and_group)
+ allow(@provider).to receive(:script_file).and_return(@script_file)
end
describe "when writing the script to the file" do
it "should put the contents of the script in the temp file" do
@provider.action_run
@script_file.rewind
- @script_file.string.should == "$| = 1; print 'i like beans'\n"
+ expect(@script_file.string).to eq("$| = 1; print 'i like beans'\n")
end
it "closes before executing the script and unlinks it when finished" do
@provider.action_run
- @script_file.should be_closed
+ expect(@script_file).to be_closed
end
end
@@ -75,7 +75,7 @@ describe Chef::Provider::Script, "action_run" do
describe "when running the script" do
it 'should set the command to "interpreter" "tempfile"' do
@provider.action_run
- @new_resource.command.should == '"perl" "/tmp/the_script_file"'
+ expect(@new_resource.command).to eq('"perl" "/tmp/the_script_file"')
end
describe "with flags set on the resource" do
@@ -85,7 +85,7 @@ describe Chef::Provider::Script, "action_run" do
it "should set the command to 'interpreter flags tempfile'" do
@provider.action_run
- @new_resource.command.should == '"perl" -f "/tmp/the_script_file"'
+ expect(@new_resource.command).to eq('"perl" -f "/tmp/the_script_file"')
end
end
diff --git a/spec/unit/provider/service/aix_service_spec.rb b/spec/unit/provider/service/aix_service_spec.rb
index 070f618b99..a2557354c2 100644
--- a/spec/unit/provider/service/aix_service_spec.rb
+++ b/spec/unit/provider/service/aix_service_spec.rb
@@ -28,17 +28,17 @@ describe Chef::Provider::Service::Aix do
@current_resource = Chef::Resource::Service.new("chef")
@provider = Chef::Provider::Service::Aix.new(@new_resource, @run_context)
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
end
describe "load current resource" do
it "should create a current resource with the name of the new resource and determine the status" do
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
- Chef::Resource::Service.should_receive(:new).and_return(@current_resource)
- @current_resource.should_receive(:service_name).with("chef")
- @provider.should_receive(:determine_current_status!)
+ expect(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
+ expect(@current_resource).to receive(:service_name).with("chef")
+ expect(@provider).to receive(:determine_current_status!)
@provider.load_current_resource
end
@@ -51,11 +51,11 @@ describe Chef::Provider::Service::Aix do
end
it "current resource is running" do
- @provider.should_receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
- @provider.should_receive(:is_resource_group?).with(["chef chef 12345 active"])
+ expect(@provider).to receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
+ expect(@provider).to receive(:is_resource_group?).with(["chef chef 12345 active"])
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
end
@@ -65,11 +65,11 @@ describe Chef::Provider::Service::Aix do
end
it "current resource is not running" do
- @provider.should_receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
- @provider.should_receive(:is_resource_group?).with(["chef chef inoperative"])
+ expect(@provider).to receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
+ expect(@provider).to receive(:is_resource_group?).with(["chef chef inoperative"])
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
end
end
@@ -81,9 +81,9 @@ describe Chef::Provider::Service::Aix do
end
it "service is a group" do
- @provider.should_receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
@provider.load_current_resource
- @provider.instance_eval("@is_resource_group").should be_true
+ expect(@provider.instance_eval("@is_resource_group")).to be_true
end
end
@@ -93,9 +93,9 @@ describe Chef::Provider::Service::Aix do
end
it "service is a group" do
- @provider.should_receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
@provider.load_current_resource
- @provider.instance_eval("@is_resource_group").should be_true
+ expect(@provider.instance_eval("@is_resource_group")).to be_true
end
end
@@ -105,9 +105,9 @@ describe Chef::Provider::Service::Aix do
end
it "service is a subsystem" do
- @provider.should_receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("lssrc -a | grep -w chef").and_return(@status)
@provider.load_current_resource
- @provider.instance_eval("@is_resource_group").should be_false
+ expect(@provider.instance_eval("@is_resource_group")).to be_false
end
end
end
@@ -119,13 +119,13 @@ describe Chef::Provider::Service::Aix do
it "should call the start command for groups" do
@provider.instance_eval('@is_resource_group = true')
- @provider.should_receive(:shell_out!).with("startsrc -g #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("startsrc -g #{@new_resource.service_name}")
@provider.start_service
end
it "should call the start command for subsystem" do
- @provider.should_receive(:shell_out!).with("startsrc -s #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("startsrc -s #{@new_resource.service_name}")
@provider.start_service
end
@@ -138,13 +138,13 @@ describe Chef::Provider::Service::Aix do
it "should call the stop command for groups" do
@provider.instance_eval('@is_resource_group = true')
- @provider.should_receive(:shell_out!).with("stopsrc -g #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("stopsrc -g #{@new_resource.service_name}")
@provider.stop_service
end
it "should call the stop command for subsystem" do
- @provider.should_receive(:shell_out!).with("stopsrc -s #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("stopsrc -s #{@new_resource.service_name}")
@provider.stop_service
end
@@ -157,13 +157,13 @@ describe Chef::Provider::Service::Aix do
it "should call the reload command for groups" do
@provider.instance_eval('@is_resource_group = true')
- @provider.should_receive(:shell_out!).with("refresh -g #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("refresh -g #{@new_resource.service_name}")
@provider.reload_service
end
it "should call the reload command for subsystem" do
- @provider.should_receive(:shell_out!).with("refresh -s #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("refresh -s #{@new_resource.service_name}")
@provider.reload_service
end
@@ -171,8 +171,8 @@ describe Chef::Provider::Service::Aix do
describe "when restarting the service" do
it "should call stop service followed by start service" do
- @provider.should_receive(:stop_service)
- @provider.should_receive(:start_service)
+ expect(@provider).to receive(:stop_service)
+ expect(@provider).to receive(:start_service)
@provider.restart_service
end
diff --git a/spec/unit/provider/service/aixinit_service_spec.rb b/spec/unit/provider/service/aixinit_service_spec.rb
index bb090b112c..e4c9faa8b4 100644
--- a/spec/unit/provider/service/aixinit_service_spec.rb
+++ b/spec/unit/provider/service/aixinit_service_spec.rb
@@ -36,7 +36,7 @@ describe Chef::Provider::Service::AixInit do
describe "load_current_resource" do
it "sets current resource attributes" do
- @provider.should_receive(:set_current_resource_attributes)
+ expect(@provider).to receive(:set_current_resource_attributes)
@provider.load_current_resource
end
@@ -45,19 +45,19 @@ describe Chef::Provider::Service::AixInit do
describe "action_enable" do
shared_examples_for "the service is up to date" do
it "does not enable the service" do
- @provider.should_not_receive(:enable_service)
+ expect(@provider).not_to receive(:enable_service)
@provider.action_enable
@provider.set_updated_status
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
shared_examples_for "the service is not up to date" do
it "enables the service and sets the resource as updated" do
- @provider.should_receive(:enable_service).and_return(true)
+ expect(@provider).to receive(:enable_service).and_return(true)
@provider.action_enable
@provider.set_updated_status
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
end
@@ -97,12 +97,12 @@ describe Chef::Provider::Service::AixInit do
describe "enable_service" do
before do
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return([])
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return([])
end
context "when the service doesn't set a priority" do
it "creates symlink with status S" do
- @provider.should_receive(:create_symlink).with(2,'S','')
+ expect(@provider).to receive(:create_symlink).with(2,'S','')
@provider.enable_service
end
@@ -114,7 +114,7 @@ describe Chef::Provider::Service::AixInit do
end
it "creates a symlink with status S and a priority" do
- @provider.should_receive(:create_symlink).with(2,'S',75)
+ expect(@provider).to receive(:create_symlink).with(2,'S',75)
@provider.enable_service
end
@@ -127,8 +127,8 @@ describe Chef::Provider::Service::AixInit do
end
it "create symlink with status start (S) or stop (K) and a priority " do
- @provider.should_receive(:create_symlink).with(2,'S',20)
- @provider.should_receive(:create_symlink).with(3,'K',10)
+ expect(@provider).to receive(:create_symlink).with(2,'S',20)
+ expect(@provider).to receive(:create_symlink).with(3,'K',10)
@provider.enable_service
end
@@ -137,12 +137,12 @@ describe Chef::Provider::Service::AixInit do
describe "disable_service" do
before do
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return([])
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return([])
end
context "when the service doesn't set a priority" do
it "creates symlinks with status stop (K)" do
- @provider.should_receive(:create_symlink).with(2,'K','')
+ expect(@provider).to receive(:create_symlink).with(2,'K','')
@provider.disable_service
end
@@ -154,7 +154,7 @@ describe Chef::Provider::Service::AixInit do
end
it "create symlink with status stop (k) and a priority " do
- @provider.should_receive(:create_symlink).with(2,'K',25)
+ expect(@provider).to receive(:create_symlink).with(2,'K',25)
@provider.disable_service
end
@@ -167,7 +167,7 @@ describe Chef::Provider::Service::AixInit do
end
it "create symlink with status stop (k) and a priority " do
- @provider.should_receive(:create_symlink).with(3,'K',90)
+ expect(@provider).to receive(:create_symlink).with(3,'K',90)
@provider.disable_service
end
@@ -179,12 +179,12 @@ describe Chef::Provider::Service::AixInit do
before do
files = ["/etc/rc.d/rc2.d/S20apache"]
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]chef"]).and_return(files)
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]chef"]).and_return(files)
end
it "the service is enabled" do
- @provider.current_resource.should_receive(:enabled).with(true)
- @provider.current_resource.should_receive(:priority).with(20)
+ expect(@provider.current_resource).to receive(:enabled).with(true)
+ expect(@provider.current_resource).to receive(:priority).with(20)
@provider.set_current_resource_attributes
end
@@ -195,11 +195,11 @@ describe Chef::Provider::Service::AixInit do
files = ["/etc/rc.d/rc2.d/K20apache"]
@priority = {2 => [:stop, 20]}
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]chef"]).and_return(files)
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]chef"]).and_return(files)
end
it "the service is not enabled" do
- @provider.current_resource.should_receive(:enabled).with(false)
- @provider.current_resource.should_receive(:priority).with(@priority)
+ expect(@provider.current_resource).to receive(:enabled).with(false)
+ expect(@provider.current_resource).to receive(:priority).with(@priority)
@provider.set_current_resource_attributes
end
@@ -210,11 +210,11 @@ describe Chef::Provider::Service::AixInit do
@files = ["/etc/rc.d/rc2.d/S20apache", "/etc/rc.d/rc2.d/K80apache"]
@priority = {2 => [:start, 20], 2 => [:stop, 80]}
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]chef"]).and_return(@files)
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]chef"]).and_return(@files)
end
it "the service is enabled" do
- @current_resource.should_receive(:enabled).with(true)
- @current_resource.should_receive(:priority).with(@priority)
+ expect(@current_resource).to receive(:enabled).with(true)
+ expect(@current_resource).to receive(:priority).with(@priority)
@provider.set_current_resource_attributes
end
@@ -224,12 +224,12 @@ describe Chef::Provider::Service::AixInit do
before do
files = ["/etc/rc.d/rc2.d/Sapache"]
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return(files)
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return(files)
end
it "the service is enabled" do
- @provider.current_resource.should_receive(:enabled).with(true)
- @provider.current_resource.should_receive(:priority).with('')
+ expect(@provider.current_resource).to receive(:enabled).with(true)
+ expect(@provider.current_resource).to receive(:priority).with('')
@provider.set_current_resource_attributes
end
@@ -240,11 +240,11 @@ describe Chef::Provider::Service::AixInit do
files = ["/etc/rc.d/rc2.d/Kapache"]
@priority = {2 => [:stop, '']}
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return(files)
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return(files)
end
it "the service is not enabled" do
- @provider.current_resource.should_receive(:enabled).with(false)
- @provider.current_resource.should_receive(:priority).with(@priority)
+ expect(@provider.current_resource).to receive(:enabled).with(false)
+ expect(@provider.current_resource).to receive(:priority).with(@priority)
@provider.set_current_resource_attributes
end
@@ -255,11 +255,11 @@ describe Chef::Provider::Service::AixInit do
files = ["/etc/rc.d/rc2.d/Sapache", "/etc/rc.d/rc2.d/Kapache"]
@priority = {2 => [:start, ''], 2 => [:stop, '']}
- Dir.stub(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return(files)
+ allow(Dir).to receive(:glob).with(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).and_return(files)
end
it "the service is enabled" do
- @current_resource.should_receive(:enabled).with(true)
- @current_resource.should_receive(:priority).with(@priority)
+ expect(@current_resource).to receive(:enabled).with(true)
+ expect(@current_resource).to receive(:priority).with(@priority)
@provider.set_current_resource_attributes
end
diff --git a/spec/unit/provider/service/arch_service_spec.rb b/spec/unit/provider/service/arch_service_spec.rb
index 38ed74cdee..e71d9adfad 100644
--- a/spec/unit/provider/service/arch_service_spec.rb
+++ b/spec/unit/provider/service/arch_service_spec.rb
@@ -37,15 +37,15 @@ describe Chef::Provider::Service::Arch, "load_current_resource" do
@provider = Chef::Provider::Service::Arch.new(@new_resource, @run_context)
- ::File.stub(:exists?).with("/etc/rc.conf").and_return(true)
- ::File.stub(:read).with("/etc/rc.conf").and_return("DAEMONS=(network apache sshd)")
+ allow(::File).to receive(:exists?).with("/etc/rc.conf").and_return(true)
+ allow(::File).to receive(:read).with("/etc/rc.conf").and_return("DAEMONS=(network apache sshd)")
end
describe "when first created" do
it "should set the current resources service name to the new resources service name" do
- @provider.stub(:shell_out).and_return(OpenStruct.new(:exitstatus => 0, :stdout => ""))
+ allow(@provider).to receive(:shell_out).and_return(OpenStruct.new(:exitstatus => 0, :stdout => ""))
@provider.load_current_resource
- @provider.current_resource.service_name.should == 'chef'
+ expect(@provider.current_resource.service_name).to eq('chef')
end
end
@@ -55,26 +55,26 @@ describe Chef::Provider::Service::Arch, "load_current_resource" do
end
it "should run '/etc/rc.d/service_name status'" do
- @provider.should_receive(:shell_out).with("/etc/rc.d/chef status").and_return(OpenStruct.new(:exitstatus => 0))
+ expect(@provider).to receive(:shell_out).with("/etc/rc.d/chef status").and_return(OpenStruct.new(:exitstatus => 0))
@provider.load_current_resource
end
it "should set running to true if the status command returns 0" do
- @provider.stub(:shell_out).with("/etc/rc.d/chef status").and_return(OpenStruct.new(:exitstatus => 0))
+ allow(@provider).to receive(:shell_out).with("/etc/rc.d/chef status").and_return(OpenStruct.new(:exitstatus => 0))
@provider.load_current_resource
- @provider.current_resource.running.should be_true
+ expect(@provider.current_resource.running).to be_true
end
it "should set running to false if the status command returns anything except 0" do
- @provider.stub(:shell_out).with("/etc/rc.d/chef status").and_return(OpenStruct.new(:exitstatus => 1))
+ allow(@provider).to receive(:shell_out).with("/etc/rc.d/chef status").and_return(OpenStruct.new(:exitstatus => 1))
@provider.load_current_resource
- @provider.current_resource.running.should be_false
+ expect(@provider.current_resource.running).to be_false
end
it "should set running to false if the status command raises" do
- @provider.stub(:shell_out).with("/etc/rc.d/chef status").and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out).with("/etc/rc.d/chef status").and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.load_current_resource
- @provider.current_resource.running.should be_false
+ expect(@provider.current_resource.running).to be_false
end
end
@@ -85,7 +85,7 @@ describe Chef::Provider::Service::Arch, "load_current_resource" do
end
it "should run the services status command if one has been specified" do
- @provider.should_receive(:shell_out).with("/etc/rc.d/chefhasmonkeypants status").and_return(OpenStruct.new(:exitstatus => 0))
+ expect(@provider).to receive(:shell_out).with("/etc/rc.d/chefhasmonkeypants status").and_return(OpenStruct.new(:exitstatus => 0))
@provider.load_current_resource
end
@@ -95,24 +95,24 @@ describe Chef::Provider::Service::Arch, "load_current_resource" do
@node.automatic_attrs[:command] = {:ps => nil}
@provider.define_resource_requirements
@provider.action = :start
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should raise error if the node has an empty ps attribute and no other means to get status" do
@node.automatic_attrs[:command] = {:ps => ""}
@provider.define_resource_requirements
@provider.action = :start
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should fail if file /etc/rc.conf does not exist" do
- ::File.stub(:exists?).with("/etc/rc.conf").and_return(false)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Service)
+ allow(::File).to receive(:exists?).with("/etc/rc.conf").and_return(false)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Service)
end
it "should fail if file /etc/rc.conf does not contain DAEMONS array" do
- ::File.stub(:read).with("/etc/rc.conf").and_return("")
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Service)
+ allow(::File).to receive(:read).with("/etc/rc.conf").and_return("")
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Service)
end
describe "when discovering service status with ps" do
@@ -123,7 +123,7 @@ aj 7903 5016 0 21:26 pts/5 00:00:00 /bin/bash
aj 8119 6041 0 21:34 pts/3 00:00:03 vi init_service_spec.rb
DEFAULT_PS
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@node.automatic_attrs[:command] = {:ps => "ps -ef"}
end
@@ -133,29 +133,29 @@ DEFAULT_PS
aj 7842 5057 0 21:26 pts/2 00:00:06 chef
aj 7842 5057 0 21:26 pts/2 00:00:06 poos
RUNNING_PS
- @status.stub(:stdout).and_return(@stdout)
+ allow(@status).to receive(:stdout).and_return(@stdout)
@provider.load_current_resource
- @provider.current_resource.running.should be_true
+ expect(@provider.current_resource.running).to be_true
end
it "determines the service is not running when it does not appear in ps" do
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.running.should be_false
+ expect(@provider.current_resource.running).to be_false
end
it "should raise an exception if ps fails" do
- @provider.stub(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.load_current_resource
@provider.action = :start
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
it "should return existing entries in DAEMONS array" do
- ::File.stub(:read).with("/etc/rc.conf").and_return("DAEMONS=(network !apache ssh)")
- @provider.daemons.should == ['network', '!apache', 'ssh']
+ allow(::File).to receive(:read).with("/etc/rc.conf").and_return("DAEMONS=(network !apache ssh)")
+ expect(@provider.daemons).to eq(['network', '!apache', 'ssh'])
end
context "when the current service status is known" do
@@ -179,8 +179,8 @@ RUNNING_PS
# end
it "should add chef to DAEMONS array" do
- ::File.stub(:read).with("/etc/rc.conf").and_return("DAEMONS=(network)")
- @provider.should_receive(:update_daemons).with(['network', 'chef'])
+ allow(::File).to receive(:read).with("/etc/rc.conf").and_return("DAEMONS=(network)")
+ expect(@provider).to receive(:update_daemons).with(['network', 'chef'])
@provider.enable_service()
end
end
@@ -200,8 +200,8 @@ RUNNING_PS
# end
it "should remove chef from DAEMONS array" do
- ::File.stub(:read).with("/etc/rc.conf").and_return("DAEMONS=(network chef)")
- @provider.should_receive(:update_daemons).with(['network', '!chef'])
+ allow(::File).to receive(:read).with("/etc/rc.conf").and_return("DAEMONS=(network chef)")
+ expect(@provider).to receive(:update_daemons).with(['network', '!chef'])
@provider.disable_service()
end
end
@@ -221,13 +221,13 @@ RUNNING_PS
# end
it "should call the start command if one is specified" do
- @new_resource.stub(:start_command).and_return("/etc/rc.d/chef startyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/chef startyousillysally")
+ allow(@new_resource).to receive(:start_command).and_return("/etc/rc.d/chef startyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/chef startyousillysally")
@provider.start_service()
end
it "should call '/etc/rc.d/service_name start' if no start command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} start")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} start")
@provider.start_service()
end
end
@@ -247,13 +247,13 @@ RUNNING_PS
# end
it "should call the stop command if one is specified" do
- @new_resource.stub(:stop_command).and_return("/etc/rc.d/chef itoldyoutostop")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/chef itoldyoutostop")
+ allow(@new_resource).to receive(:stop_command).and_return("/etc/rc.d/chef itoldyoutostop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/chef itoldyoutostop")
@provider.stop_service()
end
it "should call '/etc/rc.d/service_name stop' if no stop command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} stop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} stop")
@provider.stop_service()
end
end
@@ -274,21 +274,21 @@ RUNNING_PS
# end
it "should call 'restart' on the service_name if the resource supports it" do
- @new_resource.stub(:supports).and_return({:restart => true})
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} restart")
+ allow(@new_resource).to receive(:supports).and_return({:restart => true})
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} restart")
@provider.restart_service()
end
it "should call the restart_command if one has been specified" do
- @new_resource.stub(:restart_command).and_return("/etc/rc.d/chef restartinafire")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} restartinafire")
+ allow(@new_resource).to receive(:restart_command).and_return("/etc/rc.d/chef restartinafire")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} restartinafire")
@provider.restart_service()
end
it "should just call stop, then start when the resource doesn't support restart and no restart_command is specified" do
- @provider.should_receive(:stop_service)
- @provider.should_receive(:sleep).with(1)
- @provider.should_receive(:start_service)
+ expect(@provider).to receive(:stop_service)
+ expect(@provider).to receive(:sleep).with(1)
+ expect(@provider).to receive(:start_service)
@provider.restart_service()
end
end
@@ -309,14 +309,14 @@ RUNNING_PS
# end
it "should call 'reload' on the service if it supports it" do
- @new_resource.stub(:supports).and_return({:reload => true})
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} reload")
+ allow(@new_resource).to receive(:supports).and_return({:reload => true})
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} reload")
@provider.reload_service()
end
it "should should run the user specified reload command if one is specified and the service doesn't support reload" do
- @new_resource.stub(:reload_command).and_return("/etc/rc.d/chef lollerpants")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} lollerpants")
+ allow(@new_resource).to receive(:reload_command).and_return("/etc/rc.d/chef lollerpants")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/rc.d/#{@new_resource.service_name} lollerpants")
@provider.reload_service()
end
end
diff --git a/spec/unit/provider/service/debian_service_spec.rb b/spec/unit/provider/service/debian_service_spec.rb
index 3e60857cbf..b974a6bf9e 100644
--- a/spec/unit/provider/service/debian_service_spec.rb
+++ b/spec/unit/provider/service/debian_service_spec.rb
@@ -36,17 +36,17 @@ describe Chef::Provider::Service::Debian do
describe "load_current_resource" do
it "ensures /usr/sbin/update-rc.d is available" do
- File.should_receive(:exists?).with("/usr/sbin/update-rc.d") .and_return(false)
+ expect(File).to receive(:exists?).with("/usr/sbin/update-rc.d") .and_return(false)
@provider.define_resource_requirements
- lambda {
+ expect {
@provider.process_resource_requirements
- }.should raise_error(Chef::Exceptions::Service)
+ }.to raise_error(Chef::Exceptions::Service)
end
context "when update-rc.d shows init linked to rc*.d/" do
before do
- @provider.stub(:assert_update_rcd_available)
+ allow(@provider).to receive(:assert_update_rcd_available)
result = <<-UPDATE_RC_D_SUCCESS
Removing any system startup links for /etc/init.d/chef ...
@@ -62,55 +62,55 @@ describe Chef::Provider::Service::Debian do
@stdout = StringIO.new(result)
@stderr = StringIO.new
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
end
it "says the service is enabled" do
- @provider.service_currently_enabled?(@provider.get_priority).should be_true
+ expect(@provider.service_currently_enabled?(@provider.get_priority)).to be_true
end
it "stores the 'enabled' state" do
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
- @provider.load_current_resource.should equal(@current_resource)
- @current_resource.enabled.should be_true
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
+ expect(@provider.load_current_resource).to equal(@current_resource)
+ expect(@current_resource.enabled).to be_true
end
end
context "when update-rc.d shows init isn't linked to rc*.d/" do
before do
- @provider.stub(:assert_update_rcd_available)
+ allow(@provider).to receive(:assert_update_rcd_available)
@status = double("Status", :exitstatus => 0)
@stdout = StringIO.new(
" Removing any system startup links for /etc/init.d/chef ...")
@stderr = StringIO.new
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
end
it "says the service is disabled" do
- @provider.service_currently_enabled?(@provider.get_priority).should be_false
+ expect(@provider.service_currently_enabled?(@provider.get_priority)).to be_false
end
it "stores the 'disabled' state" do
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
- @provider.load_current_resource.should equal(@current_resource)
- @current_resource.enabled.should be_false
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
+ expect(@provider.load_current_resource).to equal(@current_resource)
+ expect(@current_resource.enabled).to be_false
end
end
context "when update-rc.d fails" do
before do
@status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
end
it "raises an error" do
@provider.define_resource_requirements
- lambda {
+ expect {
@provider.process_resource_requirements
- }.should raise_error(Chef::Exceptions::Service)
+ }.to raise_error(Chef::Exceptions::Service)
end
end
@@ -196,49 +196,49 @@ insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
context "on #{model}" do
context "when update-rc.d shows init linked to rc*.d/" do
before do
- @provider.stub(:assert_update_rcd_available)
+ allow(@provider).to receive(:assert_update_rcd_available)
@stdout = StringIO.new(expected_results["linked"]["stdout"])
@stderr = StringIO.new(expected_results["linked"]["stderr"])
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
end
it "says the service is enabled" do
- @provider.service_currently_enabled?(@provider.get_priority).should be_true
+ expect(@provider.service_currently_enabled?(@provider.get_priority)).to be_true
end
it "stores the 'enabled' state" do
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
- @provider.load_current_resource.should equal(@current_resource)
- @current_resource.enabled.should be_true
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
+ expect(@provider.load_current_resource).to equal(@current_resource)
+ expect(@current_resource.enabled).to be_true
end
it "stores the start/stop priorities of the service" do
@provider.load_current_resource
- @provider.current_resource.priority.should == expected_results["linked"]["priorities"]
+ expect(@provider.current_resource.priority).to eq(expected_results["linked"]["priorities"])
end
end
context "when update-rc.d shows init isn't linked to rc*.d/" do
before do
- @provider.stub(:assert_update_rcd_available)
+ allow(@provider).to receive(:assert_update_rcd_available)
@stdout = StringIO.new(expected_results["not linked"]["stdout"])
@stderr = StringIO.new(expected_results["not linked"]["stderr"])
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
end
it "says the service is disabled" do
- @provider.service_currently_enabled?(@provider.get_priority).should be_false
+ expect(@provider.service_currently_enabled?(@provider.get_priority)).to be_false
end
it "stores the 'disabled' state" do
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
- @provider.load_current_resource.should equal(@current_resource)
- @current_resource.enabled.should be_false
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
+ expect(@provider.load_current_resource).to equal(@current_resource)
+ expect(@current_resource.enabled).to be_false
end
end
end
@@ -249,19 +249,19 @@ insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
describe "action_enable" do
shared_examples_for "the service is up to date" do
it "does not enable the service" do
- @provider.should_not_receive(:enable_service)
+ expect(@provider).not_to receive(:enable_service)
@provider.action_enable
@provider.set_updated_status
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
shared_examples_for "the service is not up to date" do
it "enables the service and sets the resource as updated" do
- @provider.should_receive(:enable_service).and_return(true)
+ expect(@provider).to receive(:enable_service).and_return(true)
@provider.action_enable
@provider.set_updated_status
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
end
@@ -301,7 +301,7 @@ insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
def expect_commands(provider, commands)
commands.each do |command|
- provider.should_receive(:shell_out!).with(command)
+ expect(provider).to receive(:shell_out!).with(command)
end
end
diff --git a/spec/unit/provider/service/gentoo_service_spec.rb b/spec/unit/provider/service/gentoo_service_spec.rb
index 022a73cc9a..04734e9c5d 100644
--- a/spec/unit/provider/service/gentoo_service_spec.rb
+++ b/spec/unit/provider/service/gentoo_service_spec.rb
@@ -29,72 +29,72 @@ describe Chef::Provider::Service::Gentoo do
@current_resource = Chef::Resource::Service.new("chef")
@provider = Chef::Provider::Service::Gentoo.new(@new_resource, @run_context)
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out).and_return(@status)
- File.stub(:exists?).with("/etc/init.d/chef").and_return(true)
- File.stub(:exists?).with("/sbin/rc-update").and_return(true)
- File.stub(:exists?).with("/etc/runlevels/default/chef").and_return(false)
- File.stub(:readable?).with("/etc/runlevels/default/chef").and_return(false)
+ allow(@provider).to receive(:shell_out).and_return(@status)
+ allow(File).to receive(:exists?).with("/etc/init.d/chef").and_return(true)
+ allow(File).to receive(:exists?).with("/sbin/rc-update").and_return(true)
+ allow(File).to receive(:exists?).with("/etc/runlevels/default/chef").and_return(false)
+ allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return(false)
end
# new test: found_enabled state
#
describe "load_current_resource" do
it "should raise Chef::Exceptions::Service if /sbin/rc-update does not exist" do
- File.should_receive(:exists?).with("/sbin/rc-update").and_return(false)
+ expect(File).to receive(:exists?).with("/sbin/rc-update").and_return(false)
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should track when service file is not found in /etc/runlevels" do
@provider.load_current_resource
- @provider.instance_variable_get("@found_script").should be_false
+ expect(@provider.instance_variable_get("@found_script")).to be_false
end
it "should track when service file is found in /etc/runlevels/**/" do
- Dir.stub(:glob).with("/etc/runlevels/**/chef").and_return(["/etc/runlevels/default/chef"])
+ allow(Dir).to receive(:glob).with("/etc/runlevels/**/chef").and_return(["/etc/runlevels/default/chef"])
@provider.load_current_resource
- @provider.instance_variable_get("@found_script").should be_true
+ expect(@provider.instance_variable_get("@found_script")).to be_true
end
describe "when detecting the service enable state" do
describe "and the glob returns a default service script file" do
before do
- Dir.stub(:glob).with("/etc/runlevels/**/chef").and_return(["/etc/runlevels/default/chef"])
+ allow(Dir).to receive(:glob).with("/etc/runlevels/**/chef").and_return(["/etc/runlevels/default/chef"])
end
describe "and the file exists and is readable" do
before do
- File.stub(:exists?).with("/etc/runlevels/default/chef").and_return(true)
- File.stub(:readable?).with("/etc/runlevels/default/chef").and_return(true)
+ allow(File).to receive(:exists?).with("/etc/runlevels/default/chef").and_return(true)
+ allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return(true)
end
it "should set enabled to true" do
@provider.load_current_resource
- @current_resource.enabled.should be_true
+ expect(@current_resource.enabled).to be_true
end
end
describe "and the file exists but is not readable" do
before do
- File.stub(:exists?).with("/etc/runlevels/default/chef").and_return(true)
- File.stub(:readable?).with("/etc/runlevels/default/chef").and_return(false)
+ allow(File).to receive(:exists?).with("/etc/runlevels/default/chef").and_return(true)
+ allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return(false)
end
it "should set enabled to false" do
@provider.load_current_resource
- @current_resource.enabled.should be_false
+ expect(@current_resource.enabled).to be_false
end
end
describe "and the file does not exist" do
before do
- File.stub(:exists?).with("/etc/runlevels/default/chef").and_return(false)
- File.stub(:readable?).with("/etc/runlevels/default/chef").and_return("foobarbaz")
+ allow(File).to receive(:exists?).with("/etc/runlevels/default/chef").and_return(false)
+ allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return("foobarbaz")
end
it "should set enabled to false" do
@provider.load_current_resource
- @current_resource.enabled.should be_false
+ expect(@current_resource.enabled).to be_false
end
end
@@ -103,39 +103,39 @@ describe Chef::Provider::Service::Gentoo do
end
it "should return the current_resource" do
- @provider.load_current_resource.should == @current_resource
+ expect(@provider.load_current_resource).to eq(@current_resource)
end
it "should support the status command automatically" do
@provider.load_current_resource
- @new_resource.supports[:status].should be_true
+ expect(@new_resource.supports[:status]).to be_true
end
it "should support the restart command automatically" do
@provider.load_current_resource
- @new_resource.supports[:restart].should be_true
+ expect(@new_resource.supports[:restart]).to be_true
end
it "should not support the reload command automatically" do
@provider.load_current_resource
- @new_resource.supports[:reload].should_not be_true
+ expect(@new_resource.supports[:reload]).not_to be_true
end
end
describe "action_methods" do
- before(:each) { @provider.stub(:load_current_resource).and_return(@current_resource) }
+ before(:each) { allow(@provider).to receive(:load_current_resource).and_return(@current_resource) }
describe Chef::Provider::Service::Gentoo, "enable_service" do
it "should call rc-update add *service* default" do
- @provider.should_receive(:shell_out!).with("/sbin/rc-update add chef default")
+ expect(@provider).to receive(:shell_out!).with("/sbin/rc-update add chef default")
@provider.enable_service()
end
end
describe Chef::Provider::Service::Gentoo, "disable_service" do
it "should call rc-update del *service* default" do
- @provider.should_receive(:shell_out!).with("/sbin/rc-update del chef default")
+ expect(@provider).to receive(:shell_out!).with("/sbin/rc-update del chef default")
@provider.disable_service()
end
end
diff --git a/spec/unit/provider/service/init_service_spec.rb b/spec/unit/provider/service/init_service_spec.rb
index b523f6d3a9..5dc5256061 100644
--- a/spec/unit/provider/service/init_service_spec.rb
+++ b/spec/unit/provider/service/init_service_spec.rb
@@ -30,7 +30,7 @@ describe Chef::Provider::Service::Init, "load_current_resource" do
@current_resource = Chef::Resource::Service.new("chef")
@provider = Chef::Provider::Service::Init.new(@new_resource, @run_context)
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@stdout = StringIO.new(<<-PS)
aj 7842 5057 0 21:26 pts/2 00:00:06 vi init.rb
@@ -38,17 +38,17 @@ aj 7903 5016 0 21:26 pts/5 00:00:00 /bin/bash
aj 8119 6041 0 21:34 pts/3 00:00:03 vi init_service_spec.rb
PS
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
end
it "should create a current resource with the name of the new resource" do
@provider.load_current_resource
- @provider.current_resource.should equal(@current_resource)
+ expect(@provider.current_resource).to equal(@current_resource)
end
it "should set the current resources service name to the new resources service name" do
@provider.load_current_resource
- @current_resource.service_name.should == 'chef'
+ expect(@current_resource.service_name).to eq('chef')
end
describe "when the service supports status" do
@@ -57,37 +57,37 @@ PS
end
it "should run '/etc/init.d/service_name status'" do
- @provider.should_receive(:shell_out).with("/etc/init.d/#{@current_resource.service_name} status").and_return(@status)
+ expect(@provider).to receive(:shell_out).with("/etc/init.d/#{@current_resource.service_name} status").and_return(@status)
@provider.load_current_resource
end
it "should set running to true if the status command returns 0" do
- @provider.stub(:shell_out).with("/etc/init.d/#{@current_resource.service_name} status").and_return(@status)
+ allow(@provider).to receive(:shell_out).with("/etc/init.d/#{@current_resource.service_name} status").and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the status command returns anything except 0" do
- @status.stub(:exitstatus).and_return(1)
- @provider.stub(:shell_out).with("/etc/init.d/#{@current_resource.service_name} status").and_return(@status)
+ allow(@status).to receive(:exitstatus).and_return(1)
+ allow(@provider).to receive(:shell_out).with("/etc/init.d/#{@current_resource.service_name} status").and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
it "should set running to false if the status command raises" do
- @provider.stub(:shell_out).and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out).and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
end
describe "when a status command has been specified" do
before do
- @new_resource.stub(:status_command).and_return("/etc/init.d/chefhasmonkeypants status")
+ allow(@new_resource).to receive(:status_command).and_return("/etc/init.d/chefhasmonkeypants status")
end
it "should run the services status command if one has been specified" do
- @provider.should_receive(:shell_out).with("/etc/init.d/chefhasmonkeypants status").and_return(@status)
+ expect(@provider).to receive(:shell_out).with("/etc/init.d/chefhasmonkeypants status").and_return(@status)
@provider.load_current_resource
end
@@ -95,12 +95,12 @@ PS
describe "when an init command has been specified" do
before do
- @new_resource.stub(:init_command).and_return("/opt/chef-server/service/erchef")
+ allow(@new_resource).to receive(:init_command).and_return("/opt/chef-server/service/erchef")
@provider = Chef::Provider::Service::Init.new(@new_resource, @run_context)
end
it "should use the init_command if one has been specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/opt/chef-server/service/erchef start")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/opt/chef-server/service/erchef start")
@provider.start_service
end
@@ -113,7 +113,7 @@ PS
@provider.load_current_resource
@provider.action = :start
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should raise an error if the node has an empty ps attribute" do
@@ -121,14 +121,14 @@ PS
@provider.load_current_resource
@provider.action = :start
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
describe "when we have a 'ps' attribute" do
it "should shell_out! the node's ps command" do
- @provider.should_receive(:shell_out!).and_return(@status)
+ expect(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
end
@@ -137,39 +137,39 @@ PS
aj 7842 5057 0 21:26 pts/2 00:00:06 chef
aj 7842 5057 0 21:26 pts/2 00:00:06 poos
RUNNING_PS
- @status.stub(:stdout).and_return(@stdout)
+ allow(@status).to receive(:stdout).and_return(@stdout)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the regex doesn't match" do
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
it "should raise an exception if ps fails" do
- @provider.stub(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.load_current_resource
@provider.action = :start
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
it "should return the current resource" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
describe "when starting the service" do
it "should call the start command if one is specified" do
@new_resource.start_command("/etc/init.d/chef startyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef startyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef startyousillysally")
@provider.start_service()
end
it "should call '/etc/init.d/service_name start' if no start command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} start")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} start")
@provider.start_service()
end
end
@@ -177,12 +177,12 @@ RUNNING_PS
describe Chef::Provider::Service::Init, "stop_service" do
it "should call the stop command if one is specified" do
@new_resource.stop_command("/etc/init.d/chef itoldyoutostop")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef itoldyoutostop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef itoldyoutostop")
@provider.stop_service()
end
it "should call '/etc/init.d/service_name stop' if no stop command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} stop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} stop")
@provider.stop_service()
end
end
@@ -190,20 +190,20 @@ RUNNING_PS
describe "when restarting a service" do
it "should call 'restart' on the service_name if the resource supports it" do
@new_resource.supports({:restart => true})
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} restart")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} restart")
@provider.restart_service()
end
it "should call the restart_command if one has been specified" do
@new_resource.restart_command("/etc/init.d/chef restartinafire")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} restartinafire")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/#{@new_resource.service_name} restartinafire")
@provider.restart_service()
end
it "should just call stop, then start when the resource doesn't support restart and no restart_command is specified" do
- @provider.should_receive(:stop_service)
- @provider.should_receive(:sleep).with(1)
- @provider.should_receive(:start_service)
+ expect(@provider).to receive(:stop_service)
+ expect(@provider).to receive(:sleep).with(1)
+ expect(@provider).to receive(:start_service)
@provider.restart_service()
end
end
@@ -211,13 +211,13 @@ RUNNING_PS
describe "when reloading a service" do
it "should call 'reload' on the service if it supports it" do
@new_resource.supports({:reload => true})
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef reload")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef reload")
@provider.reload_service()
end
it "should should run the user specified reload command if one is specified and the service doesn't support reload" do
@new_resource.reload_command("/etc/init.d/chef lollerpants")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef lollerpants")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef lollerpants")
@provider.reload_service()
end
end
@@ -225,11 +225,11 @@ RUNNING_PS
describe "when a custom command has been specified" do
before do
@new_resource.start_command("/etc/init.d/chef startyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef startyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/chef startyousillysally")
end
it "should still pass all why run assertions" do
- lambda { @provider.run_action(:start) }.should_not raise_error
+ expect { @provider.run_action(:start) }.not_to raise_error
end
end
end
diff --git a/spec/unit/provider/service/insserv_service_spec.rb b/spec/unit/provider/service/insserv_service_spec.rb
index 9ed03b519f..6cead238fe 100644
--- a/spec/unit/provider/service/insserv_service_spec.rb
+++ b/spec/unit/provider/service/insserv_service_spec.rb
@@ -30,29 +30,29 @@ describe Chef::Provider::Service::Insserv do
@provider = Chef::Provider::Service::Insserv.new(@new_resource, @run_context)
@status = double("Process::Status mock", :exitstatus => 0, :stdout => "")
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
end
describe "load_current_resource" do
describe "when startup links exist" do
before do
- Dir.stub(:glob).with("/etc/rc**/S*initgrediant").and_return(["/etc/rc5.d/S18initgrediant", "/etc/rc2.d/S18initgrediant", "/etc/rc4.d/S18initgrediant", "/etc/rc3.d/S18initgrediant"])
+ allow(Dir).to receive(:glob).with("/etc/rc**/S*initgrediant").and_return(["/etc/rc5.d/S18initgrediant", "/etc/rc2.d/S18initgrediant", "/etc/rc4.d/S18initgrediant", "/etc/rc3.d/S18initgrediant"])
end
it "sets the current enabled status to true" do
@provider.load_current_resource
- @provider.current_resource.enabled.should be_true
+ expect(@provider.current_resource.enabled).to be_true
end
end
describe "when startup links do not exist" do
before do
- Dir.stub(:glob).with("/etc/rc**/S*initgrediant").and_return([])
+ allow(Dir).to receive(:glob).with("/etc/rc**/S*initgrediant").and_return([])
end
it "sets the current enabled status to false" do
@provider.load_current_resource
- @provider.current_resource.enabled.should be_false
+ expect(@provider.current_resource.enabled).to be_false
end
end
@@ -60,15 +60,15 @@ describe Chef::Provider::Service::Insserv do
describe "enable_service" do
it "should call insserv and create the default links" do
- @provider.should_receive(:shell_out!).with("/sbin/insserv -r -f #{@new_resource.service_name}")
- @provider.should_receive(:shell_out!).with("/sbin/insserv -d -f #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("/sbin/insserv -r -f #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("/sbin/insserv -d -f #{@new_resource.service_name}")
@provider.enable_service
end
end
describe "disable_service" do
it "should call insserv and remove the links" do
- @provider.should_receive(:shell_out!).with("/sbin/insserv -r -f #{@new_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("/sbin/insserv -r -f #{@new_resource.service_name}")
@provider.disable_service
end
end
diff --git a/spec/unit/provider/service/invokercd_service_spec.rb b/spec/unit/provider/service/invokercd_service_spec.rb
index d8a9851837..0b3b799798 100644
--- a/spec/unit/provider/service/invokercd_service_spec.rb
+++ b/spec/unit/provider/service/invokercd_service_spec.rb
@@ -30,7 +30,7 @@ describe Chef::Provider::Service::Invokercd, "load_current_resource" do
@current_resource = Chef::Resource::Service.new("chef")
@provider = Chef::Provider::Service::Invokercd.new(@new_resource, @run_context)
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@stdout = StringIO.new(<<-PS)
aj 7842 5057 0 21:26 pts/2 00:00:06 vi init.rb
@@ -38,17 +38,17 @@ aj 7903 5016 0 21:26 pts/5 00:00:00 /bin/bash
aj 8119 6041 0 21:34 pts/3 00:00:03 vi init_service_spec.rb
PS
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
end
it "should create a current resource with the name of the new resource" do
@provider.load_current_resource
- @provider.current_resource.should equal(@current_resource)
+ expect(@provider.current_resource).to equal(@current_resource)
end
it "should set the current resources service name to the new resources service name" do
@provider.load_current_resource
- @current_resource.service_name.should == 'chef'
+ expect(@current_resource.service_name).to eq('chef')
end
describe "when the service supports status" do
@@ -57,37 +57,37 @@ PS
end
it "should run '/usr/sbin/invoke-rc.d service_name status'" do
- @provider.should_receive(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_return(@status)
+ expect(@provider).to receive(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_return(@status)
@provider.load_current_resource
end
it "should set running to true if the status command returns 0" do
- @provider.stub(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_return(@status)
+ allow(@provider).to receive(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the status command returns anything except 0" do
- @status.stub(:exitstatus).and_return(1)
- @provider.stub(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_return(@status)
+ allow(@status).to receive(:exitstatus).and_return(1)
+ allow(@provider).to receive(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
it "should set running to false if the status command raises" do
- @provider.stub(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out).with("/usr/sbin/invoke-rc.d #{@current_resource.service_name} status").and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
end
describe "when a status command has been specified" do
before do
- @new_resource.stub(:status_command).and_return("/usr/sbin/invoke-rc.d chefhasmonkeypants status")
+ allow(@new_resource).to receive(:status_command).and_return("/usr/sbin/invoke-rc.d chefhasmonkeypants status")
end
it "should run the services status command if one has been specified" do
- @provider.should_receive(:shell_out).with("/usr/sbin/invoke-rc.d chefhasmonkeypants status").and_return(@status)
+ expect(@provider).to receive(:shell_out).with("/usr/sbin/invoke-rc.d chefhasmonkeypants status").and_return(@status)
@provider.load_current_resource
end
@@ -98,14 +98,14 @@ PS
@node.automatic_attrs[:command] = {:ps => nil}
@provider.action = :start
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should raise error if the node has an empty ps attribute and no other means to get status" do
@node.automatic_attrs[:command] = {:ps => ""}
@provider.action = :start
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
@@ -113,7 +113,7 @@ PS
describe "when we have a 'ps' attribute" do
it "should shell_out! the node's ps command" do
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.should_receive(:shell_out!).with(@node[:command][:ps]).and_return(@status)
+ expect(@provider).to receive(:shell_out!).with(@node[:command][:ps]).and_return(@status)
@provider.load_current_resource
end
@@ -123,40 +123,40 @@ aj 7842 5057 0 21:26 pts/2 00:00:06 chef
aj 7842 5057 0 21:26 pts/2 00:00:06 poos
RUNNING_PS
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.should_receive(:shell_out!).and_return(@status)
+ expect(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the regex doesn't match" do
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.should_receive(:shell_out!).and_return(@status)
+ expect(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
it "should raise an exception if ps fails" do
- @provider.stub(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.action = :start
@provider.load_current_resource
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
it "should return the current resource" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
describe "when starting the service" do
it "should call the start command if one is specified" do
@new_resource.start_command("/usr/sbin/invoke-rc.d chef startyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef startyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef startyousillysally")
@provider.start_service()
end
it "should call '/usr/sbin/invoke-rc.d service_name start' if no start command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} start")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} start")
@provider.start_service()
end
end
@@ -164,12 +164,12 @@ RUNNING_PS
describe Chef::Provider::Service::Invokercd, "stop_service" do
it "should call the stop command if one is specified" do
@new_resource.stop_command("/usr/sbin/invoke-rc.d chef itoldyoutostop")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef itoldyoutostop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef itoldyoutostop")
@provider.stop_service()
end
it "should call '/usr/sbin/invoke-rc.d service_name stop' if no stop command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} stop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} stop")
@provider.stop_service()
end
end
@@ -177,20 +177,20 @@ RUNNING_PS
describe "when restarting a service" do
it "should call 'restart' on the service_name if the resource supports it" do
@new_resource.supports({:restart => true})
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} restart")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} restart")
@provider.restart_service()
end
it "should call the restart_command if one has been specified" do
@new_resource.restart_command("/usr/sbin/invoke-rc.d chef restartinafire")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} restartinafire")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d #{@new_resource.service_name} restartinafire")
@provider.restart_service()
end
it "should just call stop, then start when the resource doesn't support restart and no restart_command is specified" do
- @provider.should_receive(:stop_service)
- @provider.should_receive(:sleep).with(1)
- @provider.should_receive(:start_service)
+ expect(@provider).to receive(:stop_service)
+ expect(@provider).to receive(:sleep).with(1)
+ expect(@provider).to receive(:start_service)
@provider.restart_service()
end
end
@@ -198,13 +198,13 @@ RUNNING_PS
describe "when reloading a service" do
it "should call 'reload' on the service if it supports it" do
@new_resource.supports({:reload => true})
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef reload")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef reload")
@provider.reload_service()
end
it "should should run the user specified reload command if one is specified and the service doesn't support reload" do
@new_resource.reload_command("/usr/sbin/invoke-rc.d chef lollerpants")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef lollerpants")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/invoke-rc.d chef lollerpants")
@provider.reload_service()
end
end
diff --git a/spec/unit/provider/service/macosx_spec.rb b/spec/unit/provider/service/macosx_spec.rb
index c5df1e0637..0d31ae2ffb 100644
--- a/spec/unit/provider/service/macosx_spec.rb
+++ b/spec/unit/provider/service/macosx_spec.rb
@@ -22,21 +22,21 @@ describe Chef::Provider::Service::Macosx do
describe ".gather_plist_dirs" do
context "when HOME directory is set" do
before do
- ENV.stub(:[]).with('HOME').and_return("/User/someuser")
+ allow(ENV).to receive(:[]).with('HOME').and_return("/User/someuser")
end
it "includes users's LaunchAgents folder" do
- described_class.gather_plist_dirs.should include("#{ENV['HOME']}/Library/LaunchAgents")
+ expect(described_class.gather_plist_dirs).to include("#{ENV['HOME']}/Library/LaunchAgents")
end
end
context "when HOME directory is not set" do
before do
- ENV.stub(:[]).with('HOME').and_return(nil)
+ allow(ENV).to receive(:[]).with('HOME').and_return(nil)
end
it "doesn't include user's LaunchAgents folder" do
- described_class.gather_plist_dirs.should_not include("~/Library/LaunchAgents")
+ expect(described_class.gather_plist_dirs).not_to include("~/Library/LaunchAgents")
end
end
end
@@ -60,20 +60,20 @@ XML
["redis-server", "io.redis.redis-server"].each do |service_name|
before do
- Dir.stub(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
- provider.stub(:shell_out!).
+ allow(Dir).to receive(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
+ allow(provider).to receive(:shell_out!).
with("launchctl list", {:group => 1001, :user => 101}).
and_return(double("Status", :stdout => launchctl_stdout))
- provider.stub(:shell_out).
+ allow(provider).to receive(:shell_out).
with(/launchctl list /,
{:group => nil, :user => nil}).
and_return(double("Status",
:stdout => launchctl_stdout, :exitstatus => 0))
- provider.stub(:shell_out!).
+ allow(provider).to receive(:shell_out!).
with(/plutil -convert xml1 -o/).
and_return(double("Status", :stdout => plutil_stdout))
- File.stub(:stat).and_return(double("stat", :gid => 1001, :uid => 101))
+ allow(File).to receive(:stat).and_return(double("stat", :gid => 1001, :uid => 101))
end
context "#{service_name}" do
@@ -95,26 +95,26 @@ XML
end
before do
- Dir.stub(:glob).and_return([])
- provider.stub(:shell_out!).
+ allow(Dir).to receive(:glob).and_return([])
+ allow(provider).to receive(:shell_out!).
with(/plutil -convert xml1 -o/).
and_raise(Mixlib::ShellOut::ShellCommandFailed)
end
it "works for action :nothing" do
- lambda { run_resource_setup_for_action(:nothing) }.should_not raise_error
+ expect { run_resource_setup_for_action(:nothing) }.not_to raise_error
end
it "works for action :start" do
- lambda { run_resource_setup_for_action(:start) }.should_not raise_error
+ expect { run_resource_setup_for_action(:start) }.not_to raise_error
end
it "errors if action is :enable" do
- lambda { run_resource_setup_for_action(:enable) }.should raise_error(Chef::Exceptions::Service)
+ expect { run_resource_setup_for_action(:enable) }.to raise_error(Chef::Exceptions::Service)
end
it "errors if action is :disable" do
- lambda { run_resource_setup_for_action(:disable) }.should raise_error(Chef::Exceptions::Service)
+ expect { run_resource_setup_for_action(:disable) }.to raise_error(Chef::Exceptions::Service)
end
end
@@ -130,11 +130,11 @@ XML
end
it "sets resource running state to true" do
- provider.current_resource.running.should be_true
+ expect(provider.current_resource.running).to be_true
end
it "sets resouce enabled state to true" do
- provider.current_resource.enabled.should be_true
+ expect(provider.current_resource.enabled).to be_true
end
end
@@ -146,10 +146,10 @@ XML
SVC_LIST
before do
- Dir.stub(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
+ allow(Dir).to receive(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
end
it "should throw an exception when reload action is attempted" do
- lambda {provider.run_action(:reload)}.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect {provider.run_action(:reload)}.to raise_error(Chef::Exceptions::UnsupportedAction)
end
end
context "when launchctl returns empty service pid" do
@@ -164,11 +164,11 @@ SVC_LIST
end
it "sets resource running state to false" do
- provider.current_resource.running.should be_false
+ expect(provider.current_resource.running).to be_false
end
it "sets resouce enabled state to true" do
- provider.current_resource.enabled.should be_true
+ expect(provider.current_resource.enabled).to be_true
end
end
@@ -180,65 +180,65 @@ SVC_LIST
it "sets service running state to false" do
provider.load_current_resource
- provider.current_resource.running.should be_false
+ expect(provider.current_resource.running).to be_false
end
context "and plist for service is not available" do
before do
- Dir.stub(:glob).and_return([])
+ allow(Dir).to receive(:glob).and_return([])
provider.load_current_resource
end
it "sets resouce enabled state to false" do
- provider.current_resource.enabled.should be_false
+ expect(provider.current_resource.enabled).to be_false
end
end
context "and plist for service is available" do
before do
- Dir.stub(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
+ allow(Dir).to receive(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
provider.load_current_resource
end
it "sets resouce enabled state to true" do
- provider.current_resource.enabled.should be_true
+ expect(provider.current_resource.enabled).to be_true
end
end
describe "and several plists match service name" do
it "throws exception" do
- Dir.stub(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist",
+ allow(Dir).to receive(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist",
"/Users/wtf/something.plist"])
provider.load_current_resource
provider.define_resource_requirements
- lambda { provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
end
end
describe "#start_service" do
before do
- Chef::Resource::Service.stub(:new).and_return(current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(current_resource)
provider.load_current_resource
- current_resource.stub(:running).and_return(false)
+ allow(current_resource).to receive(:running).and_return(false)
end
it "calls the start command if one is specified and service is not running" do
- new_resource.stub(:start_command).and_return("cowsay dirty")
+ allow(new_resource).to receive(:start_command).and_return("cowsay dirty")
- provider.should_receive(:shell_out_with_systems_locale!).with("cowsay dirty")
+ expect(provider).to receive(:shell_out_with_systems_locale!).with("cowsay dirty")
provider.start_service
end
it "shows warning message if service is already running" do
- current_resource.stub(:running).and_return(true)
- Chef::Log.should_receive(:debug).with("service[#{service_name}] already running, not starting")
+ allow(current_resource).to receive(:running).and_return(true)
+ expect(Chef::Log).to receive(:debug).with("service[#{service_name}] already running, not starting")
provider.start_service
end
it "starts service via launchctl if service found" do
- provider.should_receive(:shell_out_with_systems_locale!).
+ expect(provider).to receive(:shell_out_with_systems_locale!).
with("launchctl load -w '/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist'",
:group => 1001, :user => 101).
and_return(0)
@@ -249,28 +249,28 @@ SVC_LIST
describe "#stop_service" do
before do
- Chef::Resource::Service.stub(:new).and_return(current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(current_resource)
provider.load_current_resource
- current_resource.stub(:running).and_return(true)
+ allow(current_resource).to receive(:running).and_return(true)
end
it "calls the stop command if one is specified and service is running" do
- new_resource.stub(:stop_command).and_return("kill -9 123")
+ allow(new_resource).to receive(:stop_command).and_return("kill -9 123")
- provider.should_receive(:shell_out_with_systems_locale!).with("kill -9 123")
+ expect(provider).to receive(:shell_out_with_systems_locale!).with("kill -9 123")
provider.stop_service
end
it "shows warning message if service is not running" do
- current_resource.stub(:running).and_return(false)
- Chef::Log.should_receive(:debug).with("service[#{service_name}] not running, not stopping")
+ allow(current_resource).to receive(:running).and_return(false)
+ expect(Chef::Log).to receive(:debug).with("service[#{service_name}] not running, not stopping")
provider.stop_service
end
it "stops the service via launchctl if service found" do
- provider.should_receive(:shell_out_with_systems_locale!).
+ expect(provider).to receive(:shell_out_with_systems_locale!).
with("launchctl unload '/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist'",
:group => 1001, :user => 101).
and_return(0)
@@ -281,23 +281,23 @@ SVC_LIST
describe "#restart_service" do
before do
- Chef::Resource::Service.stub(:new).and_return(current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(current_resource)
provider.load_current_resource
- current_resource.stub(:running).and_return(true)
- provider.stub(:sleep)
+ allow(current_resource).to receive(:running).and_return(true)
+ allow(provider).to receive(:sleep)
end
it "issues a command if given" do
- new_resource.stub(:restart_command).and_return("reload that thing")
+ allow(new_resource).to receive(:restart_command).and_return("reload that thing")
- provider.should_receive(:shell_out_with_systems_locale!).with("reload that thing")
+ expect(provider).to receive(:shell_out_with_systems_locale!).with("reload that thing")
provider.restart_service
end
it "stops and then starts service" do
- provider.should_receive(:stop_service)
- provider.should_receive(:start_service);
+ expect(provider).to receive(:stop_service)
+ expect(provider).to receive(:start_service);
provider.restart_service
end
diff --git a/spec/unit/provider/service/redhat_spec.rb b/spec/unit/provider/service/redhat_spec.rb
index 8cc6fb6549..ed3dd5bfa7 100644
--- a/spec/unit/provider/service/redhat_spec.rb
+++ b/spec/unit/provider/service/redhat_spec.rb
@@ -21,22 +21,22 @@ require 'ostruct'
shared_examples_for "define_resource_requirements_common" do
it "should raise an error if /sbin/chkconfig does not exist" do
- File.stub(:exists?).with("/sbin/chkconfig").and_return(false)
- @provider.stub(:shell_out).with("/sbin/service chef status").and_raise(Errno::ENOENT)
- @provider.stub(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_raise(Errno::ENOENT)
+ allow(File).to receive(:exists?).with("/sbin/chkconfig").and_return(false)
+ allow(@provider).to receive(:shell_out).with("/sbin/service chef status").and_raise(Errno::ENOENT)
+ allow(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_raise(Errno::ENOENT)
@provider.load_current_resource
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should not raise an error if the service exists but is not added to any runlevels" do
status = double("Status", :exitstatus => 0, :stdout => "" , :stderr => "")
- @provider.should_receive(:shell_out).with("/sbin/service chef status").and_return(status)
+ expect(@provider).to receive(:shell_out).with("/sbin/service chef status").and_return(status)
chkconfig = double("Chkconfig", :exitstatus => 0, :stdout => "", :stderr => "service chef supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add chef')")
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
@provider.load_current_resource
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
@@ -54,8 +54,8 @@ describe "Chef::Provider::Service::Redhat" do
@provider = Chef::Provider::Service::Redhat.new(@new_resource, @run_context)
@provider.action = :start
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
- File.stub(:exists?).with("/sbin/chkconfig").and_return(true)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
+ allow(File).to receive(:exists?).with("/sbin/chkconfig").and_return(true)
end
describe "while not in why run mode" do
@@ -66,22 +66,22 @@ describe "Chef::Provider::Service::Redhat" do
describe "load current resource" do
it "sets the current enabled status to true if the service is enabled for any run level" do
status = double("Status", :exitstatus => 0, :stdout => "" , :stderr => "")
- @provider.should_receive(:shell_out).with("/sbin/service chef status").and_return(status)
+ expect(@provider).to receive(:shell_out).with("/sbin/service chef status").and_return(status)
chkconfig = double("Chkconfig", :exitstatus => 0, :stdout => "chef 0:off 1:off 2:off 3:off 4:off 5:on 6:off", :stderr => "")
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
- @provider.instance_variable_get("@service_missing").should be_false
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
+ expect(@provider.instance_variable_get("@service_missing")).to be_false
@provider.load_current_resource
- @current_resource.enabled.should be_true
+ expect(@current_resource.enabled).to be_true
end
it "sets the current enabled status to false if the regex does not match" do
status = double("Status", :exitstatus => 0, :stdout => "" , :stderr => "")
- @provider.should_receive(:shell_out).with("/sbin/service chef status").and_return(status)
+ expect(@provider).to receive(:shell_out).with("/sbin/service chef status").and_return(status)
chkconfig = double("Chkconfig", :exitstatus => 0, :stdout => "chef 0:off 1:off 2:off 3:off 4:off 5:off 6:off", :stderr => "")
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
- @provider.instance_variable_get("@service_missing").should be_false
- @provider.load_current_resource.should eql(@current_resource)
- @current_resource.enabled.should be_false
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
+ expect(@provider.instance_variable_get("@service_missing")).to be_false
+ expect(@provider.load_current_resource).to eql(@current_resource)
+ expect(@current_resource.enabled).to be_false
end
end
@@ -91,9 +91,9 @@ describe "Chef::Provider::Service::Redhat" do
context "when the service does not exist" do
before do
status = double("Status", :exitstatus => 1, :stdout => "", :stderr => "chef: unrecognized service")
- @provider.should_receive(:shell_out).with("/sbin/service chef status").and_return(status)
+ expect(@provider).to receive(:shell_out).with("/sbin/service chef status").and_return(status)
chkconfig = double("Chkconfig", :existatus=> 1, :stdout => "", :stderr => "error reading information on service chef: No such file or directory")
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
@provider.load_current_resource
@provider.define_resource_requirements
end
@@ -101,14 +101,14 @@ describe "Chef::Provider::Service::Redhat" do
[ "start", "reload", "restart", "enable" ].each do |action|
it "should raise an error when the action is #{action}" do
@provider.action = action
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
[ "stop", "disable" ].each do |action|
it "should not raise an error when the action is #{action}" do
@provider.action = action
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
end
@@ -129,26 +129,26 @@ describe "Chef::Provider::Service::Redhat" do
it "should not raise an error if the service does not exist" do
status = double("Status", :exitstatus => 1, :stdout => "", :stderr => "chef: unrecognized service")
- @provider.should_receive(:shell_out).with("/sbin/service chef status").and_return(status)
+ expect(@provider).to receive(:shell_out).with("/sbin/service chef status").and_return(status)
chkconfig = double("Chkconfig", :existatus=> 1, :stdout => "", :stderr => "error reading information on service chef: No such file or directory")
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", :returns => [0,1]).and_return(chkconfig)
@provider.load_current_resource
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should_not raise_error
+ expect { @provider.process_resource_requirements }.not_to raise_error
end
end
end
describe "enable_service" do
it "should call chkconfig to add 'service_name'" do
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig #{@new_resource.service_name} on")
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig #{@new_resource.service_name} on")
@provider.enable_service
end
end
describe "disable_service" do
it "should call chkconfig to del 'service_name'" do
- @provider.should_receive(:shell_out!).with("/sbin/chkconfig #{@new_resource.service_name} off")
+ expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig #{@new_resource.service_name} off")
@provider.disable_service
end
end
diff --git a/spec/unit/provider/service/simple_service_spec.rb b/spec/unit/provider/service/simple_service_spec.rb
index 11ebf74725..83ebcb688f 100644
--- a/spec/unit/provider/service/simple_service_spec.rb
+++ b/spec/unit/provider/service/simple_service_spec.rb
@@ -29,7 +29,7 @@ describe Chef::Provider::Service::Simple, "load_current_resource" do
@current_resource = Chef::Resource::Service.new("chef")
@provider = Chef::Provider::Service::Simple.new(@new_resource, @run_context)
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@stdout = StringIO.new(<<-NOMOCKINGSTRINGSPLZ)
aj 7842 5057 0 21:26 pts/2 00:00:06 vi init.rb
@@ -37,40 +37,40 @@ aj 7903 5016 0 21:26 pts/5 00:00:00 /bin/bash
aj 8119 6041 0 21:34 pts/3 00:00:03 vi simple_service_spec.rb
NOMOCKINGSTRINGSPLZ
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
end
it "should create a current resource with the name of the new resource" do
- Chef::Resource::Service.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources service name to the new resources service name" do
- @current_resource.should_receive(:service_name).with(@new_resource.service_name)
+ expect(@current_resource).to receive(:service_name).with(@new_resource.service_name)
@provider.load_current_resource
end
it "should raise error if the node has a nil ps attribute and no other means to get status" do
@node.automatic_attrs[:command] = {:ps => nil}
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should raise error if the node has an empty ps attribute and no other means to get status" do
@node.automatic_attrs[:command] = {:ps => ""}
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
describe "when we have a 'ps' attribute" do
it "should shell_out! the node's ps command" do
- @provider.should_receive(:shell_out!).with(@node[:command][:ps]).and_return(@status)
+ expect(@provider).to receive(:shell_out!).with(@node[:command][:ps]).and_return(@status)
@provider.load_current_resource
end
it "should read stdout of the ps command" do
- @provider.stub(:shell_out!).and_return(@status)
- @stdout.should_receive(:each_line).and_return(true)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ expect(@stdout).to receive(:each_line).and_return(true)
@provider.load_current_resource
end
@@ -80,75 +80,75 @@ aj 7842 5057 0 21:26 pts/2 00:00:06 chef
aj 7842 5057 0 21:26 pts/2 00:00:06 poos
NOMOCKINGSTRINGSPLZ
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the regex doesn't match" do
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
it "should raise an exception if ps fails" do
- @provider.stub(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
+ allow(@provider).to receive(:shell_out!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
@provider.action = :start
@provider.load_current_resource
@provider.define_resource_requirements
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
it "should return the current resource" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
describe "when starting the service" do
it "should call the start command if one is specified" do
- @new_resource.stub(:start_command).and_return("#{@new_resource.start_command}")
- @provider.should_receive(:shell_out_with_systems_locale!).with("#{@new_resource.start_command}")
+ allow(@new_resource).to receive(:start_command).and_return("#{@new_resource.start_command}")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("#{@new_resource.start_command}")
@provider.start_service()
end
it "should raise an exception if no start command is specified" do
@provider.define_resource_requirements
@provider.action = :start
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
describe "when stopping a service" do
it "should call the stop command if one is specified" do
@new_resource.stop_command("/etc/init.d/themadness stop")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/themadness stop")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/themadness stop")
@provider.stop_service()
end
it "should raise an exception if no stop command is specified" do
@provider.define_resource_requirements
@provider.action = :stop
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
end
describe Chef::Provider::Service::Simple, "restart_service" do
it "should call the restart command if one has been specified" do
@new_resource.restart_command("/etc/init.d/foo restart")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/etc/init.d/foo restart")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/etc/init.d/foo restart")
@provider.restart_service()
end
it "should raise an exception if the resource doesn't support restart, no restart command is provided, and no stop command is provided" do
@provider.define_resource_requirements
@provider.action = :restart
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
end
it "should just call stop, then start when the resource doesn't support restart and no restart_command is specified" do
- @provider.should_receive(:stop_service)
- @provider.should_receive(:sleep).with(1)
- @provider.should_receive(:start_service)
+ expect(@provider).to receive(:stop_service)
+ expect(@provider).to receive(:sleep).with(1)
+ expect(@provider).to receive(:start_service)
@provider.restart_service()
end
end
@@ -157,12 +157,12 @@ NOMOCKINGSTRINGSPLZ
it "should raise an exception if reload is requested but no command is specified" do
@provider.define_resource_requirements
@provider.action = :reload
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should should run the user specified reload command if one is specified" do
@new_resource.reload_command("kill -9 1")
- @provider.should_receive(:shell_out_with_systems_locale!).with("kill -9 1")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("kill -9 1")
@provider.reload_service()
end
end
diff --git a/spec/unit/provider/service/solaris_smf_service_spec.rb b/spec/unit/provider/service/solaris_smf_service_spec.rb
index 8df22efa7e..33fc613fec 100644
--- a/spec/unit/provider/service/solaris_smf_service_spec.rb
+++ b/spec/unit/provider/service/solaris_smf_service_spec.rb
@@ -29,70 +29,70 @@ describe Chef::Provider::Service::Solaris do
@current_resource = Chef::Resource::Service.new('chef')
@provider = Chef::Provider::Service::Solaris.new(@new_resource, @run_context)
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@stdin = StringIO.new
@stdout = StringIO.new
@stderr = StringIO.new
@pid = 2342
@stdout_string = "state disabled"
- @stdout.stub(:gets).and_return(@stdout_string)
+ allow(@stdout).to receive(:gets).and_return(@stdout_string)
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
end
it "should raise an error if /bin/svcs does not exist" do
- File.should_receive(:exists?).with("/bin/svcs").and_return(false)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Service)
+ expect(File).to receive(:exists?).with("/bin/svcs").and_return(false)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Service)
end
describe "on a host with /bin/svcs" do
before do
- File.stub(:exists?).with('/bin/svcs').and_return(true)
+ allow(File).to receive(:exists?).with('/bin/svcs').and_return(true)
end
describe "when discovering the current service state" do
it "should create a current resource with the name of the new resource" do
- @provider.stub(:shell_out!).with("/bin/svcs -l chef").and_return(@status)
- Chef::Resource::Service.should_receive(:new).and_return(@current_resource)
+ allow(@provider).to receive(:shell_out!).with("/bin/svcs -l chef").and_return(@status)
+ expect(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should return the current resource" do
- @provider.stub(:shell_out!).with("/bin/svcs -l chef").and_return(@status)
- @provider.load_current_resource.should eql(@current_resource)
+ allow(@provider).to receive(:shell_out!).with("/bin/svcs -l chef").and_return(@status)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
it "should call '/bin/svcs -l service_name'" do
- @provider.should_receive(:shell_out!).with("/bin/svcs -l chef", {:returns=>[0, 1]}).and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("/bin/svcs -l chef", {:returns=>[0, 1]}).and_return(@status)
@provider.load_current_resource
end
it "should mark service as not running" do
- @provider.stub(:shell_out!).and_return(@status)
- @current_resource.should_receive(:running).with(false)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
it "should mark service as running" do
@status = double("Status", :exitstatus => 0, :stdout => 'state online')
- @provider.stub(:shell_out!).and_return(@status)
- @current_resource.should_receive(:running).with(true)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
+ expect(@current_resource).to receive(:running).with(true)
@provider.load_current_resource
end
it "should not mark service as maintenance" do
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @provider.maintenance.should be_false
+ expect(@provider.maintenance).to be_false
end
it "should mark service as maintenance" do
@status = double("Status", :exitstatus => 0, :stdout => 'state maintenance')
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @provider.maintenance.should be_true
+ expect(@provider.maintenance).to be_true
end
end
@@ -103,30 +103,30 @@ describe Chef::Provider::Service::Solaris do
end
it "should call svcadm enable -s chef" do
- @new_resource.stub(:enable_command).and_return("#{@new_resource.enable_command}")
- @provider.should_not_receive(:shell_out!).with("/usr/sbin/svcadm clear #{@current_resource.service_name}")
- @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
- @provider.enable_service.should be_true
- @current_resource.enabled.should be_true
+ allow(@new_resource).to receive(:enable_command).and_return("#{@new_resource.enable_command}")
+ expect(@provider).not_to receive(:shell_out!).with("/usr/sbin/svcadm clear #{@current_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
+ expect(@provider.enable_service).to be_true
+ expect(@current_resource.enabled).to be_true
end
it "should call svcadm enable -s chef for start_service" do
- @new_resource.stub(:start_command).and_return("#{@new_resource.start_command}")
- @provider.should_not_receive(:shell_out!).with("/usr/sbin/svcadm clear #{@current_resource.service_name}")
- @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
- @provider.start_service.should be_true
- @current_resource.enabled.should be_true
+ allow(@new_resource).to receive(:start_command).and_return("#{@new_resource.start_command}")
+ expect(@provider).not_to receive(:shell_out!).with("/usr/sbin/svcadm clear #{@current_resource.service_name}")
+ expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
+ expect(@provider.start_service).to be_true
+ expect(@current_resource.enabled).to be_true
end
it "should call svcadm clear chef for start_service when state maintenance" do
@status = double("Status", :exitstatus => 0, :stdout => 'state maintenance')
- @provider.stub(:shell_out!).and_return(@status)
+ allow(@provider).to receive(:shell_out!).and_return(@status)
@provider.load_current_resource
- @new_resource.stub(:enable_command).and_return("#{@new_resource.enable_command}")
- @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm clear #{@current_resource.service_name}").and_return(@status)
- @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
- @provider.enable_service.should be_true
- @current_resource.enabled.should be_true
+ allow(@new_resource).to receive(:enable_command).and_return("#{@new_resource.enable_command}")
+ expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm clear #{@current_resource.service_name}").and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
+ expect(@provider.enable_service).to be_true
+ expect(@current_resource.enabled).to be_true
end
end
@@ -137,15 +137,15 @@ describe Chef::Provider::Service::Solaris do
end
it "should call svcadm disable -s chef" do
- @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm disable -s chef").and_return(@status)
- @provider.disable_service.should be_true
- @current_resource.enabled.should be_false
+ expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm disable -s chef").and_return(@status)
+ expect(@provider.disable_service).to be_true
+ expect(@current_resource.enabled).to be_false
end
it "should call svcadm disable -s chef for stop_service" do
- @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm disable -s chef").and_return(@status)
- @provider.stop_service.should be_true
- @current_resource.enabled.should be_false
+ expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm disable -s chef").and_return(@status)
+ expect(@provider.stop_service).to be_true
+ expect(@current_resource.enabled).to be_false
end
end
@@ -157,7 +157,7 @@ describe Chef::Provider::Service::Solaris do
end
it "should call svcadm refresh chef" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/usr/sbin/svcadm refresh chef").and_return(@status)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/usr/sbin/svcadm refresh chef").and_return(@status)
@provider.reload_service
end
@@ -171,15 +171,15 @@ describe Chef::Provider::Service::Solaris do
end
it "should be marked not running" do
- @provider.should_receive(:shell_out!).with("/bin/svcs -l chef", {:returns=>[0, 1]}).and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("/bin/svcs -l chef", {:returns=>[0, 1]}).and_return(@status)
@provider.service_status
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
it "should be marked not enabled" do
- @provider.should_receive(:shell_out!).with("/bin/svcs -l chef", {:returns=>[0, 1]}).and_return(@status)
+ expect(@provider).to receive(:shell_out!).with("/bin/svcs -l chef", {:returns=>[0, 1]}).and_return(@status)
@provider.service_status
- @current_resource.enabled.should be_false
+ expect(@current_resource.enabled).to be_false
end
end
diff --git a/spec/unit/provider/service/systemd_service_spec.rb b/spec/unit/provider/service/systemd_service_spec.rb
index 7358f63b5e..2fed6bfd11 100644
--- a/spec/unit/provider/service/systemd_service_spec.rb
+++ b/spec/unit/provider/service/systemd_service_spec.rb
@@ -35,169 +35,169 @@ describe Chef::Provider::Service::Systemd do
describe "load_current_resource" do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog.service')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
- @provider.stub(:is_active?).and_return(false)
- @provider.stub(:is_enabled?).and_return(false)
+ allow(@provider).to receive(:is_active?).and_return(false)
+ allow(@provider).to receive(:is_enabled?).and_return(false)
end
it "should create a current resource with the name of the new resource" do
- Chef::Resource::Service.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources service name to the new resources service name" do
- @current_resource.should_receive(:service_name).with(@new_resource.service_name)
+ expect(@current_resource).to receive(:service_name).with(@new_resource.service_name)
@provider.load_current_resource
end
it "should check if the service is running" do
- @provider.should_receive(:is_active?)
+ expect(@provider).to receive(:is_active?)
@provider.load_current_resource
end
it "should set running to true if the service is running" do
- @provider.stub(:is_active?).and_return(true)
- @current_resource.should_receive(:running).with(true)
+ allow(@provider).to receive(:is_active?).and_return(true)
+ expect(@current_resource).to receive(:running).with(true)
@provider.load_current_resource
end
it "should set running to false if the service is not running" do
- @provider.stub(:is_active?).and_return(false)
- @current_resource.should_receive(:running).with(false)
+ allow(@provider).to receive(:is_active?).and_return(false)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
describe "when a status command has been specified" do
before do
- @new_resource.stub(:status_command).and_return("/bin/chefhasmonkeypants status")
+ allow(@new_resource).to receive(:status_command).and_return("/bin/chefhasmonkeypants status")
end
it "should run the services status command if one has been specified" do
- @provider.stub(:shell_out).and_return(@shell_out_success)
- @current_resource.should_receive(:running).with(true)
+ allow(@provider).to receive(:shell_out).and_return(@shell_out_success)
+ expect(@current_resource).to receive(:running).with(true)
@provider.load_current_resource
end
it "should run the services status command if one has been specified and properly set status check state" do
- @provider.stub(:shell_out).with("/bin/chefhasmonkeypants status").and_return(@shell_out_success)
+ allow(@provider).to receive(:shell_out).with("/bin/chefhasmonkeypants status").and_return(@shell_out_success)
@provider.load_current_resource
- @provider.instance_variable_get("@status_check_success").should be_true
+ expect(@provider.instance_variable_get("@status_check_success")).to be_true
end
it "should set running to false if a status command fails" do
- @provider.stub(:shell_out).and_return(@shell_out_failure)
- @current_resource.should_receive(:running).with(false)
+ allow(@provider).to receive(:shell_out).and_return(@shell_out_failure)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
it "should update state to indicate status check failed when a status command fails" do
- @provider.stub(:shell_out).and_return(@shell_out_failure)
+ allow(@provider).to receive(:shell_out).and_return(@shell_out_failure)
@provider.load_current_resource
- @provider.instance_variable_get("@status_check_success").should be_false
+ expect(@provider.instance_variable_get("@status_check_success")).to be_false
end
end
it "should check if the service is enabled" do
- @provider.should_receive(:is_enabled?)
+ expect(@provider).to receive(:is_enabled?)
@provider.load_current_resource
end
it "should set enabled to true if the service is enabled" do
- @provider.stub(:is_enabled?).and_return(true)
- @current_resource.should_receive(:enabled).with(true)
+ allow(@provider).to receive(:is_enabled?).and_return(true)
+ expect(@current_resource).to receive(:enabled).with(true)
@provider.load_current_resource
end
it "should set enabled to false if the service is not enabled" do
- @provider.stub(:is_enabled?).and_return(false)
- @current_resource.should_receive(:enabled).with(false)
+ allow(@provider).to receive(:is_enabled?).and_return(false)
+ expect(@current_resource).to receive(:enabled).with(false)
@provider.load_current_resource
end
it "should return the current resource" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
describe "start and stop service" do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog.service')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.current_resource = @current_resource
end
it "should call the start command if one is specified" do
- @new_resource.stub(:start_command).and_return("/sbin/rsyslog startyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog startyousillysally")
+ allow(@new_resource).to receive(:start_command).and_return("/sbin/rsyslog startyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog startyousillysally")
@provider.start_service
end
it "should call '/bin/systemctl start service_name' if no start command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/bin/systemctl start #{@new_resource.service_name}").and_return(@shell_out_success)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/bin/systemctl start #{@new_resource.service_name}").and_return(@shell_out_success)
@provider.start_service
end
it "should not call '/bin/systemctl start service_name' if it is already running" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_not_receive(:shell_out_with_systems_locale!).with("/bin/systemctl start #{@new_resource.service_name}")
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).not_to receive(:shell_out_with_systems_locale!).with("/bin/systemctl start #{@new_resource.service_name}")
@provider.start_service
end
it "should call the restart command if one is specified" do
- @current_resource.stub(:running).and_return(true)
- @new_resource.stub(:restart_command).and_return("/sbin/rsyslog restartyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog restartyousillysally")
+ allow(@current_resource).to receive(:running).and_return(true)
+ allow(@new_resource).to receive(:restart_command).and_return("/sbin/rsyslog restartyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog restartyousillysally")
@provider.restart_service
end
it "should call '/bin/systemctl restart service_name' if no restart command is specified" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/bin/systemctl restart #{@new_resource.service_name}").and_return(@shell_out_success)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/bin/systemctl restart #{@new_resource.service_name}").and_return(@shell_out_success)
@provider.restart_service
end
describe "reload service" do
context "when a reload command is specified" do
it "should call the reload command" do
- @current_resource.stub(:running).and_return(true)
- @new_resource.stub(:reload_command).and_return("/sbin/rsyslog reloadyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog reloadyousillysally")
+ allow(@current_resource).to receive(:running).and_return(true)
+ allow(@new_resource).to receive(:reload_command).and_return("/sbin/rsyslog reloadyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog reloadyousillysally")
@provider.reload_service
end
end
context "when a reload command is not specified" do
it "should call '/bin/systemctl reload service_name' if the service is running" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/bin/systemctl reload #{@new_resource.service_name}").and_return(@shell_out_success)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/bin/systemctl reload #{@new_resource.service_name}").and_return(@shell_out_success)
@provider.reload_service
end
it "should start the service if the service is not running" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_receive(:start_service).and_return(true)
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).to receive(:start_service).and_return(true)
@provider.reload_service
end
end
end
it "should call the stop command if one is specified" do
- @current_resource.stub(:running).and_return(true)
- @new_resource.stub(:stop_command).and_return("/sbin/rsyslog stopyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog stopyousillysally")
+ allow(@current_resource).to receive(:running).and_return(true)
+ allow(@new_resource).to receive(:stop_command).and_return("/sbin/rsyslog stopyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog stopyousillysally")
@provider.stop_service
end
it "should call '/bin/systemctl stop service_name' if no stop command is specified" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/bin/systemctl stop #{@new_resource.service_name}").and_return(@shell_out_success)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/bin/systemctl stop #{@new_resource.service_name}").and_return(@shell_out_success)
@provider.stop_service
end
it "should not call '/bin/systemctl stop service_name' if it is already stopped" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_not_receive(:shell_out_with_systems_locale!).with("/bin/systemctl stop #{@new_resource.service_name}")
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).not_to receive(:shell_out_with_systems_locale!).with("/bin/systemctl stop #{@new_resource.service_name}")
@provider.stop_service
end
end
@@ -205,17 +205,17 @@ describe Chef::Provider::Service::Systemd do
describe "enable and disable service" do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog.service')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.current_resource = @current_resource
end
it "should call '/bin/systemctl enable service_name' to enable the service" do
- @provider.should_receive(:shell_out!).with("/bin/systemctl enable #{@new_resource.service_name}").and_return(@shell_out_success)
+ expect(@provider).to receive(:shell_out!).with("/bin/systemctl enable #{@new_resource.service_name}").and_return(@shell_out_success)
@provider.enable_service
end
it "should call '/bin/systemctl disable service_name' to disable the service" do
- @provider.should_receive(:shell_out!).with("/bin/systemctl disable #{@new_resource.service_name}").and_return(@shell_out_success)
+ expect(@provider).to receive(:shell_out!).with("/bin/systemctl disable #{@new_resource.service_name}").and_return(@shell_out_success)
@provider.disable_service
end
end
@@ -223,34 +223,34 @@ describe Chef::Provider::Service::Systemd do
describe "is_active?" do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog.service')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
end
it "should return true if '/bin/systemctl is-active service_name' returns 0" do
- @provider.should_receive(:shell_out).with('/bin/systemctl is-active rsyslog.service --quiet').and_return(@shell_out_success)
- @provider.is_active?.should be_true
+ expect(@provider).to receive(:shell_out).with('/bin/systemctl is-active rsyslog.service --quiet').and_return(@shell_out_success)
+ expect(@provider.is_active?).to be_true
end
it "should return false if '/bin/systemctl is-active service_name' returns anything except 0" do
- @provider.should_receive(:shell_out).with('/bin/systemctl is-active rsyslog.service --quiet').and_return(@shell_out_failure)
- @provider.is_active?.should be_false
+ expect(@provider).to receive(:shell_out).with('/bin/systemctl is-active rsyslog.service --quiet').and_return(@shell_out_failure)
+ expect(@provider.is_active?).to be_false
end
end
describe "is_enabled?" do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog.service')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
end
it "should return true if '/bin/systemctl is-enabled service_name' returns 0" do
- @provider.should_receive(:shell_out).with('/bin/systemctl is-enabled rsyslog.service --quiet').and_return(@shell_out_success)
- @provider.is_enabled?.should be_true
+ expect(@provider).to receive(:shell_out).with('/bin/systemctl is-enabled rsyslog.service --quiet').and_return(@shell_out_success)
+ expect(@provider.is_enabled?).to be_true
end
it "should return false if '/bin/systemctl is-enabled service_name' returns anything except 0" do
- @provider.should_receive(:shell_out).with('/bin/systemctl is-enabled rsyslog.service --quiet').and_return(@shell_out_failure)
- @provider.is_enabled?.should be_false
+ expect(@provider).to receive(:shell_out).with('/bin/systemctl is-enabled rsyslog.service --quiet').and_return(@shell_out_failure)
+ expect(@provider.is_enabled?).to be_false
end
end
end
diff --git a/spec/unit/provider/service/upstart_service_spec.rb b/spec/unit/provider/service/upstart_service_spec.rb
index 499a794ff4..69948fbc6a 100644
--- a/spec/unit/provider/service/upstart_service_spec.rb
+++ b/spec/unit/provider/service/upstart_service_spec.rb
@@ -41,22 +41,22 @@ describe Chef::Provider::Service::Upstart do
@node.automatic_attrs[:platform_version] = '9.04'
#Chef::Platform.stub(:find_platform_and_version).and_return([ "ubuntu", "9.04" ])
@provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
- @provider.instance_variable_get(:@upstart_job_dir).should == "/etc/event.d"
- @provider.instance_variable_get(:@upstart_conf_suffix).should == ""
+ expect(@provider.instance_variable_get(:@upstart_job_dir)).to eq("/etc/event.d")
+ expect(@provider.instance_variable_get(:@upstart_conf_suffix)).to eq("")
end
it "should return /etc/init as the upstart job directory when running on Ubuntu 9.10" do
@node.automatic_attrs[:platform_version] = '9.10'
@provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
- @provider.instance_variable_get(:@upstart_job_dir).should == "/etc/init"
- @provider.instance_variable_get(:@upstart_conf_suffix).should == ".conf"
+ expect(@provider.instance_variable_get(:@upstart_job_dir)).to eq("/etc/init")
+ expect(@provider.instance_variable_get(:@upstart_conf_suffix)).to eq(".conf")
end
it "should return /etc/init as the upstart job directory by default" do
@node.automatic_attrs[:platform_version] = '9000'
@provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
- @provider.instance_variable_get(:@upstart_job_dir).should == "/etc/init"
- @provider.instance_variable_get(:@upstart_conf_suffix).should == ".conf"
+ expect(@provider.instance_variable_get(:@upstart_job_dir)).to eq("/etc/init")
+ expect(@provider.instance_variable_get(:@upstart_conf_suffix)).to eq(".conf")
end
end
@@ -65,26 +65,26 @@ describe Chef::Provider::Service::Upstart do
@node.automatic_attrs[:command] = {:ps => "ps -ax"}
@current_resource = Chef::Resource::Service.new("rsyslog")
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@status = double("Status", :exitstatus => 0)
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@stdin = StringIO.new
@stdout = StringIO.new
@stderr = StringIO.new
@pid = double("PID")
- ::File.stub(:exists?).and_return(true)
- ::File.stub(:open).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
+ allow(::File).to receive(:open).and_return(true)
end
it "should create a current resource with the name of the new resource" do
- Chef::Resource::Service.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources service name to the new resources service name" do
- @current_resource.should_receive(:service_name).with(@new_resource.service_name)
+ expect(@current_resource).to receive(:service_name).with(@new_resource.service_name)
@provider.load_current_resource
end
@@ -92,11 +92,11 @@ describe Chef::Provider::Service::Upstart do
@new_resource.parameters({ "OSD_ID" => "2" })
@provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @new_resource.service_name.should == @current_resource.service_name
+ expect(@new_resource.service_name).to eq(@current_resource.service_name)
end
it "should run '/sbin/status rsyslog'" do
- @provider.should_receive(:popen4).with("/sbin/status rsyslog").and_return(@status)
+ expect(@provider).to receive(:popen4).with("/sbin/status rsyslog").and_return(@status)
@provider.load_current_resource
end
@@ -106,99 +106,99 @@ describe Chef::Provider::Service::Upstart do
it "should set running to true if the status command returns 0" do
@stdout = StringIO.new("rsyslog start/running")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the status command returns anything except 0" do
@stdout = StringIO.new("rsyslog stop/waiting")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
end
describe "when the status command uses the old format" do
it "should set running to true if the status command returns 0" do
@stdout = StringIO.new("rsyslog (start) running, process 32225")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_true
+ expect(@current_resource.running).to be_true
end
it "should set running to false if the status command returns anything except 0" do
@stdout = StringIO.new("rsyslog (stop) waiting")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @current_resource.running.should be_false
+ expect(@current_resource.running).to be_false
end
end
it "should set running to false if it catches a Chef::Exceptions::Exec" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_raise(Chef::Exceptions::Exec)
- @current_resource.should_receive(:running).with(false)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_raise(Chef::Exceptions::Exec)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
it "should set enabled to true when it finds 'starts on'" do
@lines = double("start on filesystem", :gets => "start on filesystem")
- ::File.stub(:open).and_yield(@lines)
- @current_resource.should_receive(:running).with(false)
+ allow(::File).to receive(:open).and_yield(@lines)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
it "should set enabled to false when it finds '#starts on'" do
@lines = double("start on filesystem", :gets => "#start on filesystem")
- ::File.stub(:open).and_yield(@lines)
- @current_resource.should_receive(:running).with(false)
+ allow(::File).to receive(:open).and_yield(@lines)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
it "should assume disable when no job configuration file is found" do
- ::File.stub(:exists?).and_return(false)
- @current_resource.should_receive(:running).with(false)
+ allow(::File).to receive(:exists?).and_return(false)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
it "should track state when the upstart configuration file fails to load" do
- File.should_receive(:exists?).and_return false
+ expect(File).to receive(:exists?).and_return false
@provider.load_current_resource
- @provider.instance_variable_get("@config_file_found").should == false
+ expect(@provider.instance_variable_get("@config_file_found")).to eq(false)
end
describe "when a status command has been specified" do
before do
- @new_resource.stub(:status_command).and_return("/bin/chefhasmonkeypants status")
+ allow(@new_resource).to receive(:status_command).and_return("/bin/chefhasmonkeypants status")
end
it "should run the services status command if one has been specified" do
- @provider.stub(:shell_out!).with("/bin/chefhasmonkeypants status").and_return(0)
- @current_resource.should_receive(:running).with(true)
+ allow(@provider).to receive(:shell_out!).with("/bin/chefhasmonkeypants status").and_return(0)
+ expect(@current_resource).to receive(:running).with(true)
@provider.load_current_resource
end
it "should track state when the user-provided status command fails" do
- @provider.stub(:shell_out!).and_raise(Errno::ENOENT)
+ allow(@provider).to receive(:shell_out!).and_raise(Errno::ENOENT)
@provider.load_current_resource
- @provider.instance_variable_get("@command_success").should == false
+ expect(@provider.instance_variable_get("@command_success")).to eq(false)
end
it "should set running to false if it catches a Chef::Exceptions::Exec when using a status command" do
- @provider.stub(:shell_out!).and_raise(Errno::ENOENT)
- @current_resource.should_receive(:running).with(false)
+ allow(@provider).to receive(:shell_out!).and_raise(Errno::ENOENT)
+ expect(@current_resource).to receive(:running).with(false)
@provider.load_current_resource
end
end
it "should track state when we fail to obtain service status via upstart_state" do
- @provider.should_receive(:upstart_state).and_raise Chef::Exceptions::Exec
+ expect(@provider).to receive(:upstart_state).and_raise Chef::Exceptions::Exec
@provider.load_current_resource
- @provider.instance_variable_get("@command_success").should == false
+ expect(@provider.instance_variable_get("@command_success")).to eq(false)
end
it "should return the current resource" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
@@ -206,26 +206,26 @@ describe Chef::Provider::Service::Upstart do
describe "enable and disable service" do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.current_resource = @current_resource
- Chef::Util::FileEdit.stub(:new)
+ allow(Chef::Util::FileEdit).to receive(:new)
end
it "should enable the service if it is not enabled" do
@file = Object.new
- Chef::Util::FileEdit.stub(:new).and_return(@file)
- @current_resource.stub(:enabled).and_return(false)
- @file.should_receive(:search_file_replace)
- @file.should_receive(:write_file)
+ allow(Chef::Util::FileEdit).to receive(:new).and_return(@file)
+ allow(@current_resource).to receive(:enabled).and_return(false)
+ expect(@file).to receive(:search_file_replace)
+ expect(@file).to receive(:write_file)
@provider.enable_service()
end
it "should disable the service if it is enabled" do
@file = Object.new
- Chef::Util::FileEdit.stub(:new).and_return(@file)
- @current_resource.stub(:enabled).and_return(true)
- @file.should_receive(:search_file_replace)
- @file.should_receive(:write_file)
+ allow(Chef::Util::FileEdit).to receive(:new).and_return(@file)
+ allow(@current_resource).to receive(:enabled).and_return(true)
+ expect(@file).to receive(:search_file_replace)
+ expect(@file).to receive(:write_file)
@provider.disable_service()
end
@@ -235,24 +235,24 @@ describe Chef::Provider::Service::Upstart do
before(:each) do
@current_resource = Chef::Resource::Service.new('rsyslog')
- Chef::Resource::Service.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
@provider.current_resource = @current_resource
end
it "should call the start command if one is specified" do
- @new_resource.stub(:start_command).and_return("/sbin/rsyslog startyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog startyousillysally")
+ allow(@new_resource).to receive(:start_command).and_return("/sbin/rsyslog startyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog startyousillysally")
@provider.start_service()
end
it "should call '/sbin/start service_name' if no start command is specified" do
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/start #{@new_resource.service_name}").and_return(0)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/start #{@new_resource.service_name}").and_return(0)
@provider.start_service()
end
it "should not call '/sbin/start service_name' if it is already running" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_not_receive(:shell_out_with_systems_locale!)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).not_to receive(:shell_out_with_systems_locale!)
@provider.start_service()
end
@@ -261,58 +261,58 @@ describe Chef::Provider::Service::Upstart do
@new_resource.parameters({ "OSD_ID" => "2" })
@provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/start rsyslog OSD_ID=2").and_return(0)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/start rsyslog OSD_ID=2").and_return(0)
@provider.start_service()
end
it "should call the restart command if one is specified" do
- @current_resource.stub(:running).and_return(true)
- @new_resource.stub(:restart_command).and_return("/sbin/rsyslog restartyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog restartyousillysally")
+ allow(@current_resource).to receive(:running).and_return(true)
+ allow(@new_resource).to receive(:restart_command).and_return("/sbin/rsyslog restartyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog restartyousillysally")
@provider.restart_service()
end
it "should call '/sbin/restart service_name' if no restart command is specified" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/restart #{@new_resource.service_name}").and_return(0)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/restart #{@new_resource.service_name}").and_return(0)
@provider.restart_service()
end
it "should call '/sbin/start service_name' if restart_service is called for a stopped service" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/start #{@new_resource.service_name}").and_return(0)
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/start #{@new_resource.service_name}").and_return(0)
@provider.restart_service()
end
it "should call the reload command if one is specified" do
- @current_resource.stub(:running).and_return(true)
- @new_resource.stub(:reload_command).and_return("/sbin/rsyslog reloadyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog reloadyousillysally")
+ allow(@current_resource).to receive(:running).and_return(true)
+ allow(@new_resource).to receive(:reload_command).and_return("/sbin/rsyslog reloadyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog reloadyousillysally")
@provider.reload_service()
end
it "should call '/sbin/reload service_name' if no reload command is specified" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/reload #{@new_resource.service_name}").and_return(0)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/reload #{@new_resource.service_name}").and_return(0)
@provider.reload_service()
end
it "should call the stop command if one is specified" do
- @current_resource.stub(:running).and_return(true)
- @new_resource.stub(:stop_command).and_return("/sbin/rsyslog stopyousillysally")
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog stopyousillysally")
+ allow(@current_resource).to receive(:running).and_return(true)
+ allow(@new_resource).to receive(:stop_command).and_return("/sbin/rsyslog stopyousillysally")
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog stopyousillysally")
@provider.stop_service()
end
it "should call '/sbin/stop service_name' if no stop command is specified" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:shell_out_with_systems_locale!).with("/sbin/stop #{@new_resource.service_name}").and_return(0)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/stop #{@new_resource.service_name}").and_return(0)
@provider.stop_service()
end
it "should not call '/sbin/stop service_name' if it is already stopped" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_not_receive(:shell_out_with_systems_locale!).with("/sbin/stop #{@new_resource.service_name}")
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).not_to receive(:shell_out_with_systems_locale!).with("/sbin/stop #{@new_resource.service_name}")
@provider.stop_service()
end
end
diff --git a/spec/unit/provider/service/windows_spec.rb b/spec/unit/provider/service/windows_spec.rb
index 14bdb782cd..f35f169bc4 100644
--- a/spec/unit/provider/service/windows_spec.rb
+++ b/spec/unit/provider/service/windows_spec.rb
@@ -33,102 +33,102 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
Win32::Service::AUTO_START = 0x00000002
Win32::Service::DEMAND_START = 0x00000003
Win32::Service::DISABLED = 0x00000004
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "running"))
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "auto start"))
- Win32::Service.stub(:exists?).and_return(true)
+ allow(Win32::Service).to receive(:exists?).and_return(true)
end
it "should set the current resources service name to the new resources service name" do
@provider.load_current_resource
- @provider.current_resource.service_name.should == 'chef'
+ expect(@provider.current_resource.service_name).to eq('chef')
end
it "should return the current resource" do
- @provider.load_current_resource.should equal(@provider.current_resource)
+ expect(@provider.load_current_resource).to equal(@provider.current_resource)
end
it "should set the current resources status" do
@provider.load_current_resource
- @provider.current_resource.running.should be_true
+ expect(@provider.current_resource.running).to be_true
end
it "should set the current resources start type" do
@provider.load_current_resource
- @provider.current_resource.enabled.should be_true
+ expect(@provider.current_resource.enabled).to be_true
end
it "does not set the current resources start type if it is neither AUTO START or DISABLED" do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "manual"))
@provider.load_current_resource
- @provider.current_resource.enabled.should be_nil
+ expect(@provider.current_resource.enabled).to be_nil
end
describe Chef::Provider::Service::Windows, "start_service" do
before(:each) do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "stopped"),
double("StatusStruct", :current_state => "running"))
end
it "should call the start command if one is specified" do
@new_resource.start_command "sc start chef"
- @provider.should_receive(:shell_out!).with("#{@new_resource.start_command}").and_return("Starting custom service")
+ expect(@provider).to receive(:shell_out!).with("#{@new_resource.start_command}").and_return("Starting custom service")
@provider.start_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should use the built-in command if no start command is specified" do
- Win32::Service.should_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).to receive(:start).with(@new_resource.service_name)
@provider.start_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should do nothing if the service does not exist" do
- Win32::Service.stub(:exists?).with(@new_resource.service_name).and_return(false)
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ allow(Win32::Service).to receive(:exists?).with(@new_resource.service_name).and_return(false)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
@provider.start_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should do nothing if the service is running" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "running"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
@provider.start_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should raise an error if the service is paused" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "paused"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
expect { @provider.start_service }.to raise_error( Chef::Exceptions::Service )
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should wait and continue if the service is in start_pending" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "start pending"),
double("StatusStruct", :current_state => "start pending"),
double("StatusStruct", :current_state => "running"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
@provider.start_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should fail if the service is in stop_pending" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "stop pending"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
expect { @provider.start_service }.to raise_error( Chef::Exceptions::Service )
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
end
@@ -137,78 +137,78 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
describe Chef::Provider::Service::Windows, "stop_service" do
before(:each) do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "running"),
double("StatusStruct", :current_state => "stopped"))
end
it "should call the stop command if one is specified" do
@new_resource.stop_command "sc stop chef"
- @provider.should_receive(:shell_out!).with("#{@new_resource.stop_command}").and_return("Stopping custom service")
+ expect(@provider).to receive(:shell_out!).with("#{@new_resource.stop_command}").and_return("Stopping custom service")
@provider.stop_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should use the built-in command if no stop command is specified" do
- Win32::Service.should_receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).to receive(:stop).with(@new_resource.service_name)
@provider.stop_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should do nothing if the service does not exist" do
- Win32::Service.stub(:exists?).with(@new_resource.service_name).and_return(false)
- Win32::Service.should_not_receive(:stop).with(@new_resource.service_name)
+ allow(Win32::Service).to receive(:exists?).with(@new_resource.service_name).and_return(false)
+ expect(Win32::Service).not_to receive(:stop).with(@new_resource.service_name)
@provider.stop_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should do nothing if the service is stopped" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "stopped"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:stop).with(@new_resource.service_name)
@provider.stop_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should raise an error if the service is paused" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "paused"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
expect { @provider.stop_service }.to raise_error( Chef::Exceptions::Service )
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should wait and continue if the service is in stop_pending" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "stop pending"),
double("StatusStruct", :current_state => "stop pending"),
double("StatusStruct", :current_state => "stopped"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:stop).with(@new_resource.service_name)
@provider.stop_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should fail if the service is in start_pending" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "start pending"))
@provider.load_current_resource
- Win32::Service.should_not_receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:stop).with(@new_resource.service_name)
expect { @provider.stop_service }.to raise_error( Chef::Exceptions::Service )
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
it "should pass custom timeout to the stop command if provided" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "running"))
@new_resource.timeout 1
- Win32::Service.should_receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).to receive(:stop).with(@new_resource.service_name)
Timeout.timeout(2) do
expect { @provider.stop_service }.to raise_error(Timeout::Error)
end
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
end
@@ -217,112 +217,112 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
it "should call the restart command if one is specified" do
@new_resource.restart_command "sc restart"
- @provider.should_receive(:shell_out!).with("#{@new_resource.restart_command}")
+ expect(@provider).to receive(:shell_out!).with("#{@new_resource.restart_command}")
@provider.restart_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should stop then start the service if it is running" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "running"),
double("StatusStruct", :current_state => "stopped"),
double("StatusStruct", :current_state => "stopped"),
double("StatusStruct", :current_state => "running"))
- Win32::Service.should_receive(:stop).with(@new_resource.service_name)
- Win32::Service.should_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).to receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).to receive(:start).with(@new_resource.service_name)
@provider.restart_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should just start the service if it is stopped" do
- Win32::Service.stub(:status).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:status).with(@new_resource.service_name).and_return(
double("StatusStruct", :current_state => "stopped"),
double("StatusStruct", :current_state => "stopped"),
double("StatusStruct", :current_state => "running"))
- Win32::Service.should_receive(:start).with(@new_resource.service_name)
+ expect(Win32::Service).to receive(:start).with(@new_resource.service_name)
@provider.restart_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should do nothing if the service does not exist" do
- Win32::Service.stub(:exists?).with(@new_resource.service_name).and_return(false)
- Win32::Service.should_not_receive(:stop).with(@new_resource.service_name)
- Win32::Service.should_not_receive(:start).with(@new_resource.service_name)
+ allow(Win32::Service).to receive(:exists?).with(@new_resource.service_name).and_return(false)
+ expect(Win32::Service).not_to receive(:stop).with(@new_resource.service_name)
+ expect(Win32::Service).not_to receive(:start).with(@new_resource.service_name)
@provider.restart_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
end
describe Chef::Provider::Service::Windows, "enable_service" do
before(:each) do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "disabled"))
end
it "should enable service" do
- Win32::Service.should_receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::AUTO_START)
+ expect(Win32::Service).to receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::AUTO_START)
@provider.enable_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should do nothing if the service does not exist" do
- Win32::Service.stub(:exists?).with(@new_resource.service_name).and_return(false)
- Win32::Service.should_not_receive(:configure)
+ allow(Win32::Service).to receive(:exists?).with(@new_resource.service_name).and_return(false)
+ expect(Win32::Service).not_to receive(:configure)
@provider.enable_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
end
describe Chef::Provider::Service::Windows, "action_enable" do
it "does nothing if the service is enabled" do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "auto start"))
- @provider.should_not_receive(:enable_service)
+ expect(@provider).not_to receive(:enable_service)
@provider.action_enable
end
it "enables the service if it is not set to automatic start" do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "disabled"))
- @provider.should_receive(:enable_service)
+ expect(@provider).to receive(:enable_service)
@provider.action_enable
end
end
describe Chef::Provider::Service::Windows, "action_disable" do
it "does nothing if the service is disabled" do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "disabled"))
- @provider.should_not_receive(:disable_service)
+ expect(@provider).not_to receive(:disable_service)
@provider.action_disable
end
it "disables the service if it is not set to disabled" do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "auto start"))
- @provider.should_receive(:disable_service)
+ expect(@provider).to receive(:disable_service)
@provider.action_disable
end
end
describe Chef::Provider::Service::Windows, "disable_service" do
before(:each) do
- Win32::Service.stub(:config_info).with(@new_resource.service_name).and_return(
+ allow(Win32::Service).to receive(:config_info).with(@new_resource.service_name).and_return(
double("ConfigStruct", :start_type => "auto start"))
end
it "should disable service" do
- Win32::Service.should_receive(:configure)
+ expect(Win32::Service).to receive(:configure)
@provider.disable_service
- @new_resource.updated_by_last_action?.should be_true
+ expect(@new_resource.updated_by_last_action?).to be_true
end
it "should do nothing if the service does not exist" do
- Win32::Service.stub(:exists?).with(@new_resource.service_name).and_return(false)
- Win32::Service.should_not_receive(:configure)
+ allow(Win32::Service).to receive(:exists?).with(@new_resource.service_name).and_return(false)
+ expect(Win32::Service).not_to receive(:configure)
@provider.disable_service
- @new_resource.updated_by_last_action?.should be_false
+ expect(@new_resource.updated_by_last_action?).to be_false
end
end
@@ -330,15 +330,15 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
{ :automatic => "auto start", :manual => "demand start", :disabled => "disabled" }.each do |type,win32|
it "sets the startup type to #{type} if it is something else" do
@new_resource.startup_type(type)
- @provider.stub(:current_start_type).and_return("fire")
- @provider.should_receive(:set_startup_type).with(type)
+ allow(@provider).to receive(:current_start_type).and_return("fire")
+ expect(@provider).to receive(:set_startup_type).with(type)
@provider.action_configure_startup
end
it "leaves the startup type as #{type} if it is already set" do
@new_resource.startup_type(type)
- @provider.stub(:current_start_type).and_return(win32)
- @provider.should_not_receive(:set_startup_type).with(type)
+ allow(@provider).to receive(:current_start_type).and_return(win32)
+ expect(@provider).not_to receive(:set_startup_type).with(type)
@provider.action_configure_startup
end
end
@@ -346,17 +346,17 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
describe Chef::Provider::Service::Windows, "set_start_type" do
it "when called with :automatic it calls Win32::Service#configure with Win32::Service::AUTO_START" do
- Win32::Service.should_receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::AUTO_START)
+ expect(Win32::Service).to receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::AUTO_START)
@provider.send(:set_startup_type, :automatic)
end
it "when called with :manual it calls Win32::Service#configure with Win32::Service::DEMAND_START" do
- Win32::Service.should_receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::DEMAND_START)
+ expect(Win32::Service).to receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::DEMAND_START)
@provider.send(:set_startup_type, :manual)
end
it "when called with :disabled it calls Win32::Service#configure with Win32::Service::DISABLED" do
- Win32::Service.should_receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::DISABLED)
+ expect(Win32::Service).to receive(:configure).with(:service_name => @new_resource.service_name, :start_type => Win32::Service::DISABLED)
@provider.send(:set_startup_type, :disabled)
end
diff --git a/spec/unit/provider/service_spec.rb b/spec/unit/provider/service_spec.rb
index 7ddc01ff0b..e60b08e7f0 100644
--- a/spec/unit/provider/service_spec.rb
+++ b/spec/unit/provider/service_spec.rb
@@ -28,73 +28,73 @@ describe Chef::Provider::Service do
@provider = Chef::Provider::Service.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
end
describe "when enabling the service" do
it "should enable the service if disabled and set the resource as updated" do
@current_resource.enabled(false)
- @provider.should_receive(:enable_service).and_return(true)
+ expect(@provider).to receive(:enable_service).and_return(true)
@provider.action_enable
@provider.set_updated_status
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should not enable the service if already enabled" do
@current_resource.enabled(true)
- @provider.should_not_receive(:enable_service)
+ expect(@provider).not_to receive(:enable_service)
@provider.action_enable
@provider.set_updated_status
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
describe "when disabling the service" do
it "should disable the service if enabled and set the resource as updated" do
- @current_resource.stub(:enabled).and_return(true)
- @provider.should_receive(:disable_service).and_return(true)
+ allow(@current_resource).to receive(:enabled).and_return(true)
+ expect(@provider).to receive(:disable_service).and_return(true)
@provider.run_action(:disable)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should not disable the service if already disabled" do
- @current_resource.stub(:enabled).and_return(false)
- @provider.should_not_receive(:disable_service)
+ allow(@current_resource).to receive(:enabled).and_return(false)
+ expect(@provider).not_to receive(:disable_service)
@provider.run_action(:disable)
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
describe "action_start" do
it "should start the service if it isn't running and set the resource as updated" do
@current_resource.running(false)
- @provider.should_receive(:start_service).with.and_return(true)
+ expect(@provider).to receive(:start_service).with.and_return(true)
@provider.run_action(:start)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should not start the service if already running" do
@current_resource.running(true)
- @provider.should_not_receive(:start_service)
+ expect(@provider).not_to receive(:start_service)
@provider.run_action(:start)
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
describe "action_stop" do
it "should stop the service if it is running and set the resource as updated" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:stop_service).and_return(true)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:stop_service).and_return(true)
@provider.run_action(:stop)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should not stop the service if it's already stopped" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_not_receive(:stop_service)
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).not_to receive(:stop_service)
@provider.run_action(:stop)
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
@@ -104,16 +104,16 @@ describe Chef::Provider::Service do
end
it "should restart the service if it's supported and set the resource as updated" do
- @provider.should_receive(:restart_service).and_return(true)
+ expect(@provider).to receive(:restart_service).and_return(true)
@provider.run_action(:restart)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should restart the service even if it isn't running and set the resource as updated" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_receive(:restart_service).and_return(true)
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).to receive(:restart_service).and_return(true)
@provider.run_action(:restart)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
end
@@ -124,46 +124,46 @@ describe Chef::Provider::Service do
it "should raise an exception if reload isn't supported" do
@new_resource.supports(:reload => false)
- @new_resource.stub(:reload_command).and_return(false)
- lambda { @provider.run_action(:reload) }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ allow(@new_resource).to receive(:reload_command).and_return(false)
+ expect { @provider.run_action(:reload) }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "should reload the service if it is running and set the resource as updated" do
- @current_resource.stub(:running).and_return(true)
- @provider.should_receive(:reload_service).and_return(true)
+ allow(@current_resource).to receive(:running).and_return(true)
+ expect(@provider).to receive(:reload_service).and_return(true)
@provider.run_action(:reload)
- @provider.new_resource.should be_updated
+ expect(@provider.new_resource).to be_updated
end
it "should not reload the service if it's stopped" do
- @current_resource.stub(:running).and_return(false)
- @provider.should_not_receive(:reload_service)
+ allow(@current_resource).to receive(:running).and_return(false)
+ expect(@provider).not_to receive(:reload_service)
@provider.run_action(:stop)
- @provider.new_resource.should_not be_updated
+ expect(@provider.new_resource).not_to be_updated
end
end
it "delegates enable_service to subclasses" do
- lambda { @provider.enable_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.enable_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "delegates disable_service to subclasses" do
- lambda { @provider.disable_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.disable_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "delegates start_service to subclasses" do
- lambda { @provider.start_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.start_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "delegates stop_service to subclasses" do
- lambda { @provider.stop_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.stop_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "delegates restart_service to subclasses" do
- lambda { @provider.restart_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.restart_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
it "delegates reload_service to subclasses" do
- lambda { @provider.reload_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
+ expect { @provider.reload_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
end
end
diff --git a/spec/unit/provider/subversion_spec.rb b/spec/unit/provider/subversion_spec.rb
index 5d9d1cec1e..b372f0df7a 100644
--- a/spec/unit/provider/subversion_spec.rb
+++ b/spec/unit/provider/subversion_spec.rb
@@ -34,9 +34,9 @@ describe Chef::Provider::Subversion do
end
it "converts resource attributes to options for run_command and popen4" do
- @provider.run_options.should == {}
+ expect(@provider.run_options).to eq({})
@resource.user 'deployninja'
- @provider.run_options.should == {:user => "deployninja"}
+ expect(@provider.run_options).to eq({:user => "deployninja"})
end
context "determining the revision of the currently deployed code" do
@@ -48,8 +48,8 @@ describe Chef::Provider::Subversion do
end
it "sets the revision to nil if there isn't any deployed code yet" do
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
- @provider.find_current_revision.should be_nil
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
+ expect(@provider.find_current_revision).to be_nil
end
it "determines the current revision if there's a checkout with svn data available" do
@@ -62,47 +62,47 @@ describe Chef::Provider::Subversion do
"Last Changed Author: codeninja\n" +
"Last Changed Rev: 11410\n" + # Last Changed Rev is preferred to Revision
"Last Changed Date: 2009-03-25 06:09:56 -0600 (Wed, 25 Mar 2009)\n\n"
- ::File.should_receive(:exist?).at_least(1).times.with("/my/deploy/dir/.svn").and_return(true)
- ::File.should_receive(:directory?).with("/my/deploy/dir").and_return(true)
- ::Dir.should_receive(:chdir).with("/my/deploy/dir").and_yield
- @stdout.stub(:string).and_return(example_svn_info)
- @stderr.stub(:string).and_return("")
- @exitstatus.stub(:exitstatus).and_return(0)
+ expect(::File).to receive(:exist?).at_least(1).times.with("/my/deploy/dir/.svn").and_return(true)
+ expect(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
+ expect(::Dir).to receive(:chdir).with("/my/deploy/dir").and_yield
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
+ allow(@stderr).to receive(:string).and_return("")
+ allow(@exitstatus).to receive(:exitstatus).and_return(0)
expected_command = ["svn info", {:cwd=>"/my/deploy/dir"}]
- @provider.should_receive(:popen4).with(*expected_command).
+ expect(@provider).to receive(:popen4).with(*expected_command).
and_yield("no-pid", "no-stdin", @stdout,@stderr).
and_return(@exitstatus)
- @provider.find_current_revision.should eql("11410")
+ expect(@provider.find_current_revision).to eql("11410")
end
it "gives nil as the current revision if the deploy dir isn't a SVN working copy" do
example_svn_info = "svn: '/tmp/deploydir' is not a working copy\n"
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
- ::File.should_receive(:directory?).with("/my/deploy/dir").and_return(true)
- ::Dir.should_receive(:chdir).with("/my/deploy/dir").and_yield
- @stdout.stub(:string).and_return(example_svn_info)
- @stderr.stub(:string).and_return("")
- @exitstatus.stub(:exitstatus).and_return(1)
- @provider.should_receive(:popen4).and_yield("no-pid", "no-stdin", @stdout,@stderr).
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
+ expect(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
+ expect(::Dir).to receive(:chdir).with("/my/deploy/dir").and_yield
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
+ allow(@stderr).to receive(:string).and_return("")
+ allow(@exitstatus).to receive(:exitstatus).and_return(1)
+ expect(@provider).to receive(:popen4).and_yield("no-pid", "no-stdin", @stdout,@stderr).
and_return(@exitstatus)
- @provider.find_current_revision.should be_nil
+ expect(@provider.find_current_revision).to be_nil
end
it "finds the current revision when loading the current resource state" do
# note: the test is kinda janky, but it provides regression coverage for CHEF-2092
@resource.instance_variable_set(:@action, :sync)
- @provider.should_receive(:find_current_revision).and_return("12345")
+ expect(@provider).to receive(:find_current_revision).and_return("12345")
@provider.load_current_resource
- @provider.current_resource.revision.should == "12345"
+ expect(@provider.current_resource.revision).to eq("12345")
end
end
it "creates the current_resource object and sets its revision to the current deployment's revision as long as we're not exporting" do
- @provider.stub(:find_current_revision).and_return("11410")
+ allow(@provider).to receive(:find_current_revision).and_return("11410")
@provider.new_resource.instance_variable_set :@action, [:checkout]
@provider.load_current_resource
- @provider.current_resource.name.should eql(@resource.name)
- @provider.current_resource.revision.should eql("11410")
+ expect(@provider.current_resource.name).to eql(@resource.name)
+ expect(@provider.current_resource.revision).to eql("11410")
end
context "resolving revisions to an integer" do
@@ -114,7 +114,7 @@ describe Chef::Provider::Subversion do
end
it "returns the revision number as is if it's already an integer" do
- @provider.revision_int.should eql("12345")
+ expect(@provider.revision_int).to eql("12345")
end
it "queries the server and resolves the revision if it's not an integer (i.e. 'HEAD')" do
@@ -128,153 +128,153 @@ describe Chef::Provider::Subversion do
"Last Changed Rev: 11410\n" + # Last Changed Rev is preferred to Revision
"Last Changed Date: 2009-03-25 06:09:56 -0600 (Wed, 25 Mar 2009)\n\n"
exitstatus = double("exitstatus")
- exitstatus.stub(:exitstatus).and_return(0)
+ allow(exitstatus).to receive(:exitstatus).and_return(0)
@resource.revision "HEAD"
- @stdout.stub(:string).and_return(example_svn_info)
- @stderr.stub(:string).and_return("")
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
+ allow(@stderr).to receive(:string).and_return("")
expected_command = ["svn info http://svn.example.org/trunk/ --no-auth-cache -rHEAD", {:cwd=>Dir.tmpdir}]
- @provider.should_receive(:popen4).with(*expected_command).
+ expect(@provider).to receive(:popen4).with(*expected_command).
and_yield("no-pid","no-stdin",@stdout,@stderr).
and_return(exitstatus)
- @provider.revision_int.should eql("11410")
+ expect(@provider.revision_int).to eql("11410")
end
it "returns a helpful message if data from `svn info` can't be parsed" do
example_svn_info = "some random text from an error message\n"
exitstatus = double("exitstatus")
- exitstatus.stub(:exitstatus).and_return(0)
+ allow(exitstatus).to receive(:exitstatus).and_return(0)
@resource.revision "HEAD"
- @stdout.stub(:string).and_return(example_svn_info)
- @stderr.stub(:string).and_return("")
- @provider.should_receive(:popen4).and_yield("no-pid","no-stdin",@stdout,@stderr).
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
+ allow(@stderr).to receive(:string).and_return("")
+ expect(@provider).to receive(:popen4).and_yield("no-pid","no-stdin",@stdout,@stderr).
and_return(exitstatus)
- lambda {@provider.revision_int}.should raise_error(RuntimeError, "Could not parse `svn info` data: some random text from an error message")
+ expect {@provider.revision_int}.to raise_error(RuntimeError, "Could not parse `svn info` data: some random text from an error message")
end
it "responds to :revision_slug as an alias for revision_sha" do
- @provider.should respond_to(:revision_slug)
+ expect(@provider).to respond_to(:revision_slug)
end
end
it "generates a checkout command with default options" do
- @provider.checkout_command.should eql("svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
+ expect(@provider.checkout_command).to eql("svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
end
it "generates a checkout command with authentication" do
@resource.svn_username "deployNinja"
@resource.svn_password "vanish!"
- @provider.checkout_command.should eql("svn checkout -q --username deployNinja --password vanish! " +
+ expect(@provider.checkout_command).to eql("svn checkout -q --username deployNinja --password vanish! " +
"-r12345 http://svn.example.org/trunk/ /my/deploy/dir")
end
it "generates a checkout command with arbitrary options" do
@resource.svn_arguments "--no-auth-cache"
- @provider.checkout_command.should eql("svn checkout --no-auth-cache -q -r12345 "+
+ expect(@provider.checkout_command).to eql("svn checkout --no-auth-cache -q -r12345 "+
"http://svn.example.org/trunk/ /my/deploy/dir")
end
it "generates a sync command with default options" do
- @provider.sync_command.should eql("svn update -q -r12345 /my/deploy/dir")
+ expect(@provider.sync_command).to eql("svn update -q -r12345 /my/deploy/dir")
end
it "generates an export command with default options" do
- @provider.export_command.should eql("svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
+ expect(@provider.export_command).to eql("svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
end
it "doesn't try to find the current revision when loading the resource if running an export" do
@provider.new_resource.instance_variable_set :@action, [:export]
- @provider.should_not_receive(:find_current_revision)
+ expect(@provider).not_to receive(:find_current_revision)
@provider.load_current_resource
end
it "doesn't try to find the current revision when loading the resource if running a force export" do
@provider.new_resource.instance_variable_set :@action, [:force_export]
- @provider.should_not_receive(:find_current_revision)
+ expect(@provider).not_to receive(:find_current_revision)
@provider.load_current_resource
end
it "runs an export with the --force option" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
expected_cmd = "svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
@provider.run_action(:force_export)
- @resource.should be_updated
+ expect(@resource).to be_updated
end
it "runs the checkout command for action_checkout" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
@provider.run_action(:checkout)
- @resource.should be_updated
+ expect(@resource).to be_updated
end
it "raises an error if the svn checkout command would fail because the enclosing directory doesn't exist" do
- lambda {@provider.run_action(:sync)}.should raise_error(Chef::Exceptions::MissingParentDirectory)
+ expect {@provider.run_action(:sync)}.to raise_error(Chef::Exceptions::MissingParentDirectory)
end
it "should not checkout if the destination exists or is a non empty directory" do
- ::File.stub(:exist?).with("/my/deploy/dir/.svn").and_return(false)
- ::File.stub(:exist?).with("/my/deploy/dir").and_return(true)
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::Dir.stub(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
- @provider.should_not_receive(:checkout_command)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
+ allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
+ expect(@provider).not_to receive(:checkout_command)
@provider.run_action(:checkout)
- @resource.should_not be_updated
+ expect(@resource).not_to be_updated
end
it "runs commands with the user and group specified in the resource" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
@resource.user "whois"
@resource.group "thisis"
expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
- @provider.should_receive(:shell_out!).with(command: expected_cmd, user: "whois", group: "thisis")
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd, user: "whois", group: "thisis")
@provider.run_action(:checkout)
- @resource.should be_updated
+ expect(@resource).to be_updated
end
it "does a checkout for action_sync if there's no deploy dir" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
- @provider.should_receive(:action_checkout)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
+ expect(@provider).to receive(:action_checkout)
@provider.run_action(:sync)
end
it "does a checkout for action_sync if the deploy dir exists but is empty" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
- @provider.should_receive(:action_checkout)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
+ expect(@provider).to receive(:action_checkout)
@provider.run_action(:sync)
end
it "runs the sync_command on action_sync if the deploy dir exists and isn't empty" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
- @provider.stub(:find_current_revision).and_return("11410")
- @provider.stub(:current_revision_matches_target_revision?).and_return(false)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
+ allow(@provider).to receive(:find_current_revision).and_return("11410")
+ allow(@provider).to receive(:current_revision_matches_target_revision?).and_return(false)
expected_cmd = "svn update -q -r12345 /my/deploy/dir"
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
@provider.run_action(:sync)
- @resource.should be_updated
+ expect(@resource).to be_updated
end
it "does not fetch any updates if the remote revision matches the current revision" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
- @provider.stub(:find_current_revision).and_return('12345')
- @provider.stub(:current_revision_matches_target_revision?).and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
+ allow(@provider).to receive(:find_current_revision).and_return('12345')
+ allow(@provider).to receive(:current_revision_matches_target_revision?).and_return(true)
@provider.run_action(:sync)
- @resource.should_not be_updated
+ expect(@resource).not_to be_updated
end
it "runs the export_command on action_export" do
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
expected_cmd = "svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
@provider.run_action(:export)
- @resource.should be_updated
+ expect(@resource).to be_updated
end
end
diff --git a/spec/unit/provider/template/content_spec.rb b/spec/unit/provider/template/content_spec.rb
index b419e70519..4b88a3aea5 100644
--- a/spec/unit/provider/template/content_spec.rb
+++ b/spec/unit/provider/template/content_spec.rb
@@ -54,25 +54,25 @@ describe Chef::Provider::Template::Content do
end
it "finds the template file in the cookbook cache if it isn't local" do
- content.template_location.should == CHEF_SPEC_DATA + '/cookbooks/openldap/templates/default/openldap_stuff.conf.erb'
+ expect(content.template_location).to eq(CHEF_SPEC_DATA + '/cookbooks/openldap/templates/default/openldap_stuff.conf.erb')
end
it "finds the template file locally if it is local" do
- new_resource.stub(:local).and_return(true)
- new_resource.stub(:source).and_return('/tmp/its_on_disk.erb')
- content.template_location.should == '/tmp/its_on_disk.erb'
+ allow(new_resource).to receive(:local).and_return(true)
+ allow(new_resource).to receive(:source).and_return('/tmp/its_on_disk.erb')
+ expect(content.template_location).to eq('/tmp/its_on_disk.erb')
end
it "should use the cookbook name if defined in the template resource" do
- new_resource.stub(:cookbook_name).and_return('apache2')
- new_resource.stub(:cookbook).and_return('openldap')
- new_resource.stub(:source).and_return("test.erb")
- content.template_location.should == CHEF_SPEC_DATA + '/cookbooks/openldap/templates/default/test.erb'
+ allow(new_resource).to receive(:cookbook_name).and_return('apache2')
+ allow(new_resource).to receive(:cookbook).and_return('openldap')
+ allow(new_resource).to receive(:source).and_return("test.erb")
+ expect(content.template_location).to eq(CHEF_SPEC_DATA + '/cookbooks/openldap/templates/default/test.erb')
end
it "creates the template with the rendered content" do
run_context.node.normal[:slappiness] = "a warm gun"
- IO.read(content.tempfile.path).should == "slappiness is a warm gun"
+ expect(IO.read(content.tempfile.path)).to eq("slappiness is a warm gun")
end
end
diff --git a/spec/unit/provider/template_spec.rb b/spec/unit/provider/template_spec.rb
index 514bdc12ff..713303d818 100644
--- a/spec/unit/provider/template_spec.rb
+++ b/spec/unit/provider/template_spec.rb
@@ -39,7 +39,7 @@ describe Chef::Provider::Template do
let(:provider) do
provider = described_class.new(resource, run_context)
- provider.stub(:content).and_return(content)
+ allow(provider).to receive(:content).and_return(content)
provider
end
@@ -51,7 +51,7 @@ describe Chef::Provider::Template do
let(:content) do
content = double('Chef::Provider::File::Content::Template', :template_location => "/foo/bar/baz")
- File.stub(:exists?).with("/foo/bar/baz").and_return(true)
+ allow(File).to receive(:exists?).with("/foo/bar/baz").and_return(true)
content
end
@@ -73,15 +73,15 @@ describe Chef::Provider::Template do
let(:provider) do
provider = described_class.new(resource, run_context)
- provider.stub(:content).and_return(content)
+ allow(provider).to receive(:content).and_return(content)
provider
end
it "stops executing when the local template source can't be found" do
setup_normal_file
- content.stub(:template_location).and_return("/baz/bar/foo")
- File.stub(:exists?).with("/baz/bar/foo").and_return(false)
- lambda { provider.run_action(:create) }.should raise_error Chef::Mixin::WhyRun::ResourceRequirements::Assertion::AssertionFailure
+ allow(content).to receive(:template_location).and_return("/baz/bar/foo")
+ allow(File).to receive(:exists?).with("/baz/bar/foo").and_return(false)
+ expect { provider.run_action(:create) }.to raise_error Chef::Mixin::WhyRun::ResourceRequirements::Assertion::AssertionFailure
end
end
diff --git a/spec/unit/provider/user/dscl_spec.rb b/spec/unit/provider/user/dscl_spec.rb
index c17aefb00d..c8dbef770e 100644
--- a/spec/unit/provider/user/dscl_spec.rb
+++ b/spec/unit/provider/user/dscl_spec.rb
@@ -24,12 +24,12 @@ require 'mixlib/shellout'
describe Chef::Provider::User::Dscl do
before do
- Chef::Platform.stub(:windows?) { false }
+ allow(Chef::Platform).to receive(:windows?) { false }
end
let(:node) {
node = Chef::Node.new
- node.stub(:[]).with(:platform_version).and_return(mac_version)
- node.stub(:[]).with(:platform).and_return("mac_os_x")
+ allow(node).to receive(:[]).with(:platform_version).and_return(mac_version)
+ allow(node).to receive(:[]).with(:platform).and_return("mac_os_x")
node
}
@@ -115,38 +115,38 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
describe "when shelling out to dscl" do
it "should run dscl with the supplied cmd /Path args" do
shell_return = ShellCmdResult.new('stdout', 'err', 0)
- provider.should_receive(:shell_out).with("dscl . -cmd /Path args").and_return(shell_return)
- provider.run_dscl("cmd /Path args").should == 'stdout'
+ expect(provider).to receive(:shell_out).with("dscl . -cmd /Path args").and_return(shell_return)
+ expect(provider.run_dscl("cmd /Path args")).to eq('stdout')
end
it "returns an empty string from delete commands" do
shell_return = ShellCmdResult.new('out', 'err', 23)
- provider.should_receive(:shell_out).with("dscl . -delete /Path args").and_return(shell_return)
- provider.run_dscl("delete /Path args").should == ""
+ expect(provider).to receive(:shell_out).with("dscl . -delete /Path args").and_return(shell_return)
+ expect(provider.run_dscl("delete /Path args")).to eq("")
end
it "should raise an exception for any other command" do
shell_return = ShellCmdResult.new('out', 'err', 23)
- provider.should_receive(:shell_out).with('dscl . -cmd /Path arguments').and_return(shell_return)
- lambda { provider.run_dscl("cmd /Path arguments") }.should raise_error(Chef::Exceptions::DsclCommandFailed)
+ expect(provider).to receive(:shell_out).with('dscl . -cmd /Path arguments').and_return(shell_return)
+ expect { provider.run_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::DsclCommandFailed)
end
it "raises an exception when dscl reports 'no such key'" do
shell_return = ShellCmdResult.new("No such key: ", 'err', 23)
- provider.should_receive(:shell_out).with('dscl . -cmd /Path args').and_return(shell_return)
- lambda { provider.run_dscl("cmd /Path args") }.should raise_error(Chef::Exceptions::DsclCommandFailed)
+ expect(provider).to receive(:shell_out).with('dscl . -cmd /Path args').and_return(shell_return)
+ expect { provider.run_dscl("cmd /Path args") }.to raise_error(Chef::Exceptions::DsclCommandFailed)
end
it "raises an exception when dscl reports 'eDSRecordNotFound'" do
shell_return = ShellCmdResult.new("<dscl_cmd> DS Error: -14136 (eDSRecordNotFound)", 'err', -14136)
- provider.should_receive(:shell_out).with('dscl . -cmd /Path args').and_return(shell_return)
- lambda { provider.run_dscl("cmd /Path args") }.should raise_error(Chef::Exceptions::DsclCommandFailed)
+ expect(provider).to receive(:shell_out).with('dscl . -cmd /Path args').and_return(shell_return)
+ expect { provider.run_dscl("cmd /Path args") }.to raise_error(Chef::Exceptions::DsclCommandFailed)
end
end
describe "get_free_uid" do
before do
- provider.should_receive(:run_dscl).with("list /Users uid").and_return("\nwheel 200\nstaff 201\nbrahms 500\nchopin 501\n")
+ expect(provider).to receive(:run_dscl).with("list /Users uid").and_return("\nwheel 200\nstaff 201\nbrahms 500\nchopin 501\n")
end
describe "when resource is configured as system" do
@@ -155,59 +155,59 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
end
it "should return the first unused uid number on or above 500" do
- provider.get_free_uid.should eq(202)
+ expect(provider.get_free_uid).to eq(202)
end
end
it "should return the first unused uid number on or above 200" do
- provider.get_free_uid.should eq(502)
+ expect(provider.get_free_uid).to eq(502)
end
it "should raise an exception when the search limit is exhausted" do
search_limit = 1
- lambda { provider.get_free_uid(search_limit) }.should raise_error(RuntimeError)
+ expect { provider.get_free_uid(search_limit) }.to raise_error(RuntimeError)
end
end
describe "uid_used?" do
it "should return false if not given any valid uid number" do
- provider.uid_used?(nil).should be_false
+ expect(provider.uid_used?(nil)).to be_false
end
describe "when called with a user id" do
before do
- provider.should_receive(:run_dscl).with("list /Users uid").and_return("\naj 500\n")
+ expect(provider).to receive(:run_dscl).with("list /Users uid").and_return("\naj 500\n")
end
it "should return true for a used uid number" do
- provider.uid_used?(500).should be_true
+ expect(provider.uid_used?(500)).to be_true
end
it "should return false for an unused uid number" do
- provider.uid_used?(501).should be_false
+ expect(provider.uid_used?(501)).to be_false
end
end
end
describe "when determining the uid to set" do
it "raises RequestedUIDUnavailable if the requested uid is already in use" do
- provider.stub(:uid_used?).and_return(true)
- provider.should_receive(:get_free_uid).and_return(501)
- lambda { provider.dscl_set_uid }.should raise_error(Chef::Exceptions::RequestedUIDUnavailable)
+ allow(provider).to receive(:uid_used?).and_return(true)
+ expect(provider).to receive(:get_free_uid).and_return(501)
+ expect { provider.dscl_set_uid }.to raise_error(Chef::Exceptions::RequestedUIDUnavailable)
end
it "finds a valid, unused uid when none is specified" do
- provider.should_receive(:run_dscl).with("list /Users uid").and_return('')
- provider.should_receive(:run_dscl).with("create /Users/toor UniqueID 501")
- provider.should_receive(:get_free_uid).and_return(501)
+ expect(provider).to receive(:run_dscl).with("list /Users uid").and_return('')
+ expect(provider).to receive(:run_dscl).with("create /Users/toor UniqueID 501")
+ expect(provider).to receive(:get_free_uid).and_return(501)
provider.dscl_set_uid
- new_resource.uid.should eq(501)
+ expect(new_resource.uid).to eq(501)
end
it "sets the uid specified in the resource" do
new_resource.uid(1000)
- provider.should_receive(:run_dscl).with("create /Users/toor UniqueID 1000").and_return(true)
- provider.should_receive(:run_dscl).with("list /Users uid").and_return('')
+ expect(provider).to receive(:run_dscl).with("create /Users/toor UniqueID 1000").and_return(true)
+ expect(provider).to receive(:run_dscl).with("list /Users uid").and_return('')
provider.dscl_set_uid
end
end
@@ -226,14 +226,14 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "deletes the home directory when resource#home is nil" do
new_resource.instance_variable_set(:@home, nil)
- provider.should_receive(:run_dscl).with("delete /Users/toor NFSHomeDirectory").and_return(true)
+ expect(provider).to receive(:run_dscl).with("delete /Users/toor NFSHomeDirectory").and_return(true)
provider.dscl_set_home
end
it "raises InvalidHomeDirectory when the resource's home directory doesn't look right" do
new_resource.home('epic-fail')
- lambda { provider.dscl_set_home }.should raise_error(Chef::Exceptions::InvalidHomeDirectory)
+ expect { provider.dscl_set_home }.to raise_error(Chef::Exceptions::InvalidHomeDirectory)
end
it "moves the users home to the new location if it exists and the target location is different" do
@@ -243,34 +243,34 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
current_home_files = [current_home + '/my-dot-emacs', current_home + '/my-dot-vim']
current_resource.home(current_home)
new_resource.gid(23)
- ::File.stub(:exists?).with('/old/home/toor').and_return(true)
- ::File.stub(:exists?).with('/Users/toor').and_return(true)
+ allow(::File).to receive(:exists?).with('/old/home/toor').and_return(true)
+ allow(::File).to receive(:exists?).with('/Users/toor').and_return(true)
- FileUtils.should_receive(:mkdir_p).with('/Users/toor').and_return(true)
- FileUtils.should_receive(:rmdir).with(current_home)
- ::Dir.should_receive(:glob).with("#{CHEF_SPEC_DATA}/old_home_dir/*",::File::FNM_DOTMATCH).and_return(current_home_files)
- FileUtils.should_receive(:mv).with(current_home_files, "/Users/toor", :force => true)
- FileUtils.should_receive(:chown_R).with('toor','23','/Users/toor')
+ expect(FileUtils).to receive(:mkdir_p).with('/Users/toor').and_return(true)
+ expect(FileUtils).to receive(:rmdir).with(current_home)
+ expect(::Dir).to receive(:glob).with("#{CHEF_SPEC_DATA}/old_home_dir/*",::File::FNM_DOTMATCH).and_return(current_home_files)
+ expect(FileUtils).to receive(:mv).with(current_home_files, "/Users/toor", :force => true)
+ expect(FileUtils).to receive(:chown_R).with('toor','23','/Users/toor')
- provider.should_receive(:run_dscl).with("create /Users/toor NFSHomeDirectory '/Users/toor'")
+ expect(provider).to receive(:run_dscl).with("create /Users/toor NFSHomeDirectory '/Users/toor'")
provider.dscl_set_home
end
it "should raise an exception when the systems user template dir (skel) cannot be found" do
- ::File.stub(:exists?).and_return(false,false,false)
- lambda { provider.dscl_set_home }.should raise_error(Chef::Exceptions::User)
+ allow(::File).to receive(:exists?).and_return(false,false,false)
+ expect { provider.dscl_set_home }.to raise_error(Chef::Exceptions::User)
end
it "should run ditto to copy any missing files from skel to the new home dir" do
- ::File.should_receive(:exists?).with("/System/Library/User\ Template/English.lproj").and_return(true)
- FileUtils.should_receive(:chown_R).with('toor', '', '/Users/toor')
- provider.should_receive(:shell_out!).with("ditto '/System/Library/User Template/English.lproj' '/Users/toor'")
+ expect(::File).to receive(:exists?).with("/System/Library/User\ Template/English.lproj").and_return(true)
+ expect(FileUtils).to receive(:chown_R).with('toor', '', '/Users/toor')
+ expect(provider).to receive(:shell_out!).with("ditto '/System/Library/User Template/English.lproj' '/Users/toor'")
provider.ditto_home
end
it "creates the user's NFSHomeDirectory and home directory" do
- provider.should_receive(:run_dscl).with("create /Users/toor NFSHomeDirectory '/Users/toor'").and_return(true)
- provider.should_receive(:ditto_home)
+ expect(provider).to receive(:run_dscl).with("create /Users/toor NFSHomeDirectory '/Users/toor'").and_return(true)
+ expect(provider).to receive(:ditto_home)
provider.dscl_set_home
end
end
@@ -280,8 +280,8 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:plutil_exists) { true }
before do
- ::File.stub(:exists?).with("/usr/bin/dscl").and_return(dscl_exists)
- ::File.stub(:exists?).with("/usr/bin/plutil").and_return(plutil_exists)
+ allow(::File).to receive(:exists?).with("/usr/bin/dscl").and_return(dscl_exists)
+ allow(::File).to receive(:exists?).with("/usr/bin/plutil").and_return(plutil_exists)
end
def run_requirements
@@ -294,7 +294,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:dscl_exists) { false }
it "should raise an error" do
- lambda { run_requirements }.should raise_error
+ expect { run_requirements }.to raise_error
end
end
@@ -302,7 +302,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:plutil_exists) { false }
it "should raise an error" do
- lambda { run_requirements }.should raise_error
+ expect { run_requirements }.to raise_error
end
end
@@ -312,7 +312,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
}
it "should raise an error" do
- lambda { run_requirements }.should raise_error
+ expect { run_requirements }.to raise_error
end
end
@@ -325,7 +325,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:password) { salted_sha512_password }
it "should not raise an error" do
- lambda { run_requirements }.should_not raise_error
+ expect { run_requirements }.not_to raise_error
end
end
@@ -333,7 +333,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:password) { salted_sha512_pbkdf2_password }
it "should raise an error" do
- lambda { run_requirements }.should raise_error
+ expect { run_requirements }.to raise_error
end
end
end
@@ -348,7 +348,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:password) { salted_sha512_password }
it "should raise an error" do
- lambda { run_requirements }.should raise_error
+ expect { run_requirements }.to raise_error
end
end
@@ -357,7 +357,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
describe "when salt and iteration is not set" do
it "should raise an error" do
- lambda { run_requirements }.should raise_error
+ expect { run_requirements }.to raise_error
end
end
@@ -366,7 +366,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:iterations) { salted_sha512_pbkdf2_iterations }
it "should not raise an error" do
- lambda { run_requirements }.should_not raise_error
+ expect { run_requirements }.not_to raise_error
end
end
end
@@ -379,8 +379,8 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
let(:user_plist_file) { nil }
before do
- provider.should_receive(:shell_out).with("dscacheutil '-flushcache'")
- provider.should_receive(:shell_out).with("plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/toor.plist") do
+ expect(provider).to receive(:shell_out).with("dscacheutil '-flushcache'")
+ expect(provider).to receive(:shell_out).with("plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/toor.plist") do
if user_plist_file.nil?
ShellCmdResult.new('Can not find the file', 'Sorry!!', 1)
else
@@ -389,23 +389,23 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
end
if !user_plist_file.nil?
- provider.should_receive(:convert_binary_plist_to_xml).and_return(File.read(File.join(CHEF_SPEC_DATA, "mac_users/#{user_plist_file}.shadow.xml")))
+ expect(provider).to receive(:convert_binary_plist_to_xml).and_return(File.read(File.join(CHEF_SPEC_DATA, "mac_users/#{user_plist_file}.shadow.xml")))
end
end
describe "when user is not there" do
it "shouldn't raise an error" do
- lambda { provider.load_current_resource }.should_not raise_error
+ expect { provider.load_current_resource }.not_to raise_error
end
it "should set @user_exists" do
provider.load_current_resource
- provider.instance_variable_get(:@user_exists).should be_false
+ expect(provider.instance_variable_get(:@user_exists)).to be_false
end
it "should set username" do
provider.load_current_resource
- provider.current_resource.username.should eq("toor")
+ expect(provider.current_resource.username).to eq("toor")
end
end
@@ -421,12 +421,12 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "collects the user data correctly" do
provider.load_current_resource
- provider.current_resource.comment.should eq("vagrant")
- provider.current_resource.uid.should eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
- provider.current_resource.gid.should eq("80")
- provider.current_resource.home.should eq("/Users/vagrant")
- provider.current_resource.shell.should eq("/bin/bash")
- provider.current_resource.password.should eq(vagrant_sha_512)
+ expect(provider.current_resource.comment).to eq("vagrant")
+ expect(provider.current_resource.uid).to eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
+ expect(provider.current_resource.gid).to eq("80")
+ expect(provider.current_resource.home).to eq("/Users/vagrant")
+ expect(provider.current_resource.shell).to eq("/bin/bash")
+ expect(provider.current_resource.password).to eq(vagrant_sha_512)
end
describe "when a plain password is set that is same" do
@@ -434,7 +434,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "diverged_password? should report false" do
provider.load_current_resource
- provider.diverged_password?.should be_false
+ expect(provider.diverged_password?).to be_false
end
end
@@ -443,7 +443,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "diverged_password? should report true" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
@@ -453,7 +453,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "diverged_password? should report false" do
provider.load_current_resource
- provider.diverged_password?.should be_false
+ expect(provider.diverged_password?).to be_false
end
end
@@ -462,7 +462,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "diverged_password? should report true" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
@@ -472,7 +472,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "diverged_password? should report false" do
provider.load_current_resource
- provider.diverged_password?.should be_false
+ expect(provider.diverged_password?).to be_false
end
end
end
@@ -486,19 +486,19 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30"
it "collects the user data correctly" do
provider.load_current_resource
- provider.current_resource.comment.should eq("vagrant")
- provider.current_resource.uid.should eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
- provider.current_resource.gid.should eq("80")
- provider.current_resource.home.should eq("/Users/vagrant")
- provider.current_resource.shell.should eq("/bin/bash")
- provider.current_resource.password.should eq("ea4c2d265d801ba0ec0dfccd\
+ expect(provider.current_resource.comment).to eq("vagrant")
+ expect(provider.current_resource.uid).to eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
+ expect(provider.current_resource.gid).to eq("80")
+ expect(provider.current_resource.home).to eq("/Users/vagrant")
+ expect(provider.current_resource.shell).to eq("/bin/bash")
+ expect(provider.current_resource.password).to eq("ea4c2d265d801ba0ec0dfccd\
253dfc1de91cbe0806b4acc1ed7fe22aebcf6beb5344d0f442e590\
ffa04d679075da3afb119e41b72b5eaf08ee4aa54693722646d5\
19ee04843deb8a3e977428d33f625e83887913e5c13b70035961\
5e00ad7bc3e7a0c98afc3e19d1360272454f8d33a9214d2fbe8b\
e68d1f9821b26689312366")
- provider.current_resource.salt.should eq("f994ef2f73b7c5594ebd1553300976b20733ce0e24d659783d87f3d81cbbb6a9")
- provider.current_resource.iterations.should eq(39840)
+ expect(provider.current_resource.salt).to eq("f994ef2f73b7c5594ebd1553300976b20733ce0e24d659783d87f3d81cbbb6a9")
+ expect(provider.current_resource.iterations).to eq(39840)
end
end
@@ -512,12 +512,12 @@ e68d1f9821b26689312366")
it "collects the user data correctly" do
provider.load_current_resource
- provider.current_resource.comment.should eq("vagrant")
- provider.current_resource.uid.should eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
- provider.current_resource.gid.should eq("80")
- provider.current_resource.home.should eq("/Users/vagrant")
- provider.current_resource.shell.should eq("/bin/bash")
- provider.current_resource.password.should eq("6f75d7190441facc34291ebbea1fc756b242d4f\
+ expect(provider.current_resource.comment).to eq("vagrant")
+ expect(provider.current_resource.uid).to eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
+ expect(provider.current_resource.gid).to eq("80")
+ expect(provider.current_resource.home).to eq("/Users/vagrant")
+ expect(provider.current_resource.shell).to eq("/bin/bash")
+ expect(provider.current_resource.password).to eq("6f75d7190441facc34291ebbea1fc756b242d4f\
e9bcff141bccb84f1979e27e539539aa31f9f7dcc92c0cea959\
ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
@@ -525,7 +525,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
describe "when a plain text password is set" do
it "reports password needs to be updated" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
@@ -536,7 +536,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "reports password needs to be updated" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
end
@@ -550,14 +550,14 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "collects the user data correctly" do
provider.load_current_resource
- provider.current_resource.comment.should eq("vagrant")
- provider.current_resource.uid.should eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
- provider.current_resource.gid.should eq("80")
- provider.current_resource.home.should eq("/Users/vagrant")
- provider.current_resource.shell.should eq("/bin/bash")
- provider.current_resource.password.should eq(vagrant_sha_512_pbkdf2)
- provider.current_resource.salt.should eq(vagrant_sha_512_pbkdf2_salt)
- provider.current_resource.iterations.should eq(vagrant_sha_512_pbkdf2_iterations)
+ expect(provider.current_resource.comment).to eq("vagrant")
+ expect(provider.current_resource.uid).to eq("11112222-3333-4444-AAAA-BBBBCCCCDDDD")
+ expect(provider.current_resource.gid).to eq("80")
+ expect(provider.current_resource.home).to eq("/Users/vagrant")
+ expect(provider.current_resource.shell).to eq("/bin/bash")
+ expect(provider.current_resource.password).to eq(vagrant_sha_512_pbkdf2)
+ expect(provider.current_resource.salt).to eq(vagrant_sha_512_pbkdf2_salt)
+ expect(provider.current_resource.iterations).to eq(vagrant_sha_512_pbkdf2_iterations)
end
describe "when a plain password is set that is same" do
@@ -565,7 +565,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "diverged_password? should report false" do
provider.load_current_resource
- provider.diverged_password?.should be_false
+ expect(provider.diverged_password?).to be_false
end
end
@@ -574,7 +574,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "diverged_password? should report true" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
@@ -585,7 +585,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "diverged_password? should report true" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
@@ -596,7 +596,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "diverged_password? should report true" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
@@ -607,7 +607,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "diverged_password? should report true" do
provider.load_current_resource
- provider.diverged_password?.should be_true
+ expect(provider.diverged_password?).to be_true
end
end
end
@@ -616,23 +616,23 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
describe "salted_sha512_pbkdf2?" do
it "should return true when the string is a salted_sha512_pbkdf2 hash" do
- provider.salted_sha512_pbkdf2?(salted_sha512_pbkdf2_password).should be_true
+ expect(provider.salted_sha512_pbkdf2?(salted_sha512_pbkdf2_password)).to be_true
end
it "should return false otherwise" do
- provider.salted_sha512_pbkdf2?(salted_sha512_password).should be_false
- provider.salted_sha512_pbkdf2?("any other string").should be_false
+ expect(provider.salted_sha512_pbkdf2?(salted_sha512_password)).to be_false
+ expect(provider.salted_sha512_pbkdf2?("any other string")).to be_false
end
end
describe "salted_sha512?" do
it "should return true when the string is a salted_sha512_pbkdf2 hash" do
- provider.salted_sha512_pbkdf2?(salted_sha512_pbkdf2_password).should be_true
+ expect(provider.salted_sha512_pbkdf2?(salted_sha512_pbkdf2_password)).to be_true
end
it "should return false otherwise" do
- provider.salted_sha512?(salted_sha512_pbkdf2_password).should be_false
- provider.salted_sha512?("any other string").should be_false
+ expect(provider.salted_sha512?(salted_sha512_pbkdf2_password)).to be_false
+ expect(provider.salted_sha512?("any other string")).to be_false
end
end
@@ -647,9 +647,9 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "password_shadow_info should have salted-sha-512 format" do
shadow_info = provider.prepare_password_shadow_info
- shadow_info.should have_key("SALTED-SHA512")
+ expect(shadow_info).to have_key("SALTED-SHA512")
info = shadow_info["SALTED-SHA512"].string.unpack('H*').first
- provider.salted_sha512?(info).should be_true
+ expect(provider.salted_sha512?(info)).to be_true
end
end
@@ -658,10 +658,10 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "password_shadow_info should have salted-sha-512 format" do
shadow_info = provider.prepare_password_shadow_info
- shadow_info.should have_key("SALTED-SHA512")
+ expect(shadow_info).to have_key("SALTED-SHA512")
info = shadow_info["SALTED-SHA512"].string.unpack('H*').first
- provider.salted_sha512?(info).should be_true
- info.should eq(vagrant_sha_512)
+ expect(provider.salted_sha512?(info)).to be_true
+ expect(info).to eq(vagrant_sha_512)
end
end
end
@@ -677,12 +677,12 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "password_shadow_info should have salted-sha-512 format" do
shadow_info = provider.prepare_password_shadow_info
- shadow_info.should have_key("SALTED-SHA512-PBKDF2")
- shadow_info["SALTED-SHA512-PBKDF2"].should have_key("entropy")
- shadow_info["SALTED-SHA512-PBKDF2"].should have_key("salt")
- shadow_info["SALTED-SHA512-PBKDF2"].should have_key("iterations")
+ expect(shadow_info).to have_key("SALTED-SHA512-PBKDF2")
+ expect(shadow_info["SALTED-SHA512-PBKDF2"]).to have_key("entropy")
+ expect(shadow_info["SALTED-SHA512-PBKDF2"]).to have_key("salt")
+ expect(shadow_info["SALTED-SHA512-PBKDF2"]).to have_key("iterations")
info = shadow_info["SALTED-SHA512-PBKDF2"]["entropy"].string.unpack('H*').first
- provider.salted_sha512_pbkdf2?(info).should be_true
+ expect(provider.salted_sha512_pbkdf2?(info)).to be_true
end
end
@@ -693,13 +693,13 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
it "password_shadow_info should have salted-sha-512 format" do
shadow_info = provider.prepare_password_shadow_info
- shadow_info.should have_key("SALTED-SHA512-PBKDF2")
- shadow_info["SALTED-SHA512-PBKDF2"].should have_key("entropy")
- shadow_info["SALTED-SHA512-PBKDF2"].should have_key("salt")
- shadow_info["SALTED-SHA512-PBKDF2"].should have_key("iterations")
+ expect(shadow_info).to have_key("SALTED-SHA512-PBKDF2")
+ expect(shadow_info["SALTED-SHA512-PBKDF2"]).to have_key("entropy")
+ expect(shadow_info["SALTED-SHA512-PBKDF2"]).to have_key("salt")
+ expect(shadow_info["SALTED-SHA512-PBKDF2"]).to have_key("iterations")
info = shadow_info["SALTED-SHA512-PBKDF2"]["entropy"].string.unpack('H*').first
- provider.salted_sha512_pbkdf2?(info).should be_true
- info.should eq(vagrant_sha_512_pbkdf2)
+ expect(provider.salted_sha512_pbkdf2?(info)).to be_true
+ expect(info).to eq(vagrant_sha_512_pbkdf2)
end
end
end
@@ -712,14 +712,14 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
it "should sleep and flush the dscl cache before saving the password" do
- provider.should_receive(:prepare_password_shadow_info).and_return({ })
+ expect(provider).to receive(:prepare_password_shadow_info).and_return({ })
mock_shellout = double("Mock::Shellout")
- mock_shellout.stub(:run_command)
- Mixlib::ShellOut.should_receive(:new).and_return(mock_shellout)
- provider.should_receive(:read_user_info)
- provider.should_receive(:dscl_set)
- provider.should_receive(:sleep).with(3)
- provider.should_receive(:save_user_info)
+ allow(mock_shellout).to receive(:run_command)
+ expect(Mixlib::ShellOut).to receive(:new).and_return(mock_shellout)
+ expect(provider).to receive(:read_user_info)
+ expect(provider).to receive(:dscl_set)
+ expect(provider).to receive(:sleep).with(3)
+ expect(provider).to receive(:save_user_info)
provider.set_password
end
end
@@ -732,33 +732,33 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
it "creates the user, comment field, sets uid, gid, configures the home directory, sets the shell, and sets the password" do
- provider.should_receive :dscl_create_user
- provider.should_receive :dscl_create_comment
- provider.should_receive :dscl_set_uid
- provider.should_receive :dscl_set_gid
- provider.should_receive :dscl_set_home
- provider.should_receive :dscl_set_shell
- provider.should_receive :set_password
+ expect(provider).to receive :dscl_create_user
+ expect(provider).to receive :dscl_create_comment
+ expect(provider).to receive :dscl_set_uid
+ expect(provider).to receive :dscl_set_gid
+ expect(provider).to receive :dscl_set_home
+ expect(provider).to receive :dscl_set_shell
+ expect(provider).to receive :set_password
provider.create_user
end
it "creates the user and sets the comment field" do
- provider.should_receive(:run_dscl).with("create /Users/toor").and_return(true)
+ expect(provider).to receive(:run_dscl).with("create /Users/toor").and_return(true)
provider.dscl_create_user
end
it "sets the comment field" do
- provider.should_receive(:run_dscl).with("create /Users/toor RealName '#mockssuck'").and_return(true)
+ expect(provider).to receive(:run_dscl).with("create /Users/toor RealName '#mockssuck'").and_return(true)
provider.dscl_create_comment
end
it "should run run_dscl with create /Users/user PrimaryGroupID to set the users primary group" do
- provider.should_receive(:run_dscl).with("create /Users/toor PrimaryGroupID '1001'").and_return(true)
+ expect(provider).to receive(:run_dscl).with("create /Users/toor PrimaryGroupID '1001'").and_return(true)
provider.dscl_set_gid
end
it "should run run_dscl with create /Users/user UserShell to set the users login shell" do
- provider.should_receive(:run_dscl).with("create /Users/toor UserShell '/usr/bin/false'").and_return(true)
+ expect(provider).to receive(:run_dscl).with("create /Users/toor UserShell '/usr/bin/false'").and_return(true)
provider.dscl_set_shell
end
end
@@ -770,15 +770,15 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
it "should map the group name to a numeric ID when the group exists" do
- provider.should_receive(:run_dscl).with("read /Groups/newgroup PrimaryGroupID").ordered.and_return("PrimaryGroupID: 1001\n")
- provider.should_receive(:run_dscl).with("create /Users/toor PrimaryGroupID '1001'").ordered.and_return(true)
+ expect(provider).to receive(:run_dscl).with("read /Groups/newgroup PrimaryGroupID").ordered.and_return("PrimaryGroupID: 1001\n")
+ expect(provider).to receive(:run_dscl).with("create /Users/toor PrimaryGroupID '1001'").ordered.and_return(true)
provider.dscl_set_gid
end
it "should raise an exception when the group does not exist" do
shell_return = ShellCmdResult.new("<dscl_cmd> DS Error: -14136 (eDSRecordNotFound)", 'err', -14136)
- provider.should_receive(:shell_out).with('dscl . -read /Groups/newgroup PrimaryGroupID').and_return(shell_return)
- lambda { provider.dscl_set_gid }.should raise_error(Chef::Exceptions::GroupIDNotFound)
+ expect(provider).to receive(:shell_out).with('dscl . -read /Groups/newgroup PrimaryGroupID').and_return(shell_return)
+ expect { provider.dscl_set_gid }.to raise_error(Chef::Exceptions::GroupIDNotFound)
end
end
end
@@ -797,13 +797,13 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
it "sets the user, comment field, uid, gid, moves the home directory, sets the shell, and sets the password" do
- provider.should_receive :dscl_create_user
- provider.should_receive :dscl_create_comment
- provider.should_receive :dscl_set_uid
- provider.should_receive :dscl_set_gid
- provider.should_receive :dscl_set_home
- provider.should_receive :dscl_set_shell
- provider.should_receive :set_password
+ expect(provider).to receive :dscl_create_user
+ expect(provider).to receive :dscl_create_comment
+ expect(provider).to receive :dscl_set_uid
+ expect(provider).to receive :dscl_set_gid
+ expect(provider).to receive :dscl_set_home
+ expect(provider).to receive :dscl_set_shell
+ expect(provider).to receive :set_password
provider.create_user
end
end
@@ -818,15 +818,15 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
it "sets the gid" do
- provider.should_receive :dscl_set_gid
+ expect(provider).to receive :dscl_set_gid
provider.manage_user
end
end
describe "when the user exists" do
before do
- provider.should_receive(:shell_out).with("dscacheutil '-flushcache'")
- provider.should_receive(:shell_out).with("plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/toor.plist") do
+ expect(provider).to receive(:shell_out).with("dscacheutil '-flushcache'")
+ expect(provider).to receive(:shell_out).with("plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/toor.plist") do
ShellCmdResult.new(File.read(File.join(CHEF_SPEC_DATA, "mac_users/10.9.plist.xml")), "", 0)
end
provider.load_current_resource
@@ -835,20 +835,20 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
describe "when Chef is removing the user" do
it "removes the user from the groups and deletes home directory when the resource is configured to manage home" do
new_resource.supports({ :manage_home => true })
- provider.should_receive(:run_dscl).with("list /Groups").and_return("my_group\nyour_group\nreal_group\n")
- provider.should_receive(:run_dscl).with("read /Groups/my_group").and_raise(Chef::Exceptions::DsclCommandFailed) # Empty group
- provider.should_receive(:run_dscl).with("read /Groups/your_group").and_return("GroupMembership: not_you")
- provider.should_receive(:run_dscl).with("read /Groups/real_group").and_return("GroupMembership: toor")
- provider.should_receive(:run_dscl).with("delete /Groups/real_group GroupMembership 'toor'")
- provider.should_receive(:run_dscl).with("delete /Users/toor")
- FileUtils.should_receive(:rm_rf).with("/Users/vagrant")
+ expect(provider).to receive(:run_dscl).with("list /Groups").and_return("my_group\nyour_group\nreal_group\n")
+ expect(provider).to receive(:run_dscl).with("read /Groups/my_group").and_raise(Chef::Exceptions::DsclCommandFailed) # Empty group
+ expect(provider).to receive(:run_dscl).with("read /Groups/your_group").and_return("GroupMembership: not_you")
+ expect(provider).to receive(:run_dscl).with("read /Groups/real_group").and_return("GroupMembership: toor")
+ expect(provider).to receive(:run_dscl).with("delete /Groups/real_group GroupMembership 'toor'")
+ expect(provider).to receive(:run_dscl).with("delete /Users/toor")
+ expect(FileUtils).to receive(:rm_rf).with("/Users/vagrant")
provider.remove_user
end
end
describe "when user is not locked" do
it "determines the user as not locked" do
- provider.should_not be_locked
+ expect(provider).not_to be_locked
end
end
@@ -859,11 +859,11 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
end
it "determines the user as not locked" do
- provider.should be_locked
+ expect(provider).to be_locked
end
it "can unlock the user" do
- provider.should_receive(:run_dscl).with("create /Users/toor AuthenticationAuthority ';ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2>'")
+ expect(provider).to receive(:run_dscl).with("create /Users/toor AuthenticationAuthority ';ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2>'")
provider.unlock_user
end
end
@@ -871,7 +871,7 @@ ea18e18b720e358e7fbe3cfbeaa561456f6ba008937a30")
describe "when locking the user" do
it "should run run_dscl with append /Users/user AuthenticationAuthority ;DisabledUser; to lock the user account" do
- provider.should_receive(:run_dscl).with("append /Users/toor AuthenticationAuthority ';DisabledUser;'")
+ expect(provider).to receive(:run_dscl).with("append /Users/toor AuthenticationAuthority ';DisabledUser;'")
provider.lock_user
end
end
diff --git a/spec/unit/provider/user/pw_spec.rb b/spec/unit/provider/user/pw_spec.rb
index a577a57de9..b225972e87 100644
--- a/spec/unit/provider/user/pw_spec.rb
+++ b/spec/unit/provider/user/pw_spec.rb
@@ -56,64 +56,64 @@ describe Chef::Provider::User::Pw do
}
field_list.each do |attribute, option|
it "should check for differences in #{attribute} between the new and current resources" do
- @current_resource.should_receive(attribute)
- @new_resource.should_receive(attribute)
+ expect(@current_resource).to receive(attribute)
+ expect(@new_resource).to receive(attribute)
@provider.set_options
end
it "should set the option for #{attribute} if the new resources #{attribute} is not null" do
- @new_resource.stub(attribute).and_return("hola")
- @provider.set_options.should eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}' -m")
+ allow(@new_resource).to receive(attribute).and_return("hola")
+ expect(@provider.set_options).to eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}' -m")
end
it "should set the option for #{attribute} if the new resources #{attribute} is not null, without homedir management" do
- @new_resource.stub(:supports).and_return({:manage_home => false})
- @new_resource.stub(attribute).and_return("hola")
- @provider.set_options.should eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}'")
+ allow(@new_resource).to receive(:supports).and_return({:manage_home => false})
+ allow(@new_resource).to receive(attribute).and_return("hola")
+ expect(@provider.set_options).to eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}'")
end
end
it "should combine all the possible options" do
match_string = " adam"
field_list.sort{ |a,b| a[0] <=> b[0] }.each do |attribute, option|
- @new_resource.stub(attribute).and_return("hola")
+ allow(@new_resource).to receive(attribute).and_return("hola")
match_string << " #{option} 'hola'"
end
match_string << " -m"
- @provider.set_options.should eql(match_string)
+ expect(@provider.set_options).to eql(match_string)
end
end
describe "create_user" do
before(:each) do
- @provider.stub(:run_command).and_return(true)
- @provider.stub(:modify_password).and_return(true)
+ allow(@provider).to receive(:run_command).and_return(true)
+ allow(@provider).to receive(:modify_password).and_return(true)
end
it "should run pw useradd with the return of set_options" do
- @provider.should_receive(:run_command).with({ :command => "pw useradd adam -m" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw useradd adam -m" }).and_return(true)
@provider.create_user
end
it "should modify the password" do
- @provider.should_receive(:modify_password).and_return(true)
+ expect(@provider).to receive(:modify_password).and_return(true)
@provider.create_user
end
end
describe "manage_user" do
before(:each) do
- @provider.stub(:run_command).and_return(true)
- @provider.stub(:modify_password).and_return(true)
+ allow(@provider).to receive(:run_command).and_return(true)
+ allow(@provider).to receive(:modify_password).and_return(true)
end
it "should run pw usermod with the return of set_options" do
- @provider.should_receive(:run_command).with({ :command => "pw usermod adam -m" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw usermod adam -m" }).and_return(true)
@provider.manage_user
end
it "should modify the password" do
- @provider.should_receive(:modify_password).and_return(true)
+ expect(@provider).to receive(:modify_password).and_return(true)
@provider.create_user
end
end
@@ -121,38 +121,38 @@ describe Chef::Provider::User::Pw do
describe "remove_user" do
it "should run pw userdel with the new resources user name" do
@new_resource.supports :manage_home => false
- @provider.should_receive(:run_command).with({ :command => "pw userdel #{@new_resource.username}" }).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw userdel #{@new_resource.username}" }).and_return(true)
@provider.remove_user
end
it "should run pw userdel with the new resources user name and -r if manage_home is true" do
- @provider.should_receive(:run_command).with({ :command => "pw userdel #{@new_resource.username} -r"}).and_return(true)
+ expect(@provider).to receive(:run_command).with({ :command => "pw userdel #{@new_resource.username} -r"}).and_return(true)
@provider.remove_user
end
end
describe "determining if the user is locked" do
it "should return true if user is locked" do
- @current_resource.stub(:password).and_return("*LOCKED*abracadabra")
- @provider.check_lock.should eql(true)
+ allow(@current_resource).to receive(:password).and_return("*LOCKED*abracadabra")
+ expect(@provider.check_lock).to eql(true)
end
it "should return false if user is not locked" do
- @current_resource.stub(:password).and_return("abracadabra")
- @provider.check_lock.should eql(false)
+ allow(@current_resource).to receive(:password).and_return("abracadabra")
+ expect(@provider.check_lock).to eql(false)
end
end
describe "when locking the user" do
it "should run pw lock with the new resources username" do
- @provider.should_receive(:run_command).with({ :command => "pw lock #{@new_resource.username}"})
+ expect(@provider).to receive(:run_command).with({ :command => "pw lock #{@new_resource.username}"})
@provider.lock_user
end
end
describe "when unlocking the user" do
it "should run pw unlock with the new resources username" do
- @provider.should_receive(:run_command).with({ :command => "pw unlock #{@new_resource.username}"})
+ expect(@provider).to receive(:run_command).with({ :command => "pw unlock #{@new_resource.username}"})
@provider.unlock_user
end
end
@@ -160,76 +160,76 @@ describe Chef::Provider::User::Pw do
describe "when modifying the password" do
before(:each) do
@status = double("Status", :exitstatus => 0)
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@pid, @stdin, @stdout, @stderr = nil, nil, nil, nil
end
describe "and the new password has not been specified" do
before(:each) do
- @new_resource.stub(:password).and_return(nil)
+ allow(@new_resource).to receive(:password).and_return(nil)
end
it "logs an appropriate message" do
- Chef::Log.should_receive(:debug).with("user[adam] no change needed to password")
+ expect(Chef::Log).to receive(:debug).with("user[adam] no change needed to password")
@provider.modify_password
end
end
describe "and the new password has been specified" do
before(:each) do
- @new_resource.stub(:password).and_return("abracadabra")
+ allow(@new_resource).to receive(:password).and_return("abracadabra")
end
it "should check for differences in password between the new and current resources" do
- @current_resource.should_receive(:password)
- @new_resource.should_receive(:password)
+ expect(@current_resource).to receive(:password)
+ expect(@new_resource).to receive(:password)
@provider.modify_password
end
end
describe "and the passwords are identical" do
before(:each) do
- @new_resource.stub(:password).and_return("abracadabra")
- @current_resource.stub(:password).and_return("abracadabra")
+ allow(@new_resource).to receive(:password).and_return("abracadabra")
+ allow(@current_resource).to receive(:password).and_return("abracadabra")
end
it "logs an appropriate message" do
- Chef::Log.should_receive(:debug).with("user[adam] no change needed to password")
+ expect(Chef::Log).to receive(:debug).with("user[adam] no change needed to password")
@provider.modify_password
end
end
describe "and the passwords are different" do
before(:each) do
- @new_resource.stub(:password).and_return("abracadabra")
- @current_resource.stub(:password).and_return("sesame")
+ allow(@new_resource).to receive(:password).and_return("abracadabra")
+ allow(@current_resource).to receive(:password).and_return("sesame")
end
it "should log an appropriate message" do
- Chef::Log.should_receive(:debug).with("user[adam] updating password")
+ expect(Chef::Log).to receive(:debug).with("user[adam] updating password")
@provider.modify_password
end
it "should run pw usermod with the username and the option -H 0" do
- @provider.should_receive(:popen4).with("pw usermod adam -H 0", :waitlast => true).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pw usermod adam -H 0", :waitlast => true).and_return(@status)
@provider.modify_password
end
it "should send the new password to the stdin of pw usermod" do
@stdin = StringIO.new
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.modify_password
- @stdin.string.should == "abracadabra\n"
+ expect(@stdin.string).to eq("abracadabra\n")
end
it "should raise an exception if pw usermod fails" do
- @status.should_receive(:exitstatus).and_return(1)
- lambda { @provider.modify_password }.should raise_error(Chef::Exceptions::User)
+ expect(@status).to receive(:exitstatus).and_return(1)
+ expect { @provider.modify_password }.to raise_error(Chef::Exceptions::User)
end
it "should not raise an exception if pw usermod succeeds" do
- @status.should_receive(:exitstatus).and_return(0)
- lambda { @provider.modify_password }.should_not raise_error
+ expect(@status).to receive(:exitstatus).and_return(0)
+ expect { @provider.modify_password }.not_to raise_error
end
end
end
@@ -240,13 +240,13 @@ describe Chef::Provider::User::Pw do
end
it "should raise an error if the required binary /usr/sbin/pw doesn't exist" do
- File.should_receive(:exists?).with("/usr/sbin/pw").and_return(false)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::User)
+ expect(File).to receive(:exists?).with("/usr/sbin/pw").and_return(false)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::User)
end
it "shouldn't raise an error if /usr/sbin/pw exists" do
- File.stub(:exists?).and_return(true)
- lambda { @provider.load_current_resource }.should_not raise_error
+ allow(File).to receive(:exists?).and_return(true)
+ expect { @provider.load_current_resource }.not_to raise_error
end
end
end
diff --git a/spec/unit/provider/user/solaris_spec.rb b/spec/unit/provider/user/solaris_spec.rb
index d8bd0f9e75..ab9055bbd2 100644
--- a/spec/unit/provider/user/solaris_spec.rb
+++ b/spec/unit/provider/user/solaris_spec.rb
@@ -27,7 +27,7 @@ describe Chef::Provider::User::Solaris do
p.current_resource = @current_resource
# Prevent the useradd-based provider tests from trying to write /etc/shadow
- p.stub(:write_shadow_file)
+ allow(p).to receive(:write_shadow_file)
p
end
@@ -52,12 +52,12 @@ describe Chef::Provider::User::Solaris do
@new_resource.password "hocus-pocus"
# Let these tests run #write_shadow_file
- provider.unstub(:write_shadow_file)
+ allow(provider).to receive(:write_shadow_file).and_call_original
end
it "should use its own shadow file writer to set the password" do
- provider.should_receive(:write_shadow_file)
- provider.stub(:shell_out!).and_return(true)
+ expect(provider).to receive(:write_shadow_file)
+ allow(provider).to receive(:shell_out!).and_return(true)
provider.manage_user
end
@@ -66,13 +66,13 @@ describe Chef::Provider::User::Solaris do
password_file.puts "adam:existingpassword:15441::::::"
password_file.close
provider.password_file = password_file.path
- provider.stub(:shell_out!).and_return(true)
+ allow(provider).to receive(:shell_out!).and_return(true)
# may not be able to write to /etc for tests...
temp_file = Tempfile.new("shadow")
- Tempfile.stub(:new).with("shadow", "/etc").and_return(temp_file)
+ allow(Tempfile).to receive(:new).with("shadow", "/etc").and_return(temp_file)
@new_resource.password "verysecurepassword"
provider.manage_user
- ::File.open(password_file.path, "r").read.should =~ /adam:verysecurepassword:/
+ expect(::File.open(password_file.path, "r").read).to match(/adam:verysecurepassword:/)
password_file.unlink
end
end
diff --git a/spec/unit/provider/user/useradd_spec.rb b/spec/unit/provider/user/useradd_spec.rb
index a65da3f9e1..b9f6ee0d86 100644
--- a/spec/unit/provider/user/useradd_spec.rb
+++ b/spec/unit/provider/user/useradd_spec.rb
@@ -43,7 +43,7 @@ describe Chef::Provider::User::Useradd do
# CHEF-5247: Chef::Provider::User::Solaris subclasses Chef::Provider::User::Useradd, but does not use usermod to change passwords.
# Thus, a call to Solaris#manage_user calls Solaris#manage_password and Useradd#manage_user, but the latter should be a no-op.
it "should not run the command if universal_options is an empty array" do
- provider.stub(:universal_options).and_return([])
+ allow(provider).to receive(:universal_options).and_return([])
expect(provider).not_to receive(:shell_out!)
provider.manage_user
end
diff --git a/spec/unit/provider/user/windows_spec.rb b/spec/unit/provider/user/windows_spec.rb
index 45a1c61c41..e51e20a68f 100644
--- a/spec/unit/provider/user/windows_spec.rb
+++ b/spec/unit/provider/user/windows_spec.rb
@@ -36,7 +36,7 @@ describe Chef::Provider::User::Windows do
@current_resource = Chef::Resource::User.new("monkey")
@net_user = double("Chef::Util::Windows::NetUser")
- Chef::Util::Windows::NetUser.stub(:new).and_return(@net_user)
+ allow(Chef::Util::Windows::NetUser).to receive(:new).and_return(@net_user)
@provider = Chef::Provider::User::Windows.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
@@ -62,27 +62,27 @@ describe Chef::Provider::User::Windows do
describe "and the attributes match" do
it "doesn't set the comment field to be updated" do
- @provider.set_options.should_not have_key(:full_name)
+ expect(@provider.set_options).not_to have_key(:full_name)
end
it "doesn't set the home directory to be updated" do
- @provider.set_options.should_not have_key(:home_dir)
+ expect(@provider.set_options).not_to have_key(:home_dir)
end
it "doesn't set the group id to be updated" do
- @provider.set_options.should_not have_key(:primary_group_id)
+ expect(@provider.set_options).not_to have_key(:primary_group_id)
end
it "doesn't set the user id to be updated" do
- @provider.set_options.should_not have_key(:user_id)
+ expect(@provider.set_options).not_to have_key(:user_id)
end
it "doesn't set the shell to be updated" do
- @provider.set_options.should_not have_key(:script_path)
+ expect(@provider.set_options).not_to have_key(:script_path)
end
it "doesn't set the password to be updated" do
- @provider.set_options.should_not have_key(:password)
+ expect(@provider.set_options).not_to have_key(:password)
end
end
@@ -100,53 +100,53 @@ describe Chef::Provider::User::Windows do
end
it "marks the full_name field to be updated" do
- @provider.set_options[:full_name].should == "Adam Jacob"
+ expect(@provider.set_options[:full_name]).to eq("Adam Jacob")
end
it "marks the home_dir attribute to be updated" do
- @provider.set_options[:home_dir].should == '/home/adam'
+ expect(@provider.set_options[:home_dir]).to eq('/home/adam')
end
it "marks the primary_group_id attribute to be updated" do
- @provider.set_options[:primary_group_id].should == 1000
+ expect(@provider.set_options[:primary_group_id]).to eq(1000)
end
it "marks the user_id attribute to be updated" do
- @provider.set_options[:user_id].should == 1000
+ expect(@provider.set_options[:user_id]).to eq(1000)
end
it "marks the script_path attribute to be updated" do
- @provider.set_options[:script_path].should == '/usr/bin/zsh'
+ expect(@provider.set_options[:script_path]).to eq('/usr/bin/zsh')
end
it "marks the password attribute to be updated" do
- @provider.set_options[:password].should == 'abracadabra'
+ expect(@provider.set_options[:password]).to eq('abracadabra')
end
end
end
describe "when creating the user" do
it "should call @net_user.add with the return of set_options" do
- @provider.stub(:set_options).and_return(:name=> "monkey")
- @net_user.should_receive(:add).with(:name=> "monkey")
+ allow(@provider).to receive(:set_options).and_return(:name=> "monkey")
+ expect(@net_user).to receive(:add).with(:name=> "monkey")
@provider.create_user
end
end
describe "manage_user" do
before(:each) do
- @provider.stub(:set_options).and_return(:name=> "monkey")
+ allow(@provider).to receive(:set_options).and_return(:name=> "monkey")
end
it "should call @net_user.update with the return of set_options" do
- @net_user.should_receive(:update).with(:name=> "monkey")
+ expect(@net_user).to receive(:update).with(:name=> "monkey")
@provider.manage_user
end
end
describe "when removing the user" do
it "should call @net_user.delete" do
- @net_user.should_receive(:delete)
+ expect(@net_user).to receive(:delete)
@provider.remove_user
end
end
@@ -157,28 +157,28 @@ describe Chef::Provider::User::Windows do
end
it "should return true if user is locked" do
- @net_user.stub(:check_enabled).and_return(true)
- @provider.check_lock.should eql(true)
+ allow(@net_user).to receive(:check_enabled).and_return(true)
+ expect(@provider.check_lock).to eql(true)
end
it "should return false if user is not locked" do
- @net_user.stub(:check_enabled).and_return(false)
- @provider.check_lock.should eql(false)
+ allow(@net_user).to receive(:check_enabled).and_return(false)
+ expect(@provider.check_lock).to eql(false)
end
end
describe "locking the user" do
it "should call @net_user.disable_account" do
- @net_user.stub(:check_enabled).and_return(true)
- @net_user.should_receive(:disable_account)
+ allow(@net_user).to receive(:check_enabled).and_return(true)
+ expect(@net_user).to receive(:disable_account)
@provider.lock_user
end
end
describe "unlocking the user" do
it "should call @net_user.enable_account" do
- @net_user.stub(:check_enabled).and_return(false)
- @net_user.should_receive(:enable_account)
+ allow(@net_user).to receive(:check_enabled).and_return(false)
+ expect(@net_user).to receive(:enable_account)
@provider.unlock_user
end
end
diff --git a/spec/unit/provider/user_spec.rb b/spec/unit/provider/user_spec.rb
index 153db6f283..44434794e7 100644
--- a/spec/unit/provider/user_spec.rb
+++ b/spec/unit/provider/user_spec.rb
@@ -47,11 +47,11 @@ describe Chef::Provider::User do
describe "when first created" do
it "assume the user exists by default" do
- @provider.user_exists.should eql(true)
+ expect(@provider.user_exists).to eql(true)
end
it "does not know the locked state" do
- @provider.locked.should eql(nil)
+ expect(@provider.locked).to eql(nil)
end
end
@@ -69,7 +69,7 @@ describe Chef::Provider::User do
# :password => nil,
# :updated => nil
#)
- Chef::Resource::User.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::User).to receive(:new).and_return(@current_resource)
@pw_user = EtcPwnamIsh.new
@pw_user.name = "adam"
@pw_user.gid = 1000
@@ -78,34 +78,34 @@ describe Chef::Provider::User do
@pw_user.dir = "/home/adam"
@pw_user.shell = "/usr/bin/zsh"
@pw_user.passwd = "*"
- Etc.stub(:getpwnam).and_return(@pw_user)
+ allow(Etc).to receive(:getpwnam).and_return(@pw_user)
end
it "should create a current resource with the same name as the new resource" do
@provider.load_current_resource
- @provider.current_resource.name.should == 'adam'
+ expect(@provider.current_resource.name).to eq('adam')
end
it "should set the username of the current resource to the username of the new resource" do
@provider.load_current_resource
- @current_resource.username.should == @new_resource.username
+ expect(@current_resource.username).to eq(@new_resource.username)
end
it "should change the encoding of gecos to the encoding of the new resource", :ruby_gte_19_only do
@pw_user.gecos.force_encoding('ASCII-8BIT')
@provider.load_current_resource
- @provider.current_resource.comment.encoding.should == @new_resource.comment.encoding
+ expect(@provider.current_resource.comment.encoding).to eq(@new_resource.comment.encoding)
end
it "should look up the user in /etc/passwd with getpwnam" do
- Etc.should_receive(:getpwnam).with(@new_resource.username).and_return(@pw_user)
+ expect(Etc).to receive(:getpwnam).with(@new_resource.username).and_return(@pw_user)
@provider.load_current_resource
end
it "should set user_exists to false if the user is not found with getpwnam" do
- Etc.should_receive(:getpwnam).and_raise(ArgumentError)
+ expect(Etc).to receive(:getpwnam).and_raise(ArgumentError)
@provider.load_current_resource
- @provider.user_exists.should eql(false)
+ expect(@provider.user_exists).to eql(false)
end
# The mapping between the Chef::Resource::User and Getpwnam struct
@@ -118,24 +118,24 @@ describe Chef::Provider::User do
}
user_attrib_map.each do |user_attrib, getpwnam_attrib|
it "should set the current resources #{user_attrib} based on getpwnam #{getpwnam_attrib}" do
- @current_resource.should_receive(user_attrib).with(@pw_user.send(getpwnam_attrib))
+ expect(@current_resource).to receive(user_attrib).with(@pw_user.send(getpwnam_attrib))
@provider.load_current_resource
end
end
it "should attempt to convert the group gid if one has been supplied" do
- @provider.should_receive(:convert_group_name)
+ expect(@provider).to receive(:convert_group_name)
@provider.load_current_resource
end
it "shouldn't try and convert the group gid if none has been supplied" do
- @new_resource.stub(:gid).and_return(nil)
- @provider.should_not_receive(:convert_group_name)
+ allow(@new_resource).to receive(:gid).and_return(nil)
+ expect(@provider).not_to receive(:convert_group_name)
@provider.load_current_resource
end
it "should return the current resource" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
describe "and running assertions" do
@@ -156,7 +156,7 @@ describe Chef::Provider::User do
user.name = "root"
user.passwd = "x"
@new_resource.password "some new password"
- Etc.stub(:getpwnam).and_return(user)
+ allow(Etc).to receive(:getpwnam).and_return(user)
end
unless shadow_lib_unavail?
@@ -167,10 +167,10 @@ describe Chef::Provider::User do
it "should pass assertions when ruby-shadow can be loaded" do
@provider.action = 'create'
original_method = @provider.method(:require)
- @provider.should_receive(:require) { |*args| original_method.call(*args) }
+ expect(@provider).to receive(:require) { |*args| original_method.call(*args) }
passwd_info = Struct::PasswdEntry.new(:sp_namp => "adm ", :sp_pwdp => "$1$T0N0Q.lc$nyG6pFI3Dpqa5cxUz/57j0", :sp_lstchg => 14861, :sp_min => 0, :sp_max => 99999,
:sp_warn => 7, :sp_inact => -1, :sp_expire => -1, :sp_flag => -1)
- Shadow::Passwd.should_receive(:getspnam).with("adam").and_return(passwd_info)
+ expect(Shadow::Passwd).to receive(:getspnam).with("adam").and_return(passwd_info)
@provider.load_current_resource
@provider.define_resource_requirements
@provider.process_resource_requirements
@@ -180,10 +180,10 @@ describe Chef::Provider::User do
end
it "should fail assertions when ruby-shadow cannot be loaded" do
- @provider.should_receive(:require).with("shadow") { raise LoadError }
+ expect(@provider).to receive(:require).with("shadow") { raise LoadError }
@provider.load_current_resource
@provider.define_resource_requirements
- lambda {@provider.process_resource_requirements}.should raise_error Chef::Exceptions::MissingLibrary
+ expect {@provider.process_resource_requirements}.to raise_error Chef::Exceptions::MissingLibrary
end
end
@@ -206,7 +206,7 @@ describe Chef::Provider::User do
it "should return true if #{attribute} doesn't match" do
@new_resource.send(attribute, mapping[attribute][0])
@current_resource.send(attribute, mapping[attribute][1])
- @provider.compare_user.should eql(true)
+ expect(@provider.compare_user).to eql(true)
end
end
@@ -214,18 +214,18 @@ describe Chef::Provider::User do
it "should return false if string #{attribute} matches fixnum" do
@new_resource.send(attribute, "100")
@current_resource.send(attribute, 100)
- @provider.compare_user.should eql(false)
+ expect(@provider.compare_user).to eql(false)
end
end
it "should return false if the objects are identical" do
- @provider.compare_user.should eql(false)
+ expect(@provider.compare_user).to eql(false)
end
end
describe "action_create" do
before(:each) do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
# @current_resource = double("Chef::Resource::User",
# :null_object => true,
# :username => "adam",
@@ -246,58 +246,58 @@ describe Chef::Provider::User do
it "should call create_user if the user does not exist" do
@provider.user_exists = false
- @provider.should_receive(:create_user).and_return(true)
+ expect(@provider).to receive(:create_user).and_return(true)
@provider.action_create
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should call manage_user if the user exists and has mismatched attributes" do
@provider.user_exists = true
- @provider.stub(:compare_user).and_return(true)
- @provider.should_receive(:manage_user).and_return(true)
+ allow(@provider).to receive(:compare_user).and_return(true)
+ expect(@provider).to receive(:manage_user).and_return(true)
@provider.action_create
end
it "should set the new_resources updated flag when it creates the user if we call manage_user" do
@provider.user_exists = true
- @provider.stub(:compare_user).and_return(true)
- @provider.stub(:manage_user).and_return(true)
+ allow(@provider).to receive(:compare_user).and_return(true)
+ allow(@provider).to receive(:manage_user).and_return(true)
@provider.action_create
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "action_remove" do
before(:each) do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
end
it "should not call remove_user if the user does not exist" do
@provider.user_exists = false
- @provider.should_not_receive(:remove_user)
+ expect(@provider).not_to receive(:remove_user)
@provider.action_remove
end
it "should call remove_user if the user exists" do
@provider.user_exists = true
- @provider.should_receive(:remove_user)
+ expect(@provider).to receive(:remove_user)
@provider.action_remove
end
it "should set the new_resources updated flag to true if the user is removed" do
@provider.user_exists = true
- @provider.should_receive(:remove_user)
+ expect(@provider).to receive(:remove_user)
@provider.action_remove
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
end
describe "action_manage" do
before(:each) do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
# @node = Chef::Node.new
# @new_resource = double("Chef::Resource::User",
# :null_object => true
@@ -312,35 +312,35 @@ describe Chef::Provider::User do
end
it "should run manage_user if the user exists and has mismatched attributes" do
- @provider.should_receive(:compare_user).and_return(true)
- @provider.should_receive(:manage_user).and_return(true)
+ expect(@provider).to receive(:compare_user).and_return(true)
+ expect(@provider).to receive(:manage_user).and_return(true)
@provider.action_manage
end
it "should set the new resources updated flag to true if manage_user is called" do
- @provider.stub(:compare_user).and_return(true)
- @provider.stub(:manage_user).and_return(true)
+ allow(@provider).to receive(:compare_user).and_return(true)
+ allow(@provider).to receive(:manage_user).and_return(true)
@provider.action_manage
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not run manage_user if the user does not exist" do
@provider.user_exists = false
- @provider.should_not_receive(:manage_user)
+ expect(@provider).not_to receive(:manage_user)
@provider.action_manage
end
it "should not run manage_user if the user exists but has no differing attributes" do
- @provider.should_receive(:compare_user).and_return(false)
- @provider.should_not_receive(:manage_user)
+ expect(@provider).to receive(:compare_user).and_return(false)
+ expect(@provider).not_to receive(:manage_user)
@provider.action_manage
end
end
describe "action_modify" do
before(:each) do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
# @node = Chef::Node.new
# @new_resource = double("Chef::Resource::User",
# :null_object => true
@@ -355,61 +355,61 @@ describe Chef::Provider::User do
end
it "should run manage_user if the user exists and has mismatched attributes" do
- @provider.should_receive(:compare_user).and_return(true)
- @provider.should_receive(:manage_user).and_return(true)
+ expect(@provider).to receive(:compare_user).and_return(true)
+ expect(@provider).to receive(:manage_user).and_return(true)
@provider.action_modify
end
it "should set the new resources updated flag to true if manage_user is called" do
- @provider.stub(:compare_user).and_return(true)
- @provider.stub(:manage_user).and_return(true)
+ allow(@provider).to receive(:compare_user).and_return(true)
+ allow(@provider).to receive(:manage_user).and_return(true)
@provider.action_modify
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should not run manage_user if the user exists but has no differing attributes" do
- @provider.should_receive(:compare_user).and_return(false)
- @provider.should_not_receive(:manage_user)
+ expect(@provider).to receive(:compare_user).and_return(false)
+ expect(@provider).not_to receive(:manage_user)
@provider.action_modify
end
it "should raise a Chef::Exceptions::User if the user doesn't exist" do
@provider.user_exists = false
- lambda { @provider.action = :modify; @provider.run_action }.should raise_error(Chef::Exceptions::User)
+ expect { @provider.action = :modify; @provider.run_action }.to raise_error(Chef::Exceptions::User)
end
end
describe "action_lock" do
before(:each) do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
end
it "should lock the user if it exists and is unlocked" do
- @provider.stub(:check_lock).and_return(false)
- @provider.should_receive(:lock_user).and_return(true)
+ allow(@provider).to receive(:check_lock).and_return(false)
+ expect(@provider).to receive(:lock_user).and_return(true)
@provider.action_lock
end
it "should set the new resources updated flag to true if lock_user is called" do
- @provider.stub(:check_lock).and_return(false)
- @provider.should_receive(:lock_user)
+ allow(@provider).to receive(:check_lock).and_return(false)
+ expect(@provider).to receive(:lock_user)
@provider.action_lock
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should raise a Chef::Exceptions::User if we try and lock a user that does not exist" do
@provider.user_exists = false
@provider.action = :lock
- lambda { @provider.run_action }.should raise_error(Chef::Exceptions::User)
+ expect { @provider.run_action }.to raise_error(Chef::Exceptions::User)
end
end
describe "action_unlock" do
before(:each) do
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
# @node = Chef::Node.new
# @new_resource = double("Chef::Resource::User",
# :null_object => true
@@ -425,17 +425,17 @@ describe Chef::Provider::User do
end
it "should unlock the user if it exists and is locked" do
- @provider.stub(:check_lock).and_return(true)
- @provider.should_receive(:unlock_user).and_return(true)
+ allow(@provider).to receive(:check_lock).and_return(true)
+ expect(@provider).to receive(:unlock_user).and_return(true)
@provider.action_unlock
@provider.set_updated_status
- @new_resource.should be_updated
+ expect(@new_resource).to be_updated
end
it "should raise a Chef::Exceptions::User if we try and unlock a user that does not exist" do
@provider.user_exists = false
@provider.action = :unlock
- lambda { @provider.run_action }.should raise_error(Chef::Exceptions::User)
+ expect { @provider.run_action }.to raise_error(Chef::Exceptions::User)
end
end
@@ -446,21 +446,21 @@ describe Chef::Provider::User do
end
it "should lookup the group name locally" do
- Etc.should_receive(:getgrnam).with("999").and_return(@group)
- @provider.convert_group_name.should == 999
+ expect(Etc).to receive(:getgrnam).with("999").and_return(@group)
+ expect(@provider.convert_group_name).to eq(999)
end
it "should raise an error if we can't translate the group name during resource assertions" do
- Etc.should_receive(:getgrnam).and_raise(ArgumentError)
+ expect(Etc).to receive(:getgrnam).and_raise(ArgumentError)
@provider.define_resource_requirements
@provider.convert_group_name
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::User)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::User)
end
it "should set the new resources gid to the integerized version if available" do
- Etc.should_receive(:getgrnam).with("999").and_return(@group)
+ expect(Etc).to receive(:getgrnam).with("999").and_return(@group)
@provider.convert_group_name
- @new_resource.gid.should == 999
+ expect(@new_resource.gid).to eq(999)
end
end
end
diff --git a/spec/unit/provider/whyrun_safe_ruby_block_spec.rb b/spec/unit/provider/whyrun_safe_ruby_block_spec.rb
index d5209248b3..2a4dccdad7 100644
--- a/spec/unit/provider/whyrun_safe_ruby_block_spec.rb
+++ b/spec/unit/provider/whyrun_safe_ruby_block_spec.rb
@@ -31,15 +31,15 @@ describe Chef::Provider::WhyrunSafeRubyBlock, "initialize" do
it "should call the block and flag the resource as updated" do
@provider.run_action(:run)
- $evil_global_evil_laugh.should == :mwahahaha
- @new_resource.should be_updated
+ expect($evil_global_evil_laugh).to eq(:mwahahaha)
+ expect(@new_resource).to be_updated
end
it "should call the block and flat the resource as updated - even in whyrun" do
Chef::Config[:why_run] = true
@provider.run_action(:run)
- $evil_global_evil_laugh.should == :mwahahaha
- @new_resource.should be_updated
+ expect($evil_global_evil_laugh).to eq(:mwahahaha)
+ expect(@new_resource).to be_updated
Chef::Config[:why_run] = false
end
diff --git a/spec/unit/resource/apt_package_spec.rb b/spec/unit/resource/apt_package_spec.rb
index 9503e0cbe1..be8eb9c324 100644
--- a/spec/unit/resource/apt_package_spec.rb
+++ b/spec/unit/resource/apt_package_spec.rb
@@ -35,6 +35,6 @@ describe Chef::Resource::AptPackage, "initialize" do
it "should support default_release" do
@resource.default_release("lenny-backports")
- @resource.default_release.should eql("lenny-backports")
+ expect(@resource.default_release).to eql("lenny-backports")
end
end
diff --git a/spec/unit/resource/bash_spec.rb b/spec/unit/resource/bash_spec.rb
index d729db6977..f313900433 100644
--- a/spec/unit/resource/bash_spec.rb
+++ b/spec/unit/resource/bash_spec.rb
@@ -25,16 +25,16 @@ describe Chef::Resource::Bash do
end
it "should create a new Chef::Resource::Bash" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Bash)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Bash)
end
it "should have a resource name of :bash" do
- @resource.resource_name.should eql(:bash)
+ expect(@resource.resource_name).to eql(:bash)
end
it "should have an interpreter of bash" do
- @resource.interpreter.should eql("bash")
+ expect(@resource.interpreter).to eql("bash")
end
end
diff --git a/spec/unit/resource/batch_spec.rb b/spec/unit/resource/batch_spec.rb
index b74c7d24a7..4a056b8735 100644
--- a/spec/unit/resource/batch_spec.rb
+++ b/spec/unit/resource/batch_spec.rb
@@ -33,7 +33,7 @@ describe Chef::Resource::Batch do
end
it "should create a new Chef::Resource::Batch" do
- @resource.should be_a_kind_of(Chef::Resource::Batch)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Batch)
end
context "windows script" do
diff --git a/spec/unit/resource/breakpoint_spec.rb b/spec/unit/resource/breakpoint_spec.rb
index ed655b84a6..ed1f3ebcd5 100644
--- a/spec/unit/resource/breakpoint_spec.rb
+++ b/spec/unit/resource/breakpoint_spec.rb
@@ -33,15 +33,15 @@ describe Chef::Resource::Breakpoint do
end
it "allows the action :break" do
- @breakpoint.allowed_actions.should include(:break)
+ expect(@breakpoint.allowed_actions).to include(:break)
end
it "defaults to the break action" do
- @breakpoint.action.should == "break"
+ expect(@breakpoint.action).to eq("break")
end
it "names itself after the line number of the file where it's created" do
- @breakpoint.name.should match(/breakpoint_spec\.rb\:[\d]{2}\:in \`new\'$/)
+ expect(@breakpoint.name).to match(/breakpoint_spec\.rb\:[\d]{2}\:in \`new\'$/)
end
end
diff --git a/spec/unit/resource/chef_gem_spec.rb b/spec/unit/resource/chef_gem_spec.rb
index 6a419b3f3b..480856d19f 100644
--- a/spec/unit/resource/chef_gem_spec.rb
+++ b/spec/unit/resource/chef_gem_spec.rb
@@ -38,7 +38,7 @@ describe Chef::Resource::ChefGem, "gem_binary" do
end
it "should raise an exception when gem_binary is set" do
- lambda { @resource.gem_binary("/lol/cats/gem") }.should raise_error(ArgumentError)
+ expect { @resource.gem_binary("/lol/cats/gem") }.to raise_error(ArgumentError)
end
it "should set the gem_binary based on computing it from RbConfig" do
diff --git a/spec/unit/resource/conditional_action_not_nothing_spec.rb b/spec/unit/resource/conditional_action_not_nothing_spec.rb
index 49bc0ad57d..9f29de55f2 100644
--- a/spec/unit/resource/conditional_action_not_nothing_spec.rb
+++ b/spec/unit/resource/conditional_action_not_nothing_spec.rb
@@ -27,7 +27,7 @@ describe Chef::Resource::ConditionalActionNotNothing do
end
it "indicates that resource convergence should not continue" do
- @conditional.continue?.should be_false
+ expect(@conditional.continue?).to be_false
end
end
@@ -38,7 +38,7 @@ describe Chef::Resource::ConditionalActionNotNothing do
end
it "indicates that resource convergence should continue" do
- @conditional.continue?.should be_true
+ expect(@conditional.continue?).to be_true
end
end
diff --git a/spec/unit/resource/conditional_spec.rb b/spec/unit/resource/conditional_spec.rb
index 1fc2518013..cacac925b7 100644
--- a/spec/unit/resource/conditional_spec.rb
+++ b/spec/unit/resource/conditional_spec.rb
@@ -21,9 +21,9 @@ require 'ostruct'
describe Chef::Resource::Conditional do
before do
- Mixlib::ShellOut.any_instance.stub(:run_command).and_return(nil)
+ allow_any_instance_of(Mixlib::ShellOut).to receive(:run_command).and_return(nil)
@status = OpenStruct.new(:success? => true)
- Mixlib::ShellOut.any_instance.stub(:status).and_return(@status)
+ allow_any_instance_of(Mixlib::ShellOut).to receive(:status).and_return(@status)
@parent_resource = Chef::Resource.new(nil, Chef::Node.new)
end
@@ -53,7 +53,7 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should continue" do
- @conditional.continue?.should be_true
+ expect(@conditional.continue?).to be_true
end
end
@@ -64,22 +64,22 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should not continue" do
- @conditional.continue?.should be_false
+ expect(@conditional.continue?).to be_false
end
end
describe 'after running a command which timed out' do
before do
@conditional = Chef::Resource::Conditional.only_if(@parent_resource, "false")
- Chef::GuardInterpreter::DefaultGuardInterpreter.any_instance.stub(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
+ allow_any_instance_of(Chef::GuardInterpreter::DefaultGuardInterpreter).to receive(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
end
it 'indicates that resource convergence should not continue' do
- @conditional.continue?.should be_false
+ expect(@conditional.continue?).to be_false
end
it 'should log a warning' do
- Chef::Log.should_receive(:warn).with("Command 'false' timed out")
+ expect(Chef::Log).to receive(:warn).with("Command 'false' timed out")
@conditional.continue?
end
end
@@ -90,7 +90,7 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should continue" do
- @conditional.continue?.should be_true
+ expect(@conditional.continue?).to be_true
end
end
@@ -100,7 +100,7 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should not continue" do
- @conditional.continue?.should be_false
+ expect(@conditional.continue?).to be_false
end
end
end
@@ -112,7 +112,7 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should not continue" do
- @conditional.continue?.should be_false
+ expect(@conditional.continue?).to be_false
end
end
@@ -123,22 +123,22 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should continue" do
- @conditional.continue?.should be_true
+ expect(@conditional.continue?).to be_true
end
end
describe 'after running a command which timed out' do
before do
@conditional = Chef::Resource::Conditional.not_if(@parent_resource, "false")
- Chef::GuardInterpreter::DefaultGuardInterpreter.any_instance.stub(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
+ allow_any_instance_of(Chef::GuardInterpreter::DefaultGuardInterpreter).to receive(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
end
it 'indicates that resource convergence should continue' do
- @conditional.continue?.should be_true
+ expect(@conditional.continue?).to be_true
end
it 'should log a warning' do
- Chef::Log.should_receive(:warn).with("Command 'false' timed out")
+ expect(Chef::Log).to receive(:warn).with("Command 'false' timed out")
@conditional.continue?
end
end
@@ -149,7 +149,7 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should not continue" do
- @conditional.continue?.should be_false
+ expect(@conditional.continue?).to be_false
end
end
@@ -159,7 +159,7 @@ describe Chef::Resource::Conditional do
end
it "indicates that resource convergence should continue" do
- @conditional.continue?.should be_true
+ expect(@conditional.continue?).to be_true
end
end
end
diff --git a/spec/unit/resource/cookbook_file_spec.rb b/spec/unit/resource/cookbook_file_spec.rb
index 6c55c8035a..834e08bba4 100644
--- a/spec/unit/resource/cookbook_file_spec.rb
+++ b/spec/unit/resource/cookbook_file_spec.rb
@@ -25,25 +25,25 @@ describe Chef::Resource::CookbookFile do
end
it "uses the name parameter for the source parameter" do
- @cookbook_file.name.should == 'sourcecode_tarball.tgz'
+ expect(@cookbook_file.name).to eq('sourcecode_tarball.tgz')
end
it "has a source parameter" do
@cookbook_file.name('config_file.conf')
- @cookbook_file.name.should == 'config_file.conf'
+ expect(@cookbook_file.name).to eq('config_file.conf')
end
it "defaults to a nil cookbook parameter (current cookbook will be used)" do
- @cookbook_file.cookbook.should be_nil
+ expect(@cookbook_file.cookbook).to be_nil
end
it "has a cookbook parameter" do
@cookbook_file.cookbook("munin")
- @cookbook_file.cookbook.should == 'munin'
+ expect(@cookbook_file.cookbook).to eq('munin')
end
it "sets the provider to Chef::Provider::CookbookFile" do
- @cookbook_file.provider.should == Chef::Provider::CookbookFile
+ expect(@cookbook_file.provider).to eq(Chef::Provider::CookbookFile)
end
describe "when it has a backup number, group, mode, owner, source, checksum, and cookbook on nix or path, rights, deny_rights, checksum on windows" do
@@ -68,21 +68,21 @@ describe Chef::Resource::CookbookFile do
state = @cookbook_file.state
if Chef::Platform.windows?
puts state
- state[:rights].should == [{:permissions => :read, :principals => "Everyone"}]
- state[:deny_rights].should == [{:permissions => :full_control, :principals => "Clumsy_Sam"}]
+ expect(state[:rights]).to eq([{:permissions => :read, :principals => "Everyone"}])
+ expect(state[:deny_rights]).to eq([{:permissions => :full_control, :principals => "Clumsy_Sam"}])
else
- state[:group].should == "wheel"
- state[:mode].should == "0664"
- state[:owner].should == "root"
+ expect(state[:group]).to eq("wheel")
+ expect(state[:mode]).to eq("0664")
+ expect(state[:owner]).to eq("root")
end
- state[:checksum].should == "1" * 64
+ expect(state[:checksum]).to eq("1" * 64)
end
it "returns the path as its identity" do
if Chef::Platform.windows?
- @cookbook_file.identity.should == "C:/temp/origin/file.txt"
+ expect(@cookbook_file.identity).to eq("C:/temp/origin/file.txt")
else
- @cookbook_file.identity.should == "/tmp/origin/file.txt"
+ expect(@cookbook_file.identity).to eq("/tmp/origin/file.txt")
end
end
end
diff --git a/spec/unit/resource/cron_spec.rb b/spec/unit/resource/cron_spec.rb
index cf821e3d32..743552c1de 100644
--- a/spec/unit/resource/cron_spec.rb
+++ b/spec/unit/resource/cron_spec.rb
@@ -26,135 +26,135 @@ describe Chef::Resource::Cron do
end
it "should create a new Chef::Resource::Cron" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Cron)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Cron)
end
it "should have a name" do
- @resource.name.should eql("cronify")
+ expect(@resource.name).to eql("cronify")
end
it "should have a default action of 'create'" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
it "should accept create or delete for action" do
- lambda { @resource.action :create }.should_not raise_error
- lambda { @resource.action :delete }.should_not raise_error
- lambda { @resource.action :lolcat }.should raise_error(ArgumentError)
+ expect { @resource.action :create }.not_to raise_error
+ expect { @resource.action :delete }.not_to raise_error
+ expect { @resource.action :lolcat }.to raise_error(ArgumentError)
end
it "should allow you to set a command" do
@resource.command "/bin/true"
- @resource.command.should eql("/bin/true")
+ expect(@resource.command).to eql("/bin/true")
end
it "should allow you to set a user" do
@resource.user "daemon"
- @resource.user.should eql("daemon")
+ expect(@resource.user).to eql("daemon")
end
it "should allow you to specify the minute" do
@resource.minute "30"
- @resource.minute.should eql("30")
+ expect(@resource.minute).to eql("30")
end
it "should allow you to specify the hour" do
@resource.hour "6"
- @resource.hour.should eql("6")
+ expect(@resource.hour).to eql("6")
end
it "should allow you to specify the day" do
@resource.day "10"
- @resource.day.should eql("10")
+ expect(@resource.day).to eql("10")
end
it "should allow you to specify the month" do
@resource.month "10"
- @resource.month.should eql("10")
+ expect(@resource.month).to eql("10")
end
it "should allow you to specify the weekday" do
@resource.weekday "2"
- @resource.weekday.should eql("2")
+ expect(@resource.weekday).to eql("2")
end
it "should allow you to specify the mailto variable" do
@resource.mailto "test@example.com"
- @resource.mailto.should eql("test@example.com")
+ expect(@resource.mailto).to eql("test@example.com")
end
it "should allow you to specify the path" do
@resource.path "/usr/bin:/usr/sbin"
- @resource.path.should eql("/usr/bin:/usr/sbin")
+ expect(@resource.path).to eql("/usr/bin:/usr/sbin")
end
it "should allow you to specify the home directory" do
@resource.home "/root"
- @resource.home.should eql("/root")
+ expect(@resource.home).to eql("/root")
end
it "should allow you to specify the shell to run the command with" do
@resource.shell "/bin/zsh"
- @resource.shell.should eql("/bin/zsh")
+ expect(@resource.shell).to eql("/bin/zsh")
end
it "should allow you to specify environment variables hash" do
env = {"TEST" => "LOL"}
@resource.environment env
- @resource.environment.should eql(env)
+ expect(@resource.environment).to eql(env)
end
it "should allow * for all time and date values" do
[ "minute", "hour", "day", "month", "weekday" ].each do |x|
- @resource.send(x, "*").should eql("*")
+ expect(@resource.send(x, "*")).to eql("*")
end
end
it "should allow ranges for all time and date values" do
[ "minute", "hour", "day", "month", "weekday" ].each do |x|
- @resource.send(x, "1-2,5").should eql("1-2,5")
+ expect(@resource.send(x, "1-2,5")).to eql("1-2,5")
end
end
it "should have a default value of * for all time and date values" do
[ "minute", "hour", "day", "month", "weekday" ].each do |x|
- @resource.send(x).should eql("*")
+ expect(@resource.send(x)).to eql("*")
end
end
it "should have a default value of root for the user" do
- @resource.user.should eql("root")
+ expect(@resource.user).to eql("root")
end
it "should reject any minute over 59" do
- lambda { @resource.minute "60" }.should raise_error(RangeError)
+ expect { @resource.minute "60" }.to raise_error(RangeError)
end
it "should reject any hour over 23" do
- lambda { @resource.hour "24" }.should raise_error(RangeError)
+ expect { @resource.hour "24" }.to raise_error(RangeError)
end
it "should reject any day over 31" do
- lambda { @resource.day "32" }.should raise_error(RangeError)
+ expect { @resource.day "32" }.to raise_error(RangeError)
end
it "should reject any month over 12" do
- lambda { @resource.month "13" }.should raise_error(RangeError)
+ expect { @resource.month "13" }.to raise_error(RangeError)
end
describe "weekday" do
it "should reject any weekday over 7" do
- lambda { @resource.weekday "8" }.should raise_error(RangeError)
+ expect { @resource.weekday "8" }.to raise_error(RangeError)
end
it "should reject any symbols which don't represent day of week" do
- lambda { @resource.weekday :foo }.should raise_error(RangeError)
+ expect { @resource.weekday :foo }.to raise_error(RangeError)
end
end
it "should convert integer schedule values to a string" do
[ "minute", "hour", "day", "month", "weekday" ].each do |x|
- @resource.send(x, 5).should eql("5")
+ expect(@resource.send(x, 5)).to eql("5")
end
end
@@ -171,16 +171,16 @@ describe Chef::Resource::Cron do
it "describes the state" do
state = @resource.state
- state[:minute].should == "1"
- state[:hour].should == "2"
- state[:day].should == "3"
- state[:month].should == "4"
- state[:weekday].should == "5"
- state[:user].should == "root"
+ expect(state[:minute]).to eq("1")
+ expect(state[:hour]).to eq("2")
+ expect(state[:day]).to eq("3")
+ expect(state[:month]).to eq("4")
+ expect(state[:weekday]).to eq("5")
+ expect(state[:user]).to eq("root")
end
it "returns the command as its identity" do
- @resource.identity.should == "tackle"
+ expect(@resource.identity).to eq("tackle")
end
end
end
diff --git a/spec/unit/resource/csh_spec.rb b/spec/unit/resource/csh_spec.rb
index e1534a8f5f..5fb3b00507 100644
--- a/spec/unit/resource/csh_spec.rb
+++ b/spec/unit/resource/csh_spec.rb
@@ -25,16 +25,16 @@ describe Chef::Resource::Csh do
end
it "should create a new Chef::Resource::Csh" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Csh)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Csh)
end
it "should have a resource name of :csh" do
- @resource.resource_name.should eql(:csh)
+ expect(@resource.resource_name).to eql(:csh)
end
it "should have an interpreter of csh" do
- @resource.interpreter.should eql("csh")
+ expect(@resource.interpreter).to eql("csh")
end
end
diff --git a/spec/unit/resource/deploy_spec.rb b/spec/unit/resource/deploy_spec.rb
index 914ea19030..6592fae26c 100644
--- a/spec/unit/resource/deploy_spec.rb
+++ b/spec/unit/resource/deploy_spec.rb
@@ -33,28 +33,28 @@ describe Chef::Resource::Deploy do
def resource_has_a_string_attribute(attr_name)
it "has a String attribute for #{attr_name.to_s}" do
@resource.send(attr_name, "this is a string")
- @resource.send(attr_name).should eql("this is a string")
- lambda {@resource.send(attr_name, 8675309)}.should raise_error(ArgumentError)
+ expect(@resource.send(attr_name)).to eql("this is a string")
+ expect {@resource.send(attr_name, 8675309)}.to raise_error(ArgumentError)
end
end
def resource_has_a_boolean_attribute(attr_name, opts={:defaults_to=>false})
it "has a Boolean attribute for #{attr_name.to_s}" do
- @resource.send(attr_name).should eql(opts[:defaults_to])
+ expect(@resource.send(attr_name)).to eql(opts[:defaults_to])
@resource.send(attr_name, !opts[:defaults_to])
- @resource.send(attr_name).should eql( !opts[:defaults_to] )
+ expect(@resource.send(attr_name)).to eql( !opts[:defaults_to] )
end
end
def resource_has_a_callback_attribute(attr_name)
it "has a Callback attribute #{attr_name}" do
callback_block = lambda { :noop }
- lambda {@resource.send(attr_name, &callback_block)}.should_not raise_error
- @resource.send(attr_name).should == callback_block
+ expect {@resource.send(attr_name, &callback_block)}.not_to raise_error
+ expect(@resource.send(attr_name)).to eq(callback_block)
callback_file = "path/to/callback.rb"
- lambda {@resource.send(attr_name, callback_file)}.should_not raise_error
- @resource.send(attr_name).should == callback_file
- lambda {@resource.send(attr_name, :this_is_fail)}.should raise_error(ArgumentError)
+ expect {@resource.send(attr_name, callback_file)}.not_to raise_error
+ expect(@resource.send(attr_name)).to eq(callback_file)
+ expect {@resource.send(attr_name, :this_is_fail)}.to raise_error(ArgumentError)
end
end
end
@@ -85,7 +85,7 @@ describe Chef::Resource::Deploy do
resource_has_a_boolean_attribute(:shallow_clone, :defaults_to=>false)
it "uses the first argument as the deploy directory" do
- @resource.deploy_to.should eql("/my/deploy/dir")
+ expect(@resource.deploy_to).to eql("/my/deploy/dir")
end
# For git, any revision, branch, tag, whatever is resolved to a SHA1 ref.
@@ -93,100 +93,100 @@ describe Chef::Resource::Deploy do
# Therefore, revision and branch ARE NOT SEPARATE THINGS
it "aliases #revision as #branch" do
@resource.branch "stable"
- @resource.revision.should eql("stable")
+ expect(@resource.revision).to eql("stable")
end
it "takes the SCM resource to use as a constant, and defaults to git" do
- @resource.scm_provider.should eql(Chef::Provider::Git)
+ expect(@resource.scm_provider).to eql(Chef::Provider::Git)
@resource.scm_provider Chef::Provider::Subversion
- @resource.scm_provider.should eql(Chef::Provider::Subversion)
+ expect(@resource.scm_provider).to eql(Chef::Provider::Subversion)
end
it "allows scm providers to be set via symbol" do
- @resource.scm_provider.should == Chef::Provider::Git
+ expect(@resource.scm_provider).to eq(Chef::Provider::Git)
@resource.scm_provider :subversion
- @resource.scm_provider.should == Chef::Provider::Subversion
+ expect(@resource.scm_provider).to eq(Chef::Provider::Subversion)
end
it "allows scm providers to be set via string" do
- @resource.scm_provider.should == Chef::Provider::Git
+ expect(@resource.scm_provider).to eq(Chef::Provider::Git)
@resource.scm_provider "subversion"
- @resource.scm_provider.should == Chef::Provider::Subversion
+ expect(@resource.scm_provider).to eq(Chef::Provider::Subversion)
end
it "has a boolean attribute for svn_force_export defaulting to false" do
- @resource.svn_force_export.should be_false
+ expect(@resource.svn_force_export).to be_false
@resource.svn_force_export true
- @resource.svn_force_export.should be_true
- lambda {@resource.svn_force_export(10053)}.should raise_error(ArgumentError)
+ expect(@resource.svn_force_export).to be_true
+ expect {@resource.svn_force_export(10053)}.to raise_error(ArgumentError)
end
it "takes arbitrary environment variables in a hash" do
@resource.environment "RAILS_ENV" => "production"
- @resource.environment.should == {"RAILS_ENV" => "production"}
+ expect(@resource.environment).to eq({"RAILS_ENV" => "production"})
end
it "takes string arguments to environment for backwards compat, setting RAILS_ENV, RACK_ENV, and MERB_ENV" do
@resource.environment "production"
- @resource.environment.should == {"RAILS_ENV"=>"production", "RACK_ENV"=>"production","MERB_ENV"=>"production"}
+ expect(@resource.environment).to eq({"RAILS_ENV"=>"production", "RACK_ENV"=>"production","MERB_ENV"=>"production"})
end
it "sets destination to $deploy_to/shared/$repository_cache" do
- @resource.destination.should eql("/my/deploy/dir/shared/cached-copy")
+ expect(@resource.destination).to eql("/my/deploy/dir/shared/cached-copy")
end
it "sets shared_path to $deploy_to/shared" do
- @resource.shared_path.should eql("/my/deploy/dir/shared")
+ expect(@resource.shared_path).to eql("/my/deploy/dir/shared")
end
it "sets current_path to $deploy_to/current" do
- @resource.current_path.should eql("/my/deploy/dir/current")
+ expect(@resource.current_path).to eql("/my/deploy/dir/current")
end
it "gets the current_path correct even if the shared_path is set (regression test)" do
@resource.shared_path
- @resource.current_path.should eql("/my/deploy/dir/current")
+ expect(@resource.current_path).to eql("/my/deploy/dir/current")
end
it "gives #depth as 5 if shallow clone is true, nil otherwise" do
- @resource.depth.should be_nil
+ expect(@resource.depth).to be_nil
@resource.shallow_clone true
- @resource.depth.should eql("5")
+ expect(@resource.depth).to eql("5")
end
it "aliases repo as repository" do
@resource.repository "git@github.com/opcode/cookbooks.git"
- @resource.repo.should eql("git@github.com/opcode/cookbooks.git")
+ expect(@resource.repo).to eql("git@github.com/opcode/cookbooks.git")
end
it "aliases git_ssh_wrapper as ssh_wrapper" do
@resource.ssh_wrapper "git_my_repo.sh"
- @resource.git_ssh_wrapper.should eql("git_my_repo.sh")
+ expect(@resource.git_ssh_wrapper).to eql("git_my_repo.sh")
end
it "has an Array attribute purge_before_symlink, default: log, tmp/pids, public/system" do
- @resource.purge_before_symlink.should == %w{ log tmp/pids public/system }
+ expect(@resource.purge_before_symlink).to eq(%w{ log tmp/pids public/system })
@resource.purge_before_symlink %w{foo bar baz}
- @resource.purge_before_symlink.should == %w{foo bar baz}
+ expect(@resource.purge_before_symlink).to eq(%w{foo bar baz})
end
it "has an Array attribute create_dirs_before_symlink, default: tmp, public, config" do
- @resource.create_dirs_before_symlink.should == %w{tmp public config}
+ expect(@resource.create_dirs_before_symlink).to eq(%w{tmp public config})
@resource.create_dirs_before_symlink %w{foo bar baz}
- @resource.create_dirs_before_symlink.should == %w{foo bar baz}
+ expect(@resource.create_dirs_before_symlink).to eq(%w{foo bar baz})
end
it 'has a Hash attribute symlinks, default: {"system" => "public/system", "pids" => "tmp/pids", "log" => "log"}' do
default = { "system" => "public/system", "pids" => "tmp/pids", "log" => "log"}
- @resource.symlinks.should == default
+ expect(@resource.symlinks).to eq(default)
@resource.symlinks "foo" => "bar/baz"
- @resource.symlinks.should == {"foo" => "bar/baz"}
+ expect(@resource.symlinks).to eq({"foo" => "bar/baz"})
end
it 'has a Hash attribute symlink_before_migrate, default "config/database.yml" => "config/database.yml"' do
- @resource.symlink_before_migrate.should == {"config/database.yml" => "config/database.yml"}
+ expect(@resource.symlink_before_migrate).to eq({"config/database.yml" => "config/database.yml"})
@resource.symlink_before_migrate "wtf?" => "wtf is going on"
- @resource.symlink_before_migrate.should == {"wtf?" => "wtf is going on"}
+ expect(@resource.symlink_before_migrate).to eq({"wtf?" => "wtf is going on"})
end
resource_has_a_callback_attribute :before_migrate
@@ -196,55 +196,55 @@ describe Chef::Resource::Deploy do
it "aliases restart_command as restart" do
@resource.restart "foobaz"
- @resource.restart_command.should == "foobaz"
+ expect(@resource.restart_command).to eq("foobaz")
end
it "takes a block for the restart parameter" do
restart_like_this = lambda {p :noop}
@resource.restart(&restart_like_this)
- @resource.restart.should == restart_like_this
+ expect(@resource.restart).to eq(restart_like_this)
end
it "allows providers to be set with a full class name" do
@resource.provider Chef::Provider::Deploy::Timestamped
- @resource.provider.should == Chef::Provider::Deploy::Timestamped
+ expect(@resource.provider).to eq(Chef::Provider::Deploy::Timestamped)
end
it "allows deploy providers to be set via symbol" do
@resource.provider :revision
- @resource.provider.should == Chef::Provider::Deploy::Revision
+ expect(@resource.provider).to eq(Chef::Provider::Deploy::Revision)
end
it "allows deploy providers to be set via string" do
@resource.provider "revision"
- @resource.provider.should == Chef::Provider::Deploy::Revision
+ expect(@resource.provider).to eq(Chef::Provider::Deploy::Revision)
end
it "defaults keep_releases to 5" do
- @resource.keep_releases.should == 5
+ expect(@resource.keep_releases).to eq(5)
end
it "allows keep_releases to be set via integer" do
@resource.keep_releases 10
- @resource.keep_releases.should == 10
+ expect(@resource.keep_releases).to eq(10)
end
it "enforces a minimum keep_releases of 1" do
@resource.keep_releases 0
- @resource.keep_releases.should == 1
+ expect(@resource.keep_releases).to eq(1)
end
describe "when it has a timeout attribute" do
let(:ten_seconds) { 10 }
before { @resource.timeout(ten_seconds) }
it "stores this timeout" do
- @resource.timeout.should == ten_seconds
+ expect(@resource.timeout).to eq(ten_seconds)
end
end
describe "when it has no timeout attribute" do
it "should have no default timeout" do
- @resource.timeout.should be_nil
+ expect(@resource.timeout).to be_nil
end
end
@@ -266,12 +266,12 @@ describe Chef::Resource::Deploy do
it "describes its state" do
state = @resource.state
- state[:deploy_to].should == "/"
- state[:revision].should == "1.2.3"
+ expect(state[:deploy_to]).to eq("/")
+ expect(state[:revision]).to eq("1.2.3")
end
it "returns the repository URI as its identity" do
- @resource.identity.should == "http://uri.org"
+ expect(@resource.identity).to eq("http://uri.org")
end
end
diff --git a/spec/unit/resource/directory_spec.rb b/spec/unit/resource/directory_spec.rb
index a42383c49e..c452b2a914 100644
--- a/spec/unit/resource/directory_spec.rb
+++ b/spec/unit/resource/directory_spec.rb
@@ -26,38 +26,38 @@ describe Chef::Resource::Directory do
end
it "should create a new Chef::Resource::Directory" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Directory)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Directory)
end
it "should have a name" do
- @resource.name.should eql("fakey_fakerton")
+ expect(@resource.name).to eql("fakey_fakerton")
end
it "should have a default action of 'create'" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
it "should accept create or delete for action" do
- lambda { @resource.action :create }.should_not raise_error
- lambda { @resource.action :delete }.should_not raise_error
- lambda { @resource.action :blues }.should raise_error(ArgumentError)
+ expect { @resource.action :create }.not_to raise_error
+ expect { @resource.action :delete }.not_to raise_error
+ expect { @resource.action :blues }.to raise_error(ArgumentError)
end
it "should use the object name as the path by default" do
- @resource.path.should eql("fakey_fakerton")
+ expect(@resource.path).to eql("fakey_fakerton")
end
it "should accept a string as the path" do
- lambda { @resource.path "/tmp" }.should_not raise_error
- @resource.path.should eql("/tmp")
- lambda { @resource.path Hash.new }.should raise_error(ArgumentError)
+ expect { @resource.path "/tmp" }.not_to raise_error
+ expect(@resource.path).to eql("/tmp")
+ expect { @resource.path Hash.new }.to raise_error(ArgumentError)
end
it "should allow you to have specify whether the action is recursive with true/false" do
- lambda { @resource.recursive true }.should_not raise_error
- lambda { @resource.recursive false }.should_not raise_error
- lambda { @resource.recursive "monkey" }.should raise_error(ArgumentError)
+ expect { @resource.recursive true }.not_to raise_error
+ expect { @resource.recursive false }.not_to raise_error
+ expect { @resource.recursive "monkey" }.to raise_error(ArgumentError)
end
describe "when it has group, mode, and owner" do
@@ -70,13 +70,13 @@ describe Chef::Resource::Directory do
it "describes its state" do
state = @resource.state
- state[:group].should == "wheel"
- state[:mode].should == "0664"
- state[:owner].should == "root"
+ expect(state[:group]).to eq("wheel")
+ expect(state[:mode]).to eq("0664")
+ expect(state[:owner]).to eq("root")
end
it "returns the directory path as its identity" do
- @resource.identity.should == "/tmp/foo/bar/"
+ expect(@resource.identity).to eq("/tmp/foo/bar/")
end
end
end
diff --git a/spec/unit/resource/easy_install_package_spec.rb b/spec/unit/resource/easy_install_package_spec.rb
index d3a5f4a0fe..c68b026b39 100644
--- a/spec/unit/resource/easy_install_package_spec.rb
+++ b/spec/unit/resource/easy_install_package_spec.rb
@@ -34,6 +34,6 @@ describe Chef::Resource::EasyInstallPackage, "initialize" do
it "should allow you to set the easy_install_binary attribute" do
@resource.easy_install_binary "/opt/local/bin/easy_install"
- @resource.easy_install_binary.should eql("/opt/local/bin/easy_install")
+ expect(@resource.easy_install_binary).to eql("/opt/local/bin/easy_install")
end
end
diff --git a/spec/unit/resource/env_spec.rb b/spec/unit/resource/env_spec.rb
index a1f599400b..566827a27e 100644
--- a/spec/unit/resource/env_spec.rb
+++ b/spec/unit/resource/env_spec.rb
@@ -26,43 +26,43 @@ describe Chef::Resource::Env do
end
it "should create a new Chef::Resource::Env" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Env)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Env)
end
it "should have a name" do
- @resource.name.should eql("FOO")
+ expect(@resource.name).to eql("FOO")
end
it "should have a default action of 'create'" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
{ :create => false, :delete => false, :modify => false, :flibber => true }.each do |action,bad_value|
it "should #{bad_value ? 'not' : ''} accept #{action.to_s}" do
if bad_value
- lambda { @resource.action action }.should raise_error(ArgumentError)
+ expect { @resource.action action }.to raise_error(ArgumentError)
else
- lambda { @resource.action action }.should_not raise_error
+ expect { @resource.action action }.not_to raise_error
end
end
end
it "should use the object name as the key_name by default" do
- @resource.key_name.should eql("FOO")
+ expect(@resource.key_name).to eql("FOO")
end
it "should accept a string as the env value via 'value'" do
- lambda { @resource.value "bar" }.should_not raise_error
+ expect { @resource.value "bar" }.not_to raise_error
end
it "should not accept a Hash for the env value via 'to'" do
- lambda { @resource.value Hash.new }.should raise_error(ArgumentError)
+ expect { @resource.value Hash.new }.to raise_error(ArgumentError)
end
it "should allow you to set an env value via 'to'" do
@resource.value "bar"
- @resource.value.should eql("bar")
+ expect(@resource.value).to eql("bar")
end
describe "when it has key name and value" do
@@ -74,11 +74,11 @@ describe Chef::Resource::Env do
it "describes its state" do
state = @resource.state
- state[:value].should == "level7"
+ expect(state[:value]).to eq("level7")
end
it "returns the key name as its identity" do
- @resource.identity.should == "charmander"
+ expect(@resource.identity).to eq("charmander")
end
end
diff --git a/spec/unit/resource/erl_call_spec.rb b/spec/unit/resource/erl_call_spec.rb
index 3efbdca9a0..8ec182665f 100644
--- a/spec/unit/resource/erl_call_spec.rb
+++ b/spec/unit/resource/erl_call_spec.rb
@@ -26,45 +26,45 @@ describe Chef::Resource::ErlCall do
end
it "should create a new Chef::Resource::ErlCall" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::ErlCall)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::ErlCall)
end
it "should have a resource name of :erl_call" do
- @resource.resource_name.should eql(:erl_call)
+ expect(@resource.resource_name).to eql(:erl_call)
end
it "should have a default action of run" do
- @resource.action.should eql("run")
+ expect(@resource.action).to eql("run")
end
it "should accept run as an action" do
- lambda { @resource.action :run }.should_not raise_error
+ expect { @resource.action :run }.not_to raise_error
end
it "should allow you to set the code attribute" do
@resource.code "q()."
- @resource.code.should eql("q().")
+ expect(@resource.code).to eql("q().")
end
it "should allow you to set the cookie attribute" do
@resource.cookie "nomnomnom"
- @resource.cookie.should eql("nomnomnom")
+ expect(@resource.cookie).to eql("nomnomnom")
end
it "should allow you to set the distributed attribute" do
@resource.distributed true
- @resource.distributed.should eql(true)
+ expect(@resource.distributed).to eql(true)
end
it "should allow you to set the name_type attribute" do
@resource.name_type "sname"
- @resource.name_type.should eql("sname")
+ expect(@resource.name_type).to eql("sname")
end
it "should allow you to set the node_name attribute" do
@resource.node_name "chef@erlang"
- @resource.node_name.should eql("chef@erlang")
+ expect(@resource.node_name).to eql("chef@erlang")
end
describe "when it has cookie and node_name" do
@@ -75,7 +75,7 @@ describe Chef::Resource::ErlCall do
end
it "returns the code as its identity" do
- @resource.identity.should == "erl-call:function()"
+ expect(@resource.identity).to eq("erl-call:function()")
end
end
end
diff --git a/spec/unit/resource/execute_spec.rb b/spec/unit/resource/execute_spec.rb
index e1728b7892..70b9d87d4c 100644
--- a/spec/unit/resource/execute_spec.rb
+++ b/spec/unit/resource/execute_spec.rb
@@ -25,7 +25,7 @@ describe Chef::Resource::Execute do
it_behaves_like "an execute resource"
it "default guard interpreter should be :execute interpreter" do
- execute_resource.guard_interpreter.should be(:execute)
+ expect(execute_resource.guard_interpreter).to be(:execute)
end
end
diff --git a/spec/unit/resource/file_spec.rb b/spec/unit/resource/file_spec.rb
index 9c6365f6d3..cfa7511673 100644
--- a/spec/unit/resource/file_spec.rb
+++ b/spec/unit/resource/file_spec.rb
@@ -25,55 +25,55 @@ describe Chef::Resource::File do
end
it "should have a name" do
- @resource.name.should eql("fakey_fakerton")
+ expect(@resource.name).to eql("fakey_fakerton")
end
it "should have a default action of 'create'" do
- @resource.action.should eql("create")
+ expect(@resource.action).to eql("create")
end
it "should have a default content of nil" do
- @resource.content.should be_nil
+ expect(@resource.content).to be_nil
end
it "should be set to back up 5 files by default" do
- @resource.backup.should eql(5)
+ expect(@resource.backup).to eql(5)
end
it "should only accept strings for content" do
- lambda { @resource.content 5 }.should raise_error(ArgumentError)
- lambda { @resource.content :foo }.should raise_error(ArgumentError)
- lambda { @resource.content "hello" => "there" }.should raise_error(ArgumentError)
- lambda { @resource.content "hi" }.should_not raise_error
+ expect { @resource.content 5 }.to raise_error(ArgumentError)
+ expect { @resource.content :foo }.to raise_error(ArgumentError)
+ expect { @resource.content "hello" => "there" }.to raise_error(ArgumentError)
+ expect { @resource.content "hi" }.not_to raise_error
end
it "should only accept false or a number for backup" do
- lambda { @resource.backup true }.should raise_error(ArgumentError)
- lambda { @resource.backup false }.should_not raise_error
- lambda { @resource.backup 10 }.should_not raise_error
- lambda { @resource.backup "blues" }.should raise_error(ArgumentError)
+ expect { @resource.backup true }.to raise_error(ArgumentError)
+ expect { @resource.backup false }.not_to raise_error
+ expect { @resource.backup 10 }.not_to raise_error
+ expect { @resource.backup "blues" }.to raise_error(ArgumentError)
end
it "should accept a sha256 for checksum" do
- lambda { @resource.checksum "0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa" }.should_not raise_error
- lambda { @resource.checksum "monkey!" }.should raise_error(ArgumentError)
+ expect { @resource.checksum "0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa" }.not_to raise_error
+ expect { @resource.checksum "monkey!" }.to raise_error(ArgumentError)
end
it "should accept create, delete or touch for action" do
- lambda { @resource.action :create }.should_not raise_error
- lambda { @resource.action :delete }.should_not raise_error
- lambda { @resource.action :touch }.should_not raise_error
- lambda { @resource.action :blues }.should raise_error(ArgumentError)
+ expect { @resource.action :create }.not_to raise_error
+ expect { @resource.action :delete }.not_to raise_error
+ expect { @resource.action :touch }.not_to raise_error
+ expect { @resource.action :blues }.to raise_error(ArgumentError)
end
it "should use the object name as the path by default" do
- @resource.path.should eql("fakey_fakerton")
+ expect(@resource.path).to eql("fakey_fakerton")
end
it "should accept a string as the path" do
- lambda { @resource.path "/tmp" }.should_not raise_error
- @resource.path.should eql("/tmp")
- lambda { @resource.path Hash.new }.should raise_error(ArgumentError)
+ expect { @resource.path "/tmp" }.not_to raise_error
+ expect(@resource.path).to eql("/tmp")
+ expect { @resource.path Hash.new }.to raise_error(ArgumentError)
end
describe "when it has a path, owner, group, mode, and checksum" do
@@ -88,15 +88,15 @@ describe Chef::Resource::File do
context "on unix", :unix_only do
it "describes its state" do
state = @resource.state
- state[:owner].should == "root"
- state[:group].should == "wheel"
- state[:mode].should == "0644"
- state[:checksum].should == "1" * 64
+ expect(state[:owner]).to eq("root")
+ expect(state[:group]).to eq("wheel")
+ expect(state[:mode]).to eq("0644")
+ expect(state[:checksum]).to eq("1" * 64)
end
end
it "returns the file path as its identity" do
- @resource.identity.should == "/tmp/foo.txt"
+ expect(@resource.identity).to eq("/tmp/foo.txt")
end
end
@@ -108,8 +108,8 @@ describe Chef::Resource::File do
end
it "describes its state including windows ACL attributes" do
state = @resource.state
- state[:rights].should == [ {:permissions => :read, :principals => "Everyone"},
- {:permissions => :full_control, :principals => "DOMAIN\User"} ]
+ expect(state[:rights]).to eq([ {:permissions => :read, :principals => "Everyone"},
+ {:permissions => :full_control, :principals => "DOMAIN\User"} ])
end
end
diff --git a/spec/unit/resource/freebsd_package_spec.rb b/spec/unit/resource/freebsd_package_spec.rb
index 04a6962270..7263d3a7ba 100644
--- a/spec/unit/resource/freebsd_package_spec.rb
+++ b/spec/unit/resource/freebsd_package_spec.rb
@@ -32,15 +32,15 @@ describe Chef::Resource::FreebsdPackage do
describe "Initialization" do
it "should return a Chef::Resource::FreebsdPackage" do
- @resource.should be_a_kind_of(Chef::Resource::FreebsdPackage)
+ expect(@resource).to be_a_kind_of(Chef::Resource::FreebsdPackage)
end
it "should set the resource_name to :freebsd_package" do
- @resource.resource_name.should eql(:freebsd_package)
+ expect(@resource.resource_name).to eql(:freebsd_package)
end
it "should not set the provider" do
- @resource.provider.should be_nil
+ expect(@resource.provider).to be_nil
end
end
@@ -50,7 +50,7 @@ describe Chef::Resource::FreebsdPackage do
it "should be Freebsd::Port" do
@resource.source('ports')
@resource.after_created
- @resource.provider.should == Chef::Provider::Package::Freebsd::Port
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Port)
end
end
@@ -59,7 +59,7 @@ describe Chef::Resource::FreebsdPackage do
[1000017, 1000018, 1000500, 1001001, 1100000].each do |__freebsd_version|
@node.automatic_attrs[:os_version] = __freebsd_version
@resource.after_created
- @resource.provider.should == Chef::Provider::Package::Freebsd::Pkgng
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Pkgng)
end
end
end
@@ -67,21 +67,21 @@ describe Chef::Resource::FreebsdPackage do
describe "if pkgng enabled" do
it "should be Freebsd::Pkgng" do
pkg_enabled = OpenStruct.new(:stdout => "yes\n")
- @resource.stub(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
+ allow(@resource).to receive(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
@resource.after_created
- @resource.provider.should == Chef::Provider::Package::Freebsd::Pkgng
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Pkgng)
end
end
describe "if __Freebsd_version is less than 1000017 and pkgng not enabled" do
it "should be Freebsd::Pkg" do
pkg_enabled = OpenStruct.new(:stdout => "\n")
- @resource.stub(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
+ allow(@resource).to receive(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
[1000016, 1000000, 901503, 902506, 802511].each do |__freebsd_version|
@node.automatic_attrs[:os_version] = __freebsd_version
@resource.after_created
- @resource.provider.should == Chef::Provider::Package::Freebsd::Pkg
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Pkg)
end
end
end
diff --git a/spec/unit/resource/gem_package_spec.rb b/spec/unit/resource/gem_package_spec.rb
index 01c4fb6106..0f3eae70bb 100644
--- a/spec/unit/resource/gem_package_spec.rb
+++ b/spec/unit/resource/gem_package_spec.rb
@@ -37,6 +37,6 @@ describe Chef::Resource::GemPackage, "gem_binary" do
it "should set the gem_binary variable to whatever is passed in" do
@resource.gem_binary("/opt/local/bin/gem")
- @resource.gem_binary.should eql("/opt/local/bin/gem")
+ expect(@resource.gem_binary).to eql("/opt/local/bin/gem")
end
end
diff --git a/spec/unit/resource/git_spec.rb b/spec/unit/resource/git_spec.rb
index da7aee1014..6a39b3d172 100644
--- a/spec/unit/resource/git_spec.rb
+++ b/spec/unit/resource/git_spec.rb
@@ -33,18 +33,18 @@ describe Chef::Resource::Git do
end
it "is a kind of Scm Resource" do
- @git.should be_a_kind_of(Chef::Resource::Scm)
- @git.should be_an_instance_of(Chef::Resource::Git)
+ expect(@git).to be_a_kind_of(Chef::Resource::Scm)
+ expect(@git).to be_an_instance_of(Chef::Resource::Git)
end
it "uses aliases revision as branch" do
@git.branch "HEAD"
- @git.revision.should eql("HEAD")
+ expect(@git.revision).to eql("HEAD")
end
it "aliases revision as reference" do
@git.reference "v1.0 tag"
- @git.revision.should eql("v1.0 tag")
+ expect(@git.revision).to eql("v1.0 tag")
end
end
diff --git a/spec/unit/resource/group_spec.rb b/spec/unit/resource/group_spec.rb
index 0c3cf4f67f..bcf9205f7e 100644
--- a/spec/unit/resource/group_spec.rb
+++ b/spec/unit/resource/group_spec.rb
@@ -25,47 +25,47 @@ describe Chef::Resource::Group, "initialize" do
end
it "should create a new Chef::Resource::Group" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Group)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Group)
end
it "should set the resource_name to :group" do
- @resource.resource_name.should eql(:group)
+ expect(@resource.resource_name).to eql(:group)
end
it "should set the group_name equal to the argument to initialize" do
- @resource.group_name.should eql("admin")
+ expect(@resource.group_name).to eql("admin")
end
it "should default gid to nil" do
- @resource.gid.should eql(nil)
+ expect(@resource.gid).to eql(nil)
end
it "should default members to an empty array" do
- @resource.members.should eql([])
+ expect(@resource.members).to eql([])
end
it "should alias users to members, also an empty array" do
- @resource.users.should eql([])
+ expect(@resource.users).to eql([])
end
it "should set action to :create" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
%w{create remove modify manage}.each do |action|
it "should allow action #{action}" do
- @resource.allowed_actions.detect { |a| a == action.to_sym }.should eql(action.to_sym)
+ expect(@resource.allowed_actions.detect { |a| a == action.to_sym }).to eql(action.to_sym)
end
end
it "should accept domain groups (@ or \ separator) on non-windows" do
- lambda { @resource.group_name "domain\@group" }.should_not raise_error
- @resource.group_name.should == "domain\@group"
- lambda { @resource.group_name "domain\\group" }.should_not raise_error
- @resource.group_name.should == "domain\\group"
- lambda { @resource.group_name "domain\\group^name" }.should_not raise_error
- @resource.group_name.should == "domain\\group^name"
+ expect { @resource.group_name "domain\@group" }.not_to raise_error
+ expect(@resource.group_name).to eq("domain\@group")
+ expect { @resource.group_name "domain\\group" }.not_to raise_error
+ expect(@resource.group_name).to eq("domain\\group")
+ expect { @resource.group_name "domain\\group^name" }.not_to raise_error
+ expect(@resource.group_name).to eq("domain\\group^name")
end
end
@@ -76,11 +76,11 @@ describe Chef::Resource::Group, "group_name" do
it "should allow a string" do
@resource.group_name "pirates"
- @resource.group_name.should eql("pirates")
+ expect(@resource.group_name).to eql("pirates")
end
it "should not allow a hash" do
- lambda { @resource.send(:group_name, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(:group_name, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
end
end
@@ -91,11 +91,11 @@ describe Chef::Resource::Group, "gid" do
it "should allow an integer" do
@resource.gid 100
- @resource.gid.should eql(100)
+ expect(@resource.gid).to eql(100)
end
it "should not allow a hash" do
- lambda { @resource.send(:gid, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(:gid, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
end
end
@@ -107,16 +107,16 @@ describe Chef::Resource::Group, "members" do
[ :users, :members].each do |method|
it "(#{method}) should allow and convert a string" do
@resource.send(method, "aj")
- @resource.send(method).should eql(["aj"])
+ expect(@resource.send(method)).to eql(["aj"])
end
it "(#{method}) should allow an array" do
@resource.send(method, [ "aj", "adam" ])
- @resource.send(method).should eql( ["aj", "adam"] )
+ expect(@resource.send(method)).to eql( ["aj", "adam"] )
end
it "(#{method}) should not allow a hash" do
- lambda { @resource.send(method, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(method, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
end
end
end
@@ -127,16 +127,16 @@ describe Chef::Resource::Group, "append" do
end
it "should default to false" do
- @resource.append.should eql(false)
+ expect(@resource.append).to eql(false)
end
it "should allow a boolean" do
@resource.append true
- @resource.append.should eql(true)
+ expect(@resource.append).to eql(true)
end
it "should not allow a hash" do
- lambda { @resource.send(:gid, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(:gid, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
end
describe "when it has members" do
@@ -147,11 +147,11 @@ describe Chef::Resource::Group, "append" do
it "describes its state" do
state = @resource.state
- state[:members].should eql(["blastoise", "pikachu"])
+ expect(state[:members]).to eql(["blastoise", "pikachu"])
end
it "returns the group name as its identity" do
- @resource.identity.should == "pokemon"
+ expect(@resource.identity).to eq("pokemon")
end
end
end
diff --git a/spec/unit/resource/http_request_spec.rb b/spec/unit/resource/http_request_spec.rb
index b636ca9994..aa4ce4dfbc 100644
--- a/spec/unit/resource/http_request_spec.rb
+++ b/spec/unit/resource/http_request_spec.rb
@@ -26,22 +26,22 @@ describe Chef::Resource::HttpRequest do
end
it "should create a new Chef::Resource::HttpRequest" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::HttpRequest)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::HttpRequest)
end
it "should set url to a string" do
@resource.url "http://slashdot.org"
- @resource.url.should eql("http://slashdot.org")
+ expect(@resource.url).to eql("http://slashdot.org")
end
it "should set the message to the name by default" do
- @resource.message.should eql("fakey_fakerton")
+ expect(@resource.message).to eql("fakey_fakerton")
end
it "should set message to a string" do
@resource.message "monkeybars"
- @resource.message.should eql("monkeybars")
+ expect(@resource.message).to eql("monkeybars")
end
describe "when it has a message and headers" do
@@ -52,7 +52,7 @@ describe Chef::Resource::HttpRequest do
end
it "returns the url as its identity" do
- @resource.identity.should == "http://www.trololol.net"
+ expect(@resource.identity).to eq("http://www.trololol.net")
end
end
diff --git a/spec/unit/resource/ifconfig_spec.rb b/spec/unit/resource/ifconfig_spec.rb
index 10a4d09982..ea5282acd5 100644
--- a/spec/unit/resource/ifconfig_spec.rb
+++ b/spec/unit/resource/ifconfig_spec.rb
@@ -38,12 +38,12 @@ describe Chef::Resource::Ifconfig do
it "describes its state" do
state = @resource.state
- state[:inet_addr].should == "434.2343.23"
- state[:mask].should == "255.255.545"
+ expect(state[:inet_addr]).to eq("434.2343.23")
+ expect(state[:mask]).to eq("255.255.545")
end
it "returns the device as its identity" do
- @resource.identity.should == "charmander"
+ expect(@resource.identity).to eq("charmander")
end
end
@@ -54,9 +54,9 @@ describe Chef::Resource::Ifconfig do
end
it "should use an ordinary Provider::Ifconfig as a provider for #{platform} #{version}" do
- @resource.provider_for_action(:add).should be_a_kind_of(Chef::Provider::Ifconfig)
- @resource.provider_for_action(:add).should_not be_a_kind_of(Chef::Provider::Ifconfig::Debian)
- @resource.provider_for_action(:add).should_not be_a_kind_of(Chef::Provider::Ifconfig::Redhat)
+ expect(@resource.provider_for_action(:add)).to be_a_kind_of(Chef::Provider::Ifconfig)
+ expect(@resource.provider_for_action(:add)).not_to be_a_kind_of(Chef::Provider::Ifconfig::Debian)
+ expect(@resource.provider_for_action(:add)).not_to be_a_kind_of(Chef::Provider::Ifconfig::Redhat)
end
end
@@ -67,7 +67,7 @@ describe Chef::Resource::Ifconfig do
end
it "should use an Provider::Ifconfig::Redhat as a provider for #{platform} #{version}" do
- @resource.provider_for_action(:add).should be_a_kind_of(Chef::Provider::Ifconfig::Redhat)
+ expect(@resource.provider_for_action(:add)).to be_a_kind_of(Chef::Provider::Ifconfig::Redhat)
end
end
@@ -78,7 +78,7 @@ describe Chef::Resource::Ifconfig do
end
it "should use an Ifconfig::Debian as a provider for #{platform} #{version}" do
- @resource.provider_for_action(:add).should be_a_kind_of(Chef::Provider::Ifconfig::Debian)
+ expect(@resource.provider_for_action(:add)).to be_a_kind_of(Chef::Provider::Ifconfig::Debian)
end
end
diff --git a/spec/unit/resource/ips_package_spec.rb b/spec/unit/resource/ips_package_spec.rb
index 8718c5c093..126ae00224 100644
--- a/spec/unit/resource/ips_package_spec.rb
+++ b/spec/unit/resource/ips_package_spec.rb
@@ -35,6 +35,6 @@ describe Chef::Resource::IpsPackage, "initialize" do
it "should support accept_license" do
@resource.accept_license(true)
- @resource.accept_license.should eql(true)
+ expect(@resource.accept_license).to eql(true)
end
end
diff --git a/spec/unit/resource/link_spec.rb b/spec/unit/resource/link_spec.rb
index 221617f9b3..3573a15f31 100644
--- a/spec/unit/resource/link_spec.rb
+++ b/spec/unit/resource/link_spec.rb
@@ -22,78 +22,78 @@ require 'spec_helper'
describe Chef::Resource::Link do
before(:each) do
- Chef::Resource::Link.any_instance.should_receive(:verify_links_supported!).and_return(true)
+ expect_any_instance_of(Chef::Resource::Link).to receive(:verify_links_supported!).and_return(true)
@resource = Chef::Resource::Link.new("fakey_fakerton")
end
it "should create a new Chef::Resource::Link" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Link)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Link)
end
it "should have a name" do
- @resource.name.should eql("fakey_fakerton")
+ expect(@resource.name).to eql("fakey_fakerton")
end
it "should have a default action of 'create'" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
{ :create => false, :delete => false, :blues => true }.each do |action,bad_value|
it "should #{bad_value ? 'not' : ''} accept #{action.to_s}" do
if bad_value
- lambda { @resource.action action }.should raise_error(ArgumentError)
+ expect { @resource.action action }.to raise_error(ArgumentError)
else
- lambda { @resource.action action }.should_not raise_error
+ expect { @resource.action action }.not_to raise_error
end
end
end
it "should use the object name as the target_file by default" do
- @resource.target_file.should eql("fakey_fakerton")
+ expect(@resource.target_file).to eql("fakey_fakerton")
end
it "should accept a string as the link source via 'to'" do
- lambda { @resource.to "/tmp" }.should_not raise_error
+ expect { @resource.to "/tmp" }.not_to raise_error
end
it "should not accept a Hash for the link source via 'to'" do
- lambda { @resource.to Hash.new }.should raise_error(ArgumentError)
+ expect { @resource.to Hash.new }.to raise_error(ArgumentError)
end
it "should allow you to set a link source via 'to'" do
@resource.to "/tmp/foo"
- @resource.to.should eql("/tmp/foo")
+ expect(@resource.to).to eql("/tmp/foo")
end
it "should allow you to specify the link type" do
@resource.link_type "symbolic"
- @resource.link_type.should eql(:symbolic)
+ expect(@resource.link_type).to eql(:symbolic)
end
it "should default to a symbolic link" do
- @resource.link_type.should eql(:symbolic)
+ expect(@resource.link_type).to eql(:symbolic)
end
it "should accept a hard link_type" do
@resource.link_type :hard
- @resource.link_type.should eql(:hard)
+ expect(@resource.link_type).to eql(:hard)
end
it "should reject any other link_type but :hard and :symbolic" do
- lambda { @resource.link_type "x-men" }.should raise_error(ArgumentError)
+ expect { @resource.link_type "x-men" }.to raise_error(ArgumentError)
end
it "should accept a group name or id for group" do
- lambda { @resource.group "root" }.should_not raise_error
- lambda { @resource.group 123 }.should_not raise_error
- lambda { @resource.group "root:goo" }.should raise_error(ArgumentError)
+ expect { @resource.group "root" }.not_to raise_error
+ expect { @resource.group 123 }.not_to raise_error
+ expect { @resource.group "root:goo" }.to raise_error(ArgumentError)
end
it "should accept a user name or id for owner" do
- lambda { @resource.owner "root" }.should_not raise_error
- lambda { @resource.owner 123 }.should_not raise_error
- lambda { @resource.owner "root:goo" }.should raise_error(ArgumentError)
+ expect { @resource.owner "root" }.not_to raise_error
+ expect { @resource.owner 123 }.not_to raise_error
+ expect { @resource.owner "root:goo" }.to raise_error(ArgumentError)
end
describe "when it has to, link_type, owner, and group" do
@@ -107,13 +107,13 @@ describe Chef::Resource::Link do
it "describes its state" do
state = @resource.state
- state[:to].should == "/to/dir/file.tar"
- state[:owner].should == "root"
- state[:group].should == "0664"
+ expect(state[:to]).to eq("/to/dir/file.tar")
+ expect(state[:owner]).to eq("root")
+ expect(state[:group]).to eq("0664")
end
it "returns the target file as its identity" do
- @resource.identity.should == "/var/target.tar"
+ expect(@resource.identity).to eq("/var/target.tar")
end
end
end
diff --git a/spec/unit/resource/log_spec.rb b/spec/unit/resource/log_spec.rb
index c0201e57f3..b2af194238 100644
--- a/spec/unit/resource/log_spec.rb
+++ b/spec/unit/resource/log_spec.rb
@@ -27,29 +27,29 @@ describe Chef::Resource::Log do
end
it "should create a new Chef::Resource::Log" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Log)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Log)
end
it "supports the :write actions" do
- @resource.allowed_actions.should include(:write)
+ expect(@resource.allowed_actions).to include(:write)
end
it "should have a name of log" do
- @resource.resource_name.should == :log
+ expect(@resource.resource_name).to eq(:log)
end
it "should allow you to set a log string" do
- @resource.name.should == @log_str
+ expect(@resource.name).to eq(@log_str)
end
it "should set the message to the first argument to new" do
- @resource.message.should == @log_str
+ expect(@resource.message).to eq(@log_str)
end
it "should accept a string for the log message" do
@resource.message "this is different"
- @resource.message.should == "this is different"
+ expect(@resource.message).to eq("this is different")
end
it "should accept a vaild level option" do
@@ -58,7 +58,7 @@ describe Chef::Resource::Log do
@resource.level :warn
@resource.level :error
@resource.level :fatal
- lambda { @resource.level :unsupported }.should raise_error(ArgumentError)
+ expect { @resource.level :unsupported }.to raise_error(ArgumentError)
end
describe "when the identity is defined" do
@@ -67,7 +67,7 @@ describe Chef::Resource::Log do
end
it "returns the log string as its identity" do
- @resource.identity.should == "ery day I'm loggin-in"
+ expect(@resource.identity).to eq("ery day I'm loggin-in")
end
end
end
diff --git a/spec/unit/resource/mdadm_spec.rb b/spec/unit/resource/mdadm_spec.rb
index daf10bcfea..866309ec5b 100644
--- a/spec/unit/resource/mdadm_spec.rb
+++ b/spec/unit/resource/mdadm_spec.rb
@@ -26,57 +26,57 @@ describe Chef::Resource::Mdadm do
end
it "should create a new Chef::Resource::Mdadm" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Mdadm)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Mdadm)
end
it "should have a resource name of :mdadm" do
- @resource.resource_name.should eql(:mdadm)
+ expect(@resource.resource_name).to eql(:mdadm)
end
it "should have a default action of create" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
it "should accept create, assemble, stop as actions" do
- lambda { @resource.action :create }.should_not raise_error
- lambda { @resource.action :assemble }.should_not raise_error
- lambda { @resource.action :stop }.should_not raise_error
+ expect { @resource.action :create }.not_to raise_error
+ expect { @resource.action :assemble }.not_to raise_error
+ expect { @resource.action :stop }.not_to raise_error
end
it "should allow you to set the raid_device attribute" do
@resource.raid_device "/dev/md3"
- @resource.raid_device.should eql("/dev/md3")
+ expect(@resource.raid_device).to eql("/dev/md3")
end
it "should allow you to set the chunk attribute" do
@resource.chunk 256
- @resource.chunk.should eql(256)
+ expect(@resource.chunk).to eql(256)
end
it "should allow you to set the level attribute" do
@resource.level 1
- @resource.level.should eql(1)
+ expect(@resource.level).to eql(1)
end
it "should allow you to set the metadata attribute" do
@resource.metadata "1.2"
- @resource.metadata.should eql("1.2")
+ expect(@resource.metadata).to eql("1.2")
end
it "should allow you to set the bitmap attribute" do
@resource.metadata "internal"
- @resource.metadata.should eql("internal")
+ expect(@resource.metadata).to eql("internal")
end
it "should allow you to set the devices attribute" do
@resource.devices ["/dev/sda", "/dev/sdb"]
- @resource.devices.should eql(["/dev/sda", "/dev/sdb"])
+ expect(@resource.devices).to eql(["/dev/sda", "/dev/sdb"])
end
it "should allow you to set the exists attribute" do
@resource.exists true
- @resource.exists.should eql(true)
+ expect(@resource.exists).to eql(true)
end
describe "when it has devices, level, and chunk" do
@@ -89,13 +89,13 @@ describe Chef::Resource::Mdadm do
it "describes its state" do
state = @resource.state
- state[:devices].should eql(["device1", "device2"])
- state[:level].should == 1
- state[:chunk].should == 42
+ expect(state[:devices]).to eql(["device1", "device2"])
+ expect(state[:level]).to eq(1)
+ expect(state[:chunk]).to eq(42)
end
it "returns the raid device as its identity" do
- @resource.identity.should == "raider"
+ expect(@resource.identity).to eq("raider")
end
end
diff --git a/spec/unit/resource/mount_spec.rb b/spec/unit/resource/mount_spec.rb
index 0a154342c7..ad95c06e04 100644
--- a/spec/unit/resource/mount_spec.rb
+++ b/spec/unit/resource/mount_spec.rb
@@ -25,150 +25,150 @@ describe Chef::Resource::Mount do
end
it "should create a new Chef::Resource::Mount" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Mount)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Mount)
end
it "should have a name" do
- @resource.name.should eql("filesystem")
+ expect(@resource.name).to eql("filesystem")
end
it "should set mount_point to the name" do
- @resource.mount_point.should eql("filesystem")
+ expect(@resource.mount_point).to eql("filesystem")
end
it "should have a default action of mount" do
- @resource.action.should eql(:mount)
+ expect(@resource.action).to eql(:mount)
end
it "should accept mount, umount and remount as actions" do
- lambda { @resource.action :mount }.should_not raise_error
- lambda { @resource.action :umount }.should_not raise_error
- lambda { @resource.action :remount }.should_not raise_error
- lambda { @resource.action :brooklyn }.should raise_error(ArgumentError)
+ expect { @resource.action :mount }.not_to raise_error
+ expect { @resource.action :umount }.not_to raise_error
+ expect { @resource.action :remount }.not_to raise_error
+ expect { @resource.action :brooklyn }.to raise_error(ArgumentError)
end
it "should allow you to set the device attribute" do
@resource.device "/dev/sdb3"
- @resource.device.should eql("/dev/sdb3")
+ expect(@resource.device).to eql("/dev/sdb3")
end
it "should set fsck_device to '-' by default" do
- @resource.fsck_device.should eql('-')
+ expect(@resource.fsck_device).to eql('-')
end
it "should allow you to set the fsck_device attribute" do
@resource.fsck_device "/dev/rdsk/sdb3"
- @resource.fsck_device.should eql("/dev/rdsk/sdb3")
+ expect(@resource.fsck_device).to eql("/dev/rdsk/sdb3")
end
it "should allow you to set the fstype attribute" do
@resource.fstype "nfs"
- @resource.fstype.should eql("nfs")
+ expect(@resource.fstype).to eql("nfs")
end
it "should allow you to set the dump attribute" do
@resource.dump 1
- @resource.dump.should eql(1)
+ expect(@resource.dump).to eql(1)
end
it "should allow you to set the pass attribute" do
@resource.pass 1
- @resource.pass.should eql(1)
+ expect(@resource.pass).to eql(1)
end
it "should set the options attribute to defaults" do
- @resource.options.should eql(["defaults"])
+ expect(@resource.options).to eql(["defaults"])
end
it "should allow options to be sent as a string, and convert to array" do
@resource.options "rw,noexec"
- @resource.options.should be_a_kind_of(Array)
+ expect(@resource.options).to be_a_kind_of(Array)
end
it "should allow options attribute as an array" do
@resource.options ["ro", "nosuid"]
- @resource.options.should be_a_kind_of(Array)
+ expect(@resource.options).to be_a_kind_of(Array)
end
it "should allow options to be sent as a delayed evaluator" do
@resource.options Chef::DelayedEvaluator.new {["rw", "noexec"]}
- @resource.options.should eql(["rw", "noexec"])
+ expect(@resource.options).to eql(["rw", "noexec"])
end
it "should allow options to be sent as a delayed evaluator, and convert to array" do
@resource.options Chef::DelayedEvaluator.new {"rw,noexec"}
- @resource.options.should be_a_kind_of(Array)
- @resource.options.should eql(["rw", "noexec"])
+ expect(@resource.options).to be_a_kind_of(Array)
+ expect(@resource.options).to eql(["rw", "noexec"])
end
it "should accept true for mounted" do
@resource.mounted(true)
- @resource.mounted.should eql(true)
+ expect(@resource.mounted).to eql(true)
end
it "should accept false for mounted" do
@resource.mounted(false)
- @resource.mounted.should eql(false)
+ expect(@resource.mounted).to eql(false)
end
it "should set mounted to false by default" do
- @resource.mounted.should eql(false)
+ expect(@resource.mounted).to eql(false)
end
it "should not accept a string for mounted" do
- lambda { @resource.mounted("poop") }.should raise_error(ArgumentError)
+ expect { @resource.mounted("poop") }.to raise_error(ArgumentError)
end
it "should accept true for enabled" do
@resource.enabled(true)
- @resource.enabled.should eql(true)
+ expect(@resource.enabled).to eql(true)
end
it "should accept false for enabled" do
@resource.enabled(false)
- @resource.enabled.should eql(false)
+ expect(@resource.enabled).to eql(false)
end
it "should set enabled to false by default" do
- @resource.enabled.should eql(false)
+ expect(@resource.enabled).to eql(false)
end
it "should not accept a string for enabled" do
- lambda { @resource.enabled("poop") }.should raise_error(ArgumentError)
+ expect { @resource.enabled("poop") }.to raise_error(ArgumentError)
end
it "should default all feature support to false" do
support_hash = { :remount => false }
- @resource.supports.should == support_hash
+ expect(@resource.supports).to eq(support_hash)
end
it "should allow you to set feature support as an array" do
support_array = [ :remount ]
support_hash = { :remount => true }
@resource.supports(support_array)
- @resource.supports.should == support_hash
+ expect(@resource.supports).to eq(support_hash)
end
it "should allow you to set feature support as a hash" do
support_hash = { :remount => true }
@resource.supports(support_hash)
- @resource.supports.should == support_hash
+ expect(@resource.supports).to eq(support_hash)
end
it "should allow you to set username" do
@resource.username("Administrator")
- @resource.username.should == "Administrator"
+ expect(@resource.username).to eq("Administrator")
end
it "should allow you to set password" do
@resource.password("Jetstream123!")
- @resource.password.should == "Jetstream123!"
+ expect(@resource.password).to eq("Jetstream123!")
end
it "should allow you to set domain" do
@resource.domain("TEST_DOMAIN")
- @resource.domain.should == "TEST_DOMAIN"
+ expect(@resource.domain).to eq("TEST_DOMAIN")
end
describe "when it has mount point, device type, and fstype" do
@@ -181,13 +181,13 @@ describe Chef::Resource::Mount do
it "describes its state" do
state = @resource.state
- state[:mount_point].should == "123.456"
- state[:device_type].should eql(:device)
- state[:fstype].should == "ranked"
+ expect(state[:mount_point]).to eq("123.456")
+ expect(state[:device_type]).to eql(:device)
+ expect(state[:fstype]).to eq("ranked")
end
it "returns the device as its identity" do
- @resource.identity.should == "charmander"
+ expect(@resource.identity).to eq("charmander")
end
end
@@ -202,12 +202,12 @@ describe Chef::Resource::Mount do
it "describes its state" do
state = @resource.state
- state[:mount_point].should == "T:"
- state[:username].should == "Administrator"
- state[:password].should == "Jetstream123!"
- state[:domain].should == "TEST_DOMAIN"
- state[:device_type].should eql(:device)
- state[:fstype].should == "auto"
+ expect(state[:mount_point]).to eq("T:")
+ expect(state[:username]).to eq("Administrator")
+ expect(state[:password]).to eq("Jetstream123!")
+ expect(state[:domain]).to eq("TEST_DOMAIN")
+ expect(state[:device_type]).to eql(:device)
+ expect(state[:fstype]).to eq("auto")
end
end
diff --git a/spec/unit/resource/ohai_spec.rb b/spec/unit/resource/ohai_spec.rb
index b8d062b4c9..fe29755abf 100644
--- a/spec/unit/resource/ohai_spec.rb
+++ b/spec/unit/resource/ohai_spec.rb
@@ -25,21 +25,21 @@ describe Chef::Resource::Ohai do
end
it "should create a new Chef::Resource::Ohai" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Ohai)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Ohai)
end
it "should have a resource name of :ohai" do
- @resource.resource_name.should eql(:ohai)
+ expect(@resource.resource_name).to eql(:ohai)
end
it "should have a default action of create" do
- @resource.action.should eql(:reload)
+ expect(@resource.action).to eql(:reload)
end
it "should allow you to set the plugin attribute" do
@resource.plugin "passwd"
- @resource.plugin.should eql("passwd")
+ expect(@resource.plugin).to eql("passwd")
end
describe "when it has a plugin value" do
@@ -50,11 +50,11 @@ describe Chef::Resource::Ohai do
it "describes its state" do
state = @resource.state
- state[:plugin].should == "passwd"
+ expect(state[:plugin]).to eq("passwd")
end
it "returns the name as its identity" do
- @resource.identity.should == "test"
+ expect(@resource.identity).to eq("test")
end
end
diff --git a/spec/unit/resource/package_spec.rb b/spec/unit/resource/package_spec.rb
index 8a1a13394e..449732a3c4 100644
--- a/spec/unit/resource/package_spec.rb
+++ b/spec/unit/resource/package_spec.rb
@@ -26,42 +26,42 @@ describe Chef::Resource::Package do
end
it "should create a new Chef::Resource::Package" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Package)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Package)
end
it "should set the package_name to the first argument to new" do
- @resource.package_name.should eql("emacs")
+ expect(@resource.package_name).to eql("emacs")
end
it "should accept a string for the package name" do
@resource.package_name "something"
- @resource.package_name.should eql("something")
+ expect(@resource.package_name).to eql("something")
end
it "should accept a string for the version" do
@resource.version "something"
- @resource.version.should eql("something")
+ expect(@resource.version).to eql("something")
end
it "should accept a string for the response file" do
@resource.response_file "something"
- @resource.response_file.should eql("something")
+ expect(@resource.response_file).to eql("something")
end
it "should accept a hash for response file template variables" do
@resource.response_file_variables({:variables => true})
- @resource.response_file_variables.should eql({:variables => true})
+ expect(@resource.response_file_variables).to eql({:variables => true})
end
it "should accept a string for the source" do
@resource.source "something"
- @resource.source.should eql("something")
+ expect(@resource.source).to eql("something")
end
it "should accept a string for the options" do
@resource.options "something"
- @resource.options.should eql("something")
+ expect(@resource.options).to eql("something")
end
describe "when it has a package_name and version" do
@@ -73,12 +73,12 @@ describe Chef::Resource::Package do
it "describes its state" do
state = @resource.state
- state[:version].should == "10.9.8"
- state[:options].should == "-al"
+ expect(state[:version]).to eq("10.9.8")
+ expect(state[:options]).to eq("-al")
end
it "returns the file path as its identity" do
- @resource.identity.should == "tomcat"
+ expect(@resource.identity).to eq("tomcat")
end
end
diff --git a/spec/unit/resource/perl_spec.rb b/spec/unit/resource/perl_spec.rb
index d25dc98563..7247cce6e3 100644
--- a/spec/unit/resource/perl_spec.rb
+++ b/spec/unit/resource/perl_spec.rb
@@ -25,16 +25,16 @@ describe Chef::Resource::Perl do
end
it "should create a new Chef::Resource::Perl" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Perl)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Perl)
end
it "should have a resource name of :perl" do
- @resource.resource_name.should eql(:perl)
+ expect(@resource.resource_name).to eql(:perl)
end
it "should have an interpreter of perl" do
- @resource.interpreter.should eql("perl")
+ expect(@resource.interpreter).to eql("perl")
end
end
diff --git a/spec/unit/resource/portage_package_spec.rb b/spec/unit/resource/portage_package_spec.rb
index 510f3b5864..d2ac7ac4be 100644
--- a/spec/unit/resource/portage_package_spec.rb
+++ b/spec/unit/resource/portage_package_spec.rb
@@ -25,14 +25,14 @@ describe Chef::Resource::PortagePackage, "initialize" do
end
it "should return a Chef::Resource::PortagePackage" do
- @resource.should be_a_kind_of(Chef::Resource::PortagePackage)
+ expect(@resource).to be_a_kind_of(Chef::Resource::PortagePackage)
end
it "should set the resource_name to :portage_package" do
- @resource.resource_name.should eql(:portage_package)
+ expect(@resource.resource_name).to eql(:portage_package)
end
it "should set the provider to Chef::Provider::Package::Portage" do
- @resource.provider.should eql(Chef::Provider::Package::Portage)
+ expect(@resource.provider).to eql(Chef::Provider::Package::Portage)
end
end
diff --git a/spec/unit/resource/powershell_spec.rb b/spec/unit/resource/powershell_spec.rb
index da20c4f0bf..c263172ae6 100644
--- a/spec/unit/resource/powershell_spec.rb
+++ b/spec/unit/resource/powershell_spec.rb
@@ -33,32 +33,32 @@ describe Chef::Resource::PowershellScript do
end
it "should create a new Chef::Resource::PowershellScript" do
- @resource.should be_a_kind_of(Chef::Resource::PowershellScript)
+ expect(@resource).to be_a_kind_of(Chef::Resource::PowershellScript)
end
it "should set convert_boolean_return to false by default" do
- @resource.convert_boolean_return.should == false
+ expect(@resource.convert_boolean_return).to eq(false)
end
it "should return the value for convert_boolean_return that was set" do
@resource.convert_boolean_return true
- @resource.convert_boolean_return.should == true
+ expect(@resource.convert_boolean_return).to eq(true)
@resource.convert_boolean_return false
- @resource.convert_boolean_return.should == false
+ expect(@resource.convert_boolean_return).to eq(false)
end
context "when using guards" do
let(:resource) { @resource }
before(:each) do
- resource.stub(:run_action)
- resource.stub(:updated).and_return(true)
+ allow(resource).to receive(:run_action)
+ allow(resource).to receive(:updated).and_return(true)
end
it "inherits exactly the :cwd, :environment, :group, :path, :user, :umask, and :architecture attributes from a parent resource class" do
inherited_difference = Chef::Resource::PowershellScript.guard_inherited_attributes -
[:cwd, :environment, :group, :path, :user, :umask, :architecture ]
- inherited_difference.should == []
+ expect(inherited_difference).to eq([])
end
it "should allow guard interpreter to be set to Chef::Resource::Script" do
diff --git a/spec/unit/resource/python_spec.rb b/spec/unit/resource/python_spec.rb
index 3362b68c62..8a3f7e48ca 100644
--- a/spec/unit/resource/python_spec.rb
+++ b/spec/unit/resource/python_spec.rb
@@ -25,16 +25,16 @@ describe Chef::Resource::Python do
end
it "should create a new Chef::Resource::Python" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Python)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Python)
end
it "should have a resource name of :python" do
- @resource.resource_name.should eql(:python)
+ expect(@resource.resource_name).to eql(:python)
end
it "should have an interpreter of python" do
- @resource.interpreter.should eql("python")
+ expect(@resource.interpreter).to eql("python")
end
end
diff --git a/spec/unit/resource/registry_key_spec.rb b/spec/unit/resource/registry_key_spec.rb
index 00c301d61d..e2a864d73a 100644
--- a/spec/unit/resource/registry_key_spec.rb
+++ b/spec/unit/resource/registry_key_spec.rb
@@ -24,33 +24,33 @@ describe Chef::Resource::RegistryKey, "initialize" do
end
it "should create a new Chef::Resource::RegistryKey" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::RegistryKey)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::RegistryKey)
end
it "should set the resource_name to :registry_key" do
- @resource.resource_name.should eql(:registry_key)
+ expect(@resource.resource_name).to eql(:registry_key)
end
it "should set the key equal to the argument to initialize" do
- @resource.key.should eql('HKCU\Software\Raxicoricofallapatorius')
+ expect(@resource.key).to eql('HKCU\Software\Raxicoricofallapatorius')
end
it "should default recursive to false" do
- @resource.recursive.should eql(false)
+ expect(@resource.recursive).to eql(false)
end
it "should default architecture to :machine" do
- @resource.architecture.should eql(:machine)
+ expect(@resource.architecture).to eql(:machine)
end
it "should set action to :create" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
%w{create create_if_missing delete delete_key}.each do |action|
it "should allow action #{action}" do
- @resource.allowed_actions.detect { |a| a == action.to_sym }.should eql(action.to_sym)
+ expect(@resource.allowed_actions.detect { |a| a == action.to_sym }).to eql(action.to_sym)
end
end
end
@@ -62,15 +62,15 @@ describe Chef::Resource::RegistryKey, "key" do
it "should allow a string" do
@resource.key 'HKCU\Software\Poosh'
- @resource.key.should eql('HKCU\Software\Poosh')
+ expect(@resource.key).to eql('HKCU\Software\Poosh')
end
it "should not allow an integer" do
- lambda { @resource.send(:key, 100) }.should raise_error(ArgumentError)
+ expect { @resource.send(:key, 100) }.to raise_error(ArgumentError)
end
it "should not allow a hash" do
- lambda { @resource.send(:key, { :sonic => "screwdriver" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(:key, { :sonic => "screwdriver" }) }.to raise_error(ArgumentError)
end
end
@@ -81,41 +81,41 @@ describe Chef::Resource::RegistryKey, "values" do
it "should allow a single proper hash of registry values" do
@resource.values( { :name => 'poosh', :type => :string, :data => 'carmen' } )
- @resource.values.should eql([ { :name => 'poosh', :type => :string, :data => 'carmen' } ])
+ expect(@resource.values).to eql([ { :name => 'poosh', :type => :string, :data => 'carmen' } ])
end
it "should allow an array of proper hashes of registry values" do
@resource.values [ { :name => 'poosh', :type => :string, :data => 'carmen' } ]
- @resource.values.should eql([ { :name => 'poosh', :type => :string, :data => 'carmen' } ])
+ expect(@resource.values).to eql([ { :name => 'poosh', :type => :string, :data => 'carmen' } ])
end
it "should return checksummed data if the type is unsafe" do
@resource.values( { :name => 'poosh', :type => :binary, :data => 255.chr * 1 })
- @resource.values.should eql([ { :name => 'poosh', :type => :binary, :data => "00594fd4f42ba43fc1ca0427a0576295" } ])
+ expect(@resource.values).to eql([ { :name => 'poosh', :type => :binary, :data => "00594fd4f42ba43fc1ca0427a0576295" } ])
end
it "should throw an exception if the name field is missing" do
- lambda { @resource.values [ { :type => :string, :data => 'carmen' } ] }.should raise_error(ArgumentError)
+ expect { @resource.values [ { :type => :string, :data => 'carmen' } ] }.to raise_error(ArgumentError)
end
it "should throw an exception if the type field is missing" do
- lambda { @resource.values [ { :name => 'poosh', :data => 'carmen' } ] }.should raise_error(ArgumentError)
+ expect { @resource.values [ { :name => 'poosh', :data => 'carmen' } ] }.to raise_error(ArgumentError)
end
it "should throw an exception if the data field is missing" do
- lambda { @resource.values [ { :name => 'poosh', :type => :string } ] }.should raise_error(ArgumentError)
+ expect { @resource.values [ { :name => 'poosh', :type => :string } ] }.to raise_error(ArgumentError)
end
it "should throw an exception if extra fields are present" do
- lambda { @resource.values [ { :name => 'poosh', :type => :string, :data => 'carmen', :screwdriver => 'sonic' } ] }.should raise_error(ArgumentError)
+ expect { @resource.values [ { :name => 'poosh', :type => :string, :data => 'carmen', :screwdriver => 'sonic' } ] }.to raise_error(ArgumentError)
end
it "should not allow a string" do
- lambda { @resource.send(:values, 'souffle') }.should raise_error(ArgumentError)
+ expect { @resource.send(:values, 'souffle') }.to raise_error(ArgumentError)
end
it "should not allow an integer" do
- lambda { @resource.send(:values, 100) }.should raise_error(ArgumentError)
+ expect { @resource.send(:values, 100) }.to raise_error(ArgumentError)
end
end
@@ -126,23 +126,23 @@ describe Chef::Resource::RegistryKey, "recursive" do
it "should allow a boolean" do
@resource.recursive(true)
- @resource.recursive.should eql(true)
+ expect(@resource.recursive).to eql(true)
end
it "should not allow a hash" do
- lambda { @resource.recursive({:sonic => :screwdriver}) }.should raise_error(ArgumentError)
+ expect { @resource.recursive({:sonic => :screwdriver}) }.to raise_error(ArgumentError)
end
it "should not allow an array" do
- lambda { @resource.recursive([:nose, :chin]) }.should raise_error(ArgumentError)
+ expect { @resource.recursive([:nose, :chin]) }.to raise_error(ArgumentError)
end
it "should not allow a string" do
- lambda { @resource.recursive('souffle') }.should raise_error(ArgumentError)
+ expect { @resource.recursive('souffle') }.to raise_error(ArgumentError)
end
it "should not allow an integer" do
- lambda { @resource.recursive(100) }.should raise_error(ArgumentError)
+ expect { @resource.recursive(100) }.to raise_error(ArgumentError)
end
end
@@ -154,24 +154,24 @@ describe Chef::Resource::RegistryKey, "architecture" do
[ :i386, :x86_64, :machine ].each do |arch|
it "should allow #{arch} as a symbol" do
@resource.architecture(arch)
- @resource.architecture.should eql(arch)
+ expect(@resource.architecture).to eql(arch)
end
end
it "should not allow a hash" do
- lambda { @resource.architecture({:sonic => :screwdriver}) }.should raise_error(ArgumentError)
+ expect { @resource.architecture({:sonic => :screwdriver}) }.to raise_error(ArgumentError)
end
it "should not allow an array" do
- lambda { @resource.architecture([:nose, :chin]) }.should raise_error(ArgumentError)
+ expect { @resource.architecture([:nose, :chin]) }.to raise_error(ArgumentError)
end
it "should not allow a string" do
- lambda { @resource.architecture('souffle') }.should raise_error(ArgumentError)
+ expect { @resource.architecture('souffle') }.to raise_error(ArgumentError)
end
it "should not allow an integer" do
- lambda { @resource.architecture(100) }.should raise_error(ArgumentError)
+ expect { @resource.architecture(100) }.to raise_error(ArgumentError)
end
end
@@ -183,7 +183,7 @@ describe Chef::Resource::RegistryKey, ":unscrubbed_values" do
it "should return unsafe data as-is" do
key_values = [ { :name => 'poosh', :type => :binary, :data => 255.chr * 1 } ]
@resource.values(key_values)
- @resource.unscrubbed_values.should eql(key_values)
+ expect(@resource.unscrubbed_values).to eql(key_values)
end
end
@@ -194,6 +194,6 @@ describe Chef::Resource::RegistryKey, "state" do
it "should return scrubbed values" do
@resource.values([ { :name => 'poosh', :type => :binary, :data => 255.chr * 1 } ])
- @resource.state.should eql( { :values => [{ :name => 'poosh', :type => :binary, :data => "00594fd4f42ba43fc1ca0427a0576295" }] } )
+ expect(@resource.state).to eql( { :values => [{ :name => 'poosh', :type => :binary, :data => "00594fd4f42ba43fc1ca0427a0576295" }] } )
end
end
diff --git a/spec/unit/resource/remote_directory_spec.rb b/spec/unit/resource/remote_directory_spec.rb
index d3800062ae..1ab75586b6 100644
--- a/spec/unit/resource/remote_directory_spec.rb
+++ b/spec/unit/resource/remote_directory_spec.rb
@@ -25,52 +25,52 @@ describe Chef::Resource::RemoteDirectory do
end
it "should create a new Chef::Resource::RemoteDirectory" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::RemoteDirectory)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::RemoteDirectory)
end
it "should set the path to the first argument to new" do
- @resource.path.should eql("/etc/dunk")
+ expect(@resource.path).to eql("/etc/dunk")
end
it "should accept a string for the remote directory source" do
@resource.source "foo"
- @resource.source.should eql("foo")
+ expect(@resource.source).to eql("foo")
end
it "should have the basename of the remote directory resource as the default source" do
- @resource.source.should eql("dunk")
+ expect(@resource.source).to eql("dunk")
end
it "should accept a number for the remote files backup" do
@resource.files_backup 1
- @resource.files_backup.should eql(1)
+ expect(@resource.files_backup).to eql(1)
end
it "should accept false for the remote files backup" do
@resource.files_backup false
- @resource.files_backup.should eql(false)
+ expect(@resource.files_backup).to eql(false)
end
it "should accept 3 or 4 digets for the files_mode" do
@resource.files_mode 100
- @resource.files_mode.should eql(100)
+ expect(@resource.files_mode).to eql(100)
@resource.files_mode 1000
- @resource.files_mode.should eql(1000)
+ expect(@resource.files_mode).to eql(1000)
end
it "should accept a string or number for the files group" do
@resource.files_group "heart"
- @resource.files_group.should eql("heart")
+ expect(@resource.files_group).to eql("heart")
@resource.files_group 1000
- @resource.files_group.should eql(1000)
+ expect(@resource.files_group).to eql(1000)
end
it "should accept a string or number for the files owner" do
@resource.files_owner "heart"
- @resource.files_owner.should eql("heart")
+ expect(@resource.files_owner).to eql("heart")
@resource.files_owner 1000
- @resource.files_owner.should eql(1000)
+ expect(@resource.files_owner).to eql(1000)
end
describe "when it has cookbook, files owner, files mode, and source" do
@@ -85,13 +85,13 @@ describe Chef::Resource::RemoteDirectory do
it "describes its state" do
state = @resource.state
- state[:files_owner].should == "root"
- state[:files_group].should == "supergroup"
- state[:files_mode].should == "0664"
+ expect(state[:files_owner]).to eq("root")
+ expect(state[:files_group]).to eq("supergroup")
+ expect(state[:files_mode]).to eq("0664")
end
it "returns the path as its identity" do
- @resource.identity.should == "/var/path/"
+ expect(@resource.identity).to eq("/var/path/")
end
end
end
diff --git a/spec/unit/resource/remote_file_spec.rb b/spec/unit/resource/remote_file_spec.rb
index 8f1633119d..14d2fb97bc 100644
--- a/spec/unit/resource/remote_file_spec.rb
+++ b/spec/unit/resource/remote_file_spec.rb
@@ -27,74 +27,74 @@ describe Chef::Resource::RemoteFile do
describe "initialize" do
it "should create a new Chef::Resource::RemoteFile" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::File)
- @resource.should be_a_kind_of(Chef::Resource::RemoteFile)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::File)
+ expect(@resource).to be_a_kind_of(Chef::Resource::RemoteFile)
end
end
it "says its provider is RemoteFile when the source is an absolute URI" do
@resource.source("http://www.google.com/robots.txt")
- @resource.provider.should == Chef::Provider::RemoteFile
- Chef::Platform.find_provider(:noplatform, 'noversion', @resource).should == Chef::Provider::RemoteFile
+ expect(@resource.provider).to eq(Chef::Provider::RemoteFile)
+ expect(Chef::Platform.find_provider(:noplatform, 'noversion', @resource)).to eq(Chef::Provider::RemoteFile)
end
describe "source" do
it "does not have a default value for 'source'" do
- @resource.source.should eql([])
+ expect(@resource.source).to eql([])
end
it "should accept a URI for the remote file source" do
@resource.source "http://opscode.com/"
- @resource.source.should eql([ "http://opscode.com/" ])
+ expect(@resource.source).to eql([ "http://opscode.com/" ])
end
it "should accept a delayed evalutator (string) for the remote file source" do
@resource.source Chef::DelayedEvaluator.new {"http://opscode.com/"}
- @resource.source.should eql([ "http://opscode.com/" ])
+ expect(@resource.source).to eql([ "http://opscode.com/" ])
end
it "should accept an array of URIs for the remote file source" do
@resource.source([ "http://opscode.com/", "http://puppetlabs.com/" ])
- @resource.source.should eql([ "http://opscode.com/", "http://puppetlabs.com/" ])
+ expect(@resource.source).to eql([ "http://opscode.com/", "http://puppetlabs.com/" ])
end
it "should accept a delated evaluator (array) for the remote file source" do
@resource.source Chef::DelayedEvaluator.new { [ "http://opscode.com/", "http://puppetlabs.com/" ] }
- @resource.source.should eql([ "http://opscode.com/", "http://puppetlabs.com/" ])
+ expect(@resource.source).to eql([ "http://opscode.com/", "http://puppetlabs.com/" ])
end
it "should accept an multiple URIs as arguments for the remote file source" do
@resource.source("http://opscode.com/", "http://puppetlabs.com/")
- @resource.source.should eql([ "http://opscode.com/", "http://puppetlabs.com/" ])
+ expect(@resource.source).to eql([ "http://opscode.com/", "http://puppetlabs.com/" ])
end
it "should only accept a single argument if a delayed evalutor is used" do
- lambda {
+ expect {
@resource.source("http://opscode.com/", Chef::DelayedEvaluator.new {"http://opscode.com/"})
- }.should raise_error(Chef::Exceptions::InvalidRemoteFileURI)
+ }.to raise_error(Chef::Exceptions::InvalidRemoteFileURI)
end
it "should only accept a single array item if a delayed evalutor is used" do
- lambda {
+ expect {
@resource.source(["http://opscode.com/", Chef::DelayedEvaluator.new {"http://opscode.com/"}])
- }.should raise_error(Chef::Exceptions::InvalidRemoteFileURI)
+ }.to raise_error(Chef::Exceptions::InvalidRemoteFileURI)
end
it "does not accept a non-URI as the source" do
- lambda { @resource.source("not-a-uri") }.should raise_error(Chef::Exceptions::InvalidRemoteFileURI)
+ expect { @resource.source("not-a-uri") }.to raise_error(Chef::Exceptions::InvalidRemoteFileURI)
end
it "does not accept a non-URI as the source when read from a delayed evaluator" do
- lambda {
+ expect {
@resource.source(Chef::DelayedEvaluator.new {"not-a-uri"})
@resource.source
- }.should raise_error(Chef::Exceptions::InvalidRemoteFileURI)
+ }.to raise_error(Chef::Exceptions::InvalidRemoteFileURI)
end
it "should raise an exception when source is an empty array" do
- lambda { @resource.source([]) }.should raise_error(ArgumentError)
+ expect { @resource.source([]) }.to raise_error(ArgumentError)
end
end
@@ -102,51 +102,51 @@ describe Chef::Resource::RemoteFile do
describe "checksum" do
it "should accept a string for the checksum object" do
@resource.checksum "asdf"
- @resource.checksum.should eql("asdf")
+ expect(@resource.checksum).to eql("asdf")
end
it "should default to nil" do
- @resource.checksum.should == nil
+ expect(@resource.checksum).to eq(nil)
end
end
describe "ftp_active_mode" do
it "should accept a boolean for the ftp_active_mode object" do
@resource.ftp_active_mode true
- @resource.ftp_active_mode.should be_true
+ expect(@resource.ftp_active_mode).to be_true
end
it "should default to false" do
- @resource.ftp_active_mode.should be_false
+ expect(@resource.ftp_active_mode).to be_false
end
end
describe "conditional get options" do
it "defaults to using etags and last modified" do
- @resource.use_etags.should be_true
- @resource.use_last_modified.should be_true
+ expect(@resource.use_etags).to be_true
+ expect(@resource.use_last_modified).to be_true
end
it "enable or disables etag and last modified options as a group" do
@resource.use_conditional_get(false)
- @resource.use_etags.should be_false
- @resource.use_last_modified.should be_false
+ expect(@resource.use_etags).to be_false
+ expect(@resource.use_last_modified).to be_false
@resource.use_conditional_get(true)
- @resource.use_etags.should be_true
- @resource.use_last_modified.should be_true
+ expect(@resource.use_etags).to be_true
+ expect(@resource.use_last_modified).to be_true
end
it "disables etags indivdually" do
@resource.use_etags(false)
- @resource.use_etags.should be_false
- @resource.use_last_modified.should be_true
+ expect(@resource.use_etags).to be_false
+ expect(@resource.use_last_modified).to be_true
end
it "disables last modified individually" do
@resource.use_last_modified(false)
- @resource.use_last_modified.should be_false
- @resource.use_etags.should be_true
+ expect(@resource.use_last_modified).to be_false
+ expect(@resource.use_etags).to be_true
end
end
@@ -171,21 +171,21 @@ describe Chef::Resource::RemoteFile do
state = @resource.state
if Chef::Platform.windows?
puts state
- state[:rights].should == [{:permissions => :read, :principals => "Everyone"}]
- state[:deny_rights].should == [{:permissions => :full_control, :principals => "Clumsy_Sam"}]
+ expect(state[:rights]).to eq([{:permissions => :read, :principals => "Everyone"}])
+ expect(state[:deny_rights]).to eq([{:permissions => :full_control, :principals => "Clumsy_Sam"}])
else
- state[:group].should == "pokemon"
- state[:mode].should == "0664"
- state[:owner].should == "root"
- state[:checksum].should == "1"*26
+ expect(state[:group]).to eq("pokemon")
+ expect(state[:mode]).to eq("0664")
+ expect(state[:owner]).to eq("root")
+ expect(state[:checksum]).to eq("1"*26)
end
end
it "returns the path as its identity" do
if Chef::Platform.windows?
- @resource.identity.should == "C:/temp/origin/file.txt"
+ expect(@resource.identity).to eq("C:/temp/origin/file.txt")
else
- @resource.identity.should == "/this/path/"
+ expect(@resource.identity).to eq("/this/path/")
end
end
end
diff --git a/spec/unit/resource/route_spec.rb b/spec/unit/resource/route_spec.rb
index 4522438402..ec1d369932 100644
--- a/spec/unit/resource/route_spec.rb
+++ b/spec/unit/resource/route_spec.rb
@@ -26,64 +26,64 @@ describe Chef::Resource::Route do
end
it "should create a new Chef::Resource::Route" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Route)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Route)
end
it "should have a name" do
- @resource.name.should eql("10.0.0.10")
+ expect(@resource.name).to eql("10.0.0.10")
end
it "should have a default action of 'add'" do
- @resource.action.should eql([:add])
+ expect(@resource.action).to eql([:add])
end
it "should accept add or delete for action" do
- lambda { @resource.action :add }.should_not raise_error
- lambda { @resource.action :delete }.should_not raise_error
- lambda { @resource.action :lolcat }.should raise_error(ArgumentError)
+ expect { @resource.action :add }.not_to raise_error
+ expect { @resource.action :delete }.not_to raise_error
+ expect { @resource.action :lolcat }.to raise_error(ArgumentError)
end
it "should use the object name as the target by default" do
- @resource.target.should eql("10.0.0.10")
+ expect(@resource.target).to eql("10.0.0.10")
end
it "should allow you to specify the netmask" do
@resource.netmask "255.255.255.0"
- @resource.netmask.should eql("255.255.255.0")
+ expect(@resource.netmask).to eql("255.255.255.0")
end
it "should allow you to specify the gateway" do
@resource.gateway "10.0.0.1"
- @resource.gateway.should eql("10.0.0.1")
+ expect(@resource.gateway).to eql("10.0.0.1")
end
it "should allow you to specify the metric" do
@resource.metric 10
- @resource.metric.should eql(10)
+ expect(@resource.metric).to eql(10)
end
it "should allow you to specify the device" do
@resource.device "eth0"
- @resource.device.should eql("eth0")
+ expect(@resource.device).to eql("eth0")
end
it "should allow you to specify the route type" do
@resource.route_type "host"
- @resource.route_type.should eql(:host)
+ expect(@resource.route_type).to eql(:host)
end
it "should default to a host route type" do
- @resource.route_type.should eql(:host)
+ expect(@resource.route_type).to eql(:host)
end
it "should accept a net route type" do
@resource.route_type :net
- @resource.route_type.should eql(:net)
+ expect(@resource.route_type).to eql(:net)
end
it "should reject any other route_type but :host and :net" do
- lambda { @resource.route_type "lolcat" }.should raise_error(ArgumentError)
+ expect { @resource.route_type "lolcat" }.to raise_error(ArgumentError)
end
describe "when it has netmask, gateway, and device" do
@@ -96,12 +96,12 @@ describe Chef::Resource::Route do
it "describes its state" do
state = @resource.state
- state[:netmask].should == "lemask"
- state[:gateway].should == "111.111.111"
+ expect(state[:netmask]).to eq("lemask")
+ expect(state[:gateway]).to eq("111.111.111")
end
it "returns the target as its identity" do
- @resource.identity.should == "charmander"
+ expect(@resource.identity).to eq("charmander")
end
end
end
diff --git a/spec/unit/resource/ruby_block_spec.rb b/spec/unit/resource/ruby_block_spec.rb
index 82bbd1ffc7..9f19fecd4f 100644
--- a/spec/unit/resource/ruby_block_spec.rb
+++ b/spec/unit/resource/ruby_block_spec.rb
@@ -26,27 +26,27 @@ describe Chef::Resource::RubyBlock do
end
it "should create a new Chef::Resource::RubyBlock" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::RubyBlock)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::RubyBlock)
end
it "should have a default action of 'create'" do
- @resource.action.should eql("run")
+ expect(@resource.action).to eql("run")
end
it "should have a resource name of :ruby_block" do
- @resource.resource_name.should eql(:ruby_block)
+ expect(@resource.resource_name).to eql(:ruby_block)
end
it "should accept a ruby block/proc/.. for the 'block' parameter" do
- @resource.block do
+ expect(@resource.block do
"foo"
- end.call.should eql("foo")
+ end.call).to eql("foo")
end
it "allows the action to be 'create'" do
@resource.action :create
- @resource.action.should == [:create]
+ expect(@resource.action).to eq([:create])
end
describe "when it has been initialized with block code" do
@@ -55,7 +55,7 @@ describe Chef::Resource::RubyBlock do
end
it "returns the block as its identity" do
- @resource.identity.should == "puts 'harrrr'"
+ expect(@resource.identity).to eq("puts 'harrrr'")
end
end
end
diff --git a/spec/unit/resource/ruby_spec.rb b/spec/unit/resource/ruby_spec.rb
index 9bf7316e6d..e899810ab9 100644
--- a/spec/unit/resource/ruby_spec.rb
+++ b/spec/unit/resource/ruby_spec.rb
@@ -25,16 +25,16 @@ describe Chef::Resource::Ruby do
end
it "should create a new Chef::Resource::Ruby" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Ruby)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Ruby)
end
it "should have a resource name of :ruby" do
- @resource.resource_name.should eql(:ruby)
+ expect(@resource.resource_name).to eql(:ruby)
end
it "should have an interpreter of ruby" do
- @resource.interpreter.should eql("ruby")
+ expect(@resource.interpreter).to eql("ruby")
end
end
diff --git a/spec/unit/resource/scm_spec.rb b/spec/unit/resource/scm_spec.rb
index eeb2fb1c3c..daabdd03ba 100644
--- a/spec/unit/resource/scm_spec.rb
+++ b/spec/unit/resource/scm_spec.rb
@@ -26,141 +26,141 @@ describe Chef::Resource::Scm do
end
it "should be a SCM resource" do
- @resource.should be_a_kind_of(Chef::Resource::Scm)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Scm)
end
it "supports :checkout, :export, :sync, :diff, and :log actions" do
- @resource.allowed_actions.should include(:checkout)
- @resource.allowed_actions.should include(:export)
- @resource.allowed_actions.should include(:sync)
- @resource.allowed_actions.should include(:diff)
- @resource.allowed_actions.should include(:log)
+ expect(@resource.allowed_actions).to include(:checkout)
+ expect(@resource.allowed_actions).to include(:export)
+ expect(@resource.allowed_actions).to include(:sync)
+ expect(@resource.allowed_actions).to include(:diff)
+ expect(@resource.allowed_actions).to include(:log)
end
it "takes the destination path as a string" do
@resource.destination "/path/to/deploy/dir"
- @resource.destination.should eql("/path/to/deploy/dir")
+ expect(@resource.destination).to eql("/path/to/deploy/dir")
end
it "takes a string for the repository URL" do
@resource.repository "git://github.com/opscode/chef.git"
- @resource.repository.should eql("git://github.com/opscode/chef.git")
+ expect(@resource.repository).to eql("git://github.com/opscode/chef.git")
end
it "takes a string for the revision" do
@resource.revision "abcdef"
- @resource.revision.should eql("abcdef")
+ expect(@resource.revision).to eql("abcdef")
end
it "defaults to the ``HEAD'' revision" do
- @resource.revision.should eql("HEAD")
+ expect(@resource.revision).to eql("HEAD")
end
it "takes a string for the user to run as" do
@resource.user "dr_deploy"
- @resource.user.should eql("dr_deploy")
+ expect(@resource.user).to eql("dr_deploy")
end
it "also takes an integer for the user to run as" do
@resource.user 0
- @resource.user.should eql(0)
+ expect(@resource.user).to eql(0)
end
it "takes a string for the group to run as, defaulting to nil" do
- @resource.group.should be_nil
+ expect(@resource.group).to be_nil
@resource.group "opsdevs"
- @resource.group.should == "opsdevs"
+ expect(@resource.group).to eq("opsdevs")
end
it "also takes an integer for the group to run as" do
@resource.group 23
- @resource.group.should == 23
+ expect(@resource.group).to eq(23)
end
it "has a svn_username String attribute" do
@resource.svn_username "moartestsplz"
- @resource.svn_username.should eql("moartestsplz")
+ expect(@resource.svn_username).to eql("moartestsplz")
end
it "has a svn_password String attribute" do
@resource.svn_password "taftplz"
- @resource.svn_password.should eql("taftplz")
+ expect(@resource.svn_password).to eql("taftplz")
end
it "has a svn_arguments String attribute" do
@resource.svn_arguments "--more-taft plz"
- @resource.svn_arguments.should eql("--more-taft plz")
+ expect(@resource.svn_arguments).to eql("--more-taft plz")
end
it "has a svn_info_args String attribute" do
- @resource.svn_info_args.should be_nil
+ expect(@resource.svn_info_args).to be_nil
@resource.svn_info_args("--no-moar-plaintext-creds yep")
- @resource.svn_info_args.should == "--no-moar-plaintext-creds yep"
+ expect(@resource.svn_info_args).to eq("--no-moar-plaintext-creds yep")
end
it "takes the depth as an integer for shallow clones" do
@resource.depth 5
- @resource.depth.should == 5
- lambda {@resource.depth "five"}.should raise_error(ArgumentError)
+ expect(@resource.depth).to eq(5)
+ expect {@resource.depth "five"}.to raise_error(ArgumentError)
end
it "defaults to nil depth for a full clone" do
- @resource.depth.should be_nil
+ expect(@resource.depth).to be_nil
end
it "takes a boolean for #enable_submodules" do
@resource.enable_submodules true
- @resource.enable_submodules.should be_true
- lambda {@resource.enable_submodules "lolz"}.should raise_error(ArgumentError)
+ expect(@resource.enable_submodules).to be_true
+ expect {@resource.enable_submodules "lolz"}.to raise_error(ArgumentError)
end
it "defaults to not enabling submodules" do
- @resource.enable_submodules.should be_false
+ expect(@resource.enable_submodules).to be_false
end
it "takes a boolean for #enable_checkout" do
@resource.enable_checkout true
- @resource.enable_checkout.should be_true
- lambda {@resource.enable_checkout "lolz"}.should raise_error(ArgumentError)
+ expect(@resource.enable_checkout).to be_true
+ expect {@resource.enable_checkout "lolz"}.to raise_error(ArgumentError)
end
it "defaults to enabling checkout" do
- @resource.enable_checkout.should be_true
+ expect(@resource.enable_checkout).to be_true
end
it "takes a string for the remote" do
@resource.remote "opscode"
- @resource.remote.should eql("opscode")
- lambda {@resource.remote 1337}.should raise_error(ArgumentError)
+ expect(@resource.remote).to eql("opscode")
+ expect {@resource.remote 1337}.to raise_error(ArgumentError)
end
it "defaults to ``origin'' for the remote" do
- @resource.remote.should == "origin"
+ expect(@resource.remote).to eq("origin")
end
it "takes a string for the ssh wrapper" do
@resource.ssh_wrapper "with_ssh_fu"
- @resource.ssh_wrapper.should eql("with_ssh_fu")
+ expect(@resource.ssh_wrapper).to eql("with_ssh_fu")
end
it "defaults to nil for the ssh wrapper" do
- @resource.ssh_wrapper.should be_nil
+ expect(@resource.ssh_wrapper).to be_nil
end
it "defaults to nil for the environment" do
- @resource.environment.should be_nil
+ expect(@resource.environment).to be_nil
end
describe "when it has a timeout attribute" do
let(:ten_seconds) { 10 }
before { @resource.timeout(ten_seconds) }
it "stores this timeout" do
- @resource.timeout.should == ten_seconds
+ expect(@resource.timeout).to eq(ten_seconds)
end
end
describe "when it has no timeout attribute" do
it "should have no default timeout" do
- @resource.timeout.should be_nil
+ expect(@resource.timeout).to be_nil
end
end
@@ -175,11 +175,11 @@ describe Chef::Resource::Scm do
it "describes its state" do
state = @resource.state
- state[:revision].should == "1.2.3"
+ expect(state[:revision]).to eq("1.2.3")
end
it "returns the destination as its identity" do
- @resource.identity.should == "hell"
+ expect(@resource.identity).to eq("hell")
end
end
@@ -187,7 +187,7 @@ describe Chef::Resource::Scm do
let(:test_environment) { {'CHEF_ENV' => '/tmp' } }
before { @resource.environment(test_environment) }
it "stores this environment" do
- @resource.environment.should == test_environment
+ expect(@resource.environment).to eq(test_environment)
end
end
end
diff --git a/spec/unit/resource/script_spec.rb b/spec/unit/resource/script_spec.rb
index f100b0dc85..9d744baaa5 100644
--- a/spec/unit/resource/script_spec.rb
+++ b/spec/unit/resource/script_spec.rb
@@ -26,7 +26,7 @@ describe Chef::Resource::Script do
it "should accept a string for the interpreter" do
script_resource.interpreter "naaaaNaNaNaaNaaNaaNaa"
- script_resource.interpreter.should eql("naaaaNaNaNaaNaaNaaNaa")
+ expect(script_resource.interpreter).to eql("naaaaNaNaNaaNaaNaaNaa")
end
describe "when it has interpreter and flags" do
@@ -37,7 +37,7 @@ describe Chef::Resource::Script do
end
it "returns the command as its identity" do
- script_resource.identity.should == "grep"
+ expect(script_resource.identity).to eq("grep")
end
end
diff --git a/spec/unit/resource/service_spec.rb b/spec/unit/resource/service_spec.rb
index 9b779e5830..eb6f444e93 100644
--- a/spec/unit/resource/service_spec.rb
+++ b/spec/unit/resource/service_spec.rb
@@ -26,135 +26,135 @@ describe Chef::Resource::Service do
end
it "should create a new Chef::Resource::Service" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::Service)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Service)
end
it "should not set a provider unless node[:init_package] is defined as systemd" do
- @resource.provider.should == nil
+ expect(@resource.provider).to eq(nil)
end
it "should set the service_name to the first argument to new" do
- @resource.service_name.should eql("chef")
+ expect(@resource.service_name).to eql("chef")
end
it "should set the pattern to be the service name by default" do
- @resource.pattern.should eql("chef")
+ expect(@resource.pattern).to eql("chef")
end
it "should accept a string for the service name" do
@resource.service_name "something"
- @resource.service_name.should eql("something")
+ expect(@resource.service_name).to eql("something")
end
it "should accept a string for the service pattern" do
@resource.pattern ".*"
- @resource.pattern.should eql(".*")
+ expect(@resource.pattern).to eql(".*")
end
it "should not accept a regexp for the service pattern" do
- lambda {
+ expect {
@resource.pattern /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
it "should accept a string for the service start command" do
@resource.start_command "/etc/init.d/chef start"
- @resource.start_command.should eql("/etc/init.d/chef start")
+ expect(@resource.start_command).to eql("/etc/init.d/chef start")
end
it "should not accept a regexp for the service start command" do
- lambda {
+ expect {
@resource.start_command /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
it "should accept a string for the service stop command" do
@resource.stop_command "/etc/init.d/chef stop"
- @resource.stop_command.should eql("/etc/init.d/chef stop")
+ expect(@resource.stop_command).to eql("/etc/init.d/chef stop")
end
it "should not accept a regexp for the service stop command" do
- lambda {
+ expect {
@resource.stop_command /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
it "should accept a string for the service status command" do
@resource.status_command "/etc/init.d/chef status"
- @resource.status_command.should eql("/etc/init.d/chef status")
+ expect(@resource.status_command).to eql("/etc/init.d/chef status")
end
it "should not accept a regexp for the service status command" do
- lambda {
+ expect {
@resource.status_command /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
it "should accept a string for the service restart command" do
@resource.restart_command "/etc/init.d/chef restart"
- @resource.restart_command.should eql("/etc/init.d/chef restart")
+ expect(@resource.restart_command).to eql("/etc/init.d/chef restart")
end
it "should not accept a regexp for the service restart command" do
- lambda {
+ expect {
@resource.restart_command /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
it "should accept a string for the service reload command" do
@resource.reload_command "/etc/init.d/chef reload"
- @resource.reload_command.should eql("/etc/init.d/chef reload")
+ expect(@resource.reload_command).to eql("/etc/init.d/chef reload")
end
it "should not accept a regexp for the service reload command" do
- lambda {
+ expect {
@resource.reload_command /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
it "should accept a string for the service init command" do
@resource.init_command "/etc/init.d/chef"
- @resource.init_command.should eql("/etc/init.d/chef")
+ expect(@resource.init_command).to eql("/etc/init.d/chef")
end
it "should not accept a regexp for the service init command" do
- lambda {
+ expect {
@resource.init_command /.*/
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
%w{enabled running}.each do |attrib|
it "should accept true for #{attrib}" do
@resource.send(attrib, true)
- @resource.send(attrib).should eql(true)
+ expect(@resource.send(attrib)).to eql(true)
end
it "should accept false for #{attrib}" do
@resource.send(attrib, false)
- @resource.send(attrib).should eql(false)
+ expect(@resource.send(attrib)).to eql(false)
end
it "should not accept a string for #{attrib}" do
- lambda { @resource.send(attrib, "poop") }.should raise_error(ArgumentError)
+ expect { @resource.send(attrib, "poop") }.to raise_error(ArgumentError)
end
it "should default all the feature support to false" do
support_hash = { :status => false, :restart => false, :reload=> false }
- @resource.supports.should == support_hash
+ expect(@resource.supports).to eq(support_hash)
end
it "should allow you to set what features this resource supports as a array" do
support_array = [ :status, :restart ]
support_hash = { :status => true, :restart => true, :reload => false }
@resource.supports(support_array)
- @resource.supports.should == support_hash
+ expect(@resource.supports).to eq(support_hash)
end
it "should allow you to set what features this resource supports as a hash" do
support_hash = { :status => true, :restart => true, :reload => false }
@resource.supports(support_hash)
- @resource.supports.should == support_hash
+ expect(@resource.supports).to eq(support_hash)
end
end
@@ -167,12 +167,12 @@ describe Chef::Resource::Service do
it "describes its state" do
state = @resource.state
- state[:enabled].should eql(true)
- state[:running].should eql(false)
+ expect(state[:enabled]).to eql(true)
+ expect(state[:running]).to eql(false)
end
it "returns the service name as its identity" do
- @resource.identity.should == "superfriend"
+ expect(@resource.identity).to eq("superfriend")
end
end
diff --git a/spec/unit/resource/solaris_package_spec.rb b/spec/unit/resource/solaris_package_spec.rb
index ab4e03807d..f5d3e669a1 100644
--- a/spec/unit/resource/solaris_package_spec.rb
+++ b/spec/unit/resource/solaris_package_spec.rb
@@ -37,6 +37,6 @@ describe Chef::Resource::SolarisPackage, "initialize" do
end
it "should set the package_name to the name provided" do
- @resource.package_name.should eql("foo")
+ expect(@resource.package_name).to eql("foo")
end
end
diff --git a/spec/unit/resource/subversion_spec.rb b/spec/unit/resource/subversion_spec.rb
index a52d8421c6..4cbca9be11 100644
--- a/spec/unit/resource/subversion_spec.rb
+++ b/spec/unit/resource/subversion_spec.rb
@@ -33,35 +33,35 @@ describe Chef::Resource::Subversion do
end
it "is a subclass of Resource::Scm" do
- @svn.should be_an_instance_of(Chef::Resource::Subversion)
- @svn.should be_a_kind_of(Chef::Resource::Scm)
+ expect(@svn).to be_an_instance_of(Chef::Resource::Subversion)
+ expect(@svn).to be_a_kind_of(Chef::Resource::Scm)
end
it "allows the force_export action" do
- @svn.allowed_actions.should include(:force_export)
+ expect(@svn.allowed_actions).to include(:force_export)
end
it "sets svn info arguments to --no-auth-cache by default" do
- @svn.svn_info_args.should == '--no-auth-cache'
+ expect(@svn.svn_info_args).to eq('--no-auth-cache')
end
it "resets svn info arguments to nil when given false in the setter" do
@svn.svn_info_args(false)
- @svn.svn_info_args.should be_nil
+ expect(@svn.svn_info_args).to be_nil
end
it "sets svn arguments to --no-auth-cache by default" do
- @svn.svn_arguments.should == '--no-auth-cache'
+ expect(@svn.svn_arguments).to eq('--no-auth-cache')
end
it "resets svn arguments to nil when given false in the setter" do
@svn.svn_arguments(false)
- @svn.svn_arguments.should be_nil
+ expect(@svn.svn_arguments).to be_nil
end
it "hides password from custom exception message" do
@svn.svn_password "l33th4x0rpa$$w0rd"
e = @svn.customize_exception(Chef::Exceptions::Exec.new "Exception with password #{@svn.svn_password}")
- e.message.include?(@svn.svn_password).should be_false
+ expect(e.message.include?(@svn.svn_password)).to be_false
end
end
diff --git a/spec/unit/resource/template_spec.rb b/spec/unit/resource/template_spec.rb
index c9dfdc7014..df5ca94b8a 100644
--- a/spec/unit/resource/template_spec.rb
+++ b/spec/unit/resource/template_spec.rb
@@ -26,54 +26,54 @@ describe Chef::Resource::Template do
describe "initialize" do
it "should create a new Chef::Resource::Template" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::File)
- @resource.should be_a_kind_of(Chef::Resource::Template)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::File)
+ expect(@resource).to be_a_kind_of(Chef::Resource::Template)
end
end
describe "source" do
it "should accept a string for the template source" do
@resource.source "something"
- @resource.source.should eql("something")
+ expect(@resource.source).to eql("something")
end
it "should have a default based on the param name with .erb appended" do
- @resource.source.should eql("fakey_fakerton.erb")
+ expect(@resource.source).to eql("fakey_fakerton.erb")
end
it "should use only the basename of the file as the default" do
r = Chef::Resource::Template.new("/tmp/obit/fakey_fakerton")
- r.source.should eql("fakey_fakerton.erb")
+ expect(r.source).to eql("fakey_fakerton.erb")
end
end
describe "variables" do
it "should accept a hash for the variable list" do
@resource.variables({ :reluctance => :awkward })
- @resource.variables.should == { :reluctance => :awkward }
+ expect(@resource.variables).to eq({ :reluctance => :awkward })
end
end
describe "cookbook" do
it "should accept a string for the cookbook name" do
@resource.cookbook("foo")
- @resource.cookbook.should == "foo"
+ expect(@resource.cookbook).to eq("foo")
end
it "should default to nil" do
- @resource.cookbook.should == nil
+ expect(@resource.cookbook).to eq(nil)
end
end
describe "local" do
it "should accept a boolean for whether a template is local or remote" do
@resource.local(true)
- @resource.local.should == true
+ expect(@resource.local).to eq(true)
end
it "should default to false" do
- @resource.local.should == false
+ expect(@resource.local).to eq(false)
end
end
@@ -89,10 +89,10 @@ describe Chef::Resource::Template do
context "on unix", :unix_only do
it "describes its state" do
state = @resource.state
- state[:owner].should == "root"
- state[:group].should == "wheel"
- state[:mode].should == "0644"
- state[:checksum].should == "1" * 64
+ expect(state[:owner]).to eq("root")
+ expect(state[:group]).to eq("wheel")
+ expect(state[:mode]).to eq("0644")
+ expect(state[:checksum]).to eq("1" * 64)
end
end
@@ -102,7 +102,7 @@ describe Chef::Resource::Template do
end
it "returns the file path as its identity" do
- @resource.identity.should == "/tmp/foo.txt"
+ expect(@resource.identity).to eq("/tmp/foo.txt")
end
end
@@ -117,19 +117,19 @@ describe Chef::Resource::Template do
it "collects helper method bodies as blocks" do
@resource.helper(:example_1) { "example_1" }
@resource.helper(:example_2) { "example_2" }
- @resource.inline_helper_blocks[:example_1].call.should == "example_1"
- @resource.inline_helper_blocks[:example_2].call.should == "example_2"
+ expect(@resource.inline_helper_blocks[:example_1].call).to eq("example_1")
+ expect(@resource.inline_helper_blocks[:example_2].call).to eq("example_2")
end
it "compiles helper methods into a module" do
@resource.helper(:example_1) { "example_1" }
@resource.helper(:example_2) { "example_2" }
modules = @resource.helper_modules
- modules.should have(1).module
+ expect(modules.size).to eq(1)
o = Object.new
modules.each {|m| o.extend(m)}
- o.example_1.should == "example_1"
- o.example_2.should == "example_2"
+ expect(o.example_1).to eq("example_1")
+ expect(o.example_2).to eq("example_2")
end
it "compiles helper methods with arguments into a module" do
@@ -137,15 +137,15 @@ describe Chef::Resource::Template do
modules = @resource.helper_modules
o = Object.new
modules.each {|m| o.extend(m)}
- o.shout("shout").should == "SHOUT"
+ expect(o.shout("shout")).to eq("SHOUT")
end
it "raises an error when attempting to define a helper method without a method body" do
- lambda { @resource.helper(:example) }.should raise_error(Chef::Exceptions::ValidationFailed)
+ expect { @resource.helper(:example) }.to raise_error(Chef::Exceptions::ValidationFailed)
end
it "raises an error when attempting to define a helper method with a non-Symbod method name" do
- lambda { @resource.helper("example") { "fail" } }.should raise_error(Chef::Exceptions::ValidationFailed)
+ expect { @resource.helper("example") { "fail" } }.to raise_error(Chef::Exceptions::ValidationFailed)
end
it "collects helper module bodies as blocks" do
@@ -155,7 +155,7 @@ describe Chef::Resource::Template do
end
end
module_body = @resource.inline_helper_modules.first
- module_body.should be_a(Proc)
+ expect(module_body).to be_a(Proc)
end
it "compiles helper module bodies into modules" do
@@ -165,27 +165,27 @@ describe Chef::Resource::Template do
end
end
modules = @resource.helper_modules
- modules.should have(1).module
+ expect(modules.size).to eq(1)
o = Object.new
modules.each {|m| o.extend(m)}
- o.example_1.should == "example_1"
+ expect(o.example_1).to eq("example_1")
end
it "raises an error when no block or module name is given for helpers definition" do
- lambda { @resource.helpers() }.should raise_error(Chef::Exceptions::ValidationFailed)
+ expect { @resource.helpers() }.to raise_error(Chef::Exceptions::ValidationFailed)
end
it "raises an error when a non-module is given for helpers definition" do
- lambda { @resource.helpers("NotAModule") }.should raise_error(Chef::Exceptions::ValidationFailed)
+ expect { @resource.helpers("NotAModule") }.to raise_error(Chef::Exceptions::ValidationFailed)
end
it "raises an error when a module name and block are both given for helpers definition" do
- lambda { @resource.helpers(ExampleHelpers) { module_code } }.should raise_error(Chef::Exceptions::ValidationFailed)
+ expect { @resource.helpers(ExampleHelpers) { module_code } }.to raise_error(Chef::Exceptions::ValidationFailed)
end
it "collects helper modules" do
@resource.helpers(ExampleHelpers)
- @resource.helper_modules.should include(ExampleHelpers)
+ expect(@resource.helper_modules).to include(ExampleHelpers)
end
it "combines all helpers into a set of compiled modules" do
@@ -196,13 +196,13 @@ describe Chef::Resource::Template do
end
end
@resource.helper(:inline_method) { "inline_method" }
- @resource.should have(3).helper_modules
+ expect(@resource.helper_modules.size).to eq(3)
o = Object.new
@resource.helper_modules.each {|m| o.extend(m)}
- o.static_example.should == "static_example"
- o.inline_module.should == "inline_module"
- o.inline_method.should == "inline_method"
+ expect(o.static_example).to eq("static_example")
+ expect(o.inline_module).to eq("inline_module")
+ expect(o.inline_method).to eq("inline_method")
end
diff --git a/spec/unit/resource/user_spec.rb b/spec/unit/resource/user_spec.rb
index 70b866202b..f05de94fe0 100644
--- a/spec/unit/resource/user_spec.rb
+++ b/spec/unit/resource/user_spec.rb
@@ -24,51 +24,51 @@ describe Chef::Resource::User, "initialize" do
end
it "should create a new Chef::Resource::User" do
- @resource.should be_a_kind_of(Chef::Resource)
- @resource.should be_a_kind_of(Chef::Resource::User)
+ expect(@resource).to be_a_kind_of(Chef::Resource)
+ expect(@resource).to be_a_kind_of(Chef::Resource::User)
end
it "should set the resource_name to :user" do
- @resource.resource_name.should eql(:user)
+ expect(@resource.resource_name).to eql(:user)
end
it "should set the username equal to the argument to initialize" do
- @resource.username.should eql("adam")
+ expect(@resource.username).to eql("adam")
end
%w{comment uid gid home shell password}.each do |attrib|
it "should set #{attrib} to nil" do
- @resource.send(attrib).should eql(nil)
+ expect(@resource.send(attrib)).to eql(nil)
end
end
it "should set action to :create" do
- @resource.action.should eql(:create)
+ expect(@resource.action).to eql(:create)
end
it "should set supports[:manage_home] to false" do
- @resource.supports[:manage_home].should eql(false)
+ expect(@resource.supports[:manage_home]).to eql(false)
end
it "should set supports[:non_unique] to false" do
- @resource.supports[:non_unique].should eql(false)
+ expect(@resource.supports[:non_unique]).to eql(false)
end
it "should set force to false" do
- @resource.force.should eql(false)
+ expect(@resource.force).to eql(false)
end
%w{create remove modify manage lock unlock}.each do |action|
it "should allow action #{action}" do
- @resource.allowed_actions.detect { |a| a == action.to_sym }.should eql(action.to_sym)
+ expect(@resource.allowed_actions.detect { |a| a == action.to_sym }).to eql(action.to_sym)
end
end
it "should accept domain users (@ or \ separator) on non-windows" do
- lambda { @resource.username "domain\@user" }.should_not raise_error
- @resource.username.should == "domain\@user"
- lambda { @resource.username "domain\\user" }.should_not raise_error
- @resource.username.should == "domain\\user"
+ expect { @resource.username "domain\@user" }.not_to raise_error
+ expect(@resource.username).to eq("domain\@user")
+ expect { @resource.username "domain\\user" }.not_to raise_error
+ expect(@resource.username).to eq("domain\\user")
end
end
@@ -80,11 +80,11 @@ end
it "should allow a string" do
@resource.send(attrib, "adam")
- @resource.send(attrib).should eql("adam")
+ expect(@resource.send(attrib)).to eql("adam")
end
it "should not allow a hash" do
- lambda { @resource.send(attrib, { :woot => "i found it" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(attrib, { :woot => "i found it" }) }.to raise_error(ArgumentError)
end
end
end
@@ -97,16 +97,16 @@ end
it "should allow a string" do
@resource.send(attrib, "100")
- @resource.send(attrib).should eql("100")
+ expect(@resource.send(attrib)).to eql("100")
end
it "should allow an integer" do
@resource.send(attrib, 100)
- @resource.send(attrib).should eql(100)
+ expect(@resource.send(attrib)).to eql(100)
end
it "should not allow a hash" do
- lambda { @resource.send(attrib, { :woot => "i found it" }) }.should raise_error(ArgumentError)
+ expect { @resource.send(attrib, { :woot => "i found it" }) }.to raise_error(ArgumentError)
end
end
@@ -120,13 +120,13 @@ end
it "describes its state" do
state = @resource.state
- state[:uid].should == 123
- state[:gid].should == 456
- state[:home].should == "/usr/local/root/"
+ expect(state[:uid]).to eq(123)
+ expect(state[:gid]).to eq(456)
+ expect(state[:home]).to eq("/usr/local/root/")
end
it "returns the username as its identity" do
- @resource.identity.should == "root"
+ expect(@resource.identity).to eq("root")
end
end
diff --git a/spec/unit/resource/windows_package_spec.rb b/spec/unit/resource/windows_package_spec.rb
index c9ef8d910c..3c45548ece 100644
--- a/spec/unit/resource/windows_package_spec.rb
+++ b/spec/unit/resource/windows_package_spec.rb
@@ -56,13 +56,13 @@ describe Chef::Resource::WindowsPackage, "initialize", :windows_only do
end
it "coverts a source to an absolute path" do
- ::File.stub(:absolute_path).and_return("c:\\Files\\frost.msi")
+ allow(::File).to receive(:absolute_path).and_return("c:\\Files\\frost.msi")
resource.source("frost.msi")
expect(resource.source).to eql "c:\\Files\\frost.msi"
end
it "converts slashes to backslashes in the source path" do
- ::File.stub(:absolute_path).and_return("c:\\frost.msi")
+ allow(::File).to receive(:absolute_path).and_return("c:\\frost.msi")
resource.source("c:/frost.msi")
expect(resource.source).to eql "c:\\frost.msi"
end
diff --git a/spec/unit/resource/windows_service_spec.rb b/spec/unit/resource/windows_service_spec.rb
index c92c3be1b0..fd7bedec9f 100644
--- a/spec/unit/resource/windows_service_spec.rb
+++ b/spec/unit/resource/windows_service_spec.rb
@@ -41,6 +41,6 @@ describe Chef::Resource::WindowsService, "initialize", :windows_only do
it "allows the action to be 'configure_startup'" do
resource.action :configure_startup
- resource.action.should == [:configure_startup]
+ expect(resource.action).to eq([:configure_startup])
end
end
diff --git a/spec/unit/resource/yum_package_spec.rb b/spec/unit/resource/yum_package_spec.rb
index 7e1979fdfd..e01b87c580 100644
--- a/spec/unit/resource/yum_package_spec.rb
+++ b/spec/unit/resource/yum_package_spec.rb
@@ -39,7 +39,7 @@ describe Chef::Resource::YumPackage, "arch" do
it "should set the arch variable to whatever is passed in" do
@resource.arch("i386")
- @resource.arch.should eql("i386")
+ expect(@resource.arch).to eql("i386")
end
end
@@ -50,20 +50,20 @@ describe Chef::Resource::YumPackage, "flush_cache" do
it "should default the flush timing to false" do
flush_hash = { :before => false, :after => false }
- @resource.flush_cache.should == flush_hash
+ expect(@resource.flush_cache).to eq(flush_hash)
end
it "should allow you to set the flush timing with an array" do
flush_array = [ :before, :after ]
flush_hash = { :before => true, :after => true }
@resource.flush_cache(flush_array)
- @resource.flush_cache.should == flush_hash
+ expect(@resource.flush_cache).to eq(flush_hash)
end
it "should allow you to set the flush timing with a hash" do
flush_hash = { :before => true, :after => true }
@resource.flush_cache(flush_hash)
- @resource.flush_cache.should == flush_hash
+ expect(@resource.flush_cache).to eq(flush_hash)
end
end
@@ -73,8 +73,8 @@ describe Chef::Resource::YumPackage, "allow_downgrade" do
end
it "should allow you to specify whether allow_downgrade is true or false" do
- lambda { @resource.allow_downgrade true }.should_not raise_error
- lambda { @resource.allow_downgrade false }.should_not raise_error
- lambda { @resource.allow_downgrade "monkey" }.should raise_error(ArgumentError)
+ expect { @resource.allow_downgrade true }.not_to raise_error
+ expect { @resource.allow_downgrade false }.not_to raise_error
+ expect { @resource.allow_downgrade "monkey" }.to raise_error(ArgumentError)
end
end