chef 14.1.12-universal-mingw32 → 14.2.0-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -6
  3. data/VERSION +1 -1
  4. data/chef.gemspec +2 -3
  5. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +8 -4
  6. data/lib/chef/cookbook/manifest_v0.rb +2 -2
  7. data/lib/chef/cookbook_manifest.rb +3 -2
  8. data/lib/chef/cookbook_version.rb +3 -2
  9. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +2 -2
  10. data/lib/chef/http/auth_credentials.rb +5 -3
  11. data/lib/chef/http/authenticator.rb +6 -3
  12. data/lib/chef/knife.rb +3 -6
  13. data/lib/chef/knife/configure.rb +12 -8
  14. data/lib/chef/knife/raw.rb +6 -1
  15. data/lib/chef/mixin/shell_out.rb +16 -14
  16. data/lib/chef/provider/execute.rb +4 -3
  17. data/lib/chef/provider/git.rb +1 -1
  18. data/lib/chef/provider/package/dnf.rb +5 -5
  19. data/lib/chef/provider/package/windows.rb +7 -0
  20. data/lib/chef/provider/package/yum.rb +7 -7
  21. data/lib/chef/provider/service/freebsd.rb +3 -3
  22. data/lib/chef/provider/service/init.rb +5 -5
  23. data/lib/chef/provider/service/macosx.rb +5 -4
  24. data/lib/chef/provider/service/simple.rb +4 -4
  25. data/lib/chef/provider/service/systemd.rb +13 -13
  26. data/lib/chef/provider/service/upstart.rb +3 -3
  27. data/lib/chef/provider/service/windows.rb +2 -0
  28. data/lib/chef/provider/systemd_unit.rb +4 -4
  29. data/lib/chef/provider/user.rb +18 -1
  30. data/lib/chef/provider/user/aix.rb +40 -8
  31. data/lib/chef/provider/user/dscl.rb +7 -14
  32. data/lib/chef/provider/user/linux.rb +1 -11
  33. data/lib/chef/provider/user/solaris.rb +57 -26
  34. data/lib/chef/provider/user/useradd.rb +4 -1
  35. data/lib/chef/provider/windows_task.rb +1 -0
  36. data/lib/chef/providers.rb +1 -2
  37. data/lib/chef/resource/execute.rb +4 -1
  38. data/lib/chef/resource/gem_package.rb +1 -1
  39. data/lib/chef/resource/hostname.rb +1 -1
  40. data/lib/chef/resource/sysctl.rb +3 -1
  41. data/lib/chef/resource/windows_ad_join.rb +16 -3
  42. data/lib/chef/resource_inspector.rb +13 -0
  43. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  44. data/lib/chef/server_api.rb +2 -0
  45. data/lib/chef/version.rb +1 -1
  46. data/spec/functional/mixin/shell_out_spec.rb +27 -1
  47. data/spec/functional/resource/execute_spec.rb +2 -2
  48. data/spec/functional/resource/windows_task_spec.rb +1 -1
  49. data/spec/support/shared/functional/securable_resource.rb +1 -1
  50. data/spec/support/shared/unit/execute_resource.rb +1 -1
  51. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +3 -3
  52. data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +65 -0
  53. data/spec/unit/cookbook/manifest_v0_spec.rb +1 -1
  54. data/spec/unit/cookbook_manifest_spec.rb +2 -0
  55. data/spec/unit/dsl/recipe_spec.rb +1 -5
  56. data/spec/unit/http/authenticator_spec.rb +33 -8
  57. data/spec/unit/mixin/shell_out_spec.rb +61 -1
  58. data/spec/unit/provider/apt_update_spec.rb +7 -7
  59. data/spec/unit/provider/execute_spec.rb +16 -15
  60. data/spec/unit/provider/git_spec.rb +3 -3
  61. data/spec/unit/provider/package/windows_spec.rb +12 -0
  62. data/spec/unit/provider/script_spec.rb +2 -2
  63. data/spec/unit/provider/service/arch_service_spec.rb +9 -9
  64. data/spec/unit/provider/service/freebsd_service_spec.rb +6 -6
  65. data/spec/unit/provider/service/init_service_spec.rb +11 -11
  66. data/spec/unit/provider/service/invokercd_service_spec.rb +9 -9
  67. data/spec/unit/provider/service/macosx_spec.rb +11 -11
  68. data/spec/unit/provider/service/openbsd_service_spec.rb +6 -6
  69. data/spec/unit/provider/service/simple_service_spec.rb +4 -4
  70. data/spec/unit/provider/service/systemd_service_spec.rb +16 -16
  71. data/spec/unit/provider/service/upstart_service_spec.rb +12 -12
  72. data/spec/unit/provider/service/windows_spec.rb +5 -0
  73. data/spec/unit/provider/systemd_unit_spec.rb +163 -118
  74. data/spec/unit/provider/user/dscl_spec.rb +2 -9
  75. data/spec/unit/provider/user/solaris_spec.rb +2 -2
  76. data/spec/unit/provider/zypper_repository_spec.rb +3 -3
  77. data/spec/unit/provider_spec.rb +1 -5
  78. data/spec/unit/resource/apt_package_spec.rb +14 -0
  79. data/spec/unit/resource/apt_preference_spec.rb +14 -1
  80. data/spec/unit/resource/apt_repository_spec.rb +12 -3
  81. data/spec/unit/resource/apt_update_spec.rb +9 -0
  82. data/spec/unit/resource/bash_spec.rb +8 -0
  83. data/spec/unit/resource/bff_package_spec.rb +51 -0
  84. data/spec/unit/resource/breakpoint_spec.rb +4 -4
  85. data/spec/unit/resource/build_essential_spec.rb +5 -1
  86. data/spec/unit/resource/cab_package_spec.rb +10 -0
  87. data/spec/unit/resource/chef_gem_spec.rb +14 -0
  88. data/spec/unit/resource/chef_handler_spec.rb +9 -4
  89. data/spec/unit/resource/chocolatey_package_spec.rb +15 -1
  90. data/spec/unit/resource/conditional_spec.rb +3 -3
  91. data/spec/unit/resource/cookbook_file_spec.rb +13 -2
  92. data/spec/unit/resource/cron_spec.rb +2 -7
  93. data/spec/unit/resource/csh_spec.rb +8 -0
  94. data/spec/unit/resource/directory_spec.rb +4 -9
  95. data/spec/unit/resource/dmg_package_spec.rb +8 -4
  96. data/spec/unit/resource/dnf_package_spec.rb +16 -1
  97. data/spec/unit/resource/dpkg_package_spec.rb +18 -0
  98. data/spec/unit/resource/dsc_resource_spec.rb +6 -6
  99. data/spec/unit/resource/dsc_script_spec.rb +39 -39
  100. data/spec/unit/resource/execute_spec.rb +20 -12
  101. data/spec/unit/resource/file_spec.rb +10 -10
  102. data/spec/unit/resource/freebsd_package_spec.rb +16 -0
  103. data/spec/unit/resource/gem_package_spec.rb +27 -0
  104. data/spec/unit/resource/git_spec.rb +17 -2
  105. data/spec/unit/resource/group_spec.rb +18 -17
  106. data/spec/unit/resource/homebrew_cask_spec.rb +9 -4
  107. data/spec/unit/resource/homebrew_package_spec.rb +14 -0
  108. data/spec/unit/resource/homebrew_tap_spec.rb +8 -3
  109. data/spec/unit/resource/hostname_spec.rb +10 -6
  110. data/spec/unit/resource/http_request_spec.rb +14 -0
  111. data/spec/unit/resource/ips_package_spec.rb +15 -3
  112. data/spec/unit/resource/ksh_spec.rb +8 -0
  113. data/spec/unit/resource/launchd_spec.rb +11 -5
  114. data/spec/unit/resource/link_spec.rb +6 -11
  115. data/spec/unit/resource/log_spec.rb +8 -8
  116. data/spec/unit/resource/macos_user_defaults_spec.rb +5 -1
  117. data/spec/unit/resource/macports_package_spec.rb +19 -0
  118. data/spec/unit/resource/mdadm_spec.rb +7 -3
  119. data/spec/unit/resource/mount_spec.rb +15 -18
  120. data/spec/unit/resource/msu_package_spec.rb +10 -0
  121. data/spec/unit/resource/ohai_hint_spec.rb +9 -8
  122. data/spec/unit/resource/ohai_spec.rb +11 -3
  123. data/spec/unit/resource/openbsd_package_spec.rb +14 -0
  124. data/spec/unit/resource/openssl_dhparam.rb +10 -5
  125. data/spec/unit/resource/openssl_rsa_private_key_spec.rb +10 -5
  126. data/spec/unit/resource/openssl_rsa_public_key_spec.rb +9 -5
  127. data/spec/unit/resource/osx_profile_spec.rb +7 -4
  128. data/spec/unit/resource/package_spec.rb +14 -0
  129. data/spec/unit/resource/pacman_package_spec.rb +17 -3
  130. data/spec/unit/resource/paludis_package_spec.rb +36 -0
  131. data/spec/unit/resource/perl_spec.rb +8 -0
  132. data/spec/unit/resource/portage_package_spec.rb +14 -0
  133. data/spec/unit/resource/powershell_package_spec.rb +14 -0
  134. data/spec/unit/resource/python_spec.rb +8 -0
  135. data/spec/unit/resource/reboot_spec.rb +5 -3
  136. data/spec/unit/resource/registry_key_spec.rb +12 -1
  137. data/spec/unit/resource/remote_directory_spec.rb +11 -1
  138. data/spec/unit/resource/remote_file_spec.rb +19 -0
  139. data/spec/unit/resource/rhsm_errata_level_spec.rb +7 -3
  140. data/spec/unit/resource/rhsm_errata_spec.rb +8 -4
  141. data/spec/unit/resource/rhsm_register_spec.rb +6 -1
  142. data/spec/unit/resource/rhsm_repo_spec.rb +9 -4
  143. data/spec/unit/resource/rhsm_subscription_spec.rb +9 -4
  144. data/spec/unit/resource/route_spec.rb +4 -9
  145. data/spec/unit/resource/rpm_package_spec.rb +14 -0
  146. data/spec/unit/resource/ruby_block_spec.rb +12 -8
  147. data/spec/unit/resource/ruby_spec.rb +8 -0
  148. data/spec/unit/resource/scm_spec.rb +16 -8
  149. data/spec/unit/resource/script_spec.rb +8 -0
  150. data/spec/unit/resource/service_spec.rb +15 -0
  151. data/spec/unit/resource/smartos_package_spec.rb +18 -4
  152. data/spec/unit/resource/solaris_package_spec.rb +14 -0
  153. data/spec/unit/resource/subversion_spec.rb +14 -8
  154. data/spec/unit/resource/sudo_spec.rb +11 -4
  155. data/spec/unit/resource/swap_file_spec.rb +4 -5
  156. data/spec/unit/resource/sysctl_spec.rb +8 -10
  157. data/spec/unit/resource/systemd_unit_spec.rb +14 -12
  158. data/spec/unit/resource/template_spec.rb +19 -0
  159. data/spec/unit/resource/{windows_ad_join.rb → windows_ad_join_spec.rb} +12 -6
  160. data/spec/unit/resource/windows_auto_run_spec.rb +9 -9
  161. data/spec/unit/resource/windows_env_spec.rb +8 -16
  162. data/spec/unit/resource/windows_feature.rb +27 -8
  163. data/spec/unit/resource/windows_feature_dism.rb +30 -9
  164. data/spec/unit/resource/windows_feature_powershell.rb +7 -7
  165. data/spec/unit/resource/windows_font_spec.rb +3 -4
  166. data/spec/unit/resource/windows_package_spec.rb +12 -2
  167. data/spec/unit/resource/windows_pagefile_spec.rb +12 -8
  168. data/spec/unit/resource/windows_path_spec.rb +4 -5
  169. data/spec/unit/resource/windows_printer_port_spec.rb +20 -3
  170. data/spec/unit/resource/windows_printer_spec.rb +12 -5
  171. data/spec/unit/resource/windows_service_spec.rb +24 -1
  172. data/spec/unit/resource/windows_shortcut_spec.rb +4 -5
  173. data/spec/unit/resource/yum_repository_spec.rb +48 -2
  174. data/spec/unit/resource/zypper_package_spec.rb +51 -0
  175. data/spec/unit/resource/zypper_repository_spec.rb +56 -11
  176. data/spec/unit/resource_spec.rb +1 -5
  177. metadata +21 -12
  178. data/spec/functional/resource/user/useradd_spec.rb +0 -709
@@ -28,7 +28,13 @@ describe Chef::Resource::WindowsFeaturePowershell do
28
28
  expect(resource.action).to eql([:install])
29
29
  end
30
30
 
31
- it "sets the feature_name property as its name property" do
31
+ it "supports :delete, :install, :remove actions" do
32
+ expect { resource.action :delete }.not_to raise_error
33
+ expect { resource.action :install }.not_to raise_error
34
+ expect { resource.action :remove }.not_to raise_error
35
+ end
36
+
37
+ it "sets the feature_name property as its name_property" do
32
38
  expect(resource.feature_name).to eql(%w{SNMP DHCP})
33
39
  end
34
40
 
@@ -42,10 +48,4 @@ describe Chef::Resource::WindowsFeaturePowershell do
42
48
  expect(resource.feature_name).to eql(["SNMP"])
43
49
  end
44
50
 
45
- it "supports :install, :remove, and :delete actions" do
46
- expect { resource.action :install }.not_to raise_error
47
- expect { resource.action :remove }.not_to raise_error
48
- expect { resource.action :delete }.not_to raise_error
49
- expect { resource.action :update }.to raise_error(ArgumentError)
50
- end
51
51
  end
@@ -18,14 +18,14 @@
18
18
  require "spec_helper"
19
19
 
20
20
  describe Chef::Resource::WindowsFont do
21
- let(:resource) { Chef::Resource::WindowsFont.new("some_font") }
21
+ let(:resource) { Chef::Resource::WindowsFont.new("fakey_fakerton") }
22
22
 
23
23
  it "sets resource name as :windows_font" do
24
24
  expect(resource.resource_name).to eql(:windows_font)
25
25
  end
26
26
 
27
- it "sets the font_name as its name" do
28
- expect(resource.font_name).to eql("some_font")
27
+ it "the font_name property is the name_property" do
28
+ expect(resource.font_name).to eql("fakey_fakerton")
29
29
  end
30
30
 
31
31
  it "sets the default action as :install" do
@@ -34,7 +34,6 @@ describe Chef::Resource::WindowsFont do
34
34
 
35
35
  it "supports :install action" do
36
36
  expect { resource.action :install }.not_to raise_error
37
- expect { resource.action :remove }.to raise_error(ArgumentError)
38
37
  end
39
38
 
40
39
  it "coerces backslashes in the source property to forward slashes" do
@@ -37,8 +37,18 @@ describe Chef::Resource::WindowsPackage, "initialize" do
37
37
  expect(resource).to be_a_kind_of(Chef::Resource::Package)
38
38
  end
39
39
 
40
- it "sets the resource_name to :windows_package" do
41
- expect(resource.resource_name).to eql(:windows_package)
40
+ it "sets the default action as :install" do
41
+ expect(resource.action).to eql([:install])
42
+ end
43
+
44
+ it "supports :install, :lock, :purge, :reconfig, :remove, :unlock, :upgrade actions" do
45
+ expect { resource.action :install }.not_to raise_error
46
+ expect { resource.action :lock }.not_to raise_error
47
+ expect { resource.action :purge }.not_to raise_error
48
+ expect { resource.action :reconfig }.not_to raise_error
49
+ expect { resource.action :remove }.not_to raise_error
50
+ expect { resource.action :unlock }.not_to raise_error
51
+ expect { resource.action :upgrade }.not_to raise_error
42
52
  end
43
53
 
44
54
  it "supports setting installer_type as a symbol" do
@@ -24,22 +24,26 @@ describe Chef::Resource::WindowsPagefile do
24
24
  expect(resource.resource_name).to eql(:windows_pagefile)
25
25
  end
26
26
 
27
- it "sets the path as its name" do
27
+ it "the path property is the name_property" do
28
28
  expect(resource.path).to eql("C:\\pagefile.sys")
29
29
  end
30
30
 
31
+ it "sets the default action as :set" do
32
+ expect(resource.action).to eql([:set])
33
+ end
34
+
35
+ it "supports :delete, :set actions" do
36
+ expect { resource.action :delete }.not_to raise_error
37
+ expect { resource.action :set }.not_to raise_error
38
+ end
39
+
31
40
  it "coerces forward slashes in the path property to back slashes" do
32
41
  resource.path "C:/pagefile.sys"
33
42
  expect(resource.path).to eql("C:\\pagefile.sys")
34
43
  end
35
44
 
36
- it "sets the default action as :set" do
37
- expect(resource.action).to eql([:set])
45
+ it "automatic_managed property defaults to false" do
46
+ expect(resource.automatic_managed).to eql(false)
38
47
  end
39
48
 
40
- it "supports :set and :delete actions" do
41
- expect { resource.action :set }.not_to raise_error
42
- expect { resource.action :delete }.not_to raise_error
43
- expect { resource.action :create }.to raise_error(ArgumentError)
44
- end
45
49
  end
@@ -19,23 +19,22 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Resource::WindowsPath do
22
- let(:resource) { Chef::Resource::WindowsPath.new("some_path") }
22
+ let(:resource) { Chef::Resource::WindowsPath.new("fakey_fakerton") }
23
23
 
24
24
  it "sets resource name as :windows_path" do
25
25
  expect(resource.resource_name).to eql(:windows_path)
26
26
  end
27
27
 
28
- it "sets the path as its name" do
29
- expect(resource.path).to eql("some_path")
28
+ it "the path property is the name_property" do
29
+ expect(resource.path).to eql("fakey_fakerton")
30
30
  end
31
31
 
32
32
  it "sets the default action as :add" do
33
33
  expect(resource.action).to eql([:add])
34
34
  end
35
35
 
36
- it "supports :add and :remove actions" do
36
+ it "supports :add, :remove actions" do
37
37
  expect { resource.action :add }.not_to raise_error
38
38
  expect { resource.action :remove }.not_to raise_error
39
- expect { resource.action :delete }.to raise_error(ArgumentError)
40
39
  end
41
40
  end
@@ -24,7 +24,7 @@ describe Chef::Resource::WindowsPrinterPort do
24
24
  expect(resource.resource_name).to eql(:windows_printer_port)
25
25
  end
26
26
 
27
- it "sets the ipv4_address as its name" do
27
+ it "the ipv4_address property is the name_property" do
28
28
  expect(resource.ipv4_address).to eql("63.192.209.236")
29
29
  end
30
30
 
@@ -32,10 +32,27 @@ describe Chef::Resource::WindowsPrinterPort do
32
32
  expect(resource.action).to eql([:create])
33
33
  end
34
34
 
35
- it "supports :create and :delete actions" do
35
+ it "supports :create, :delete actions" do
36
36
  expect { resource.action :create }.not_to raise_error
37
37
  expect { resource.action :delete }.not_to raise_error
38
- expect { resource.action :remove }.to raise_error(ArgumentError)
38
+ end
39
+
40
+ it "port_number property defaults to 9100" do
41
+ expect(resource.port_number).to eql(9100)
42
+ end
43
+
44
+ it "snmp_enabled property defaults to false" do
45
+ expect(resource.snmp_enabled).to eql(false)
46
+ end
47
+
48
+ it "port_protocol property defaults to 1" do
49
+ expect(resource.port_protocol).to eql(1)
50
+ end
51
+
52
+ it "raises an error if port_protocol isn't in 1 or 2" do
53
+ expect { resource.port_protocol 1 }.not_to raise_error
54
+ expect { resource.port_protocol 2 }.not_to raise_error
55
+ expect { resource.port_protocol 3 }.to raise_error(ArgumentError)
39
56
  end
40
57
 
41
58
  it "raises an error if ipv4_address isn't in X.X.X.X format" do
@@ -18,24 +18,31 @@
18
18
  require "spec_helper"
19
19
 
20
20
  describe Chef::Resource::WindowsPrinter do
21
- let(:resource) { Chef::Resource::WindowsPrinter.new("some_printer") }
21
+ let(:resource) { Chef::Resource::WindowsPrinter.new("fakey_fakerton") }
22
22
 
23
23
  it "sets resource name as :windows_printer" do
24
24
  expect(resource.resource_name).to eql(:windows_printer)
25
25
  end
26
26
 
27
- it "sets the device_id as its name" do
28
- expect(resource.device_id).to eql("some_printer")
27
+ it "the device_id property is the name_property" do
28
+ expect(resource.device_id).to eql("fakey_fakerton")
29
29
  end
30
30
 
31
31
  it "sets the default action as :create" do
32
32
  expect(resource.action).to eql([:create])
33
33
  end
34
34
 
35
- it "supports :create and :delete actions" do
35
+ it "supports :create, :delete actions" do
36
36
  expect { resource.action :create }.not_to raise_error
37
37
  expect { resource.action :delete }.not_to raise_error
38
- expect { resource.action :remove }.to raise_error(ArgumentError)
38
+ end
39
+
40
+ it "default property defaults to false" do
41
+ expect(resource.default).to eql(false)
42
+ end
43
+
44
+ it "shared property defaults to false" do
45
+ expect(resource.shared).to eql(false)
39
46
  end
40
47
 
41
48
  it "raises an error if ipv4_address isn't in X.X.X.X format" do
@@ -27,12 +27,35 @@ describe Chef::Resource::WindowsService, "initialize" do
27
27
  action: :start
28
28
  )
29
29
 
30
- let(:resource) { Chef::Resource::WindowsService.new("BITS") }
30
+ let(:resource) { Chef::Resource::WindowsService.new("fakey_fakerton") }
31
31
 
32
32
  it "sets the resource_name to :windows_service" do
33
33
  expect(resource.resource_name).to eql(:windows_service)
34
34
  end
35
35
 
36
+ it "the service_name property is the name_property" do
37
+ expect(resource.service_name).to eql("fakey_fakerton")
38
+ end
39
+
40
+ it "sets the default action as :nothing" do
41
+ expect(resource.action).to eql([:nothing])
42
+ end
43
+
44
+ it "supports :configure, :configure_startup, :create, :delete, :disable, :enable, :mask, :reload, :restart, :start, :stop, :unmask actions" do
45
+ expect { resource.action :configure }.not_to raise_error
46
+ expect { resource.action :configure_startup }.not_to raise_error
47
+ expect { resource.action :create }.not_to raise_error
48
+ expect { resource.action :delete }.not_to raise_error
49
+ expect { resource.action :disable }.not_to raise_error
50
+ expect { resource.action :enable }.not_to raise_error
51
+ expect { resource.action :mask }.not_to raise_error
52
+ expect { resource.action :reload }.not_to raise_error
53
+ expect { resource.action :restart }.not_to raise_error
54
+ expect { resource.action :start }.not_to raise_error
55
+ expect { resource.action :stop }.not_to raise_error
56
+ expect { resource.action :unmask }.not_to raise_error
57
+ end
58
+
36
59
  it "supports setting startup_type" do
37
60
  resource.startup_type(:manual)
38
61
  expect(resource.startup_type).to eql(:manual)
@@ -18,22 +18,21 @@
18
18
  require "spec_helper"
19
19
 
20
20
  describe Chef::Resource::WindowsShortcut do
21
- let(:resource) { Chef::Resource::WindowsShortcut.new("some_path") }
21
+ let(:resource) { Chef::Resource::WindowsShortcut.new("fakey_fakerton") }
22
22
 
23
23
  it "sets resource name as :windows_shortcut" do
24
24
  expect(resource.resource_name).to eql(:windows_shortcut)
25
25
  end
26
26
 
27
- it "sets the shortcut_name property as its name" do
28
- expect(resource.shortcut_name).to eql("some_path")
27
+ it "the shortcut_name property is the name_property" do
28
+ expect(resource.shortcut_name).to eql("fakey_fakerton")
29
29
  end
30
30
 
31
31
  it "sets the default action as :create" do
32
32
  expect(resource.action).to eql([:create])
33
33
  end
34
34
 
35
- it "supports :create action only" do
35
+ it "supports :create action" do
36
36
  expect { resource.action :create }.not_to raise_error
37
- expect { resource.action :delete }.to raise_error(ArgumentError)
38
37
  end
39
38
  end
@@ -22,20 +22,56 @@ describe Chef::Resource::YumRepository do
22
22
  let(:node) { Chef::Node.new }
23
23
  let(:events) { Chef::EventDispatch::Dispatcher.new }
24
24
  let(:run_context) { Chef::RunContext.new(node, {}, events) }
25
- let(:resource) { Chef::Resource::YumRepository.new("multiverse", run_context) }
25
+ let(:resource) { Chef::Resource::YumRepository.new("fakey_fakerton", run_context) }
26
26
 
27
27
  it "has a resource_name of :yum_repository" do
28
28
  expect(resource.resource_name).to eq(:yum_repository)
29
29
  end
30
30
 
31
31
  it "the repositoryid property is the name_property" do
32
- expect(resource.repositoryid).to eq("multiverse")
32
+ expect(resource.repositoryid).to eql("fakey_fakerton")
33
+ end
34
+
35
+ it "sets the default action as :create" do
36
+ expect(resource.action).to eql([:create])
37
+ end
38
+
39
+ it "supports :add, :create, :delete, :makecache, :remove actions" do
40
+ expect { resource.action :add }.not_to raise_error
41
+ expect { resource.action :create }.not_to raise_error
42
+ expect { resource.action :delete }.not_to raise_error
43
+ expect { resource.action :makecache }.not_to raise_error
44
+ expect { resource.action :remove }.not_to raise_error
33
45
  end
34
46
 
35
47
  it "fails if the user provides a repositoryid with a forward slash" do
36
48
  expect { resource.repositoryid "foo/bar" }.to raise_error(ArgumentError)
37
49
  end
38
50
 
51
+ it "clean_headers property defaults to false" do
52
+ expect(resource.clean_headers).to eql(false)
53
+ end
54
+
55
+ it "clean_metadata property defaults to true" do
56
+ expect(resource.clean_metadata).to eql(true)
57
+ end
58
+
59
+ it "description property defaults to 'Yum Repository'" do
60
+ expect(resource.description).to eql("Yum Repository")
61
+ end
62
+
63
+ it "enabled property defaults to true" do
64
+ expect(resource.enabled).to eql(true)
65
+ end
66
+
67
+ it "make_cache property defaults to true" do
68
+ expect(resource.make_cache).to eql(true)
69
+ end
70
+
71
+ it "mode property defaults to '0644'" do
72
+ expect(resource.mode).to eql("0644")
73
+ end
74
+
39
75
  it "the timeout property expects numeric Strings" do
40
76
  expect { resource.timeout "123" }.not_to raise_error(ArgumentError)
41
77
  expect { resource.timeout "123foo" }.to raise_error(ArgumentError)
@@ -86,6 +122,16 @@ describe Chef::Resource::YumRepository do
86
122
  expect { resource.mirrorlist_expire "never" }.to raise_error(ArgumentError)
87
123
  end
88
124
 
125
+ it "accepts the legacy 'url' property" do
126
+ resource.url "foo"
127
+ expect(resource.baseurl).to eql("foo")
128
+ end
129
+
130
+ it "accepts the legacy 'keyurl' property" do
131
+ resource.keyurl "foo"
132
+ expect(resource.gpgkey).to eql("foo")
133
+ end
134
+
89
135
  context "on linux", :linux_only do
90
136
  it "resolves to a Noop class when yum is not found" do
91
137
  expect(Chef::Provider::YumRepository).to receive(:which).with("yum").and_return(false)
@@ -0,0 +1,51 @@
1
+ #
2
+ # Author:: Tim Smith (<tsmith@chef.io>)
3
+ # Copyright:: Copyright 2018 Chef Software, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require "spec_helper"
20
+ require "support/shared/unit/resource/static_provider_resolution"
21
+
22
+ describe Chef::Resource::ZypperPackage, "initialize" do
23
+
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::ZypperPackage,
26
+ provider: Chef::Provider::Package::Zypper,
27
+ name: :zypper_package,
28
+ action: :install,
29
+ os: "linux",
30
+ platform_family: "suse"
31
+ )
32
+
33
+ end
34
+
35
+ describe Chef::Resource::ZypperPackage, "defaults" do
36
+ let(:resource) { Chef::Resource::ZypperPackage.new("fakey_fakerton") }
37
+
38
+ it "sets the default action as :install" do
39
+ expect(resource.action).to eql([:install])
40
+ end
41
+
42
+ it "supports :install, :lock, :purge, :reconfig, :remove, :unlock, :upgrade actions" do
43
+ expect { resource.action :install }.not_to raise_error
44
+ expect { resource.action :lock }.not_to raise_error
45
+ expect { resource.action :purge }.not_to raise_error
46
+ expect { resource.action :reconfig }.not_to raise_error
47
+ expect { resource.action :remove }.not_to raise_error
48
+ expect { resource.action :unlock }.not_to raise_error
49
+ expect { resource.action :upgrade }.not_to raise_error
50
+ end
51
+ end
@@ -22,30 +22,75 @@ describe Chef::Resource::ZypperRepository do
22
22
  let(:node) { Chef::Node.new }
23
23
  let(:events) { Chef::EventDispatch::Dispatcher.new }
24
24
  let(:run_context) { Chef::RunContext.new(node, {}, events) }
25
- let(:resource) { Chef::Resource::ZypperRepository.new("repo-source", run_context) }
25
+ let(:resource) { Chef::Resource::ZypperRepository.new("fakey_fakerton", run_context) }
26
26
 
27
27
  it "has a resource_name of :zypper_repository" do
28
28
  expect(resource.resource_name).to eq(:zypper_repository)
29
29
  end
30
30
 
31
- it "repo_name is the name_property" do
32
- expect(resource.repo_name).to eql("repo-source")
31
+ it "the repo_name property is the name_property" do
32
+ expect(resource.repo_name).to eql("fakey_fakerton")
33
33
  end
34
34
 
35
- it "fails if the user provides a repo_name with a forward slash" do
36
- expect { resource.repo_name "foo/bar" }.to raise_error(ArgumentError)
37
- end
38
-
39
- it "has a default action of create" do
35
+ it "sets the default action as :create" do
40
36
  expect(resource.action).to eql([:create])
41
37
  end
42
38
 
43
- it "supports all valid actions" do
39
+ it "supports :add, :create, :refresh, :remove actions" do
44
40
  expect { resource.action :add }.not_to raise_error
45
- expect { resource.action :remove }.not_to raise_error
46
41
  expect { resource.action :create }.not_to raise_error
47
42
  expect { resource.action :refresh }.not_to raise_error
48
- expect { resource.action :delete }.to raise_error(ArgumentError)
43
+ expect { resource.action :remove }.not_to raise_error
44
+ end
45
+
46
+ it "fails if the user provides a repo_name with a forward slash" do
47
+ expect { resource.repo_name "foo/bar" }.to raise_error(ArgumentError)
48
+ end
49
+
50
+ it "type property defaults to 'NONE'" do
51
+ expect(resource.type).to eql("NONE")
52
+ end
53
+
54
+ it "enabled property defaults to true" do
55
+ expect(resource.enabled).to eql(true)
56
+ end
57
+
58
+ it "autorefresh property defaults to true" do
59
+ expect(resource.autorefresh).to eql(true)
60
+ end
61
+
62
+ it "gpgcheck property defaults to true" do
63
+ expect(resource.gpgcheck).to eql(true)
64
+ end
65
+
66
+ it "keeppackages property defaults to false" do
67
+ expect(resource.keeppackages).to eql(false)
68
+ end
69
+
70
+ it "priority property defaults to 99" do
71
+ expect(resource.priority).to eql(99)
72
+ end
73
+
74
+ it "mode property defaults to '0644'" do
75
+ expect(resource.mode).to eql("0644")
76
+ end
77
+
78
+ it "refresh_cache property defaults to true" do
79
+ expect(resource.refresh_cache).to eql(true)
80
+ end
81
+
82
+ it "gpgautoimportkeys property defaults to true" do
83
+ expect(resource.gpgautoimportkeys).to eql(true)
84
+ end
85
+
86
+ it "accepts the legacy 'key' property" do
87
+ resource.key "foo"
88
+ expect(resource.gpgkey).to eql("foo")
89
+ end
90
+
91
+ it "accepts the legacy 'uri' property" do
92
+ resource.uri "foo"
93
+ expect(resource.baseurl).to eql("foo")
49
94
  end
50
95
 
51
96
  context "on linux", :linux_only do