chef 12.0.0.alpha.2 → 12.0.0.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (626) hide show
  1. data/CONTRIBUTING.md +9 -0
  2. data/README.md +1 -1
  3. data/Rakefile +12 -0
  4. data/bin/chef-service-manager +1 -1
  5. data/bin/chef-windows-service +35 -0
  6. data/distro/common/html/_sources/ctl_chef_server.txt +307 -10
  7. data/distro/common/html/ctl_chef_client.html +3 -7
  8. data/distro/common/html/ctl_chef_server.html +609 -41
  9. data/distro/common/html/ctl_chef_shell.html +2 -2
  10. data/distro/common/html/ctl_chef_solo.html +1 -1
  11. data/distro/common/html/index.html +13 -13
  12. data/distro/common/html/knife.html +10 -10
  13. data/distro/common/html/knife_bootstrap.html +8 -8
  14. data/distro/common/html/knife_client.html +12 -12
  15. data/distro/common/html/knife_common_options.html +7 -7
  16. data/distro/common/html/knife_configure.html +3 -3
  17. data/distro/common/html/knife_cookbook.html +19 -19
  18. data/distro/common/html/knife_cookbook_site.html +28 -28
  19. data/distro/common/html/knife_data_bag.html +28 -13
  20. data/distro/common/html/knife_delete.html +2 -2
  21. data/distro/common/html/knife_deps.html +3 -3
  22. data/distro/common/html/knife_diff.html +4 -4
  23. data/distro/common/html/knife_download.html +3 -3
  24. data/distro/common/html/knife_edit.html +2 -2
  25. data/distro/common/html/knife_environment.html +14 -14
  26. data/distro/common/html/knife_exec.html +11 -11
  27. data/distro/common/html/knife_index_rebuild.html +2 -2
  28. data/distro/common/html/knife_list.html +3 -3
  29. data/distro/common/html/knife_node.html +23 -23
  30. data/distro/common/html/knife_raw.html +4 -4
  31. data/distro/common/html/knife_recipe_list.html +3 -3
  32. data/distro/common/html/knife_role.html +11 -11
  33. data/distro/common/html/knife_search.html +4 -4
  34. data/distro/common/html/knife_serve.html +3 -3
  35. data/distro/common/html/knife_show.html +3 -3
  36. data/distro/common/html/knife_ssh.html +7 -7
  37. data/distro/common/html/knife_ssl_check.html +7 -7
  38. data/distro/common/html/knife_ssl_fetch.html +9 -9
  39. data/distro/common/html/knife_status.html +3 -3
  40. data/distro/common/html/knife_tag.html +9 -9
  41. data/distro/common/html/knife_upload.html +3 -3
  42. data/distro/common/html/knife_user.html +9 -9
  43. data/distro/common/html/knife_using.html +11 -11
  44. data/distro/common/html/knife_xargs.html +14 -5
  45. data/distro/common/html/search.html +2 -2
  46. data/distro/common/html/searchindex.js +1 -1
  47. data/distro/common/man/man1/chef-shell.1 +2 -2
  48. data/distro/common/man/man1/knife-bootstrap.1 +7 -7
  49. data/distro/common/man/man1/knife-client.1 +10 -10
  50. data/distro/common/man/man1/knife-configure.1 +5 -5
  51. data/distro/common/man/man1/knife-cookbook-site.1 +24 -24
  52. data/distro/common/man/man1/knife-cookbook.1 +12 -12
  53. data/distro/common/man/man1/knife-data-bag.1 +34 -10
  54. data/distro/common/man/man1/knife-delete.1 +5 -5
  55. data/distro/common/man/man1/knife-deps.1 +5 -5
  56. data/distro/common/man/man1/knife-diff.1 +7 -7
  57. data/distro/common/man/man1/knife-download.1 +5 -5
  58. data/distro/common/man/man1/knife-edit.1 +5 -5
  59. data/distro/common/man/man1/knife-environment.1 +11 -11
  60. data/distro/common/man/man1/knife-exec.1 +11 -11
  61. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  62. data/distro/common/man/man1/knife-list.1 +5 -5
  63. data/distro/common/man/man1/knife-node.1 +16 -16
  64. data/distro/common/man/man1/knife-raw.1 +6 -6
  65. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  66. data/distro/common/man/man1/knife-role.1 +7 -7
  67. data/distro/common/man/man1/knife-search.1 +6 -6
  68. data/distro/common/man/man1/knife-serve.1 +6 -6
  69. data/distro/common/man/man1/knife-show.1 +5 -5
  70. data/distro/common/man/man1/knife-ssh.1 +9 -9
  71. data/distro/common/man/man1/knife-ssl-check.1 +7 -7
  72. data/distro/common/man/man1/knife-ssl-fetch.1 +9 -9
  73. data/distro/common/man/man1/knife-status.1 +5 -5
  74. data/distro/common/man/man1/knife-tag.1 +8 -8
  75. data/distro/common/man/man1/knife-upload.1 +5 -5
  76. data/distro/common/man/man1/knife-user.1 +8 -8
  77. data/distro/common/man/man1/knife-xargs.1 +36 -10
  78. data/distro/common/man/man1/knife.1 +14 -14
  79. data/distro/common/man/man8/chef-client.8 +3 -10
  80. data/distro/common/man/man8/chef-solo.8 +1 -1
  81. data/lib/chef/application.rb +313 -241
  82. data/lib/chef/application/apply.rb +10 -8
  83. data/lib/chef/application/client.rb +58 -33
  84. data/lib/chef/application/solo.rb +33 -12
  85. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  86. data/lib/chef/chef_fs/command_line.rb +1 -1
  87. data/lib/chef/chef_fs/file_system/organization_invites_entry.rb +2 -1
  88. data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -1
  89. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +2 -1
  90. data/lib/chef/client.rb +18 -48
  91. data/lib/chef/config.rb +43 -11
  92. data/lib/chef/cookbook/cookbook_version_loader.rb +14 -7
  93. data/lib/chef/cookbook/metadata.rb +81 -38
  94. data/lib/chef/cookbook/syntax_check.rb +18 -52
  95. data/lib/chef/cookbook_loader.rb +1 -1
  96. data/lib/chef/cookbook_version.rb +58 -39
  97. data/lib/chef/data_bag.rb +2 -2
  98. data/lib/chef/deprecation/provider/file.rb +2 -1
  99. data/lib/chef/dsl/data_query.rb +2 -29
  100. data/lib/chef/dsl/recipe.rb +8 -22
  101. data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
  102. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -0
  103. data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +1 -1
  104. data/lib/chef/event_loggers/base.rb +62 -0
  105. data/lib/chef/event_loggers/windows_eventlog.rb +104 -0
  106. data/lib/chef/exceptions.rb +18 -1
  107. data/lib/chef/file_cache.rb +3 -2
  108. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +15 -6
  109. data/lib/chef/http.rb +20 -13
  110. data/lib/chef/http/ssl_policies.rb +2 -1
  111. data/lib/chef/json_compat.rb +9 -3
  112. data/lib/chef/knife.rb +2 -1
  113. data/lib/chef/knife/bootstrap.rb +12 -18
  114. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  115. data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
  116. data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
  117. data/lib/chef/knife/cookbook_create.rb +1 -1
  118. data/lib/chef/knife/cookbook_site_share.rb +43 -8
  119. data/lib/chef/knife/core/bootstrap_context.rb +6 -11
  120. data/lib/chef/knife/core/object_loader.rb +5 -5
  121. data/lib/chef/knife/core/status_presenter.rb +156 -0
  122. data/lib/chef/knife/core/subcommand_loader.rb +6 -5
  123. data/lib/chef/knife/core/ui.rb +4 -4
  124. data/lib/chef/knife/data_bag_create.rb +7 -32
  125. data/lib/chef/knife/data_bag_edit.rb +24 -43
  126. data/lib/chef/knife/data_bag_from_file.rb +6 -31
  127. data/lib/chef/knife/data_bag_secret_options.rb +142 -0
  128. data/lib/chef/knife/data_bag_show.rb +19 -33
  129. data/lib/chef/knife/node_from_file.rb +9 -8
  130. data/lib/chef/knife/ssh.rb +0 -7
  131. data/lib/chef/knife/ssl_check.rb +70 -6
  132. data/lib/chef/knife/status.rb +11 -58
  133. data/lib/chef/mixin/command/unix.rb +2 -2
  134. data/lib/chef/mixin/convert_to_class_name.rb +54 -0
  135. data/lib/chef/mixin/descendants_tracker.rb +82 -0
  136. data/lib/chef/mixin/homebrew_user.rb +68 -0
  137. data/lib/chef/mixin/shell_out.rb +0 -4
  138. data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
  139. data/lib/chef/mixin/windows_env_helper.rb +56 -0
  140. data/lib/chef/node.rb +2 -2
  141. data/lib/chef/node_map.rb +146 -0
  142. data/lib/chef/platform/provider_mapping.rb +11 -39
  143. data/lib/chef/platform/provider_priority_map.rb +80 -0
  144. data/lib/chef/platform/query_helpers.rb +5 -1
  145. data/lib/chef/platform/service_helpers.rb +113 -0
  146. data/lib/chef/provider.rb +24 -0
  147. data/lib/chef/provider/breakpoint.rb +2 -0
  148. data/lib/chef/provider/cookbook_file.rb +2 -0
  149. data/lib/chef/provider/cron.rb +1 -1
  150. data/lib/chef/provider/cron/unix.rb +13 -9
  151. data/lib/chef/provider/deploy.rb +3 -2
  152. data/lib/chef/provider/deploy/revision.rb +4 -2
  153. data/lib/chef/provider/deploy/timestamped.rb +2 -0
  154. data/lib/chef/provider/directory.rb +2 -0
  155. data/lib/chef/provider/dsc_script.rb +179 -0
  156. data/lib/chef/provider/env.rb +25 -10
  157. data/lib/chef/provider/env/windows.rb +9 -16
  158. data/lib/chef/provider/erl_call.rb +2 -0
  159. data/lib/chef/provider/execute.rb +5 -2
  160. data/lib/chef/provider/file.rb +2 -0
  161. data/lib/chef/provider/git.rb +51 -23
  162. data/lib/chef/provider/group/dscl.rb +2 -2
  163. data/lib/chef/provider/group/pw.rb +9 -13
  164. data/lib/chef/provider/http_request.rb +2 -0
  165. data/lib/chef/provider/link.rb +3 -0
  166. data/lib/chef/provider/log.rb +2 -0
  167. data/lib/chef/provider/lwrp_base.rb +11 -9
  168. data/lib/chef/provider/mount/mount.rb +1 -1
  169. data/lib/chef/provider/package/aix.rb +2 -0
  170. data/lib/chef/provider/package/apt.rb +2 -0
  171. data/lib/chef/provider/package/dpkg.rb +2 -0
  172. data/lib/chef/provider/package/easy_install.rb +2 -0
  173. data/lib/chef/provider/package/freebsd/pkg.rb +2 -1
  174. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  175. data/lib/chef/provider/package/freebsd/port.rb +1 -9
  176. data/lib/chef/provider/package/homebrew.rb +127 -0
  177. data/lib/chef/provider/package/ips.rb +2 -0
  178. data/lib/chef/provider/package/macports.rb +3 -0
  179. data/lib/chef/provider/package/pacman.rb +5 -4
  180. data/lib/chef/provider/package/paludis.rb +4 -2
  181. data/lib/chef/provider/package/portage.rb +4 -1
  182. data/lib/chef/provider/package/rpm.rb +2 -0
  183. data/lib/chef/provider/package/rubygems.rb +4 -0
  184. data/lib/chef/provider/package/smartos.rb +2 -0
  185. data/lib/chef/provider/package/solaris.rb +2 -0
  186. data/lib/chef/provider/package/windows.rb +5 -2
  187. data/lib/chef/provider/package/yum.rb +2 -0
  188. data/lib/chef/provider/powershell_script.rb +3 -1
  189. data/lib/chef/provider/remote_directory.rb +25 -10
  190. data/lib/chef/provider/route.rb +2 -0
  191. data/lib/chef/provider/ruby_block.rb +2 -0
  192. data/lib/chef/provider/script.rb +6 -0
  193. data/lib/chef/provider/service/aix.rb +128 -0
  194. data/lib/chef/provider/service/aixinit.rb +117 -0
  195. data/lib/chef/provider/service/arch.rb +6 -0
  196. data/lib/chef/provider/service/debian.rb +35 -29
  197. data/lib/chef/provider/service/freebsd.rb +7 -1
  198. data/lib/chef/provider/service/gentoo.rb +5 -1
  199. data/lib/chef/provider/service/init.rb +2 -0
  200. data/lib/chef/provider/service/insserv.rb +15 -8
  201. data/lib/chef/provider/service/invokercd.rb +6 -0
  202. data/lib/chef/provider/service/macosx.rb +4 -1
  203. data/lib/chef/provider/service/redhat.rb +9 -3
  204. data/lib/chef/provider/service/simple.rb +2 -0
  205. data/lib/chef/provider/service/solaris.rb +2 -0
  206. data/lib/chef/provider/service/systemd.rb +7 -0
  207. data/lib/chef/provider/service/upstart.rb +7 -0
  208. data/lib/chef/provider/service/windows.rb +5 -0
  209. data/lib/chef/provider/subversion.rb +2 -0
  210. data/lib/chef/provider/template.rb +1 -0
  211. data/lib/chef/provider/user/dscl.rb +3 -2
  212. data/lib/chef/provider/whyrun_safe_ruby_block.rb +2 -0
  213. data/lib/chef/provider_resolver.rb +103 -0
  214. data/lib/chef/providers.rb +6 -2
  215. data/lib/chef/recipe.rb +2 -0
  216. data/lib/chef/resource.rb +69 -78
  217. data/lib/chef/resource/apt_package.rb +3 -1
  218. data/lib/chef/resource/bash.rb +1 -0
  219. data/lib/chef/resource/bff_package.rb +0 -1
  220. data/lib/chef/resource/breakpoint.rb +1 -1
  221. data/lib/chef/resource/chef_gem.rb +1 -2
  222. data/lib/chef/resource/conditional.rb +26 -6
  223. data/lib/chef/resource/cookbook_file.rb +2 -3
  224. data/lib/chef/resource/csh.rb +1 -0
  225. data/lib/chef/resource/deploy.rb +0 -1
  226. data/lib/chef/resource/deploy_revision.rb +6 -1
  227. data/lib/chef/resource/directory.rb +1 -2
  228. data/lib/chef/resource/dpkg_package.rb +2 -1
  229. data/lib/chef/resource/dsc_script.rb +125 -0
  230. data/lib/chef/resource/easy_install_package.rb +2 -1
  231. data/lib/chef/resource/erl_call.rb +1 -0
  232. data/lib/chef/resource/execute.rb +26 -9
  233. data/lib/chef/resource/file.rb +1 -3
  234. data/lib/chef/resource/freebsd_package.rb +10 -23
  235. data/lib/chef/resource/gem_package.rb +2 -1
  236. data/lib/chef/resource/git.rb +2 -1
  237. data/lib/chef/resource/homebrew_package.rb +46 -0
  238. data/lib/chef/resource/http_request.rb +1 -0
  239. data/lib/chef/resource/ips_package.rb +3 -1
  240. data/lib/chef/resource/link.rb +1 -2
  241. data/lib/chef/resource/log.rb +4 -0
  242. data/lib/chef/resource/lwrp_base.rb +24 -15
  243. data/lib/chef/resource/macports_package.rb +3 -1
  244. data/lib/chef/resource/pacman_package.rb +2 -1
  245. data/lib/chef/resource/paludis_package.rb +3 -1
  246. data/lib/chef/resource/perl.rb +1 -0
  247. data/lib/chef/resource/powershell_script.rb +0 -2
  248. data/lib/chef/resource/python.rb +1 -1
  249. data/lib/chef/resource/remote_directory.rb +1 -2
  250. data/lib/chef/resource/remote_file.rb +1 -1
  251. data/lib/chef/resource/rpm_package.rb +2 -1
  252. data/lib/chef/resource/ruby.rb +1 -0
  253. data/lib/chef/resource/ruby_block.rb +3 -0
  254. data/lib/chef/resource/script.rb +2 -25
  255. data/lib/chef/resource/service.rb +0 -4
  256. data/lib/chef/resource/smartos_package.rb +3 -4
  257. data/lib/chef/resource/solaris_package.rb +7 -1
  258. data/lib/chef/resource/subversion.rb +0 -1
  259. data/lib/chef/resource/template.rb +2 -3
  260. data/lib/chef/resource/timestamped_deploy.rb +1 -2
  261. data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
  262. data/lib/chef/resource/windows_package.rb +3 -4
  263. data/lib/chef/resource/windows_script.rb +3 -0
  264. data/lib/chef/resource/windows_service.rb +2 -2
  265. data/lib/chef/resource/yum_package.rb +3 -1
  266. data/lib/chef/resource_collection.rb +50 -227
  267. data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -0
  268. data/lib/chef/resource_collection/resource_list.rb +89 -0
  269. data/lib/chef/resource_collection/resource_set.rb +170 -0
  270. data/lib/chef/resources.rb +2 -0
  271. data/lib/chef/role.rb +1 -1
  272. data/lib/chef/run_context.rb +5 -1
  273. data/lib/chef/shell/ext.rb +1 -1
  274. data/lib/chef/util/backup.rb +3 -2
  275. data/lib/chef/util/dsc/configuration_generator.rb +115 -0
  276. data/lib/chef/util/dsc/lcm_output_parser.rb +133 -0
  277. data/lib/chef/util/dsc/local_configuration_manager.rb +141 -0
  278. data/lib/chef/util/dsc/resource_info.rb +26 -0
  279. data/lib/chef/util/path_helper.rb +12 -0
  280. data/lib/chef/util/powershell/cmdlet.rb +136 -0
  281. data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
  282. data/lib/chef/version.rb +1 -1
  283. data/lib/chef/win32/api/system.rb +9 -0
  284. data/lib/chef/win32/version.rb +2 -0
  285. data/spec/.DS_Store +0 -0
  286. data/spec/data/.DS_Store +0 -0
  287. data/spec/data/bootstrap/test-hints.erb +1 -1
  288. data/spec/data/bootstrap/test.erb +1 -1
  289. data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
  290. data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
  291. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -0
  292. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -0
  293. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -0
  294. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -0
  295. data/spec/data/lwrp/.DS_Store +0 -0
  296. data/spec/data/lwrp/providers/.DS_Store +0 -0
  297. data/spec/data/lwrp/providers/buck_passer.rb +9 -2
  298. data/spec/data/lwrp/resources/.DS_Store +0 -0
  299. data/spec/data/lwrp/resources/foo.rb +3 -2
  300. data/spec/data/lwrp_override/.DS_Store +0 -0
  301. data/spec/data/lwrp_override/providers/.DS_Store +0 -0
  302. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -10
  303. data/spec/data/lwrp_override/resources/.DS_Store +0 -0
  304. data/spec/data/lwrp_override/resources/foo.rb +4 -3
  305. data/spec/functional/assets/chefinittest +34 -0
  306. data/spec/functional/assets/testchefsubsys +11 -0
  307. data/spec/functional/dsl/reboot_pending_spec.rb +19 -16
  308. data/spec/functional/event_loggers/windows_eventlog_spec.rb +82 -0
  309. data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
  310. data/spec/functional/knife/exec_spec.rb +1 -1
  311. data/spec/functional/resource/aix_service_spec.rb +136 -0
  312. data/spec/functional/resource/aixinit_service_spec.rb +211 -0
  313. data/spec/functional/resource/base.rb +1 -0
  314. data/spec/functional/resource/batch_spec.rb +4 -11
  315. data/spec/functional/resource/cron_spec.rb +7 -1
  316. data/spec/functional/resource/dsc_script_spec.rb +382 -0
  317. data/spec/functional/resource/env_spec.rb +54 -0
  318. data/spec/functional/resource/execute_spec.rb +113 -0
  319. data/spec/functional/resource/file_spec.rb +2 -0
  320. data/spec/functional/resource/group_spec.rb +7 -4
  321. data/spec/functional/resource/powershell_spec.rb +198 -185
  322. data/spec/functional/resource/rpm_spec.rb +5 -4
  323. data/spec/functional/resource/user/dscl_spec.rb +2 -1
  324. data/spec/functional/util/path_helper_spec.rb +37 -0
  325. data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
  326. data/spec/integration/client/client_spec.rb +1 -1
  327. data/spec/integration/client/ipv6_spec.rb +1 -1
  328. data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
  329. data/spec/integration/knife/chef_repo_path_spec.rb +1 -1
  330. data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
  331. data/spec/integration/knife/chefignore_spec.rb +1 -1
  332. data/spec/integration/knife/common_options_spec.rb +1 -1
  333. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  334. data/spec/integration/knife/delete_spec.rb +1 -1
  335. data/spec/integration/knife/deps_spec.rb +1 -1
  336. data/spec/integration/knife/diff_spec.rb +1 -1
  337. data/spec/integration/knife/download_spec.rb +1 -1
  338. data/spec/integration/knife/list_spec.rb +1 -1
  339. data/spec/integration/knife/raw_spec.rb +1 -1
  340. data/spec/integration/knife/redirection_spec.rb +1 -1
  341. data/spec/integration/knife/serve_spec.rb +1 -1
  342. data/spec/integration/knife/show_spec.rb +1 -1
  343. data/spec/integration/knife/upload_spec.rb +4 -3
  344. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  345. data/spec/spec_helper.rb +15 -0
  346. data/spec/support/chef_helpers.rb +1 -0
  347. data/spec/support/lib/chef/provider/snakeoil.rb +1 -0
  348. data/spec/support/lib/chef/resource/zen_follower.rb +1 -7
  349. data/spec/support/platform_helpers.rb +28 -0
  350. data/spec/support/shared/functional/file_resource.rb +6 -0
  351. data/spec/support/shared/functional/windows_script.rb +118 -0
  352. data/spec/support/shared/integration/integration_helper.rb +5 -2
  353. data/spec/support/shared/matchers/exit_with_code.rb +28 -0
  354. data/spec/support/shared/matchers/match_environment_variable.rb +17 -0
  355. data/spec/support/shared/shared_examples.rb +14 -0
  356. data/spec/support/shared/unit/execute_resource.rb +0 -7
  357. data/spec/support/shared/unit/resource/static_provider_resolution.rb +71 -0
  358. data/spec/support/shared/unit/script_resource.rb +1 -1
  359. data/spec/support/shared/unit/windows_script_resource.rb +35 -2
  360. data/spec/tiny_server.rb +1 -2
  361. data/spec/unit/api_client_spec.rb +5 -1
  362. data/spec/unit/application/{apply.rb → apply_spec.rb} +13 -5
  363. data/spec/unit/application/client_spec.rb +106 -13
  364. data/spec/unit/application/solo_spec.rb +25 -1
  365. data/spec/unit/client_spec.rb +1 -26
  366. data/spec/unit/config_fetcher_spec.rb +2 -1
  367. data/spec/unit/config_spec.rb +91 -2
  368. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +8 -0
  369. data/spec/unit/cookbook/metadata_spec.rb +43 -6
  370. data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
  371. data/spec/unit/cookbook_loader_spec.rb +4 -2
  372. data/spec/unit/cookbook_version_spec.rb +83 -2
  373. data/spec/unit/data_bag_item_spec.rb +5 -1
  374. data/spec/unit/data_bag_spec.rb +6 -1
  375. data/spec/unit/dsl/data_query_spec.rb +8 -110
  376. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -0
  377. data/spec/unit/encrypted_data_bag_item_spec.rb +16 -23
  378. data/spec/unit/environment_spec.rb +6 -2
  379. data/spec/unit/exceptions_spec.rb +6 -0
  380. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +16 -15
  381. data/spec/unit/json_compat_spec.rb +12 -2
  382. data/spec/unit/knife/bootstrap_spec.rb +16 -63
  383. data/spec/unit/knife/cookbook_site_share_spec.rb +59 -6
  384. data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -37
  385. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  386. data/spec/unit/knife/core/ui_spec.rb +28 -0
  387. data/spec/unit/knife/data_bag_create_spec.rb +63 -71
  388. data/spec/unit/knife/data_bag_edit_spec.rb +83 -49
  389. data/spec/unit/knife/data_bag_from_file_spec.rb +104 -126
  390. data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -0
  391. data/spec/unit/knife/data_bag_show_spec.rb +74 -72
  392. data/spec/unit/knife/environment_from_file_spec.rb +3 -2
  393. data/spec/unit/knife/ssl_check_spec.rb +46 -1
  394. data/spec/unit/knife/status_spec.rb +1 -2
  395. data/spec/unit/knife_spec.rb +18 -1
  396. data/spec/unit/lwrp_spec.rb +29 -8
  397. data/spec/unit/mixin/homebrew_user_spec.rb +100 -0
  398. data/spec/unit/node_map_spec.rb +155 -0
  399. data/spec/unit/node_spec.rb +11 -0
  400. data/spec/unit/platform/query_helpers_spec.rb +23 -0
  401. data/spec/unit/platform_spec.rb +23 -0
  402. data/spec/unit/provider/breakpoint_spec.rb +9 -9
  403. data/spec/unit/provider/cookbook_file/content_spec.rb +3 -3
  404. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  405. data/spec/unit/provider/cron/unix_spec.rb +78 -60
  406. data/spec/unit/provider/cron_spec.rb +175 -175
  407. data/spec/unit/provider/deploy/revision_spec.rb +22 -21
  408. data/spec/unit/provider/deploy/timestamped_spec.rb +3 -3
  409. data/spec/unit/provider/deploy_spec.rb +231 -230
  410. data/spec/unit/provider/directory_spec.rb +55 -55
  411. data/spec/unit/provider/dsc_script_spec.rb +174 -0
  412. data/spec/unit/provider/env/windows_spec.rb +70 -34
  413. data/spec/unit/provider/env_spec.rb +95 -49
  414. data/spec/unit/provider/erl_call_spec.rb +9 -9
  415. data/spec/unit/provider/execute_spec.rb +43 -27
  416. data/spec/unit/provider/file/content_spec.rb +9 -9
  417. data/spec/unit/provider/file_spec.rb +1 -1
  418. data/spec/unit/provider/git_spec.rb +221 -159
  419. data/spec/unit/provider/group/dscl_spec.rb +64 -63
  420. data/spec/unit/provider/group/gpasswd_spec.rb +14 -14
  421. data/spec/unit/provider/group/groupadd_spec.rb +33 -33
  422. data/spec/unit/provider/group/groupmod_spec.rb +23 -23
  423. data/spec/unit/provider/group/pw_spec.rb +21 -21
  424. data/spec/unit/provider/group/usermod_spec.rb +20 -20
  425. data/spec/unit/provider/group/windows_spec.rb +15 -15
  426. data/spec/unit/provider/group_spec.rb +76 -76
  427. data/spec/unit/provider/http_request_spec.rb +30 -30
  428. data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
  429. data/spec/unit/provider/ifconfig/debian_spec.rb +25 -9
  430. data/spec/unit/provider/ifconfig/redhat_spec.rb +13 -13
  431. data/spec/unit/provider/ifconfig_spec.rb +43 -43
  432. data/spec/unit/provider/link_spec.rb +60 -60
  433. data/spec/unit/provider/log_spec.rb +0 -4
  434. data/spec/unit/provider/mdadm_spec.rb +23 -23
  435. data/spec/unit/provider/mount/aix_spec.rb +17 -17
  436. data/spec/unit/provider/mount/mount_spec.rb +115 -119
  437. data/spec/unit/provider/mount/solaris_spec.rb +72 -72
  438. data/spec/unit/provider/mount/windows_spec.rb +24 -24
  439. data/spec/unit/provider/ohai_spec.rb +11 -11
  440. data/spec/unit/provider/package/aix_spec.rb +34 -34
  441. data/spec/unit/provider/package/apt_spec.rb +36 -36
  442. data/spec/unit/provider/package/dpkg_spec.rb +27 -27
  443. data/spec/unit/provider/package/easy_install_spec.rb +16 -16
  444. data/spec/unit/provider/package/freebsd/pkg_spec.rb +53 -53
  445. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +24 -24
  446. data/spec/unit/provider/package/freebsd/port_spec.rb +45 -35
  447. data/spec/unit/provider/package/homebrew_spec.rb +266 -0
  448. data/spec/unit/provider/package/ips_spec.rb +34 -34
  449. data/spec/unit/provider/package/macports_spec.rb +49 -49
  450. data/spec/unit/provider/package/pacman_spec.rb +35 -39
  451. data/spec/unit/provider/package/paludis_spec.rb +20 -20
  452. data/spec/unit/provider/package/portage_spec.rb +38 -38
  453. data/spec/unit/provider/package/rpm_spec.rb +29 -29
  454. data/spec/unit/provider/package/rubygems_spec.rb +284 -270
  455. data/spec/unit/provider/package/smartos_spec.rb +15 -15
  456. data/spec/unit/provider/package/solaris_spec.rb +35 -35
  457. data/spec/unit/provider/package/windows/msi_spec.rb +3 -3
  458. data/spec/unit/provider/package/windows_spec.rb +6 -6
  459. data/spec/unit/provider/package/yum_spec.rb +416 -416
  460. data/spec/unit/provider/package/zypper_spec.rb +47 -47
  461. data/spec/unit/provider/package_spec.rb +107 -107
  462. data/spec/unit/provider/powershell_spec.rb +1 -1
  463. data/spec/unit/provider/registry_key_spec.rb +61 -61
  464. data/spec/unit/provider/remote_directory_spec.rb +36 -36
  465. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +24 -24
  466. data/spec/unit/provider/remote_file/content_spec.rb +45 -45
  467. data/spec/unit/provider/remote_file/fetcher_spec.rb +9 -9
  468. data/spec/unit/provider/remote_file/ftp_spec.rb +32 -32
  469. data/spec/unit/provider/remote_file/http_spec.rb +44 -44
  470. data/spec/unit/provider/remote_file/local_file_spec.rb +9 -9
  471. data/spec/unit/provider/remote_file_spec.rb +3 -3
  472. data/spec/unit/provider/route_spec.rb +63 -63
  473. data/spec/unit/provider/ruby_block_spec.rb +4 -4
  474. data/spec/unit/provider/script_spec.rb +12 -12
  475. data/spec/unit/provider/service/aix_service_spec.rb +181 -0
  476. data/spec/unit/provider/service/aixinit_service_spec.rb +269 -0
  477. data/spec/unit/provider/service/arch_service_spec.rb +48 -48
  478. data/spec/unit/provider/service/debian_service_spec.rb +40 -40
  479. data/spec/unit/provider/service/gentoo_service_spec.rb +28 -28
  480. data/spec/unit/provider/service/init_service_spec.rb +39 -39
  481. data/spec/unit/provider/service/insserv_service_spec.rb +8 -8
  482. data/spec/unit/provider/service/invokercd_service_spec.rb +35 -35
  483. data/spec/unit/provider/service/macosx_spec.rb +49 -49
  484. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  485. data/spec/unit/provider/service/simple_service_spec.rb +28 -28
  486. data/spec/unit/provider/service/solaris_smf_service_spec.rb +43 -46
  487. data/spec/unit/provider/service/systemd_service_spec.rb +63 -63
  488. data/spec/unit/provider/service/upstart_service_spec.rb +78 -78
  489. data/spec/unit/provider/service/windows_spec.rb +92 -92
  490. data/spec/unit/provider/service_spec.rb +40 -40
  491. data/spec/unit/provider/subversion_spec.rb +80 -80
  492. data/spec/unit/provider/template/content_spec.rb +9 -9
  493. data/spec/unit/provider/template_spec.rb +6 -6
  494. data/spec/unit/provider/user/dscl_spec.rb +170 -167
  495. data/spec/unit/provider/user/pw_spec.rb +48 -48
  496. data/spec/unit/provider/user/solaris_spec.rb +8 -8
  497. data/spec/unit/provider/user/useradd_spec.rb +1 -1
  498. data/spec/unit/provider/user/windows_spec.rb +26 -26
  499. data/spec/unit/provider/user_spec.rb +72 -72
  500. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +4 -4
  501. data/spec/unit/provider_resolver_spec.rb +387 -0
  502. data/spec/unit/recipe_spec.rb +33 -12
  503. data/spec/unit/resource/apt_package_spec.rb +10 -13
  504. data/spec/unit/resource/bash_spec.rb +4 -4
  505. data/spec/unit/resource/batch_spec.rb +1 -1
  506. data/spec/unit/resource/breakpoint_spec.rb +11 -7
  507. data/spec/unit/resource/chef_gem_spec.rb +8 -15
  508. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  509. data/spec/unit/resource/conditional_spec.rb +35 -16
  510. data/spec/unit/resource/cookbook_file_spec.rb +13 -13
  511. data/spec/unit/resource/cron_spec.rb +37 -37
  512. data/spec/unit/resource/csh_spec.rb +4 -4
  513. data/spec/unit/resource/deploy_revision_spec.rb +13 -18
  514. data/spec/unit/resource/deploy_spec.rb +60 -55
  515. data/spec/unit/resource/directory_spec.rb +18 -18
  516. data/spec/unit/resource/dpkg_package_spec.rb +8 -14
  517. data/spec/unit/resource/dsc_script_spec.rb +98 -0
  518. data/spec/unit/resource/easy_install_package_spec.rb +9 -18
  519. data/spec/unit/resource/env_spec.rb +12 -12
  520. data/spec/unit/resource/erl_call_spec.rb +11 -11
  521. data/spec/unit/resource/execute_spec.rb +5 -0
  522. data/spec/unit/resource/file_spec.rb +29 -29
  523. data/spec/unit/resource/freebsd_package_spec.rb +11 -12
  524. data/spec/unit/resource/gem_package_spec.rb +8 -15
  525. data/spec/unit/resource/git_spec.rb +12 -8
  526. data/spec/unit/resource/group_spec.rb +27 -27
  527. data/spec/unit/resource/homebrew_package_spec.rb +50 -0
  528. data/spec/unit/resource/http_request_spec.rb +6 -6
  529. data/spec/unit/resource/ifconfig_spec.rb +8 -8
  530. data/spec/unit/resource/ips_package_spec.rb +10 -13
  531. data/spec/unit/resource/link_spec.rb +25 -25
  532. data/spec/unit/resource/log_spec.rb +9 -9
  533. data/spec/unit/resource/macports_package_spec.rb +8 -13
  534. data/spec/unit/resource/mdadm_spec.rb +18 -18
  535. data/spec/unit/resource/mount_spec.rb +45 -45
  536. data/spec/unit/resource/ohai_spec.rb +7 -7
  537. data/spec/unit/resource/package_spec.rb +12 -12
  538. data/spec/unit/resource/pacman_package_spec.rb +8 -14
  539. data/spec/unit/resource/perl_spec.rb +4 -4
  540. data/spec/unit/resource/portage_package_spec.rb +3 -3
  541. data/spec/unit/resource/powershell_spec.rb +7 -7
  542. data/spec/unit/resource/python_spec.rb +4 -4
  543. data/spec/unit/resource/registry_key_spec.rb +32 -32
  544. data/spec/unit/resource/remote_directory_spec.rb +17 -17
  545. data/spec/unit/resource/remote_file_spec.rb +41 -41
  546. data/spec/unit/resource/route_spec.rb +19 -19
  547. data/spec/unit/resource/rpm_package_spec.rb +9 -13
  548. data/spec/unit/resource/ruby_block_spec.rb +8 -8
  549. data/spec/unit/resource/ruby_spec.rb +4 -4
  550. data/spec/unit/resource/scm_spec.rb +40 -40
  551. data/spec/unit/resource/script_spec.rb +2 -2
  552. data/spec/unit/resource/service_spec.rb +37 -47
  553. data/spec/unit/resource/smartos_package_spec.rb +10 -15
  554. data/spec/unit/resource/solaris_package_spec.rb +13 -28
  555. data/spec/unit/resource/subversion_spec.rb +16 -12
  556. data/spec/unit/resource/template_spec.rb +35 -35
  557. data/spec/unit/resource/timestamped_deploy_spec.rb +30 -4
  558. data/spec/unit/resource/user_spec.rb +23 -23
  559. data/spec/unit/resource/windows_package_spec.rb +17 -10
  560. data/spec/unit/resource/windows_service_spec.rb +9 -6
  561. data/spec/unit/resource/yum_package_spec.rb +16 -21
  562. data/spec/unit/resource_collection/resource_list_spec.rb +137 -0
  563. data/spec/unit/resource_collection/resource_set_spec.rb +199 -0
  564. data/spec/unit/resource_collection_spec.rb +73 -92
  565. data/spec/unit/resource_definition_spec.rb +38 -40
  566. data/spec/unit/resource_reporter_spec.rb +3 -3
  567. data/spec/unit/resource_spec.rb +68 -33
  568. data/spec/unit/rest_spec.rb +83 -76
  569. data/spec/unit/role_spec.rb +5 -0
  570. data/spec/unit/run_list_spec.rb +5 -1
  571. data/spec/unit/runner_spec.rb +245 -238
  572. data/spec/unit/shell/shell_ext_spec.rb +1 -1
  573. data/spec/unit/user_spec.rb +5 -1
  574. data/spec/unit/util/dsc/configuration_generator_spec.rb +171 -0
  575. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +169 -0
  576. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +139 -0
  577. data/spec/unit/util/path_helper_spec.rb +23 -1
  578. data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
  579. data/spec/unit/workstation_config_loader_spec.rb +1 -1
  580. metadata +257 -191
  581. checksums.yaml +0 -7
  582. data/distro/README +0 -2
  583. data/distro/arch/etc/conf.d/chef-client.conf +0 -5
  584. data/distro/arch/etc/conf.d/chef-expander.conf +0 -8
  585. data/distro/arch/etc/conf.d/chef-server-webui.conf +0 -10
  586. data/distro/arch/etc/conf.d/chef-server.conf +0 -10
  587. data/distro/arch/etc/conf.d/chef-solr.conf +0 -8
  588. data/distro/arch/etc/rc.d/chef-client +0 -90
  589. data/distro/arch/etc/rc.d/chef-expander +0 -78
  590. data/distro/arch/etc/rc.d/chef-server +0 -78
  591. data/distro/arch/etc/rc.d/chef-server-webui +0 -78
  592. data/distro/arch/etc/rc.d/chef-solr +0 -78
  593. data/distro/debian/etc/default/chef-client +0 -4
  594. data/distro/debian/etc/default/chef-expander +0 -8
  595. data/distro/debian/etc/default/chef-server +0 -9
  596. data/distro/debian/etc/default/chef-server-webui +0 -9
  597. data/distro/debian/etc/default/chef-solr +0 -8
  598. data/distro/debian/etc/init.d/chef-client +0 -212
  599. data/distro/debian/etc/init.d/chef-expander +0 -176
  600. data/distro/debian/etc/init.d/chef-server +0 -122
  601. data/distro/debian/etc/init.d/chef-server-webui +0 -123
  602. data/distro/debian/etc/init.d/chef-solr +0 -176
  603. data/distro/debian/etc/init/chef-client.conf +0 -17
  604. data/distro/debian/etc/init/chef-expander.conf +0 -17
  605. data/distro/debian/etc/init/chef-server-webui.conf +0 -17
  606. data/distro/debian/etc/init/chef-server.conf +0 -17
  607. data/distro/debian/etc/init/chef-solr.conf +0 -17
  608. data/distro/redhat/etc/init.d/chef-client +0 -121
  609. data/distro/redhat/etc/init.d/chef-expander +0 -104
  610. data/distro/redhat/etc/init.d/chef-server +0 -112
  611. data/distro/redhat/etc/init.d/chef-server-webui +0 -112
  612. data/distro/redhat/etc/init.d/chef-solr +0 -104
  613. data/distro/redhat/etc/logrotate.d/chef-client +0 -8
  614. data/distro/redhat/etc/logrotate.d/chef-expander +0 -8
  615. data/distro/redhat/etc/logrotate.d/chef-server +0 -8
  616. data/distro/redhat/etc/logrotate.d/chef-server-webui +0 -8
  617. data/distro/redhat/etc/logrotate.d/chef-solr +0 -8
  618. data/distro/redhat/etc/sysconfig/chef-client +0 -15
  619. data/distro/redhat/etc/sysconfig/chef-expander +0 -7
  620. data/distro/redhat/etc/sysconfig/chef-server +0 -14
  621. data/distro/redhat/etc/sysconfig/chef-server-webui +0 -14
  622. data/distro/redhat/etc/sysconfig/chef-solr +0 -8
  623. data/distro/windows/service_manager.rb +0 -20
  624. data/lib/chef/resource_platform_map.rb +0 -151
  625. data/spec/support/shared/matchers.rb +0 -17
  626. data/spec/unit/resource_platform_map_spec.rb +0 -164
@@ -31,7 +31,7 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
31
31
 
32
32
  @status = double("Status", :exitstatus => 0)
33
33
  @provider = Chef::Provider::Package::SmartOS.new(@new_resource, @run_context)
34
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
34
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
35
35
  @stdin = StringIO.new
36
36
  @stdout = "varnish-2.1.5nb2\n"
37
37
  @stderr = StringIO.new
@@ -42,28 +42,28 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
42
42
  describe "when loading current resource" do
43
43
 
44
44
  it "should create a current resource with the name of the new_resource" do
45
- @provider.should_receive(:shell_out!).and_return(@shell_out)
46
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
45
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
46
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
47
47
  @provider.load_current_resource
48
48
  end
49
49
 
50
50
  it "should set the current resource package name" do
51
- @provider.should_receive(:shell_out!).and_return(@shell_out)
52
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
51
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
52
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
53
53
  @provider.load_current_resource
54
54
  end
55
55
 
56
56
  it "should set the installed version if it is installed" do
57
- @provider.should_receive(:shell_out!).and_return(@shell_out)
57
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
58
58
  @provider.load_current_resource
59
- @current_resource.version.should == "2.1.5nb2"
59
+ expect(@current_resource.version).to eq("2.1.5nb2")
60
60
  end
61
61
 
62
62
  it "should set the installed version to nil if it's not installed" do
63
63
  out = OpenStruct.new(:stdout => nil)
64
- @provider.should_receive(:shell_out!).and_return(out)
64
+ expect(@provider).to receive(:shell_out!).and_return(out)
65
65
  @provider.load_current_resource
66
- @current_resource.version.should == nil
66
+ expect(@current_resource.version).to eq(nil)
67
67
  end
68
68
 
69
69
 
@@ -72,18 +72,18 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
72
72
  describe "candidate_version" do
73
73
  it "should return the candidate_version variable if already setup" do
74
74
  @provider.candidate_version = "2.1.1"
75
- @provider.should_not_receive(:shell_out!)
75
+ expect(@provider).not_to receive(:shell_out!)
76
76
  @provider.candidate_version
77
77
  end
78
78
 
79
79
  it "should lookup the candidate_version if the variable is not already set" do
80
80
  search = double()
81
- search.should_receive(:each_line).
81
+ expect(search).to receive(:each_line).
82
82
  and_yield("something-varnish-1.1.1 something varnish like\n").
83
83
  and_yield("varnish-2.3.4 actual varnish\n")
84
84
  @shell_out = double('shell_out!', :stdout => search)
85
- @provider.should_receive(:shell_out!).with('/opt/local/bin/pkgin se varnish', :env => nil, :returns => [0,1]).and_return(@shell_out)
86
- @provider.candidate_version.should == "2.3.4"
85
+ expect(@provider).to receive(:shell_out!).with('/opt/local/bin/pkgin se varnish', :env => nil, :returns => [0,1]).and_return(@shell_out)
86
+ expect(@provider.candidate_version).to eq("2.3.4")
87
87
  end
88
88
  end
89
89
 
@@ -91,8 +91,8 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
91
91
 
92
92
  it "run pkgin and install the package" do
93
93
  out = OpenStruct.new(:stdout => nil)
94
- @provider.should_receive(:shell_out!).with("/opt/local/sbin/pkg_info -E \"varnish*\"", {:env => nil, :returns=>[0,1]}).and_return(@shell_out)
95
- @provider.should_receive(:shell_out!).with("/opt/local/bin/pkgin -y install varnish-2.1.5nb2", {:env=>nil}).and_return(out)
94
+ expect(@provider).to receive(:shell_out!).with("/opt/local/sbin/pkg_info -E \"varnish*\"", {:env => nil, :returns=>[0,1]}).and_return(@shell_out)
95
+ expect(@provider).to receive(:shell_out!).with("/opt/local/bin/pkgin -y install varnish-2.1.5nb2", {:env=>nil}).and_return(out)
96
96
  @provider.load_current_resource
97
97
  @provider.install_package("varnish", "2.1.5nb2")
98
98
  end
@@ -27,7 +27,7 @@ describe Chef::Provider::Package::Solaris do
27
27
  @new_resource.source("/tmp/bash.pkg")
28
28
 
29
29
  @provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
30
- ::File.stub(:exists?).and_return(true)
30
+ allow(::File).to receive(:exists?).and_return(true)
31
31
  end
32
32
 
33
33
  describe "assessing the current package status" do
@@ -50,119 +50,119 @@ PKGINFO
50
50
  end
51
51
 
52
52
  it "should create a current resource with the name of new_resource" do
53
- @provider.stub(:popen4).and_return(@status)
53
+ allow(@provider).to receive(:popen4).and_return(@status)
54
54
  @provider.load_current_resource
55
- @provider.current_resource.name.should == "SUNWbash"
55
+ expect(@provider.current_resource.name).to eq("SUNWbash")
56
56
  end
57
57
 
58
58
  it "should set the current reource package name to the new resource package name" do
59
- @provider.stub(:popen4).and_return(@status)
59
+ allow(@provider).to receive(:popen4).and_return(@status)
60
60
  @provider.load_current_resource
61
- @provider.current_resource.package_name.should == "SUNWbash"
61
+ expect(@provider.current_resource.package_name).to eq("SUNWbash")
62
62
  end
63
63
 
64
64
  it "should raise an exception if a source is supplied but not found" do
65
- @provider.stub(:popen4).and_return(@status)
66
- ::File.stub(:exists?).and_return(false)
65
+ allow(@provider).to receive(:popen4).and_return(@status)
66
+ allow(::File).to receive(:exists?).and_return(false)
67
67
  @provider.define_resource_requirements
68
68
  @provider.load_current_resource
69
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Package)
69
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Package)
70
70
  end
71
71
 
72
72
  it "should get the source package version from pkginfo if provided" do
73
73
  @stdout = StringIO.new(@pkginfo)
74
74
  @stdin, @stderr = StringIO.new, StringIO.new
75
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
76
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_return(@status)
75
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
76
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_return(@status)
77
77
  @provider.load_current_resource
78
78
 
79
- @provider.current_resource.package_name.should == "SUNWbash"
80
- @new_resource.version.should == "11.10.0,REV=2005.01.08.05.16"
79
+ expect(@provider.current_resource.package_name).to eq("SUNWbash")
80
+ expect(@new_resource.version).to eq("11.10.0,REV=2005.01.08.05.16")
81
81
  end
82
82
 
83
83
  it "should return the current version installed if found by pkginfo" do
84
84
  @stdout = StringIO.new(@pkginfo)
85
85
  @stdin, @stderr = StringIO.new, StringIO.new
86
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
87
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
86
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
87
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
88
88
  @provider.load_current_resource
89
- @provider.current_resource.version.should == "11.10.0,REV=2005.01.08.05.16"
89
+ expect(@provider.current_resource.version).to eq("11.10.0,REV=2005.01.08.05.16")
90
90
  end
91
91
 
92
92
  it "should raise an exception if the source is not set but we are installing" do
93
93
  @new_resource = Chef::Resource::Package.new("SUNWbash")
94
94
  @provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
95
- @provider.stub(:popen4).and_return(@status)
96
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
95
+ allow(@provider).to receive(:popen4).and_return(@status)
96
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
97
97
  end
98
98
 
99
99
  it "should raise an exception if pkginfo fails to run" do
100
100
  @status = double("Status", :exitstatus => -1)
101
- @provider.stub(:popen4).and_return(@status)
102
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
101
+ allow(@provider).to receive(:popen4).and_return(@status)
102
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
103
103
  end
104
104
 
105
105
  it "should return a current resource with a nil version if the package is not found" do
106
106
  @stdout = StringIO.new
107
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
108
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
107
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
108
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
109
109
  @provider.load_current_resource
110
- @provider.current_resource.version.should be_nil
110
+ expect(@provider.current_resource.version).to be_nil
111
111
  end
112
112
  end
113
113
 
114
114
  describe "candidate_version" do
115
115
  it "should return the candidate_version variable if already setup" do
116
116
  @provider.candidate_version = "11.10.0,REV=2005.01.08.05.16"
117
- @provider.should_not_receive(:popen4)
117
+ expect(@provider).not_to receive(:popen4)
118
118
  @provider.candidate_version
119
119
  end
120
120
 
121
121
  it "should lookup the candidate_version if the variable is not already set" do
122
122
  @status = double("Status", :exitstatus => 0)
123
- @provider.stub(:popen4).and_return(@status)
124
- @provider.should_receive(:popen4)
123
+ allow(@provider).to receive(:popen4).and_return(@status)
124
+ expect(@provider).to receive(:popen4)
125
125
  @provider.candidate_version
126
126
  end
127
127
 
128
128
  it "should throw and exception if the exitstatus is not 0" do
129
129
  @status = double("Status", :exitstatus => 1)
130
- @provider.stub(:popen4).and_return(@status)
131
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
130
+ allow(@provider).to receive(:popen4).and_return(@status)
131
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
132
132
  end
133
133
 
134
134
  end
135
135
 
136
136
  describe "install and upgrade" do
137
137
  it "should run pkgadd -n -d with the package source to install" do
138
- @provider.should_receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
138
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
139
139
  @provider.install_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
140
140
  end
141
141
 
142
142
  it "should run pkgadd -n -d when the package is a path to install" do
143
143
  @new_resource = Chef::Resource::Package.new("/tmp/bash.pkg")
144
144
  @provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
145
- @new_resource.source.should == "/tmp/bash.pkg"
146
- @provider.should_receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
145
+ expect(@new_resource.source).to eq("/tmp/bash.pkg")
146
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
147
147
  @provider.install_package("/tmp/bash.pkg", "11.10.0,REV=2005.01.08.05.16")
148
148
  end
149
149
 
150
150
  it "should run pkgadd -n -a /tmp/myadmin -d with the package options -a /tmp/myadmin" do
151
- @new_resource.stub(:options).and_return("-a /tmp/myadmin")
152
- @provider.should_receive(:shell_out!).with("pkgadd -n -a /tmp/myadmin -d /tmp/bash.pkg all")
151
+ allow(@new_resource).to receive(:options).and_return("-a /tmp/myadmin")
152
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -a /tmp/myadmin -d /tmp/bash.pkg all")
153
153
  @provider.install_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
154
154
  end
155
155
  end
156
156
 
157
157
  describe "remove" do
158
158
  it "should run pkgrm -n to remove the package" do
159
- @provider.should_receive(:shell_out!).with("pkgrm -n SUNWbash")
159
+ expect(@provider).to receive(:shell_out!).with("pkgrm -n SUNWbash")
160
160
  @provider.remove_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
161
161
  end
162
162
 
163
163
  it "should run pkgrm -n -a /tmp/myadmin with options -a /tmp/myadmin" do
164
- @new_resource.stub(:options).and_return("-a /tmp/myadmin")
165
- @provider.should_receive(:shell_out!).with("pkgrm -n -a /tmp/myadmin SUNWbash")
164
+ allow(@new_resource).to receive(:options).and_return("-a /tmp/myadmin")
165
+ expect(@provider).to receive(:shell_out!).with("pkgrm -n -a /tmp/myadmin SUNWbash")
166
166
  @provider.remove_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
167
167
  end
168
168
 
@@ -37,15 +37,15 @@ describe Chef::Provider::Package::Windows::MSI, :windows_only do
37
37
 
38
38
  describe "installed_version" do
39
39
  it "returns the installed version" do
40
- provider.stub(:get_product_property).and_return("{23170F69-40C1-2702-0920-000001000000}")
41
- provider.stub(:get_installed_version).with("{23170F69-40C1-2702-0920-000001000000}").and_return("3.14159.1337.42")
40
+ allow(provider).to receive(:get_product_property).and_return("{23170F69-40C1-2702-0920-000001000000}")
41
+ allow(provider).to receive(:get_installed_version).with("{23170F69-40C1-2702-0920-000001000000}").and_return("3.14159.1337.42")
42
42
  expect(provider.installed_version).to eql("3.14159.1337.42")
43
43
  end
44
44
  end
45
45
 
46
46
  describe "package_version" do
47
47
  it "returns the version of a package" do
48
- provider.stub(:get_product_property).with(/calculator.msi$/, "ProductVersion").and_return(42)
48
+ allow(provider).to receive(:get_product_property).with(/calculator.msi$/, "ProductVersion").and_return(42)
49
49
  expect(provider.package_version).to eql(42)
50
50
  end
51
51
  end
@@ -27,8 +27,8 @@ describe Chef::Provider::Package::Windows, :windows_only do
27
27
 
28
28
  describe "load_current_resource" do
29
29
  before(:each) do
30
- Chef::Util::PathHelper.stub(:validate_path)
31
- provider.stub(:package_provider).and_return(double('package_provider',
30
+ allow(Chef::Util::PathHelper).to receive(:validate_path)
31
+ allow(provider).to receive(:package_provider).and_return(double('package_provider',
32
32
  :installed_version => "1.0", :package_version => "2.0"))
33
33
  end
34
34
 
@@ -56,20 +56,20 @@ describe Chef::Provider::Package::Windows, :windows_only do
56
56
 
57
57
  describe "package_provider" do
58
58
  it "sets the package provider to MSI if the the installer type is :msi" do
59
- provider.stub(:installer_type).and_return(:msi)
59
+ allow(provider).to receive(:installer_type).and_return(:msi)
60
60
  expect(provider.package_provider).to be_a(Chef::Provider::Package::Windows::MSI)
61
61
  end
62
62
 
63
63
  it "raises an error if the installer_type is unknown" do
64
- provider.stub(:installer_type).and_return(:apt_for_windows)
64
+ allow(provider).to receive(:installer_type).and_return(:apt_for_windows)
65
65
  expect { provider.package_provider }.to raise_error
66
66
  end
67
67
  end
68
68
 
69
69
  describe "installer_type" do
70
70
  it "it returns @installer_type if it is set" do
71
- provider.new_resource.installer_type("downeaster")
72
- expect(provider.installer_type).to eql("downeaster")
71
+ provider.new_resource.installer_type(:downeaster)
72
+ expect(provider.installer_type).to eql(:downeaster)
73
73
  end
74
74
 
75
75
  it "sets installer_type to msi if the source ends in .msi" do
@@ -37,7 +37,7 @@ describe Chef::Provider::Package::Yum do
37
37
  :package_repository => "base",
38
38
  :disable_extra_repo_control => true
39
39
  )
40
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
40
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
41
41
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
42
42
  @pid = double("PID")
43
43
  end
@@ -45,32 +45,32 @@ describe Chef::Provider::Package::Yum do
45
45
  describe "when loading the current system state" do
46
46
  it "should create a current resource with the name of the new_resource" do
47
47
  @provider.load_current_resource
48
- @provider.current_resource.name.should == "cups"
48
+ expect(@provider.current_resource.name).to eq("cups")
49
49
  end
50
50
 
51
51
  it "should set the current resources package name to the new resources package name" do
52
52
  @provider.load_current_resource
53
- @provider.current_resource.package_name.should == "cups"
53
+ expect(@provider.current_resource.package_name).to eq("cups")
54
54
  end
55
55
 
56
56
  it "should set the installed version to nil on the current resource if no installed package" do
57
- @yum_cache.stub(:installed_version).and_return(nil)
57
+ allow(@yum_cache).to receive(:installed_version).and_return(nil)
58
58
  @provider.load_current_resource
59
- @provider.current_resource.version.should be_nil
59
+ expect(@provider.current_resource.version).to be_nil
60
60
  end
61
61
 
62
62
  it "should set the installed version if yum has one" do
63
63
  @provider.load_current_resource
64
- @provider.current_resource.version.should == "1.2.4-11.18.el5"
64
+ expect(@provider.current_resource.version).to eq("1.2.4-11.18.el5")
65
65
  end
66
66
 
67
67
  it "should set the candidate version if yum info has one" do
68
68
  @provider.load_current_resource
69
- @provider.candidate_version.should eql("1.2.4-11.18.el5_2.3")
69
+ expect(@provider.candidate_version).to eql("1.2.4-11.18.el5_2.3")
70
70
  end
71
71
 
72
72
  it "should return the current resouce" do
73
- @provider.load_current_resource.should eql(@provider.current_resource)
73
+ expect(@provider.load_current_resource).to eql(@provider.current_resource)
74
74
  end
75
75
 
76
76
  describe "when arch in package_name" do
@@ -79,11 +79,11 @@ describe Chef::Provider::Package::Yum do
79
79
  @yum_cache = double(
80
80
  'Chef::Provider::Yum::YumCache'
81
81
  )
82
- @yum_cache.stub(:installed_version) do |package_name, arch|
82
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
83
83
  # nothing installed for package_name/new_package_name
84
84
  nil
85
85
  end
86
- @yum_cache.stub(:candidate_version) do |package_name, arch|
86
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
87
87
  if package_name == "testing.noarch" || package_name == "testing.more.noarch"
88
88
  nil
89
89
  # candidate for new_package_name
@@ -91,21 +91,21 @@ describe Chef::Provider::Package::Yum do
91
91
  "1.1"
92
92
  end
93
93
  end
94
- @yum_cache.stub(:package_available?).and_return(true)
95
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
96
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
94
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
95
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
96
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
97
97
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
98
98
  @provider.load_current_resource
99
- @provider.new_resource.package_name.should == "testing"
100
- @provider.new_resource.arch.should == "noarch"
101
- @provider.arch.should == "noarch"
99
+ expect(@provider.new_resource.package_name).to eq("testing")
100
+ expect(@provider.new_resource.arch).to eq("noarch")
101
+ expect(@provider.arch).to eq("noarch")
102
102
 
103
103
  @new_resource = Chef::Resource::YumPackage.new('testing.more.noarch')
104
104
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
105
105
  @provider.load_current_resource
106
- @provider.new_resource.package_name.should == "testing.more"
107
- @provider.new_resource.arch.should == "noarch"
108
- @provider.arch.should == "noarch"
106
+ expect(@provider.new_resource.package_name).to eq("testing.more")
107
+ expect(@provider.new_resource.arch).to eq("noarch")
108
+ expect(@provider.arch).to eq("noarch")
109
109
  end
110
110
 
111
111
  it "should not set the arch when an existing package_name is found" do
@@ -113,7 +113,7 @@ describe Chef::Provider::Package::Yum do
113
113
  @yum_cache = double(
114
114
  'Chef::Provider::Yum::YumCache'
115
115
  )
116
- @yum_cache.stub(:installed_version) do |package_name, arch|
116
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
117
117
  # installed for package_name
118
118
  if package_name == "testing.beta3" || package_name == "testing.beta3.more"
119
119
  "1.1"
@@ -121,26 +121,26 @@ describe Chef::Provider::Package::Yum do
121
121
  nil
122
122
  end
123
123
  end
124
- @yum_cache.stub(:candidate_version) do |package_name, arch|
124
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
125
125
  # no candidate for package_name/new_package_name
126
126
  nil
127
127
  end
128
- @yum_cache.stub(:package_available?).and_return(true)
129
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
130
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
128
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
129
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
130
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
131
131
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
132
132
  # annoying side effect of the fun stub'ing above
133
133
  @provider.load_current_resource
134
- @provider.new_resource.package_name.should == "testing.beta3"
135
- @provider.new_resource.arch.should == nil
136
- @provider.arch.should == nil
134
+ expect(@provider.new_resource.package_name).to eq("testing.beta3")
135
+ expect(@provider.new_resource.arch).to eq(nil)
136
+ expect(@provider.arch).to eq(nil)
137
137
 
138
138
  @new_resource = Chef::Resource::YumPackage.new('testing.beta3.more')
139
139
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
140
140
  @provider.load_current_resource
141
- @provider.new_resource.package_name.should == "testing.beta3.more"
142
- @provider.new_resource.arch.should == nil
143
- @provider.arch.should == nil
141
+ expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
142
+ expect(@provider.new_resource.arch).to eq(nil)
143
+ expect(@provider.arch).to eq(nil)
144
144
  end
145
145
 
146
146
  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
148
148
  @yum_cache = double(
149
149
  'Chef::Provider::Yum::YumCache'
150
150
  )
151
- @yum_cache.stub(:installed_version) do |package_name, arch|
151
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
152
152
  # nothing installed for package_name/new_package_name
153
153
  nil
154
154
  end
155
- @yum_cache.stub(:candidate_version) do |package_name, arch|
155
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
156
156
  # no candidate for package_name/new_package_name
157
157
  nil
158
158
  end
159
- @yum_cache.stub(:package_available?).and_return(true)
160
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
161
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
159
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
160
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
161
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
162
162
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
163
163
  @provider.load_current_resource
164
- @provider.new_resource.package_name.should == "testing.beta3"
165
- @provider.new_resource.arch.should == nil
166
- @provider.arch.should == nil
164
+ expect(@provider.new_resource.package_name).to eq("testing.beta3")
165
+ expect(@provider.new_resource.arch).to eq(nil)
166
+ expect(@provider.arch).to eq(nil)
167
167
 
168
168
  @new_resource = Chef::Resource::YumPackage.new('testing.beta3.more')
169
169
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
170
170
  @provider.load_current_resource
171
- @provider.new_resource.package_name.should == "testing.beta3.more"
172
- @provider.new_resource.arch.should == nil
173
- @provider.arch.should == nil
171
+ expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
172
+ expect(@provider.new_resource.arch).to eq(nil)
173
+ expect(@provider.arch).to eq(nil)
174
174
  end
175
175
 
176
176
  it "should ensure it doesn't clobber an existing arch if passed" do
@@ -179,11 +179,11 @@ describe Chef::Provider::Package::Yum do
179
179
  @yum_cache = double(
180
180
  'Chef::Provider::Yum::YumCache'
181
181
  )
182
- @yum_cache.stub(:installed_version) do |package_name, arch|
182
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
183
183
  # nothing installed for package_name/new_package_name
184
184
  nil
185
185
  end
186
- @yum_cache.stub(:candidate_version) do |package_name, arch|
186
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
187
187
  if package_name == "testing.noarch"
188
188
  nil
189
189
  # candidate for new_package_name
@@ -191,43 +191,43 @@ describe Chef::Provider::Package::Yum do
191
191
  "1.1"
192
192
  end
193
193
  end.and_return("something")
194
- @yum_cache.stub(:package_available?).and_return(true)
195
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
196
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
194
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
195
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
196
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
197
197
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
198
198
  @provider.load_current_resource
199
- @provider.new_resource.package_name.should == "testing.i386"
200
- @provider.new_resource.arch.should == "x86_64"
199
+ expect(@provider.new_resource.package_name).to eq("testing.i386")
200
+ expect(@provider.new_resource.arch).to eq("x86_64")
201
201
  end
202
202
  end
203
203
 
204
204
  it "should flush the cache if :before is true" do
205
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => true})
206
- @yum_cache.should_receive(:reload).once
205
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => true})
206
+ expect(@yum_cache).to receive(:reload).once
207
207
  @provider.load_current_resource
208
208
  end
209
209
 
210
210
  it "should flush the cache if :before is false" do
211
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => false})
212
- @yum_cache.should_not_receive(:reload)
211
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => false})
212
+ expect(@yum_cache).not_to receive(:reload)
213
213
  @provider.load_current_resource
214
214
  end
215
215
 
216
216
  it "should detect --enablerepo or --disablerepo when passed among options, collect them preserving order and notify the yum cache" do
217
- @new_resource.stub(:options).and_return("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
218
- @yum_cache.should_receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
217
+ allow(@new_resource).to receive(:options).and_return("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
218
+ expect(@yum_cache).to receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
219
219
  @provider.load_current_resource
220
220
  end
221
221
 
222
222
  it "should let the yum cache know extra repos are disabled if --enablerepo or --disablerepo aren't among options" do
223
- @new_resource.stub(:options).and_return("--stuff --otherthings")
224
- @yum_cache.should_receive(:disable_extra_repo_control)
223
+ allow(@new_resource).to receive(:options).and_return("--stuff --otherthings")
224
+ expect(@yum_cache).to receive(:disable_extra_repo_control)
225
225
  @provider.load_current_resource
226
226
  end
227
227
 
228
228
  it "should let the yum cache know extra repos are disabled if options aren't set" do
229
- @new_resource.stub(:options).and_return(nil)
230
- @yum_cache.should_receive(:disable_extra_repo_control)
229
+ allow(@new_resource).to receive(:options).and_return(nil)
230
+ expect(@yum_cache).to receive(:disable_extra_repo_control)
231
231
  @provider.load_current_resource
232
232
  end
233
233
 
@@ -242,12 +242,12 @@ describe Chef::Provider::Package::Yum do
242
242
  :version_available? => true,
243
243
  :disable_extra_repo_control => true
244
244
  )
245
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
245
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
246
246
  pkg = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "1.2.4-11.18.el5", "x86_64", [])
247
- @yum_cache.should_receive(:packages_from_require).and_return([pkg])
247
+ expect(@yum_cache).to receive(:packages_from_require).and_return([pkg])
248
248
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
249
249
  @provider.load_current_resource
250
- @new_resource.package_name.should == "test-package"
250
+ expect(@new_resource.package_name).to eq("test-package")
251
251
  end
252
252
 
253
253
  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
261
261
  :version_available? => true,
262
262
  :disable_extra_repo_control => true
263
263
  )
264
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
264
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
265
265
  pkg_x = Chef::Provider::Package::Yum::RPMPackage.new("test-package-x", "1.2.4-11.18.el5", "x86_64", [])
266
266
  pkg_y = Chef::Provider::Package::Yum::RPMPackage.new("test-package-y", "1.2.6-11.3.el5", "i386", [])
267
- @yum_cache.should_receive(:packages_from_require).and_return([pkg_x, pkg_y])
268
- Chef::Log.should_receive(:warn).exactly(1).times.with(%r{matched multiple Provides})
267
+ expect(@yum_cache).to receive(:packages_from_require).and_return([pkg_x, pkg_y])
268
+ expect(Chef::Log).to receive(:warn).exactly(1).times.with(%r{matched multiple Provides})
269
269
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
270
270
  @provider.load_current_resource
271
- @new_resource.package_name.should == "test-package-x"
271
+ expect(@new_resource.package_name).to eq("test-package-x")
272
272
  end
273
273
 
274
274
  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
282
282
  :version_available? => true,
283
283
  :disable_extra_repo_control => true
284
284
  )
285
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
286
- @yum_cache.should_receive(:packages_from_require).twice.and_return([])
287
- @yum_cache.should_receive(:reload_provides)
285
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
286
+ expect(@yum_cache).to receive(:packages_from_require).twice.and_return([])
287
+ expect(@yum_cache).to receive(:reload_provides)
288
288
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
289
289
  @provider.load_current_resource
290
290
  end
@@ -300,14 +300,14 @@ describe Chef::Provider::Package::Yum do
300
300
  :version_available? => true,
301
301
  :disable_extra_repo_control => true
302
302
  )
303
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
303
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
304
304
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
305
- @yum_cache.should_receive(:packages_from_require).once.and_return([])
306
- @yum_cache.should_not_receive(:reload_provides)
305
+ expect(@yum_cache).to receive(:packages_from_require).once.and_return([])
306
+ expect(@yum_cache).not_to receive(:reload_provides)
307
307
  @new_resource.action(:remove)
308
308
  @provider.load_current_resource
309
- @yum_cache.should_receive(:packages_from_require).once.and_return([])
310
- @yum_cache.should_not_receive(:reload_provides)
309
+ expect(@yum_cache).to receive(:packages_from_require).once.and_return([])
310
+ expect(@yum_cache).not_to receive(:reload_provides)
311
311
  @new_resource.action(:purge)
312
312
  @provider.load_current_resource
313
313
  end
@@ -324,27 +324,27 @@ describe Chef::Provider::Package::Yum do
324
324
  :version_available? => true,
325
325
  :disable_extra_repo_control => true
326
326
  )
327
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
328
- @yum_cache.should_receive(:packages_from_require).twice.and_return([])
327
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
328
+ expect(@yum_cache).to receive(:packages_from_require).twice.and_return([])
329
329
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
330
330
  @provider.load_current_resource
331
- @new_resource.package_name.should == "cups"
331
+ expect(@new_resource.package_name).to eq("cups")
332
332
  end
333
333
  end
334
334
 
335
335
  describe "when installing a package" do
336
336
  it "should run yum install with the package name and version" do
337
337
  @provider.load_current_resource
338
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
339
- @provider.should_receive(:yum_command).with(
338
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
339
+ expect(@provider).to receive(:yum_command).with(
340
340
  "yum -d0 -e0 -y install emacs-1.0"
341
341
  )
342
342
  @provider.install_package("emacs", "1.0")
343
343
  end
344
344
 
345
345
  it "should run yum localinstall if given a path to an rpm" do
346
- @new_resource.stub(:source).and_return("/tmp/emacs-21.4-20.el5.i386.rpm")
347
- @provider.should_receive(:yum_command).with(
346
+ allow(@new_resource).to receive(:source).and_return("/tmp/emacs-21.4-20.el5.i386.rpm")
347
+ expect(@provider).to receive(:yum_command).with(
348
348
  "yum -d0 -e0 -y localinstall /tmp/emacs-21.4-20.el5.i386.rpm"
349
349
  )
350
350
  @provider.install_package("emacs", "21.4-20.el5")
@@ -352,10 +352,10 @@ describe Chef::Provider::Package::Yum do
352
352
 
353
353
  it "should run yum localinstall if given a path to an rpm as the package" do
354
354
  @new_resource = Chef::Resource::Package.new("/tmp/emacs-21.4-20.el5.i386.rpm")
355
- ::File.stub(:exists?).and_return(true)
355
+ allow(::File).to receive(:exists?).and_return(true)
356
356
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
357
- @new_resource.source.should == "/tmp/emacs-21.4-20.el5.i386.rpm"
358
- @provider.should_receive(:yum_command).with(
357
+ expect(@new_resource.source).to eq("/tmp/emacs-21.4-20.el5.i386.rpm")
358
+ expect(@provider).to receive(:yum_command).with(
359
359
  "yum -d0 -e0 -y localinstall /tmp/emacs-21.4-20.el5.i386.rpm"
360
360
  )
361
361
  @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
363
363
 
364
364
  it "should run yum install with the package name, version and arch" do
365
365
  @provider.load_current_resource
366
- @new_resource.stub(:arch).and_return("i386")
367
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
368
- @provider.should_receive(:yum_command).with(
366
+ allow(@new_resource).to receive(:arch).and_return("i386")
367
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
368
+ expect(@provider).to receive(:yum_command).with(
369
369
  "yum -d0 -e0 -y install emacs-21.4-20.el5.i386"
370
370
  )
371
371
  @provider.install_package("emacs", "21.4-20.el5")
@@ -374,9 +374,9 @@ describe Chef::Provider::Package::Yum do
374
374
  it "installs the package with the options given in the resource" do
375
375
  @provider.load_current_resource
376
376
  @provider.candidate_version = '11'
377
- @new_resource.stub(:options).and_return("--disablerepo epmd")
378
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
379
- @provider.should_receive(:yum_command).with(
377
+ allow(@new_resource).to receive(:options).and_return("--disablerepo epmd")
378
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
379
+ expect(@provider).to receive(:yum_command).with(
380
380
  "yum -d0 -e0 -y --disablerepo epmd install cups-11"
381
381
  )
382
382
  @provider.install_package(@new_resource.name, @provider.candidate_version)
@@ -393,13 +393,13 @@ describe Chef::Provider::Package::Yum do
393
393
  :version_available? => nil,
394
394
  :disable_extra_repo_control => true
395
395
  )
396
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
396
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
397
397
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
398
- lambda { @provider.install_package("lolcats", "0.99") }.should raise_error(Chef::Exceptions::Package, %r{Version .* not found})
398
+ expect { @provider.install_package("lolcats", "0.99") }.to raise_error(Chef::Exceptions::Package, %r{Version .* not found})
399
399
  end
400
400
 
401
401
  it "should raise an exception if candidate version is older than the installed version and allow_downgrade is false" do
402
- @new_resource.stub(:allow_downgrade).and_return(false)
402
+ allow(@new_resource).to receive(:allow_downgrade).and_return(false)
403
403
  @yum_cache = double(
404
404
  'Chef::Provider::Yum::YumCache',
405
405
  :reload_installed => true,
@@ -411,10 +411,10 @@ describe Chef::Provider::Package::Yum do
411
411
  :allow_multi_install => [ "kernel" ],
412
412
  :disable_extra_repo_control => true
413
413
  )
414
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
414
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
415
415
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
416
416
  @provider.load_current_resource
417
- lambda { @provider.install_package("cups", "1.2.4-11.15.el5") }.should raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
417
+ expect { @provider.install_package("cups", "1.2.4-11.15.el5") }.to raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
418
418
  end
419
419
 
420
420
  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
430
430
  :package_repository => "base",
431
431
  :disable_extra_repo_control => true
432
432
  )
433
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
433
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
434
434
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
435
435
  @provider.load_current_resource
436
- @provider.should_receive(:yum_command).with(
436
+ expect(@provider).to receive(:yum_command).with(
437
437
  "yum -d0 -e0 -y install cups-1.2.4-11.15.el5"
438
438
  )
439
439
  @provider.install_package("cups", "1.2.4-11.15.el5")
440
440
  end
441
441
 
442
442
  it "should run yum downgrade if candidate version is older than the installed version and allow_downgrade is true" do
443
- @new_resource.stub(:allow_downgrade).and_return(true)
443
+ allow(@new_resource).to receive(:allow_downgrade).and_return(true)
444
444
  @yum_cache = double(
445
445
  'Chef::Provider::Yum::YumCache',
446
446
  :reload_installed => true,
@@ -453,34 +453,34 @@ describe Chef::Provider::Package::Yum do
453
453
  :package_repository => "base",
454
454
  :disable_extra_repo_control => true
455
455
  )
456
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
456
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
457
457
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
458
458
  @provider.load_current_resource
459
- @provider.should_receive(:yum_command).with(
459
+ expect(@provider).to receive(:yum_command).with(
460
460
  "yum -d0 -e0 -y downgrade cups-1.2.4-11.15.el5"
461
461
  )
462
462
  @provider.install_package("cups", "1.2.4-11.15.el5")
463
463
  end
464
464
 
465
465
  it "should run yum install then flush the cache if :after is true" do
466
- @new_resource.stub(:flush_cache).and_return({:after => true, :before => false})
466
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => true, :before => false})
467
467
  @provider.load_current_resource
468
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
469
- @provider.should_receive(:yum_command).with(
468
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
469
+ expect(@provider).to receive(:yum_command).with(
470
470
  "yum -d0 -e0 -y install emacs-1.0"
471
471
  )
472
- @yum_cache.should_receive(:reload).once
472
+ expect(@yum_cache).to receive(:reload).once
473
473
  @provider.install_package("emacs", "1.0")
474
474
  end
475
475
 
476
476
  it "should run yum install then not flush the cache if :after is false" do
477
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => false})
477
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => false})
478
478
  @provider.load_current_resource
479
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
480
- @provider.should_receive(:yum_command).with(
479
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
480
+ expect(@provider).to receive(:yum_command).with(
481
481
  "yum -d0 -e0 -y install emacs-1.0"
482
482
  )
483
- @yum_cache.should_not_receive(:reload)
483
+ expect(@yum_cache).not_to receive(:reload)
484
484
  @provider.install_package("emacs", "1.0")
485
485
  end
486
486
  end
@@ -489,8 +489,8 @@ describe Chef::Provider::Package::Yum do
489
489
  it "should run yum install if the package is installed and a version is given" do
490
490
  @provider.load_current_resource
491
491
  @provider.candidate_version = '11'
492
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
493
- @provider.should_receive(:yum_command).with(
492
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
493
+ expect(@provider).to receive(:yum_command).with(
494
494
  "yum -d0 -e0 -y install cups-11"
495
495
  )
496
496
  @provider.upgrade_package(@new_resource.name, @provider.candidate_version)
@@ -500,8 +500,8 @@ describe Chef::Provider::Package::Yum do
500
500
  @provider.load_current_resource
501
501
  @current_resource = Chef::Resource::Package.new('cups')
502
502
  @provider.candidate_version = '11'
503
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
504
- @provider.should_receive(:yum_command).with(
503
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
504
+ expect(@provider).to receive(:yum_command).with(
505
505
  "yum -d0 -e0 -y install cups-11"
506
506
  )
507
507
  @provider.upgrade_package(@new_resource.name, @provider.candidate_version)
@@ -519,19 +519,19 @@ describe Chef::Provider::Package::Yum do
519
519
  :allow_multi_install => [ "kernel" ],
520
520
  :disable_extra_repo_control => true
521
521
  )
522
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
522
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
523
523
  @provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
524
524
  @provider.load_current_resource
525
- lambda { @provider.upgrade_package("cups", "1.2.4-11.15.el5") }.should raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
525
+ expect { @provider.upgrade_package("cups", "1.2.4-11.15.el5") }.to raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
526
526
  end
527
527
 
528
528
  # Test our little workaround, some crossover into Chef::Provider::Package territory
529
529
  it "should call action_upgrade in the parent if the current resource version is nil" do
530
- @yum_cache.stub(:installed_version).and_return(nil)
530
+ allow(@yum_cache).to receive(:installed_version).and_return(nil)
531
531
  @provider.load_current_resource
532
532
  @current_resource = Chef::Resource::Package.new('cups')
533
533
  @provider.candidate_version = '11'
534
- @provider.should_receive(:upgrade_package).with(
534
+ expect(@provider).to receive(:upgrade_package).with(
535
535
  "cups",
536
536
  "11"
537
537
  )
@@ -542,7 +542,7 @@ describe Chef::Provider::Package::Yum do
542
542
  @provider.load_current_resource
543
543
  @current_resource = Chef::Resource::Package.new('cups')
544
544
  @provider.candidate_version = nil
545
- @provider.should_not_receive(:upgrade_package)
545
+ expect(@provider).not_to receive(:upgrade_package)
546
546
  @provider.action_upgrade
547
547
  end
548
548
 
@@ -550,7 +550,7 @@ describe Chef::Provider::Package::Yum do
550
550
  @provider.load_current_resource
551
551
  @current_resource = Chef::Resource::Package.new('cups')
552
552
  @provider.candidate_version = '11'
553
- @provider.should_receive(:upgrade_package).with(
553
+ expect(@provider).to receive(:upgrade_package).with(
554
554
  "cups",
555
555
  "11"
556
556
  )
@@ -558,26 +558,26 @@ describe Chef::Provider::Package::Yum do
558
558
  end
559
559
 
560
560
  it "should not call action_upgrade in the parent if the candidate is older" do
561
- @yum_cache.stub(:installed_version).and_return("12")
561
+ allow(@yum_cache).to receive(:installed_version).and_return("12")
562
562
  @provider.load_current_resource
563
563
  @current_resource = Chef::Resource::Package.new('cups')
564
564
  @provider.candidate_version = '11'
565
- @provider.should_not_receive(:upgrade_package)
565
+ expect(@provider).not_to receive(:upgrade_package)
566
566
  @provider.action_upgrade
567
567
  end
568
568
  end
569
569
 
570
570
  describe "when removing a package" do
571
571
  it "should run yum remove with the package name" do
572
- @provider.should_receive(:yum_command).with(
572
+ expect(@provider).to receive(:yum_command).with(
573
573
  "yum -d0 -e0 -y remove emacs-1.0"
574
574
  )
575
575
  @provider.remove_package("emacs", "1.0")
576
576
  end
577
577
 
578
578
  it "should run yum remove with the package name and arch" do
579
- @new_resource.stub(:arch).and_return("x86_64")
580
- @provider.should_receive(:yum_command).with(
579
+ allow(@new_resource).to receive(:arch).and_return("x86_64")
580
+ expect(@provider).to receive(:yum_command).with(
581
581
  "yum -d0 -e0 -y remove emacs-1.0.x86_64"
582
582
  )
583
583
  @provider.remove_package("emacs", "1.0")
@@ -586,7 +586,7 @@ describe Chef::Provider::Package::Yum do
586
586
 
587
587
  describe "when purging a package" do
588
588
  it "should run yum remove with the package name" do
589
- @provider.should_receive(:yum_command).with(
589
+ expect(@provider).to receive(:yum_command).with(
590
590
  "yum -d0 -e0 -y remove emacs-1.0"
591
591
  )
592
592
  @provider.purge_package("emacs", "1.0")
@@ -596,8 +596,8 @@ describe Chef::Provider::Package::Yum do
596
596
  describe "when running yum" do
597
597
  it "should run yum once if it exits with a return code of 0" do
598
598
  @status = double("Status", :exitstatus => 0)
599
- @provider.stub(:output_of_command).and_return([@status, "", ""])
600
- @provider.should_receive(:output_of_command).once.with(
599
+ allow(@provider).to receive(:output_of_command).and_return([@status, "", ""])
600
+ expect(@provider).to receive(:output_of_command).once.with(
601
601
  "yum -d0 -e0 -y install emacs-1.0",
602
602
  {:timeout => Chef::Config[:yum_timeout]}
603
603
  )
@@ -606,34 +606,34 @@ describe Chef::Provider::Package::Yum do
606
606
 
607
607
  it "should run yum once if it exits with a return code > 0 and no scriptlet failures" do
608
608
  @status = double("Status", :exitstatus => 2)
609
- @provider.stub(:output_of_command).and_return([@status, "failure failure", "problem problem"])
610
- @provider.should_receive(:output_of_command).once.with(
609
+ allow(@provider).to receive(:output_of_command).and_return([@status, "failure failure", "problem problem"])
610
+ expect(@provider).to receive(:output_of_command).once.with(
611
611
  "yum -d0 -e0 -y install emacs-1.0",
612
612
  {:timeout => Chef::Config[:yum_timeout]}
613
613
  )
614
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
614
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
615
615
  end
616
616
 
617
617
  it "should run yum once if it exits with a return code of 1 and %pre scriptlet failures" do
618
618
  @status = double("Status", :exitstatus => 1)
619
- @provider.stub(:output_of_command).and_return([@status, "error: %pre(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
620
- @provider.should_receive(:output_of_command).once.with(
619
+ allow(@provider).to receive(:output_of_command).and_return([@status, "error: %pre(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
620
+ expect(@provider).to receive(:output_of_command).once.with(
621
621
  "yum -d0 -e0 -y install emacs-1.0",
622
622
  {:timeout => Chef::Config[:yum_timeout]}
623
623
  )
624
624
  # will still raise an exception, can't stub out the subsequent call
625
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
625
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
626
626
  end
627
627
 
628
628
  it "should run yum twice if it exits with a return code of 1 and %post scriptlet failures" do
629
629
  @status = double("Status", :exitstatus => 1)
630
- @provider.stub(:output_of_command).and_return([@status, "error: %post(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
631
- @provider.should_receive(:output_of_command).twice.with(
630
+ allow(@provider).to receive(:output_of_command).and_return([@status, "error: %post(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
631
+ expect(@provider).to receive(:output_of_command).twice.with(
632
632
  "yum -d0 -e0 -y install emacs-1.0",
633
633
  {:timeout => Chef::Config[:yum_timeout]}
634
634
  )
635
635
  # will still raise an exception, can't stub out the subsequent call
636
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
636
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
637
637
  end
638
638
  end
639
639
  end
@@ -650,7 +650,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
650
650
  [ "9:1.7.3", [ 9, "1.7.3", nil ] ],
651
651
  [ "15:20020927", [ 15, "20020927", nil ] ]
652
652
  ].each do |x, y|
653
- @rpmutils.version_parse(x).should == y
653
+ expect(@rpmutils.version_parse(x)).to eq(y)
654
654
  end
655
655
  end
656
656
 
@@ -660,7 +660,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
660
660
  [ "-1:1.7.3", [ nil, nil, "1:1.7.3" ] ],
661
661
  [ "-:20020927", [ nil, nil, ":20020927" ] ]
662
662
  ].each do |x, y|
663
- @rpmutils.version_parse(x).should == y
663
+ expect(@rpmutils.version_parse(x)).to eq(y)
664
664
  end
665
665
  end
666
666
 
@@ -670,7 +670,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
670
670
  [ "1.7.3", [ nil, "1.7.3", nil ] ],
671
671
  [ "20020927", [ nil, "20020927", nil ] ]
672
672
  ].each do |x, y|
673
- @rpmutils.version_parse(x).should == y
673
+ expect(@rpmutils.version_parse(x)).to eq(y)
674
674
  end
675
675
  end
676
676
 
@@ -680,7 +680,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
680
680
  [ "0001.7.3", [ nil, "0001.7.3", nil ] ],
681
681
  [ "20020927,3", [ nil, "20020927,3", nil ] ]
682
682
  ].each do |x, y|
683
- @rpmutils.version_parse(x).should == y
683
+ expect(@rpmutils.version_parse(x)).to eq(y)
684
684
  end
685
685
  end
686
686
 
@@ -690,7 +690,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
690
690
  [ "1.7.3-1jpp.2.el5", [ nil, "1.7.3", "1jpp.2.el5" ] ],
691
691
  [ "20020927-46.el5", [ nil, "20020927", "46.el5" ] ]
692
692
  ].each do |x, y|
693
- @rpmutils.version_parse(x).should == y
693
+ expect(@rpmutils.version_parse(x)).to eq(y)
694
694
  end
695
695
  end
696
696
 
@@ -700,7 +700,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
700
700
  [ "-1jpp.2.el5", [ nil, nil, "1jpp.2.el5" ] ],
701
701
  [ "-0020020927-46.el5", [ nil, "-0020020927", "46.el5" ] ]
702
702
  ].each do |x, y|
703
- @rpmutils.version_parse(x).should == y
703
+ expect(@rpmutils.version_parse(x)).to eq(y)
704
704
  end
705
705
  end
706
706
  end
@@ -757,7 +757,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
757
757
  [ "0.0.1aa", "0.0.1aa", 0 ],
758
758
  [ "0.0.1a", "0.0.1aa", -1 ],
759
759
  ].each do |x, y, result|
760
- @rpmutils.rpmvercmp(x,y).should == result
760
+ expect(@rpmutils.rpmvercmp(x,y)).to eq(result)
761
761
  end
762
762
  end
763
763
 
@@ -776,43 +776,43 @@ describe Chef::Provider::Package::Yum::RPMUtils do
776
776
  [ "", "", 0 ],
777
777
  [ "", "1.0.1", -1 ]
778
778
  ].each do |x, y, result|
779
- @rpmutils.rpmvercmp(x,y).should == result
779
+ expect(@rpmutils.rpmvercmp(x,y)).to eq(result)
780
780
  end
781
781
  end
782
782
 
783
783
  it "tests isalnum good input" do
784
784
  [ 'a', 'z', 'A', 'Z', '0', '9' ].each do |t|
785
- @rpmutils.isalnum(t).should == true
785
+ expect(@rpmutils.isalnum(t)).to eq(true)
786
786
  end
787
787
  end
788
788
 
789
789
  it "tests isalnum bad input" do
790
790
  [ '-', '.', '!', '^', ':', '_' ].each do |t|
791
- @rpmutils.isalnum(t).should == false
791
+ expect(@rpmutils.isalnum(t)).to eq(false)
792
792
  end
793
793
  end
794
794
 
795
795
  it "tests isalpha good input" do
796
796
  [ 'a', 'z', 'A', 'Z', ].each do |t|
797
- @rpmutils.isalpha(t).should == true
797
+ expect(@rpmutils.isalpha(t)).to eq(true)
798
798
  end
799
799
  end
800
800
 
801
801
  it "tests isalpha bad input" do
802
802
  [ '0', '9', '-', '.', '!', '^', ':', '_' ].each do |t|
803
- @rpmutils.isalpha(t).should == false
803
+ expect(@rpmutils.isalpha(t)).to eq(false)
804
804
  end
805
805
  end
806
806
 
807
807
  it "tests isdigit good input" do
808
808
  [ '0', '9', ].each do |t|
809
- @rpmutils.isdigit(t).should == true
809
+ expect(@rpmutils.isdigit(t)).to eq(true)
810
810
  end
811
811
  end
812
812
 
813
813
  it "tests isdigit bad input" do
814
814
  [ 'A', 'z', '-', '.', '!', '^', ':', '_' ].each do |t|
815
- @rpmutils.isdigit(t).should == false
815
+ expect(@rpmutils.isdigit(t)).to eq(false)
816
816
  end
817
817
  end
818
818
  end
@@ -826,15 +826,15 @@ describe Chef::Provider::Package::Yum::RPMVersion do
826
826
  end
827
827
 
828
828
  it "should expose evr (name-version-release) available" do
829
- @rpmv.e.should == 1
830
- @rpmv.v.should == "1.6.5"
831
- @rpmv.r.should == "9.36.el5"
829
+ expect(@rpmv.e).to eq(1)
830
+ expect(@rpmv.v).to eq("1.6.5")
831
+ expect(@rpmv.r).to eq("9.36.el5")
832
832
 
833
- @rpmv.evr.should == "1:1.6.5-9.36.el5"
833
+ expect(@rpmv.evr).to eq("1:1.6.5-9.36.el5")
834
834
  end
835
835
 
836
836
  it "should output a version-release string" do
837
- @rpmv.to_s.should == "1.6.5-9.36.el5"
837
+ expect(@rpmv.to_s).to eq("1.6.5-9.36.el5")
838
838
  end
839
839
  end
840
840
 
@@ -844,34 +844,34 @@ describe Chef::Provider::Package::Yum::RPMVersion do
844
844
  end
845
845
 
846
846
  it "should expose evr (name-version-release) available" do
847
- @rpmv.e.should == 1
848
- @rpmv.v.should == "1.6.5"
849
- @rpmv.r.should == "9.36.el5"
847
+ expect(@rpmv.e).to eq(1)
848
+ expect(@rpmv.v).to eq("1.6.5")
849
+ expect(@rpmv.r).to eq("9.36.el5")
850
850
 
851
- @rpmv.evr.should == "1:1.6.5-9.36.el5"
851
+ expect(@rpmv.evr).to eq("1:1.6.5-9.36.el5")
852
852
  end
853
853
 
854
854
  it "should output a version-release string" do
855
- @rpmv.to_s.should == "1.6.5-9.36.el5"
855
+ expect(@rpmv.to_s).to eq("1.6.5-9.36.el5")
856
856
  end
857
857
  end
858
858
 
859
859
  it "should raise an error unless passed 1 or 3 args" do
860
- lambda {
860
+ expect {
861
861
  Chef::Provider::Package::Yum::RPMVersion.new()
862
- }.should raise_error(ArgumentError)
863
- lambda {
862
+ }.to raise_error(ArgumentError)
863
+ expect {
864
864
  Chef::Provider::Package::Yum::RPMVersion.new("1:1.6.5-9.36.el5")
865
- }.should_not raise_error
866
- lambda {
865
+ }.not_to raise_error
866
+ expect {
867
867
  Chef::Provider::Package::Yum::RPMVersion.new("1:1.6.5-9.36.el5", "extra")
868
- }.should raise_error(ArgumentError)
869
- lambda {
868
+ }.to raise_error(ArgumentError)
869
+ expect {
870
870
  Chef::Provider::Package::Yum::RPMVersion.new("1", "1.6.5", "9.36.el5")
871
- }.should_not raise_error
872
- lambda {
871
+ }.not_to raise_error
872
+ expect {
873
873
  Chef::Provider::Package::Yum::RPMVersion.new("1", "1.6.5", "9.36.el5", "extra")
874
- }.should raise_error(ArgumentError)
874
+ }.to raise_error(ArgumentError)
875
875
  end
876
876
 
877
877
  # thanks version_class_spec.rb!
@@ -898,9 +898,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
898
898
  ].each do |smaller, larger|
899
899
  sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
900
900
  lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
901
- sm.should be < lg
902
- lg.should be > sm
903
- sm.should_not == lg
901
+ expect(sm).to be < lg
902
+ expect(lg).to be > sm
903
+ expect(sm).not_to eq(lg)
904
904
  end
905
905
  end
906
906
 
@@ -924,9 +924,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
924
924
  ].each do |smaller, larger|
925
925
  sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
926
926
  lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
927
- sm.should be < lg
928
- lg.should be > sm
929
- sm.should_not == lg
927
+ expect(sm).to be < lg
928
+ expect(lg).to be > sm
929
+ expect(sm).not_to eq(lg)
930
930
  end
931
931
  end
932
932
 
@@ -941,7 +941,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
941
941
  ].each do |smaller, larger|
942
942
  sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
943
943
  lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
944
- sm.should be == lg
944
+ expect(sm).to eq(lg)
945
945
  end
946
946
  end
947
947
 
@@ -956,7 +956,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
956
956
  ].each do |smaller, larger|
957
957
  sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
958
958
  lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
959
- sm.should be == lg
959
+ expect(sm).to eq(lg)
960
960
  end
961
961
  end
962
962
  end
@@ -980,9 +980,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
980
980
  ].each do |smaller, larger|
981
981
  sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
982
982
  lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
983
- sm.partial_compare(lg).should be == -1
984
- lg.partial_compare(sm).should be == 1
985
- sm.partial_compare(lg).should_not be == 0
983
+ expect(sm.partial_compare(lg)).to eq(-1)
984
+ expect(lg.partial_compare(sm)).to eq(1)
985
+ expect(sm.partial_compare(lg)).not_to eq(0)
986
986
  end
987
987
  end
988
988
 
@@ -997,7 +997,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
997
997
  ].each do |smaller, larger|
998
998
  sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
999
999
  lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
1000
- sm.partial_compare(lg).should be == 0
1000
+ expect(sm.partial_compare(lg)).to eq(0)
1001
1001
  end
1002
1002
  end
1003
1003
  end
@@ -1011,18 +1011,18 @@ describe Chef::Provider::Package::Yum::RPMPackage do
1011
1011
  end
1012
1012
 
1013
1013
  it "should expose nevra (name-epoch-version-release-arch) available" do
1014
- @rpm.name.should == "testing"
1015
- @rpm.version.e.should == 1
1016
- @rpm.version.v.should == "1.6.5"
1017
- @rpm.version.r.should == "9.36.el5"
1018
- @rpm.arch.should == "x86_64"
1014
+ expect(@rpm.name).to eq("testing")
1015
+ expect(@rpm.version.e).to eq(1)
1016
+ expect(@rpm.version.v).to eq("1.6.5")
1017
+ expect(@rpm.version.r).to eq("9.36.el5")
1018
+ expect(@rpm.arch).to eq("x86_64")
1019
1019
 
1020
- @rpm.nevra.should == "testing-1:1.6.5-9.36.el5.x86_64"
1021
- @rpm.to_s.should == @rpm.nevra
1020
+ expect(@rpm.nevra).to eq("testing-1:1.6.5-9.36.el5.x86_64")
1021
+ expect(@rpm.to_s).to eq(@rpm.nevra)
1022
1022
  end
1023
1023
 
1024
1024
  it "should always have at least one provide, itself" do
1025
- @rpm.provides.size.should == 1
1025
+ expect(@rpm.provides.size).to eq(1)
1026
1026
  @rpm.provides[0].name == "testing"
1027
1027
  @rpm.provides[0].version.evr == "1:1.6.5-9.36.el5"
1028
1028
  @rpm.provides[0].flag == :==
@@ -1035,18 +1035,18 @@ describe Chef::Provider::Package::Yum::RPMPackage do
1035
1035
  end
1036
1036
 
1037
1037
  it "should expose nevra (name-epoch-version-release-arch) available" do
1038
- @rpm.name.should == "testing"
1039
- @rpm.version.e.should == 1
1040
- @rpm.version.v.should == "1.6.5"
1041
- @rpm.version.r.should == "9.36.el5"
1042
- @rpm.arch.should == "x86_64"
1038
+ expect(@rpm.name).to eq("testing")
1039
+ expect(@rpm.version.e).to eq(1)
1040
+ expect(@rpm.version.v).to eq("1.6.5")
1041
+ expect(@rpm.version.r).to eq("9.36.el5")
1042
+ expect(@rpm.arch).to eq("x86_64")
1043
1043
 
1044
- @rpm.nevra.should == "testing-1:1.6.5-9.36.el5.x86_64"
1045
- @rpm.to_s.should == @rpm.nevra
1044
+ expect(@rpm.nevra).to eq("testing-1:1.6.5-9.36.el5.x86_64")
1045
+ expect(@rpm.to_s).to eq(@rpm.nevra)
1046
1046
  end
1047
1047
 
1048
1048
  it "should always have at least one provide, itself" do
1049
- @rpm.provides.size.should == 1
1049
+ expect(@rpm.provides.size).to eq(1)
1050
1050
  @rpm.provides[0].name == "testing"
1051
1051
  @rpm.provides[0].version.evr == "1:1.6.5-9.36.el5"
1052
1052
  @rpm.provides[0].flag == :==
@@ -1054,30 +1054,30 @@ describe Chef::Provider::Package::Yum::RPMPackage do
1054
1054
  end
1055
1055
 
1056
1056
  it "should raise an error unless passed 4 or 6 args" do
1057
- lambda {
1057
+ expect {
1058
1058
  Chef::Provider::Package::Yum::RPMPackage.new()
1059
- }.should raise_error(ArgumentError)
1060
- lambda {
1059
+ }.to raise_error(ArgumentError)
1060
+ expect {
1061
1061
  Chef::Provider::Package::Yum::RPMPackage.new("testing")
1062
- }.should raise_error(ArgumentError)
1063
- lambda {
1062
+ }.to raise_error(ArgumentError)
1063
+ expect {
1064
1064
  Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5")
1065
- }.should raise_error(ArgumentError)
1066
- lambda {
1065
+ }.to raise_error(ArgumentError)
1066
+ expect {
1067
1067
  Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5", "x86_64")
1068
- }.should raise_error(ArgumentError)
1069
- lambda {
1068
+ }.to raise_error(ArgumentError)
1069
+ expect {
1070
1070
  Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5", "x86_64", [])
1071
- }.should_not raise_error
1072
- lambda {
1071
+ }.not_to raise_error
1072
+ expect {
1073
1073
  Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64")
1074
- }.should raise_error(ArgumentError)
1075
- lambda {
1074
+ }.to raise_error(ArgumentError)
1075
+ expect {
1076
1076
  Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64", [])
1077
- }.should_not raise_error
1078
- lambda {
1077
+ }.not_to raise_error
1078
+ expect {
1079
1079
  Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64", [], "extra")
1080
- }.should raise_error(ArgumentError)
1080
+ }.to raise_error(ArgumentError)
1081
1081
  end
1082
1082
 
1083
1083
  describe "<=>" do
@@ -1096,9 +1096,9 @@ describe Chef::Provider::Package::Yum::RPMPackage do
1096
1096
  ].each do |smaller, larger|
1097
1097
  sm = Chef::Provider::Package::Yum::RPMPackage.new(smaller, "0:0.0.1-1", "x86_64", [])
1098
1098
  lg = Chef::Provider::Package::Yum::RPMPackage.new(larger, "0:0.0.1-1", "x86_64", [])
1099
- sm.should be < lg
1100
- lg.should be > sm
1101
- sm.should_not == lg
1099
+ expect(sm).to be < lg
1100
+ expect(lg).to be > sm
1101
+ expect(sm).not_to eq(lg)
1102
1102
  end
1103
1103
  end
1104
1104
 
@@ -1113,9 +1113,9 @@ describe Chef::Provider::Package::Yum::RPMPackage do
1113
1113
  ].each do |smaller, larger|
1114
1114
  sm = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "0:0.0.1-1", smaller, [])
1115
1115
  lg = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "0:0.0.1-1", larger, [])
1116
- sm.should be < lg
1117
- lg.should be > sm
1118
- sm.should_not == lg
1116
+ expect(sm).to be < lg
1117
+ expect(lg).to be > sm
1118
+ expect(sm).not_to eq(lg)
1119
1119
  end
1120
1120
  end
1121
1121
  end
@@ -1132,31 +1132,31 @@ describe Chef::Provider::Package::Yum::RPMDbPackage do
1132
1132
 
1133
1133
  describe "initialize" do
1134
1134
  it "should return a Chef::Provider::Package::Yum::RPMDbPackage object" do
1135
- @rpm_x.should be_kind_of(Chef::Provider::Package::Yum::RPMDbPackage)
1135
+ expect(@rpm_x).to be_kind_of(Chef::Provider::Package::Yum::RPMDbPackage)
1136
1136
  end
1137
1137
  end
1138
1138
 
1139
1139
  describe "available" do
1140
1140
  it "should return true" do
1141
- @rpm_x.available.should be == true
1142
- @rpm_y.available.should be == true
1143
- @rpm_z.available.should be == false
1141
+ expect(@rpm_x.available).to eq(true)
1142
+ expect(@rpm_y.available).to eq(true)
1143
+ expect(@rpm_z.available).to eq(false)
1144
1144
  end
1145
1145
  end
1146
1146
 
1147
1147
  describe "installed" do
1148
1148
  it "should return true" do
1149
- @rpm_x.installed.should be == false
1150
- @rpm_y.installed.should be == true
1151
- @rpm_z.installed.should be == true
1149
+ expect(@rpm_x.installed).to eq(false)
1150
+ expect(@rpm_y.installed).to eq(true)
1151
+ expect(@rpm_z.installed).to eq(true)
1152
1152
  end
1153
1153
  end
1154
1154
 
1155
1155
  describe "repoid" do
1156
1156
  it "should return the source repository repoid" do
1157
- @rpm_x.repoid.should be == "base"
1158
- @rpm_y.repoid.should be == "extras"
1159
- @rpm_z.repoid.should be == "other"
1157
+ expect(@rpm_x.repoid).to eq("base")
1158
+ expect(@rpm_y.repoid).to eq("extras")
1159
+ expect(@rpm_z.repoid).to eq("other")
1160
1160
  end
1161
1161
  end
1162
1162
  end
@@ -1168,11 +1168,11 @@ describe Chef::Provider::Package::Yum::RPMDependency do
1168
1168
  end
1169
1169
 
1170
1170
  it "should expose name, version, flag available" do
1171
- @rpmdep.name.should == "testing"
1172
- @rpmdep.version.e.should == 1
1173
- @rpmdep.version.v.should == "1.6.5"
1174
- @rpmdep.version.r.should == "9.36.el5"
1175
- @rpmdep.flag.should == :==
1171
+ expect(@rpmdep.name).to eq("testing")
1172
+ expect(@rpmdep.version.e).to eq(1)
1173
+ expect(@rpmdep.version.v).to eq("1.6.5")
1174
+ expect(@rpmdep.version.r).to eq("9.36.el5")
1175
+ expect(@rpmdep.flag).to eq(:==)
1176
1176
  end
1177
1177
  end
1178
1178
 
@@ -1182,67 +1182,67 @@ describe Chef::Provider::Package::Yum::RPMDependency do
1182
1182
  end
1183
1183
 
1184
1184
  it "should expose name, version, flag available" do
1185
- @rpmdep.name.should == "testing"
1186
- @rpmdep.version.e.should == 1
1187
- @rpmdep.version.v.should == "1.6.5"
1188
- @rpmdep.version.r.should == "9.36.el5"
1189
- @rpmdep.flag.should == :==
1185
+ expect(@rpmdep.name).to eq("testing")
1186
+ expect(@rpmdep.version.e).to eq(1)
1187
+ expect(@rpmdep.version.v).to eq("1.6.5")
1188
+ expect(@rpmdep.version.r).to eq("9.36.el5")
1189
+ expect(@rpmdep.flag).to eq(:==)
1190
1190
  end
1191
1191
  end
1192
1192
 
1193
1193
  it "should raise an error unless passed 3 or 5 args" do
1194
- lambda {
1194
+ expect {
1195
1195
  Chef::Provider::Package::Yum::RPMDependency.new()
1196
- }.should raise_error(ArgumentError)
1197
- lambda {
1196
+ }.to raise_error(ArgumentError)
1197
+ expect {
1198
1198
  Chef::Provider::Package::Yum::RPMDependency.new("testing")
1199
- }.should raise_error(ArgumentError)
1200
- lambda {
1199
+ }.to raise_error(ArgumentError)
1200
+ expect {
1201
1201
  Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5")
1202
- }.should raise_error(ArgumentError)
1203
- lambda {
1202
+ }.to raise_error(ArgumentError)
1203
+ expect {
1204
1204
  Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
1205
- }.should_not raise_error
1206
- lambda {
1205
+ }.not_to raise_error
1206
+ expect {
1207
1207
  Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==, "extra")
1208
- }.should raise_error(ArgumentError)
1209
- lambda {
1208
+ }.to raise_error(ArgumentError)
1209
+ expect {
1210
1210
  Chef::Provider::Package::Yum::RPMDependency.new("testing", "1", "1.6.5", "9.36.el5", :==)
1211
- }.should_not raise_error
1212
- lambda {
1211
+ }.not_to raise_error
1212
+ expect {
1213
1213
  Chef::Provider::Package::Yum::RPMDependency.new("testing", "1", "1.6.5", "9.36.el5", :==, "extra")
1214
- }.should raise_error(ArgumentError)
1214
+ }.to raise_error(ArgumentError)
1215
1215
  end
1216
1216
 
1217
1217
  describe "parse" do
1218
1218
  it "should parse a name, flag, version string into a valid RPMDependency object" do
1219
1219
  @rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing >= 1:1.6.5-9.36.el5")
1220
1220
 
1221
- @rpmdep.name.should == "testing"
1222
- @rpmdep.version.e.should == 1
1223
- @rpmdep.version.v.should == "1.6.5"
1224
- @rpmdep.version.r.should == "9.36.el5"
1225
- @rpmdep.flag.should == :>=
1221
+ expect(@rpmdep.name).to eq("testing")
1222
+ expect(@rpmdep.version.e).to eq(1)
1223
+ expect(@rpmdep.version.v).to eq("1.6.5")
1224
+ expect(@rpmdep.version.r).to eq("9.36.el5")
1225
+ expect(@rpmdep.flag).to eq(:>=)
1226
1226
  end
1227
1227
 
1228
1228
  it "should parse a name into a valid RPMDependency object" do
1229
1229
  @rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing")
1230
1230
 
1231
- @rpmdep.name.should == "testing"
1232
- @rpmdep.version.e.should == nil
1233
- @rpmdep.version.v.should == nil
1234
- @rpmdep.version.r.should == nil
1235
- @rpmdep.flag.should == :==
1231
+ expect(@rpmdep.name).to eq("testing")
1232
+ expect(@rpmdep.version.e).to eq(nil)
1233
+ expect(@rpmdep.version.v).to eq(nil)
1234
+ expect(@rpmdep.version.r).to eq(nil)
1235
+ expect(@rpmdep.flag).to eq(:==)
1236
1236
  end
1237
1237
 
1238
1238
  it "should parse an invalid string into the name of a RPMDependency object" do
1239
1239
  @rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing blah >")
1240
1240
 
1241
- @rpmdep.name.should == "testing blah >"
1242
- @rpmdep.version.e.should == nil
1243
- @rpmdep.version.v.should == nil
1244
- @rpmdep.version.r.should == nil
1245
- @rpmdep.flag.should == :==
1241
+ expect(@rpmdep.name).to eq("testing blah >")
1242
+ expect(@rpmdep.version.e).to eq(nil)
1243
+ expect(@rpmdep.version.v).to eq(nil)
1244
+ expect(@rpmdep.version.r).to eq(nil)
1245
+ expect(@rpmdep.flag).to eq(:==)
1246
1246
  end
1247
1247
 
1248
1248
  it "should parse various valid flags" do
@@ -1255,7 +1255,7 @@ describe Chef::Provider::Package::Yum::RPMDependency do
1255
1255
  [ "<", :< ]
1256
1256
  ].each do |before, after|
1257
1257
  @rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing #{before} 1:1.1-1")
1258
- @rpmdep.flag.should == after
1258
+ expect(@rpmdep.flag).to eq(after)
1259
1259
  end
1260
1260
  end
1261
1261
 
@@ -1269,8 +1269,8 @@ describe Chef::Provider::Package::Yum::RPMDependency do
1269
1269
  [ "~", :== ]
1270
1270
  ].each do |before, after|
1271
1271
  @rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing #{before} 1:1.1-1")
1272
- @rpmdep.name.should == "testing #{before} 1:1.1-1"
1273
- @rpmdep.flag.should == after
1272
+ expect(@rpmdep.name).to eq("testing #{before} 1:1.1-1")
1273
+ expect(@rpmdep.flag).to eq(after)
1274
1274
  end
1275
1275
  end
1276
1276
  end
@@ -1279,12 +1279,12 @@ describe Chef::Provider::Package::Yum::RPMDependency do
1279
1279
  it "should raise an error unless a RPMDependency is passed" do
1280
1280
  @rpmprovide = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
1281
1281
  @rpmrequire = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :>=)
1282
- lambda {
1282
+ expect {
1283
1283
  @rpmprovide.satisfy?("hi")
1284
- }.should raise_error(ArgumentError)
1285
- lambda {
1284
+ }.to raise_error(ArgumentError)
1285
+ expect {
1286
1286
  @rpmprovide.satisfy?(@rpmrequire)
1287
- }.should_not raise_error
1287
+ }.not_to raise_error
1288
1288
  end
1289
1289
 
1290
1290
  it "should validate dependency satisfaction logic for standard examples" do
@@ -1326,8 +1326,8 @@ describe Chef::Provider::Package::Yum::RPMDependency do
1326
1326
  @rpmprovide = Chef::Provider::Package::Yum::RPMDependency.parse(prov)
1327
1327
  @rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse(req)
1328
1328
 
1329
- @rpmprovide.satisfy?(@rpmrequire).should == result
1330
- @rpmrequire.satisfy?(@rpmprovide).should == result
1329
+ expect(@rpmprovide.satisfy?(@rpmrequire)).to eq(result)
1330
+ expect(@rpmrequire.satisfy?(@rpmprovide)).to eq(result)
1331
1331
  end
1332
1332
  end
1333
1333
  end
@@ -1358,89 +1358,89 @@ describe Chef::Provider::Package::Yum::RPMDb do
1358
1358
 
1359
1359
  describe "initialize" do
1360
1360
  it "should return a Chef::Provider::Package::Yum::RPMDb object" do
1361
- @rpmdb.should be_kind_of(Chef::Provider::Package::Yum::RPMDb)
1361
+ expect(@rpmdb).to be_kind_of(Chef::Provider::Package::Yum::RPMDb)
1362
1362
  end
1363
1363
  end
1364
1364
 
1365
1365
  describe "push" do
1366
1366
  it "should accept an RPMDbPackage object through pushing" do
1367
- lambda { @rpmdb.push(@rpm_w) }.should_not raise_error
1367
+ expect { @rpmdb.push(@rpm_w) }.not_to raise_error
1368
1368
  end
1369
1369
 
1370
1370
  it "should accept multiple RPMDbPackage object through pushing" do
1371
- lambda { @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z) }.should_not raise_error
1371
+ expect { @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z) }.not_to raise_error
1372
1372
  end
1373
1373
 
1374
1374
  it "should only accept an RPMDbPackage object" do
1375
- lambda { @rpmdb.push("string") }.should raise_error
1375
+ expect { @rpmdb.push("string") }.to raise_error
1376
1376
  end
1377
1377
 
1378
1378
  it "should add the package to the package db" do
1379
1379
  @rpmdb.push(@rpm_w)
1380
- @rpmdb["test-package-b"].should_not be == nil
1380
+ expect(@rpmdb["test-package-b"]).not_to eq(nil)
1381
1381
  end
1382
1382
 
1383
1383
  it "should add conditionally add the package to the available list" do
1384
- @rpmdb.available_size.should be == 0
1384
+ expect(@rpmdb.available_size).to eq(0)
1385
1385
  @rpmdb.push(@rpm_v, @rpm_w)
1386
- @rpmdb.available_size.should be == 1
1386
+ expect(@rpmdb.available_size).to eq(1)
1387
1387
  end
1388
1388
 
1389
1389
  it "should add conditionally add the package to the installed list" do
1390
- @rpmdb.installed_size.should be == 0
1390
+ expect(@rpmdb.installed_size).to eq(0)
1391
1391
  @rpmdb.push(@rpm_w, @rpm_x)
1392
- @rpmdb.installed_size.should be == 1
1392
+ expect(@rpmdb.installed_size).to eq(1)
1393
1393
  end
1394
1394
 
1395
1395
  it "should have a total of 2 packages in the RPMDb" do
1396
- @rpmdb.size.should be == 0
1396
+ expect(@rpmdb.size).to eq(0)
1397
1397
  @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
1398
- @rpmdb.size.should be == 2
1398
+ expect(@rpmdb.size).to eq(2)
1399
1399
  end
1400
1400
 
1401
1401
  it "should keep the Array unique when a duplicate is pushed" do
1402
1402
  @rpmdb.push(@rpm_z, @rpm_z_mirror)
1403
- @rpmdb["test-package-c"].size.should be == 1
1403
+ expect(@rpmdb["test-package-c"].size).to eq(1)
1404
1404
  end
1405
1405
 
1406
1406
  it "should register the package provides in the provides index" do
1407
1407
  @rpmdb.push(@rpm_v, @rpm_w, @rpm_z)
1408
- @rpmdb.lookup_provides("test-package-a")[0].should be == @rpm_v
1409
- @rpmdb.lookup_provides("config(test)")[0].should be == @rpm_z
1410
- @rpmdb.lookup_provides("libz.so.1()(64bit)")[0].should be == @rpm_v
1411
- @rpmdb.lookup_provides("libz.so.1()(64bit)")[1].should be == @rpm_z
1408
+ expect(@rpmdb.lookup_provides("test-package-a")[0]).to eq(@rpm_v)
1409
+ expect(@rpmdb.lookup_provides("config(test)")[0]).to eq(@rpm_z)
1410
+ expect(@rpmdb.lookup_provides("libz.so.1()(64bit)")[0]).to eq(@rpm_v)
1411
+ expect(@rpmdb.lookup_provides("libz.so.1()(64bit)")[1]).to eq(@rpm_z)
1412
1412
  end
1413
1413
  end
1414
1414
 
1415
1415
  describe "<<" do
1416
1416
  it "should accept an RPMPackage object through the << operator" do
1417
- lambda { @rpmdb << @rpm_w }.should_not raise_error
1417
+ expect { @rpmdb << @rpm_w }.not_to raise_error
1418
1418
  end
1419
1419
  end
1420
1420
 
1421
1421
  describe "lookup" do
1422
1422
  it "should return an Array of RPMPackage objects by index" do
1423
1423
  @rpmdb << @rpm_w
1424
- @rpmdb.lookup("test-package-b").should be_kind_of(Array)
1424
+ expect(@rpmdb.lookup("test-package-b")).to be_kind_of(Array)
1425
1425
  end
1426
1426
  end
1427
1427
 
1428
1428
  describe "[]" do
1429
1429
  it "should return an Array of RPMPackage objects though the [index] operator" do
1430
1430
  @rpmdb << @rpm_w
1431
- @rpmdb["test-package-b"].should be_kind_of(Array)
1431
+ expect(@rpmdb["test-package-b"]).to be_kind_of(Array)
1432
1432
  end
1433
1433
 
1434
1434
  it "should return an Array of 3 RPMPackage objects" do
1435
1435
  @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
1436
- @rpmdb["test-package-b"].size.should be == 3
1436
+ expect(@rpmdb["test-package-b"].size).to eq(3)
1437
1437
  end
1438
1438
 
1439
1439
  it "should return an Array of RPMPackage objects sorted from newest to oldest" do
1440
1440
  @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
1441
- @rpmdb["test-package-b"][0].should be == @rpm_y
1442
- @rpmdb["test-package-b"][1].should be == @rpm_x
1443
- @rpmdb["test-package-b"][2].should be == @rpm_w
1441
+ expect(@rpmdb["test-package-b"][0]).to eq(@rpm_y)
1442
+ expect(@rpmdb["test-package-b"][1]).to eq(@rpm_x)
1443
+ expect(@rpmdb["test-package-b"][2]).to eq(@rpm_w)
1444
1444
  end
1445
1445
  end
1446
1446
 
@@ -1448,57 +1448,57 @@ describe Chef::Provider::Package::Yum::RPMDb do
1448
1448
  it "should return an Array of RPMPackage objects by index" do
1449
1449
  @rpmdb << @rpm_z
1450
1450
  x = @rpmdb.lookup_provides("config(test)")
1451
- x.should be_kind_of(Array)
1452
- x[0].should be == @rpm_z
1451
+ expect(x).to be_kind_of(Array)
1452
+ expect(x[0]).to eq(@rpm_z)
1453
1453
  end
1454
1454
  end
1455
1455
 
1456
1456
  describe "clear" do
1457
1457
  it "should clear the RPMDb" do
1458
- @rpmdb.should_receive(:clear_available).once
1459
- @rpmdb.should_receive(:clear_installed).once
1458
+ expect(@rpmdb).to receive(:clear_available).once
1459
+ expect(@rpmdb).to receive(:clear_installed).once
1460
1460
  @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
1461
- @rpmdb.size.should_not be == 0
1462
- @rpmdb.lookup_provides("config(test)").should be_kind_of(Array)
1461
+ expect(@rpmdb.size).not_to eq(0)
1462
+ expect(@rpmdb.lookup_provides("config(test)")).to be_kind_of(Array)
1463
1463
  @rpmdb.clear
1464
- @rpmdb.lookup_provides("config(test)").should be == nil
1465
- @rpmdb.size.should be == 0
1464
+ expect(@rpmdb.lookup_provides("config(test)")).to eq(nil)
1465
+ expect(@rpmdb.size).to eq(0)
1466
1466
  end
1467
1467
  end
1468
1468
 
1469
1469
  describe "clear_available" do
1470
1470
  it "should clear the available list" do
1471
1471
  @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
1472
- @rpmdb.available_size.should_not be == 0
1472
+ expect(@rpmdb.available_size).not_to eq(0)
1473
1473
  @rpmdb.clear_available
1474
- @rpmdb.available_size.should be == 0
1474
+ expect(@rpmdb.available_size).to eq(0)
1475
1475
  end
1476
1476
  end
1477
1477
 
1478
1478
  describe "available?" do
1479
1479
  it "should return true if a package is available" do
1480
- @rpmdb.available?(@rpm_w).should be == false
1480
+ expect(@rpmdb.available?(@rpm_w)).to eq(false)
1481
1481
  @rpmdb.push(@rpm_v, @rpm_w)
1482
- @rpmdb.available?(@rpm_v).should be == false
1483
- @rpmdb.available?(@rpm_w).should be == true
1482
+ expect(@rpmdb.available?(@rpm_v)).to eq(false)
1483
+ expect(@rpmdb.available?(@rpm_w)).to eq(true)
1484
1484
  end
1485
1485
  end
1486
1486
 
1487
1487
  describe "clear_installed" do
1488
1488
  it "should clear the installed list" do
1489
1489
  @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
1490
- @rpmdb.installed_size.should_not be == 0
1490
+ expect(@rpmdb.installed_size).not_to eq(0)
1491
1491
  @rpmdb.clear_installed
1492
- @rpmdb.installed_size.should be == 0
1492
+ expect(@rpmdb.installed_size).to eq(0)
1493
1493
  end
1494
1494
  end
1495
1495
 
1496
1496
  describe "installed?" do
1497
1497
  it "should return true if a package is installed" do
1498
- @rpmdb.installed?(@rpm_w).should be == false
1498
+ expect(@rpmdb.installed?(@rpm_w)).to eq(false)
1499
1499
  @rpmdb.push(@rpm_w, @rpm_x)
1500
- @rpmdb.installed?(@rpm_w).should be == true
1501
- @rpmdb.installed?(@rpm_x).should be == false
1500
+ expect(@rpmdb.installed?(@rpm_w)).to eq(true)
1501
+ expect(@rpmdb.installed?(@rpm_x)).to eq(false)
1502
1502
  end
1503
1503
  end
1504
1504
 
@@ -1506,12 +1506,12 @@ describe Chef::Provider::Package::Yum::RPMDb do
1506
1506
  it "should raise an error unless a RPMDependency is passed" do
1507
1507
  @rpmprovide = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
1508
1508
  @rpmrequire = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :>=)
1509
- lambda {
1509
+ expect {
1510
1510
  @rpmdb.whatprovides("hi")
1511
- }.should raise_error(ArgumentError)
1512
- lambda {
1511
+ }.to raise_error(ArgumentError)
1512
+ expect {
1513
1513
  @rpmdb.whatprovides(@rpmrequire)
1514
- }.should_not raise_error
1514
+ }.not_to raise_error
1515
1515
  end
1516
1516
 
1517
1517
  it "should return an Array of packages statisfying a RPMDependency" do
@@ -1519,14 +1519,14 @@ describe Chef::Provider::Package::Yum::RPMDb do
1519
1519
 
1520
1520
  @rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse("test-package-a >= 1.6.5")
1521
1521
  x = @rpmdb.whatprovides(@rpmrequire)
1522
- x.should be_kind_of(Array)
1523
- x[0].should be == @rpm_v
1522
+ expect(x).to be_kind_of(Array)
1523
+ expect(x[0]).to eq(@rpm_v)
1524
1524
 
1525
1525
  @rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse("libz.so.1()(64bit)")
1526
1526
  x = @rpmdb.whatprovides(@rpmrequire)
1527
- x.should be_kind_of(Array)
1528
- x[0].should be == @rpm_v
1529
- x[1].should be == @rpm_z
1527
+ expect(x).to be_kind_of(Array)
1528
+ expect(x[0]).to eq(@rpm_v)
1529
+ expect(x[1]).to eq(@rpm_z)
1530
1530
  end
1531
1531
  end
1532
1532
 
@@ -1592,18 +1592,18 @@ EOF
1592
1592
  Chef::Provider::Package::Yum::YumCache.reset_instance
1593
1593
  @yc = Chef::Provider::Package::Yum::YumCache.instance
1594
1594
  # load valid data
1595
- @yc.stub(:shell_out!).and_return(@status)
1595
+ allow(@yc).to receive(:shell_out!).and_return(@status)
1596
1596
  end
1597
1597
 
1598
1598
  describe "initialize" do
1599
1599
  it "should return a Chef::Provider::Package::Yum::YumCache object" do
1600
- @yc.should be_kind_of(Chef::Provider::Package::Yum::YumCache)
1600
+ expect(@yc).to be_kind_of(Chef::Provider::Package::Yum::YumCache)
1601
1601
  end
1602
1602
 
1603
1603
  it "should register reload for start of Chef::Client runs" do
1604
1604
  Chef::Provider::Package::Yum::YumCache.reset_instance
1605
- Chef::Client.should_receive(:when_run_starts) do |&b|
1606
- b.should_not be_nil
1605
+ expect(Chef::Client).to receive(:when_run_starts) do |&b|
1606
+ expect(b).not_to be_nil
1607
1607
  end
1608
1608
  @yc = Chef::Provider::Package::Yum::YumCache.instance
1609
1609
  end
@@ -1611,7 +1611,7 @@ EOF
1611
1611
 
1612
1612
  describe "refresh" do
1613
1613
  it "should implicitly call yum-dump.py only once by default after being instantiated" do
1614
- @yc.should_receive(:shell_out!).once
1614
+ expect(@yc).to receive(:shell_out!).once
1615
1615
  @yc.installed_version("zlib")
1616
1616
  @yc.reset
1617
1617
  @yc.installed_version("zlib")
@@ -1619,226 +1619,226 @@ EOF
1619
1619
 
1620
1620
  it "should run yum-dump.py using the system python when next_refresh is for :all" do
1621
1621
  @yc.reload
1622
- @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])
1622
+ 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])
1623
1623
  @yc.refresh
1624
1624
  end
1625
1625
 
1626
1626
  it "should run yum-dump.py with the installed flag when next_refresh is for :installed" do
1627
1627
  @yc.reload_installed
1628
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --installed --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
1628
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --installed --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
1629
1629
  @yc.refresh
1630
1630
  end
1631
1631
 
1632
1632
  it "should run yum-dump.py with the all-provides flag when next_refresh is for :provides" do
1633
1633
  @yc.reload_provides
1634
- @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])
1634
+ 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])
1635
1635
  @yc.refresh
1636
1636
  end
1637
1637
 
1638
1638
  it "should pass extra_repo_control args to yum-dump.py" do
1639
1639
  @yc.enable_extra_repo_control("--enablerepo=foo --disablerepo=bar")
1640
- @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])
1640
+ 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])
1641
1641
  @yc.refresh
1642
1642
  end
1643
1643
 
1644
1644
  it "should pass extra_repo_control args and configured yum lock timeout to yum-dump.py" do
1645
1645
  Chef::Config[:yum_lock_timeout] = 999
1646
1646
  @yc.enable_extra_repo_control("--enablerepo=foo --disablerepo=bar")
1647
- @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])
1647
+ 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])
1648
1648
  @yc.refresh
1649
1649
  end
1650
1650
 
1651
1651
  it "should warn about invalid data with too many separators" do
1652
1652
  @status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_bad_separators, :stderr => @stderr)
1653
- @yc.stub(:shell_out!).and_return(@status)
1654
- Chef::Log.should_receive(:warn).exactly(3).times.with(%r{Problem parsing})
1653
+ allow(@yc).to receive(:shell_out!).and_return(@status)
1654
+ expect(Chef::Log).to receive(:warn).exactly(3).times.with(%r{Problem parsing})
1655
1655
  @yc.refresh
1656
1656
  end
1657
1657
 
1658
1658
  it "should warn about invalid data with an incorrect type" do
1659
1659
  @status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_bad_type, :stderr => @stderr)
1660
- @yc.stub(:shell_out!).and_return(@status)
1661
- Chef::Log.should_receive(:warn).exactly(2).times.with(%r{Problem parsing})
1660
+ allow(@yc).to receive(:shell_out!).and_return(@status)
1661
+ expect(Chef::Log).to receive(:warn).exactly(2).times.with(%r{Problem parsing})
1662
1662
  @yc.refresh
1663
1663
  end
1664
1664
 
1665
1665
  it "should warn about no output from yum-dump.py" do
1666
1666
  @status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_no_output, :stderr => @stderr)
1667
- @yc.stub(:shell_out!).and_return(@status)
1668
- Chef::Log.should_receive(:warn).exactly(1).times.with(%r{no output from yum-dump.py})
1667
+ allow(@yc).to receive(:shell_out!).and_return(@status)
1668
+ expect(Chef::Log).to receive(:warn).exactly(1).times.with(%r{no output from yum-dump.py})
1669
1669
  @yc.refresh
1670
1670
  end
1671
1671
 
1672
1672
  it "should raise exception yum-dump.py exits with a non zero status" do
1673
1673
  @status = double("Status", :exitstatus => 1, :stdin => @stdin, :stdout => @stdout_no_output, :stderr => @stderr)
1674
- @yc.stub(:shell_out!).and_return(@status)
1675
- lambda { @yc.refresh}.should raise_error(Chef::Exceptions::Package, %r{CentOS-Base.repo, line: 12})
1674
+ allow(@yc).to receive(:shell_out!).and_return(@status)
1675
+ expect { @yc.refresh}.to raise_error(Chef::Exceptions::Package, %r{CentOS-Base.repo, line: 12})
1676
1676
  end
1677
1677
 
1678
1678
  it "should parse type 'i' into an installed state for a package" do
1679
- @yc.available_version("erlang-mochiweb").should be == nil
1680
- @yc.installed_version("erlang-mochiweb").should_not be == nil
1679
+ expect(@yc.available_version("erlang-mochiweb")).to eq(nil)
1680
+ expect(@yc.installed_version("erlang-mochiweb")).not_to eq(nil)
1681
1681
  end
1682
1682
 
1683
1683
  it "should parse type 'a' into an available state for a package" do
1684
- @yc.available_version("znc").should_not be == nil
1685
- @yc.installed_version("znc").should be == nil
1684
+ expect(@yc.available_version("znc")).not_to eq(nil)
1685
+ expect(@yc.installed_version("znc")).to eq(nil)
1686
1686
  end
1687
1687
 
1688
1688
  it "should parse type 'r' into an installed and available states for a package" do
1689
- @yc.available_version("zip").should_not be == nil
1690
- @yc.installed_version("zip").should_not be == nil
1689
+ expect(@yc.available_version("zip")).not_to eq(nil)
1690
+ expect(@yc.installed_version("zip")).not_to eq(nil)
1691
1691
  end
1692
1692
 
1693
1693
  it "should parse installonlypkgs from yum-dump.py options output" do
1694
- @yc.allow_multi_install.should be == %w{kernel kernel-bigmem kernel-enterprise}
1694
+ expect(@yc.allow_multi_install).to eq(%w{kernel kernel-bigmem kernel-enterprise})
1695
1695
  end
1696
1696
  end
1697
1697
 
1698
1698
  describe "installed_version" do
1699
1699
  it "should take one or two arguments" do
1700
- lambda { @yc.installed_version("zip") }.should_not raise_error
1701
- lambda { @yc.installed_version("zip", "i386") }.should_not raise_error
1702
- lambda { @yc.installed_version("zip", "i386", "extra") }.should raise_error(ArgumentError)
1700
+ expect { @yc.installed_version("zip") }.not_to raise_error
1701
+ expect { @yc.installed_version("zip", "i386") }.not_to raise_error
1702
+ expect { @yc.installed_version("zip", "i386", "extra") }.to raise_error(ArgumentError)
1703
1703
  end
1704
1704
 
1705
1705
  it "should return version-release for matching package regardless of arch" do
1706
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
1707
- @yc.installed_version("zip", nil).should be == "2.31-2.el5"
1706
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
1707
+ expect(@yc.installed_version("zip", nil)).to eq("2.31-2.el5")
1708
1708
  end
1709
1709
 
1710
1710
  it "should return version-release for matching package and arch" do
1711
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
1712
- @yc.installed_version("zisofs-tools", "i386").should be == nil
1711
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
1712
+ expect(@yc.installed_version("zisofs-tools", "i386")).to eq(nil)
1713
1713
  end
1714
1714
 
1715
1715
  it "should return nil for an unmatched package" do
1716
- @yc.installed_version(nil, nil).should be == nil
1717
- @yc.installed_version("test1", nil).should be == nil
1718
- @yc.installed_version("test2", "x86_64").should be == nil
1716
+ expect(@yc.installed_version(nil, nil)).to eq(nil)
1717
+ expect(@yc.installed_version("test1", nil)).to eq(nil)
1718
+ expect(@yc.installed_version("test2", "x86_64")).to eq(nil)
1719
1719
  end
1720
1720
  end
1721
1721
 
1722
1722
  describe "available_version" do
1723
1723
  it "should take one or two arguments" do
1724
- lambda { @yc.available_version("zisofs-tools") }.should_not raise_error
1725
- lambda { @yc.available_version("zisofs-tools", "i386") }.should_not raise_error
1726
- lambda { @yc.available_version("zisofs-tools", "i386", "extra") }.should raise_error(ArgumentError)
1724
+ expect { @yc.available_version("zisofs-tools") }.not_to raise_error
1725
+ expect { @yc.available_version("zisofs-tools", "i386") }.not_to raise_error
1726
+ expect { @yc.available_version("zisofs-tools", "i386", "extra") }.to raise_error(ArgumentError)
1727
1727
  end
1728
1728
 
1729
1729
  it "should return version-release for matching package regardless of arch" do
1730
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
1731
- @yc.available_version("zip", nil).should be == "2.31-2.el5"
1730
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
1731
+ expect(@yc.available_version("zip", nil)).to eq("2.31-2.el5")
1732
1732
  end
1733
1733
 
1734
1734
  it "should return version-release for matching package and arch" do
1735
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
1736
- @yc.available_version("zisofs-tools", "i386").should be == nil
1735
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
1736
+ expect(@yc.available_version("zisofs-tools", "i386")).to eq(nil)
1737
1737
  end
1738
1738
 
1739
1739
  it "should return nil for an unmatched package" do
1740
- @yc.available_version(nil, nil).should be == nil
1741
- @yc.available_version("test1", nil).should be == nil
1742
- @yc.available_version("test2", "x86_64").should be == nil
1740
+ expect(@yc.available_version(nil, nil)).to eq(nil)
1741
+ expect(@yc.available_version("test1", nil)).to eq(nil)
1742
+ expect(@yc.available_version("test2", "x86_64")).to eq(nil)
1743
1743
  end
1744
1744
  end
1745
1745
 
1746
1746
  describe "version_available?" do
1747
1747
  it "should take two or three arguments" do
1748
- lambda { @yc.version_available?("zisofs-tools") }.should raise_error(ArgumentError)
1749
- lambda { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2") }.should_not raise_error
1750
- lambda { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error
1748
+ expect { @yc.version_available?("zisofs-tools") }.to raise_error(ArgumentError)
1749
+ expect { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2") }.not_to raise_error
1750
+ expect { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.not_to raise_error
1751
1751
  end
1752
1752
 
1753
1753
  it "should return true if our package-version-arch is available" do
1754
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64").should be == true
1754
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64")).to eq(true)
1755
1755
  end
1756
1756
 
1757
1757
  it "should return true if our package-version, no arch, is available" do
1758
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", nil).should be == true
1759
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2").should be == true
1758
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", nil)).to eq(true)
1759
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2")).to eq(true)
1760
1760
  end
1761
1761
 
1762
1762
  it "should return false if our package-version-arch isn't available" do
1763
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "pretend").should be == false
1764
- @yc.version_available?("zisofs-tools", "pretend", "x86_64").should be == false
1765
- @yc.version_available?("pretend", "1.0.6-3.2.2", "x86_64").should be == false
1763
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "pretend")).to eq(false)
1764
+ expect(@yc.version_available?("zisofs-tools", "pretend", "x86_64")).to eq(false)
1765
+ expect(@yc.version_available?("pretend", "1.0.6-3.2.2", "x86_64")).to eq(false)
1766
1766
  end
1767
1767
 
1768
1768
  it "should return false if our package-version, no arch, isn't available" do
1769
- @yc.version_available?("zisofs-tools", "pretend", nil).should be == false
1770
- @yc.version_available?("zisofs-tools", "pretend").should be == false
1771
- @yc.version_available?("pretend", "1.0.6-3.2.2").should be == false
1769
+ expect(@yc.version_available?("zisofs-tools", "pretend", nil)).to eq(false)
1770
+ expect(@yc.version_available?("zisofs-tools", "pretend")).to eq(false)
1771
+ expect(@yc.version_available?("pretend", "1.0.6-3.2.2")).to eq(false)
1772
1772
  end
1773
1773
  end
1774
1774
 
1775
1775
  describe "package_repository" do
1776
1776
  it "should take two or three arguments" do
1777
- lambda { @yc.package_repository("zisofs-tools") }.should raise_error(ArgumentError)
1778
- lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2") }.should_not raise_error
1779
- lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error
1777
+ expect { @yc.package_repository("zisofs-tools") }.to raise_error(ArgumentError)
1778
+ expect { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2") }.not_to raise_error
1779
+ expect { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.not_to raise_error
1780
1780
  end
1781
1781
 
1782
1782
  it "should return repoid for package-version-arch" do
1783
- @yc.package_repository("zlib-devel", "1.2.3-3", "i386").should be == "extras"
1784
- @yc.package_repository("zlib-devel", "1.2.3-3", "x86_64").should be == "base"
1783
+ expect(@yc.package_repository("zlib-devel", "1.2.3-3", "i386")).to eq("extras")
1784
+ expect(@yc.package_repository("zlib-devel", "1.2.3-3", "x86_64")).to eq("base")
1785
1785
  end
1786
1786
 
1787
1787
  it "should return repoid for package-version, no arch" do
1788
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", nil).should be == "extras"
1789
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2").should be == "extras"
1788
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2", nil)).to eq("extras")
1789
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2")).to eq("extras")
1790
1790
  end
1791
1791
 
1792
1792
  it "should return nil when no match for package-version-arch" do
1793
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "pretend").should be == nil
1794
- @yc.package_repository("zisofs-tools", "pretend", "x86_64").should be == nil
1795
- @yc.package_repository("pretend", "1.0.6-3.2.2", "x86_64").should be == nil
1793
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "pretend")).to eq(nil)
1794
+ expect(@yc.package_repository("zisofs-tools", "pretend", "x86_64")).to eq(nil)
1795
+ expect(@yc.package_repository("pretend", "1.0.6-3.2.2", "x86_64")).to eq(nil)
1796
1796
  end
1797
1797
 
1798
1798
  it "should return nil when no match for package-version, no arch" do
1799
- @yc.package_repository("zisofs-tools", "pretend", nil).should be == nil
1800
- @yc.package_repository("zisofs-tools", "pretend").should be == nil
1801
- @yc.package_repository("pretend", "1.0.6-3.2.2").should be == nil
1799
+ expect(@yc.package_repository("zisofs-tools", "pretend", nil)).to eq(nil)
1800
+ expect(@yc.package_repository("zisofs-tools", "pretend")).to eq(nil)
1801
+ expect(@yc.package_repository("pretend", "1.0.6-3.2.2")).to eq(nil)
1802
1802
  end
1803
1803
  end
1804
1804
 
1805
1805
  describe "reset" do
1806
1806
  it "should empty the installed and available packages RPMDb" do
1807
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
1808
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
1807
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
1808
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
1809
1809
  @yc.reset
1810
- @yc.available_version("zip", "x86_64").should be == nil
1811
- @yc.installed_version("zip", "x86_64").should be == nil
1810
+ expect(@yc.available_version("zip", "x86_64")).to eq(nil)
1811
+ expect(@yc.installed_version("zip", "x86_64")).to eq(nil)
1812
1812
  end
1813
1813
  end
1814
1814
 
1815
1815
  describe "package_available?" do
1816
1816
  it "should return true a package name is available" do
1817
- @yc.package_available?("zisofs-tools").should be == true
1818
- @yc.package_available?("moo").should be == false
1819
- @yc.package_available?(nil).should be == false
1817
+ expect(@yc.package_available?("zisofs-tools")).to eq(true)
1818
+ expect(@yc.package_available?("moo")).to eq(false)
1819
+ expect(@yc.package_available?(nil)).to eq(false)
1820
1820
  end
1821
1821
 
1822
1822
  it "should return true a package name + arch is available" do
1823
- @yc.package_available?("zlib-devel.i386").should be == true
1824
- @yc.package_available?("zisofs-tools.x86_64").should be == true
1825
- @yc.package_available?("znc-test.beta1.x86_64").should be == true
1826
- @yc.package_available?("znc-test.beta1").should be == true
1827
- @yc.package_available?("znc-test.test.beta1").should be == true
1828
- @yc.package_available?("moo.i386").should be == false
1829
- @yc.package_available?("zisofs-tools.beta").should be == false
1830
- @yc.package_available?("znc-test.test").should be == false
1823
+ expect(@yc.package_available?("zlib-devel.i386")).to eq(true)
1824
+ expect(@yc.package_available?("zisofs-tools.x86_64")).to eq(true)
1825
+ expect(@yc.package_available?("znc-test.beta1.x86_64")).to eq(true)
1826
+ expect(@yc.package_available?("znc-test.beta1")).to eq(true)
1827
+ expect(@yc.package_available?("znc-test.test.beta1")).to eq(true)
1828
+ expect(@yc.package_available?("moo.i386")).to eq(false)
1829
+ expect(@yc.package_available?("zisofs-tools.beta")).to eq(false)
1830
+ expect(@yc.package_available?("znc-test.test")).to eq(false)
1831
1831
  end
1832
1832
  end
1833
1833
 
1834
1834
  describe "enable_extra_repo_control" do
1835
1835
  it "should set @extra_repo_control to arg" do
1836
1836
  @yc.enable_extra_repo_control("--enablerepo=test")
1837
- @yc.extra_repo_control.should be == "--enablerepo=test"
1837
+ expect(@yc.extra_repo_control).to eq("--enablerepo=test")
1838
1838
  end
1839
1839
 
1840
1840
  it "should call reload once when set to flag cache for update" do
1841
- @yc.should_receive(:reload).once
1841
+ expect(@yc).to receive(:reload).once
1842
1842
  @yc.enable_extra_repo_control("--enablerepo=test")
1843
1843
  @yc.enable_extra_repo_control("--enablerepo=test")
1844
1844
  end
@@ -1848,13 +1848,13 @@ EOF
1848
1848
  it "should set @extra_repo_control to nil" do
1849
1849
  @yc.enable_extra_repo_control("--enablerepo=test")
1850
1850
  @yc.disable_extra_repo_control
1851
- @yc.extra_repo_control.should be == nil
1851
+ expect(@yc.extra_repo_control).to eq(nil)
1852
1852
  end
1853
1853
 
1854
1854
  it "should call reload once when cleared to flag cache for update" do
1855
- @yc.should_receive(:reload).once
1855
+ expect(@yc).to receive(:reload).once
1856
1856
  @yc.enable_extra_repo_control("--enablerepo=test")
1857
- @yc.should_receive(:reload).once
1857
+ expect(@yc).to receive(:reload).once
1858
1858
  @yc.disable_extra_repo_control
1859
1859
  @yc.disable_extra_repo_control
1860
1860
  end