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
@@ -30,84 +30,84 @@ describe Chef::Provider::Package::Zypper do
30
30
  @status = double("Status", :exitstatus => 0)
31
31
 
32
32
  @provider = Chef::Provider::Package::Zypper.new(@new_resource, @run_context)
33
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
34
- @provider.stub(:popen4).and_return(@status)
33
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
34
+ allow(@provider).to receive(:popen4).and_return(@status)
35
35
  @stderr = StringIO.new
36
36
  @stdout = StringIO.new
37
37
  @pid = double("PID")
38
- @provider.stub(:`).and_return("2.0")
38
+ allow(@provider).to receive(:`).and_return("2.0")
39
39
  end
40
40
 
41
41
  describe "when loading the current package state" do
42
42
  it "should create a current resource with the name of the new_resource" do
43
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
43
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
44
44
  @provider.load_current_resource
45
45
  end
46
46
 
47
47
  it "should set the current resources package name to the new resources package name" do
48
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
48
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
49
49
  @provider.load_current_resource
50
50
  end
51
51
 
52
52
  it "should run zypper info with the package name" do
53
- @provider.should_receive(:popen4).with("zypper --non-interactive info #{@new_resource.package_name}").and_return(@status)
53
+ expect(@provider).to receive(:popen4).with("zypper --non-interactive info #{@new_resource.package_name}").and_return(@status)
54
54
  @provider.load_current_resource
55
55
  end
56
56
 
57
57
  it "should set the installed version to nil on the current resource if zypper info installed version is (none)" do
58
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
59
- @current_resource.should_receive(:version).with(nil).and_return(true)
58
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
59
+ expect(@current_resource).to receive(:version).with(nil).and_return(true)
60
60
  @provider.load_current_resource
61
61
  end
62
62
 
63
63
  it "should set the installed version if zypper info has one" do
64
64
  @stdout = StringIO.new("Version: 1.0\nInstalled: Yes\n")
65
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
66
- @current_resource.should_receive(:version).with("1.0").and_return(true)
65
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
66
+ expect(@current_resource).to receive(:version).with("1.0").and_return(true)
67
67
  @provider.load_current_resource
68
68
  end
69
69
 
70
70
  it "should set the candidate version if zypper info has one" do
71
71
  @stdout = StringIO.new("Version: 1.0\nInstalled: No\nStatus: out-of-date (version 0.9 installed)")
72
72
 
73
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
73
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
74
74
  @provider.load_current_resource
75
- @provider.candidate_version.should eql("1.0")
75
+ expect(@provider.candidate_version).to eql("1.0")
76
76
  end
77
77
 
78
78
  it "should raise an exception if zypper info fails" do
79
- @status.should_receive(:exitstatus).and_return(1)
80
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
79
+ expect(@status).to receive(:exitstatus).and_return(1)
80
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
81
81
  end
82
82
 
83
83
  it "should not raise an exception if zypper info succeeds" do
84
- @status.should_receive(:exitstatus).and_return(0)
85
- lambda { @provider.load_current_resource }.should_not raise_error
84
+ expect(@status).to receive(:exitstatus).and_return(0)
85
+ expect { @provider.load_current_resource }.not_to raise_error
86
86
  end
87
87
 
88
88
  it "should return the current resouce" do
89
- @provider.load_current_resource.should eql(@current_resource)
89
+ expect(@provider.load_current_resource).to eql(@current_resource)
90
90
  end
91
91
  end
92
92
 
93
93
  describe "install_package" do
94
94
  it "should run zypper install with the package name and version" do
95
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
96
- @provider.should_receive(:shell_out!).with(
95
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
96
+ expect(@provider).to receive(:shell_out!).with(
97
97
  "zypper --non-interactive install --auto-agree-with-licenses emacs=1.0")
98
98
  @provider.install_package("emacs", "1.0")
99
99
  end
100
100
  it "should run zypper install without gpg checks" do
101
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
102
- @provider.should_receive(:shell_out!).with(
101
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
102
+ expect(@provider).to receive(:shell_out!).with(
103
103
  "zypper --non-interactive --no-gpg-checks install "+
104
104
  "--auto-agree-with-licenses emacs=1.0")
105
105
  @provider.install_package("emacs", "1.0")
106
106
  end
107
107
  it "should warn about gpg checks on zypper install" do
108
- Chef::Log.should_receive(:warn).with(
108
+ expect(Chef::Log).to receive(:warn).with(
109
109
  /All packages will be installed without gpg signature checks/)
110
- @provider.should_receive(:shell_out!).with(
110
+ expect(@provider).to receive(:shell_out!).with(
111
111
  "zypper --non-interactive --no-gpg-checks install "+
112
112
  "--auto-agree-with-licenses emacs=1.0")
113
113
  @provider.install_package("emacs", "1.0")
@@ -116,28 +116,28 @@ describe Chef::Provider::Package::Zypper do
116
116
 
117
117
  describe "upgrade_package" do
118
118
  it "should run zypper update with the package name and version" do
119
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
120
- @provider.should_receive(:shell_out!).with(
119
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
120
+ expect(@provider).to receive(:shell_out!).with(
121
121
  "zypper --non-interactive install --auto-agree-with-licenses emacs=1.0")
122
122
  @provider.upgrade_package("emacs", "1.0")
123
123
  end
124
124
  it "should run zypper update without gpg checks" do
125
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
126
- @provider.should_receive(:shell_out!).with(
125
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
126
+ expect(@provider).to receive(:shell_out!).with(
127
127
  "zypper --non-interactive --no-gpg-checks install "+
128
128
  "--auto-agree-with-licenses emacs=1.0")
129
129
  @provider.upgrade_package("emacs", "1.0")
130
130
  end
131
131
  it "should warn about gpg checks on zypper upgrade" do
132
- Chef::Log.should_receive(:warn).with(
132
+ expect(Chef::Log).to receive(:warn).with(
133
133
  /All packages will be installed without gpg signature checks/)
134
- @provider.should_receive(:shell_out!).with(
134
+ expect(@provider).to receive(:shell_out!).with(
135
135
  "zypper --non-interactive --no-gpg-checks install "+
136
136
  "--auto-agree-with-licenses emacs=1.0")
137
137
  @provider.upgrade_package("emacs", "1.0")
138
138
  end
139
139
  it "should run zypper upgrade without gpg checks" do
140
- @provider.should_receive(:shell_out!).with(
140
+ expect(@provider).to receive(:shell_out!).with(
141
141
  "zypper --non-interactive --no-gpg-checks install "+
142
142
  "--auto-agree-with-licenses emacs=1.0")
143
143
 
@@ -149,8 +149,8 @@ describe Chef::Provider::Package::Zypper do
149
149
 
150
150
  context "when package version is not explicitly specified" do
151
151
  it "should run zypper remove with the package name" do
152
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
153
- @provider.should_receive(:shell_out!).with(
152
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
153
+ expect(@provider).to receive(:shell_out!).with(
154
154
  "zypper --non-interactive remove emacs")
155
155
  @provider.remove_package("emacs", nil)
156
156
  end
@@ -158,21 +158,21 @@ describe Chef::Provider::Package::Zypper do
158
158
 
159
159
  context "when package version is explicitly specified" do
160
160
  it "should run zypper remove with the package name" do
161
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
162
- @provider.should_receive(:shell_out!).with(
161
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
162
+ expect(@provider).to receive(:shell_out!).with(
163
163
  "zypper --non-interactive remove emacs=1.0")
164
164
  @provider.remove_package("emacs", "1.0")
165
165
  end
166
166
  it "should run zypper remove without gpg checks" do
167
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
168
- @provider.should_receive(:shell_out!).with(
167
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
168
+ expect(@provider).to receive(:shell_out!).with(
169
169
  "zypper --non-interactive --no-gpg-checks remove emacs=1.0")
170
170
  @provider.remove_package("emacs", "1.0")
171
171
  end
172
172
  it "should warn about gpg checks on zypper remove" do
173
- Chef::Log.should_receive(:warn).with(
173
+ expect(Chef::Log).to receive(:warn).with(
174
174
  /All packages will be installed without gpg signature checks/)
175
- @provider.should_receive(:shell_out!).with(
175
+ expect(@provider).to receive(:shell_out!).with(
176
176
  "zypper --non-interactive --no-gpg-checks remove emacs=1.0")
177
177
 
178
178
  @provider.remove_package("emacs", "1.0")
@@ -182,20 +182,20 @@ describe Chef::Provider::Package::Zypper do
182
182
 
183
183
  describe "purge_package" do
184
184
  it "should run remove_package with the name and version" do
185
- @provider.should_receive(:shell_out!).with(
185
+ expect(@provider).to receive(:shell_out!).with(
186
186
  "zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
187
187
  @provider.purge_package("emacs", "1.0")
188
188
  end
189
189
  it "should run zypper purge without gpg checks" do
190
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
191
- @provider.should_receive(:shell_out!).with(
190
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
191
+ expect(@provider).to receive(:shell_out!).with(
192
192
  "zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
193
193
  @provider.purge_package("emacs", "1.0")
194
194
  end
195
195
  it "should warn about gpg checks on zypper purge" do
196
- Chef::Log.should_receive(:warn).with(
196
+ expect(Chef::Log).to receive(:warn).with(
197
197
  /All packages will be installed without gpg signature checks/)
198
- @provider.should_receive(:shell_out!).with(
198
+ expect(@provider).to receive(:shell_out!).with(
199
199
  "zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
200
200
  @provider.purge_package("emacs", "1.0")
201
201
  end
@@ -203,12 +203,12 @@ describe Chef::Provider::Package::Zypper do
203
203
 
204
204
  describe "on an older zypper" do
205
205
  before(:each) do
206
- @provider.stub(:`).and_return("0.11.6")
206
+ allow(@provider).to receive(:`).and_return("0.11.6")
207
207
  end
208
208
 
209
209
  describe "install_package" do
210
210
  it "should run zypper install with the package name and version" do
211
- @provider.should_receive(:shell_out!).with(
211
+ expect(@provider).to receive(:shell_out!).with(
212
212
  "zypper --no-gpg-checks install --auto-agree-with-licenses -y emacs")
213
213
  @provider.install_package("emacs", "1.0")
214
214
  end
@@ -216,7 +216,7 @@ describe Chef::Provider::Package::Zypper do
216
216
 
217
217
  describe "upgrade_package" do
218
218
  it "should run zypper update with the package name and version" do
219
- @provider.should_receive(:shell_out!).with(
219
+ expect(@provider).to receive(:shell_out!).with(
220
220
  "zypper --no-gpg-checks install --auto-agree-with-licenses -y emacs")
221
221
  @provider.upgrade_package("emacs", "1.0")
222
222
  end
@@ -224,7 +224,7 @@ describe Chef::Provider::Package::Zypper do
224
224
 
225
225
  describe "remove_package" do
226
226
  it "should run zypper remove with the package name" do
227
- @provider.should_receive(:shell_out!).with(
227
+ expect(@provider).to receive(:shell_out!).with(
228
228
  "zypper --no-gpg-checks remove -y emacs")
229
229
  @provider.remove_package("emacs", "1.0")
230
230
  end
@@ -34,80 +34,80 @@ describe Chef::Provider::Package do
34
34
  describe "when installing a package" do
35
35
  before(:each) do
36
36
  @provider.current_resource = @current_resource
37
- @provider.stub(:install_package).and_return(true)
37
+ allow(@provider).to receive(:install_package).and_return(true)
38
38
  end
39
39
 
40
40
  it "should raise a Chef::Exceptions::Package if no version is specified, and no candidate is available" do
41
41
  @provider.candidate_version = nil
42
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
42
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
43
43
  end
44
44
 
45
45
  it "should call preseed_package if a response_file is given" do
46
46
  @new_resource.response_file("foo")
47
- @provider.should_receive(:get_preseed_file).with(
47
+ expect(@provider).to receive(:get_preseed_file).with(
48
48
  @new_resource.name,
49
49
  @provider.candidate_version
50
50
  ).and_return("/var/cache/preseed-test")
51
51
 
52
- @provider.should_receive(:preseed_package).with(
52
+ expect(@provider).to receive(:preseed_package).with(
53
53
  "/var/cache/preseed-test"
54
54
  ).and_return(true)
55
55
  @provider.run_action(:install)
56
56
  end
57
57
 
58
58
  it "should not call preseed_package if a response_file is not given" do
59
- @provider.should_not_receive(:preseed_package)
59
+ expect(@provider).not_to receive(:preseed_package)
60
60
  @provider.run_action(:install)
61
61
  end
62
62
 
63
63
  it "should install the package at the candidate_version if it is not already installed" do
64
- @provider.should_receive(:install_package).with(
64
+ expect(@provider).to receive(:install_package).with(
65
65
  @new_resource.name,
66
66
  @provider.candidate_version
67
67
  ).and_return(true)
68
68
  @provider.run_action(:install)
69
- @new_resource.should be_updated_by_last_action
69
+ expect(@new_resource).to be_updated_by_last_action
70
70
  end
71
71
 
72
72
  it "should install the package at the version specified if it is not already installed" do
73
73
  @new_resource.version("1.0")
74
- @provider.should_receive(:install_package).with(
74
+ expect(@provider).to receive(:install_package).with(
75
75
  @new_resource.name,
76
76
  @new_resource.version
77
77
  ).and_return(true)
78
78
  @provider.run_action(:install)
79
- @new_resource.should be_updated_by_last_action
79
+ expect(@new_resource).to be_updated_by_last_action
80
80
  end
81
81
 
82
82
  it "should install the package at the version specified if a different version is installed" do
83
83
  @new_resource.version("1.0")
84
- @current_resource.stub(:version).and_return("0.99")
85
- @provider.should_receive(:install_package).with(
84
+ allow(@current_resource).to receive(:version).and_return("0.99")
85
+ expect(@provider).to receive(:install_package).with(
86
86
  @new_resource.name,
87
87
  @new_resource.version
88
88
  ).and_return(true)
89
89
  @provider.run_action(:install)
90
- @new_resource.should be_updated_by_last_action
90
+ expect(@new_resource).to be_updated_by_last_action
91
91
  end
92
92
 
93
93
  it "should not install the package if it is already installed and no version is specified" do
94
94
  @current_resource.version("1.0")
95
- @provider.should_not_receive(:install_package)
95
+ expect(@provider).not_to receive(:install_package)
96
96
  @provider.run_action(:install)
97
- @new_resource.should_not be_updated_by_last_action
97
+ expect(@new_resource).not_to be_updated_by_last_action
98
98
  end
99
99
 
100
100
  it "should not install the package if it is already installed at the version specified" do
101
101
  @current_resource.version("1.0")
102
102
  @new_resource.version("1.0")
103
- @provider.should_not_receive(:install_package)
103
+ expect(@provider).not_to receive(:install_package)
104
104
  @provider.run_action(:install)
105
- @new_resource.should_not be_updated_by_last_action
105
+ expect(@new_resource).not_to be_updated_by_last_action
106
106
  end
107
107
 
108
108
  it "should call the candidate_version accessor only once if the package is already installed and no version is specified" do
109
109
  @current_resource.version("1.0")
110
- @provider.stub(:candidate_version).and_return("1.0")
110
+ allow(@provider).to receive(:candidate_version).and_return("1.0")
111
111
  @provider.run_action(:install)
112
112
  end
113
113
 
@@ -119,220 +119,220 @@ describe Chef::Provider::Package do
119
119
 
120
120
  it "should set the resource to updated if it installs the package" do
121
121
  @provider.run_action(:install)
122
- @new_resource.should be_updated
122
+ expect(@new_resource).to be_updated
123
123
  end
124
124
 
125
125
  end
126
126
 
127
127
  describe "when upgrading the package" do
128
128
  before(:each) do
129
- @provider.stub(:upgrade_package).and_return(true)
129
+ allow(@provider).to receive(:upgrade_package).and_return(true)
130
130
  end
131
131
 
132
132
  it "should upgrade the package if the current version is not the candidate version" do
133
- @provider.should_receive(:upgrade_package).with(
133
+ expect(@provider).to receive(:upgrade_package).with(
134
134
  @new_resource.name,
135
135
  @provider.candidate_version
136
136
  ).and_return(true)
137
137
  @provider.run_action(:upgrade)
138
- @new_resource.should be_updated_by_last_action
138
+ expect(@new_resource).to be_updated_by_last_action
139
139
  end
140
140
 
141
141
  it "should set the resource to updated if it installs the package" do
142
142
  @provider.run_action(:upgrade)
143
- @new_resource.should be_updated
143
+ expect(@new_resource).to be_updated
144
144
  end
145
145
 
146
146
  it "should not install the package if the current version is the candidate version" do
147
147
  @current_resource.version "1.0"
148
- @provider.should_not_receive(:upgrade_package)
148
+ expect(@provider).not_to receive(:upgrade_package)
149
149
  @provider.run_action(:upgrade)
150
- @new_resource.should_not be_updated_by_last_action
150
+ expect(@new_resource).not_to be_updated_by_last_action
151
151
  end
152
152
 
153
153
  it "should print the word 'uninstalled' if there was no original version" do
154
- @current_resource.stub(:version).and_return(nil)
155
- Chef::Log.should_receive(:info).with("package[emacs] upgraded from uninstalled to 1.0")
154
+ allow(@current_resource).to receive(:version).and_return(nil)
155
+ expect(Chef::Log).to receive(:info).with("package[emacs] upgraded from uninstalled to 1.0")
156
156
  @provider.run_action(:upgrade)
157
- @new_resource.should be_updated_by_last_action
157
+ expect(@new_resource).to be_updated_by_last_action
158
158
  end
159
159
 
160
160
  it "should raise a Chef::Exceptions::Package if current version and candidate are nil" do
161
- @current_resource.stub(:version).and_return(nil)
161
+ allow(@current_resource).to receive(:version).and_return(nil)
162
162
  @provider.candidate_version = nil
163
- lambda { @provider.run_action(:upgrade) }.should raise_error(Chef::Exceptions::Package)
163
+ expect { @provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
164
164
  end
165
165
 
166
166
  it "should not install the package if candidate version is nil" do
167
167
  @current_resource.version "1.0"
168
168
  @provider.candidate_version = nil
169
- @provider.should_not_receive(:upgrade_package)
169
+ expect(@provider).not_to receive(:upgrade_package)
170
170
  @provider.run_action(:upgrade)
171
- @new_resource.should_not be_updated_by_last_action
171
+ expect(@new_resource).not_to be_updated_by_last_action
172
172
  end
173
173
  end
174
174
 
175
175
  describe "When removing the package" do
176
176
  before(:each) do
177
- @provider.stub(:remove_package).and_return(true)
177
+ allow(@provider).to receive(:remove_package).and_return(true)
178
178
  @current_resource.version '1.4.2'
179
179
  end
180
180
 
181
181
  it "should remove the package if it is installed" do
182
- @provider.should be_removing_package
183
- @provider.should_receive(:remove_package).with('emacs', nil)
182
+ expect(@provider).to be_removing_package
183
+ expect(@provider).to receive(:remove_package).with('emacs', nil)
184
184
  @provider.run_action(:remove)
185
- @new_resource.should be_updated
186
- @new_resource.should be_updated_by_last_action
185
+ expect(@new_resource).to be_updated
186
+ expect(@new_resource).to be_updated_by_last_action
187
187
  end
188
188
 
189
189
  it "should remove the package at a specific version if it is installed at that version" do
190
190
  @new_resource.version "1.4.2"
191
- @provider.should be_removing_package
192
- @provider.should_receive(:remove_package).with('emacs', '1.4.2')
191
+ expect(@provider).to be_removing_package
192
+ expect(@provider).to receive(:remove_package).with('emacs', '1.4.2')
193
193
  @provider.run_action(:remove)
194
- @new_resource.should be_updated_by_last_action
194
+ expect(@new_resource).to be_updated_by_last_action
195
195
  end
196
196
 
197
197
  it "should not remove the package at a specific version if it is not installed at that version" do
198
198
  @new_resource.version "1.0"
199
- @provider.should_not be_removing_package
200
- @provider.should_not_receive(:remove_package)
199
+ expect(@provider).not_to be_removing_package
200
+ expect(@provider).not_to receive(:remove_package)
201
201
  @provider.run_action(:remove)
202
- @new_resource.should_not be_updated_by_last_action
202
+ expect(@new_resource).not_to be_updated_by_last_action
203
203
  end
204
204
 
205
205
  it "should not remove the package if it is not installed" do
206
- @provider.should_not_receive(:remove_package)
207
- @current_resource.stub(:version).and_return(nil)
206
+ expect(@provider).not_to receive(:remove_package)
207
+ allow(@current_resource).to receive(:version).and_return(nil)
208
208
  @provider.run_action(:remove)
209
- @new_resource.should_not be_updated_by_last_action
209
+ expect(@new_resource).not_to be_updated_by_last_action
210
210
  end
211
211
 
212
212
  it "should set the resource to updated if it removes the package" do
213
213
  @provider.run_action(:remove)
214
- @new_resource.should be_updated
214
+ expect(@new_resource).to be_updated
215
215
  end
216
216
 
217
217
  end
218
218
 
219
219
  describe "When purging the package" do
220
220
  before(:each) do
221
- @provider.stub(:purge_package).and_return(true)
221
+ allow(@provider).to receive(:purge_package).and_return(true)
222
222
  @current_resource.version '1.4.2'
223
223
  end
224
224
 
225
225
  it "should purge the package if it is installed" do
226
- @provider.should be_removing_package
227
- @provider.should_receive(:purge_package).with('emacs', nil)
226
+ expect(@provider).to be_removing_package
227
+ expect(@provider).to receive(:purge_package).with('emacs', nil)
228
228
  @provider.run_action(:purge)
229
- @new_resource.should be_updated
230
- @new_resource.should be_updated_by_last_action
229
+ expect(@new_resource).to be_updated
230
+ expect(@new_resource).to be_updated_by_last_action
231
231
  end
232
232
 
233
233
  it "should purge the package at a specific version if it is installed at that version" do
234
234
  @new_resource.version "1.4.2"
235
- @provider.should be_removing_package
236
- @provider.should_receive(:purge_package).with('emacs', '1.4.2')
235
+ expect(@provider).to be_removing_package
236
+ expect(@provider).to receive(:purge_package).with('emacs', '1.4.2')
237
237
  @provider.run_action(:purge)
238
- @new_resource.should be_updated_by_last_action
238
+ expect(@new_resource).to be_updated_by_last_action
239
239
  end
240
240
 
241
241
  it "should not purge the package at a specific version if it is not installed at that version" do
242
242
  @new_resource.version "1.0"
243
- @provider.should_not be_removing_package
244
- @provider.should_not_receive(:purge_package)
243
+ expect(@provider).not_to be_removing_package
244
+ expect(@provider).not_to receive(:purge_package)
245
245
  @provider.run_action(:purge)
246
- @new_resource.should_not be_updated_by_last_action
246
+ expect(@new_resource).not_to be_updated_by_last_action
247
247
  end
248
248
 
249
249
  it "should not purge the package if it is not installed" do
250
250
  @current_resource.instance_variable_set(:@version, nil)
251
- @provider.should_not be_removing_package
251
+ expect(@provider).not_to be_removing_package
252
252
 
253
- @provider.should_not_receive(:purge_package)
253
+ expect(@provider).not_to receive(:purge_package)
254
254
  @provider.run_action(:purge)
255
- @new_resource.should_not be_updated_by_last_action
255
+ expect(@new_resource).not_to be_updated_by_last_action
256
256
  end
257
257
 
258
258
  it "should set the resource to updated if it purges the package" do
259
259
  @provider.run_action(:purge)
260
- @new_resource.should be_updated
260
+ expect(@new_resource).to be_updated
261
261
  end
262
262
 
263
263
  end
264
264
 
265
265
  describe "when reconfiguring the package" do
266
266
  before(:each) do
267
- @provider.stub(:reconfig_package).and_return(true)
267
+ allow(@provider).to receive(:reconfig_package).and_return(true)
268
268
  end
269
269
 
270
270
  it "should info log, reconfigure the package and update the resource" do
271
- @current_resource.stub(:version).and_return('1.0')
272
- @new_resource.stub(:response_file).and_return(true)
273
- @provider.should_receive(:get_preseed_file).and_return('/var/cache/preseed-test')
274
- @provider.stub(:preseed_package).and_return(true)
275
- @provider.stub(:reconfig_package).and_return(true)
276
- Chef::Log.should_receive(:info).with("package[emacs] reconfigured")
277
- @provider.should_receive(:reconfig_package)
271
+ allow(@current_resource).to receive(:version).and_return('1.0')
272
+ allow(@new_resource).to receive(:response_file).and_return(true)
273
+ expect(@provider).to receive(:get_preseed_file).and_return('/var/cache/preseed-test')
274
+ allow(@provider).to receive(:preseed_package).and_return(true)
275
+ allow(@provider).to receive(:reconfig_package).and_return(true)
276
+ expect(Chef::Log).to receive(:info).with("package[emacs] reconfigured")
277
+ expect(@provider).to receive(:reconfig_package)
278
278
  @provider.run_action(:reconfig)
279
- @new_resource.should be_updated
280
- @new_resource.should be_updated_by_last_action
279
+ expect(@new_resource).to be_updated
280
+ expect(@new_resource).to be_updated_by_last_action
281
281
  end
282
282
 
283
283
  it "should debug log and not reconfigure the package if the package is not installed" do
284
- @current_resource.stub(:version).and_return(nil)
285
- Chef::Log.should_receive(:debug).with("package[emacs] is NOT installed - nothing to do")
286
- @provider.should_not_receive(:reconfig_package)
284
+ allow(@current_resource).to receive(:version).and_return(nil)
285
+ expect(Chef::Log).to receive(:debug).with("package[emacs] is NOT installed - nothing to do")
286
+ expect(@provider).not_to receive(:reconfig_package)
287
287
  @provider.run_action(:reconfig)
288
- @new_resource.should_not be_updated_by_last_action
288
+ expect(@new_resource).not_to be_updated_by_last_action
289
289
  end
290
290
 
291
291
  it "should debug log and not reconfigure the package if no response_file is given" do
292
- @current_resource.stub(:version).and_return('1.0')
293
- @new_resource.stub(:response_file).and_return(nil)
294
- Chef::Log.should_receive(:debug).with("package[emacs] no response_file provided - nothing to do")
295
- @provider.should_not_receive(:reconfig_package)
292
+ allow(@current_resource).to receive(:version).and_return('1.0')
293
+ allow(@new_resource).to receive(:response_file).and_return(nil)
294
+ expect(Chef::Log).to receive(:debug).with("package[emacs] no response_file provided - nothing to do")
295
+ expect(@provider).not_to receive(:reconfig_package)
296
296
  @provider.run_action(:reconfig)
297
- @new_resource.should_not be_updated_by_last_action
297
+ expect(@new_resource).not_to be_updated_by_last_action
298
298
  end
299
299
 
300
300
  it "should debug log and not reconfigure the package if the response_file has not changed" do
301
- @current_resource.stub(:version).and_return('1.0')
302
- @new_resource.stub(:response_file).and_return(true)
303
- @provider.should_receive(:get_preseed_file).and_return(false)
304
- @provider.stub(:preseed_package).and_return(false)
305
- Chef::Log.should_receive(:debug).with("package[emacs] preseeding has not changed - nothing to do")
306
- @provider.should_not_receive(:reconfig_package)
301
+ allow(@current_resource).to receive(:version).and_return('1.0')
302
+ allow(@new_resource).to receive(:response_file).and_return(true)
303
+ expect(@provider).to receive(:get_preseed_file).and_return(false)
304
+ allow(@provider).to receive(:preseed_package).and_return(false)
305
+ expect(Chef::Log).to receive(:debug).with("package[emacs] preseeding has not changed - nothing to do")
306
+ expect(@provider).not_to receive(:reconfig_package)
307
307
  @provider.run_action(:reconfig)
308
- @new_resource.should_not be_updated_by_last_action
308
+ expect(@new_resource).not_to be_updated_by_last_action
309
309
  end
310
310
  end
311
311
 
312
312
  describe "when running commands to be implemented by subclasses" do
313
313
  it "should raises UnsupportedAction for install" do
314
- lambda { @provider.install_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
314
+ expect { @provider.install_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
315
315
  end
316
316
 
317
317
  it "should raises UnsupportedAction for upgrade" do
318
- lambda { @provider.upgrade_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
318
+ expect { @provider.upgrade_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
319
319
  end
320
320
 
321
321
  it "should raises UnsupportedAction for remove" do
322
- lambda { @provider.remove_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
322
+ expect { @provider.remove_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
323
323
  end
324
324
 
325
325
  it "should raises UnsupportedAction for purge" do
326
- lambda { @provider.purge_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
326
+ expect { @provider.purge_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
327
327
  end
328
328
 
329
329
  it "should raise UnsupportedAction for preseed_package" do
330
330
  preseed_file = "/tmp/sun-jdk-package-preseed-file.seed"
331
- lambda { @provider.preseed_package(preseed_file) }.should raise_error(Chef::Exceptions::UnsupportedAction)
331
+ expect { @provider.preseed_package(preseed_file) }.to raise_error(Chef::Exceptions::UnsupportedAction)
332
332
  end
333
333
 
334
334
  it "should raise UnsupportedAction for reconfig" do
335
- lambda { @provider.reconfig_package('emacs', '1.4.2') }.should raise_error(Chef::Exceptions::UnsupportedAction)
335
+ expect { @provider.reconfig_package('emacs', '1.4.2') }.to raise_error(Chef::Exceptions::UnsupportedAction)
336
336
  end
337
337
  end
338
338
 
@@ -358,29 +358,29 @@ describe Chef::Provider::Package do
358
358
 
359
359
  describe "creating the cookbook file resource to fetch the response file" do
360
360
  before do
361
- Chef::FileCache.should_receive(:create_cache_path).with('preseed/java').and_return("/tmp/preseed/java")
361
+ expect(Chef::FileCache).to receive(:create_cache_path).with('preseed/java').and_return("/tmp/preseed/java")
362
362
  end
363
363
 
364
364
  it "sets the preseed resource's runcontext to its own run context" do
365
- Chef::FileCache.stub(:create_cache_path).and_return("/tmp/preseed/java")
366
- @provider.preseed_resource('java', '6').run_context.should_not be_nil
367
- @provider.preseed_resource('java', '6').run_context.should equal(@provider.run_context)
365
+ allow(Chef::FileCache).to receive(:create_cache_path).and_return("/tmp/preseed/java")
366
+ expect(@provider.preseed_resource('java', '6').run_context).not_to be_nil
367
+ expect(@provider.preseed_resource('java', '6').run_context).to equal(@provider.run_context)
368
368
  end
369
369
 
370
370
  it "should set the cookbook name of the remote file to the new resources cookbook name" do
371
- @provider.preseed_resource('java', '6').cookbook_name.should == 'java'
371
+ expect(@provider.preseed_resource('java', '6').cookbook_name).to eq('java')
372
372
  end
373
373
 
374
374
  it "should set remote files source to the new resources response file" do
375
- @provider.preseed_resource('java', '6').source.should == 'java.response'
375
+ expect(@provider.preseed_resource('java', '6').source).to eq('java.response')
376
376
  end
377
377
 
378
378
  it "should never back up the cached response file" do
379
- @provider.preseed_resource('java', '6').backup.should be_false
379
+ expect(@provider.preseed_resource('java', '6').backup).to be_false
380
380
  end
381
381
 
382
382
  it "sets the install path of the resource to $file_cache/$cookbook/$pkg_name-$pkg_version.seed" do
383
- @provider.preseed_resource('java', '6').path.should == '/tmp/preseed/java/java-6.seed'
383
+ expect(@provider.preseed_resource('java', '6').path).to eq('/tmp/preseed/java/java-6.seed')
384
384
  end
385
385
  end
386
386
 
@@ -397,7 +397,7 @@ describe Chef::Provider::Package do
397
397
  @response_file_resource.source('java.response')
398
398
 
399
399
 
400
- @provider.should_receive(:preseed_resource).with('java', '6').and_return(@response_file_resource)
400
+ expect(@provider).to receive(:preseed_resource).with('java', '6').and_return(@response_file_resource)
401
401
  end
402
402
 
403
403
  after do
@@ -405,20 +405,20 @@ describe Chef::Provider::Package do
405
405
  end
406
406
 
407
407
  it "creates the preseed file in the cache" do
408
- @response_file_resource.should_receive(:run_action).with(:create)
408
+ expect(@response_file_resource).to receive(:run_action).with(:create)
409
409
  @provider.get_preseed_file("java", "6")
410
410
  end
411
411
 
412
412
  it "returns the path to the response file if the response file was updated" do
413
- @provider.get_preseed_file("java", "6").should == @response_file_destination
413
+ expect(@provider.get_preseed_file("java", "6")).to eq(@response_file_destination)
414
414
  end
415
415
 
416
416
  it "should return false if the response file has not been updated" do
417
417
  @response_file_resource.updated_by_last_action(false)
418
- @response_file_resource.should_not be_updated_by_last_action
418
+ expect(@response_file_resource).not_to be_updated_by_last_action
419
419
  # don't let the response_file_resource set updated to true
420
- @response_file_resource.should_receive(:run_action).with(:create)
421
- @provider.get_preseed_file("java", "6").should be(false)
420
+ expect(@response_file_resource).to receive(:run_action).with(:create)
421
+ expect(@provider.get_preseed_file("java", "6")).to be(false)
422
422
  end
423
423
 
424
424
  end