chef 12.0.3-x86-mingw32 → 12.1.0.rc.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (653) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +4 -1
  3. data/README.md +42 -18
  4. data/distro/common/html/_sources/ctl_chef_client.txt +1 -1
  5. data/distro/common/html/_sources/ctl_chef_server.txt +53 -35
  6. data/distro/common/html/_sources/ctl_chef_solo.txt +1 -1
  7. data/distro/common/html/_sources/knife_bootstrap.txt +1 -1
  8. data/distro/common/html/_sources/knife_cookbook_site.txt +1 -1
  9. data/distro/common/html/_sources/knife_data_bag.txt +4 -4
  10. data/distro/common/html/_sources/knife_status.txt +1 -1
  11. data/distro/common/html/_static/searchtools.js +1 -1
  12. data/distro/common/html/ctl_chef_client.html +55 -7
  13. data/distro/common/html/ctl_chef_server.html +84 -41
  14. data/distro/common/html/ctl_chef_shell.html +45 -1
  15. data/distro/common/html/ctl_chef_solo.html +51 -5
  16. data/distro/common/html/index.html +2 -2
  17. data/distro/common/html/knife.html +1 -1
  18. data/distro/common/html/knife_bootstrap.html +30 -10
  19. data/distro/common/html/knife_cookbook_site.html +2 -0
  20. data/distro/common/html/knife_data_bag.html +4 -4
  21. data/distro/common/html/knife_node.html +2 -2
  22. data/distro/common/html/knife_raw.html +1 -1
  23. data/distro/common/html/knife_role.html +1 -1
  24. data/distro/common/html/knife_search.html +3 -3
  25. data/distro/common/html/knife_status.html +4 -0
  26. data/distro/common/html/searchindex.js +1 -1
  27. data/distro/common/man/man1/chef-shell.1 +72 -1
  28. data/distro/common/man/man1/knife-bootstrap.1 +71 -63
  29. data/distro/common/man/man1/knife-client.1 +1 -1
  30. data/distro/common/man/man1/knife-configure.1 +1 -1
  31. data/distro/common/man/man1/knife-cookbook-site.1 +4 -1
  32. data/distro/common/man/man1/knife-cookbook.1 +1 -1
  33. data/distro/common/man/man1/knife-data-bag.1 +5 -5
  34. data/distro/common/man/man1/knife-delete.1 +1 -1
  35. data/distro/common/man/man1/knife-deps.1 +1 -1
  36. data/distro/common/man/man1/knife-diff.1 +1 -1
  37. data/distro/common/man/man1/knife-download.1 +1 -1
  38. data/distro/common/man/man1/knife-edit.1 +1 -1
  39. data/distro/common/man/man1/knife-environment.1 +1 -1
  40. data/distro/common/man/man1/knife-exec.1 +1 -1
  41. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  42. data/distro/common/man/man1/knife-list.1 +1 -1
  43. data/distro/common/man/man1/knife-node.1 +3 -3
  44. data/distro/common/man/man1/knife-raw.1 +2 -2
  45. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  46. data/distro/common/man/man1/knife-role.1 +2 -2
  47. data/distro/common/man/man1/knife-search.1 +4 -4
  48. data/distro/common/man/man1/knife-serve.1 +1 -1
  49. data/distro/common/man/man1/knife-show.1 +1 -1
  50. data/distro/common/man/man1/knife-ssh.1 +1 -1
  51. data/distro/common/man/man1/knife-ssl-check.1 +1 -1
  52. data/distro/common/man/man1/knife-ssl-fetch.1 +1 -1
  53. data/distro/common/man/man1/knife-status.1 +1 -1
  54. data/distro/common/man/man1/knife-tag.1 +1 -1
  55. data/distro/common/man/man1/knife-upload.1 +1 -1
  56. data/distro/common/man/man1/knife-user.1 +1 -1
  57. data/distro/common/man/man1/knife-xargs.1 +1 -1
  58. data/distro/common/man/man1/knife.1 +1 -1
  59. data/distro/common/man/man8/chef-apply.8 +86 -0
  60. data/distro/common/man/man8/chef-client.8 +76 -5
  61. data/distro/common/man/man8/chef-solo.8 +79 -6
  62. data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
  63. data/distro/common/markdown/man1/knife-cookbook-site.mkd +1 -1
  64. data/distro/common/markdown/man1/knife-data-bag.mkd +1 -1
  65. data/distro/common/markdown/man1/knife-environment.mkd +1 -1
  66. data/distro/common/markdown/man1/knife.mkd +1 -1
  67. data/lib/chef.rb +0 -7
  68. data/lib/chef/api_client.rb +10 -2
  69. data/lib/chef/api_client/registration.rb +7 -9
  70. data/lib/chef/application.rb +28 -12
  71. data/lib/chef/application/apply.rb +17 -1
  72. data/lib/chef/application/client.rb +74 -6
  73. data/lib/chef/application/knife.rb +1 -2
  74. data/lib/chef/application/solo.rb +30 -0
  75. data/lib/chef/application/windows_service.rb +1 -0
  76. data/lib/chef/application/windows_service_manager.rb +8 -2
  77. data/lib/chef/applications.rb +0 -1
  78. data/lib/chef/audit/audit_event_proxy.rb +93 -0
  79. data/lib/chef/audit/audit_reporter.rb +169 -0
  80. data/lib/chef/audit/control_group_data.rb +140 -0
  81. data/lib/chef/audit/rspec_formatter.rb +37 -0
  82. data/lib/chef/audit/runner.rb +178 -0
  83. data/lib/chef/chef_fs/chef_fs_data_store.rb +11 -2
  84. data/lib/chef/chef_fs/config.rb +25 -4
  85. data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +15 -0
  86. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -0
  87. data/lib/chef/chef_fs/file_system.rb +1 -1
  88. data/lib/chef/chef_fs/file_system/base_fs_dir.rb +5 -0
  89. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +3 -2
  90. data/lib/chef/{shef/ext.rb → chef_fs/file_system/chef_repository_file_system_policies_dir.rb} +22 -3
  91. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +4 -0
  92. data/lib/chef/client.rb +81 -52
  93. data/lib/chef/config.rb +35 -3
  94. data/lib/chef/cookbook/metadata.rb +3 -3
  95. data/lib/chef/cookbook_manifest.rb +275 -0
  96. data/lib/chef/cookbook_site_streaming_uploader.rb +24 -23
  97. data/lib/chef/cookbook_uploader.rb +11 -2
  98. data/lib/chef/cookbook_version.rb +71 -194
  99. data/lib/chef/data_bag.rb +5 -2
  100. data/lib/chef/data_bag_item.rb +6 -3
  101. data/lib/chef/deprecation/warnings.rb +5 -4
  102. data/lib/chef/dsl/audit.rb +51 -0
  103. data/lib/chef/dsl/include_recipe.rb +2 -3
  104. data/lib/chef/dsl/reboot_pending.rb +1 -1
  105. data/lib/chef/dsl/recipe.rb +49 -31
  106. data/lib/chef/encrypted_data_bag_item/assertions.rb +0 -3
  107. data/lib/chef/environment.rb +5 -2
  108. data/lib/chef/event_dispatch/base.rb +36 -1
  109. data/lib/chef/event_dispatch/dispatcher.rb +3 -5
  110. data/lib/chef/exceptions.rb +61 -2
  111. data/lib/chef/file_access_control/unix.rb +12 -0
  112. data/lib/chef/file_access_control/windows.rb +14 -0
  113. data/lib/chef/formatters/doc.rb +47 -1
  114. data/{spec/unit/monkey_patches/string_spec.rb → lib/chef/guard_interpreter.rb} +11 -16
  115. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -2
  116. data/lib/chef/http.rb +1 -2
  117. data/lib/chef/knife.rb +5 -3
  118. data/lib/chef/knife/bootstrap.rb +84 -15
  119. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +165 -0
  120. data/lib/chef/knife/bootstrap/client_builder.rb +190 -0
  121. data/lib/chef/knife/bootstrap/{README.md → templates/README.md} +0 -0
  122. data/lib/chef/knife/bootstrap/{archlinux-gems.erb → templates/archlinux-gems.erb} +9 -0
  123. data/lib/chef/knife/bootstrap/{chef-aix.erb → templates/chef-aix.erb} +9 -0
  124. data/lib/chef/knife/bootstrap/{chef-full.erb → templates/chef-full.erb} +10 -1
  125. data/lib/chef/knife/client_create.rb +8 -7
  126. data/lib/chef/knife/cookbook_site_download.rb +1 -1
  127. data/lib/chef/knife/cookbook_site_install.rb +1 -1
  128. data/lib/chef/knife/cookbook_site_list.rb +1 -1
  129. data/lib/chef/knife/cookbook_site_search.rb +1 -1
  130. data/lib/chef/knife/cookbook_site_share.rb +39 -28
  131. data/lib/chef/knife/cookbook_site_show.rb +3 -3
  132. data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
  133. data/lib/chef/knife/cookbook_test.rb +1 -0
  134. data/lib/chef/knife/cookbook_upload.rb +13 -8
  135. data/lib/chef/knife/core/bootstrap_context.rb +14 -3
  136. data/lib/chef/knife/core/generic_presenter.rb +5 -2
  137. data/lib/chef/knife/core/object_loader.rb +1 -1
  138. data/lib/chef/knife/core/subcommand_loader.rb +24 -0
  139. data/lib/chef/knife/core/ui.rb +9 -1
  140. data/lib/chef/knife/node_run_list_remove.rb +11 -3
  141. data/lib/chef/knife/raw.rb +14 -3
  142. data/lib/chef/knife/role_env_run_list_add.rb +86 -0
  143. data/lib/chef/knife/role_env_run_list_clear.rb +55 -0
  144. data/lib/chef/knife/role_env_run_list_remove.rb +57 -0
  145. data/lib/chef/knife/role_env_run_list_replace.rb +59 -0
  146. data/lib/chef/knife/role_env_run_list_set.rb +70 -0
  147. data/lib/chef/knife/role_run_list_add.rb +86 -0
  148. data/lib/chef/knife/role_run_list_clear.rb +55 -0
  149. data/lib/chef/knife/role_run_list_remove.rb +57 -0
  150. data/lib/chef/knife/role_run_list_replace.rb +59 -0
  151. data/lib/chef/knife/role_run_list_set.rb +70 -0
  152. data/lib/chef/knife/search.rb +4 -4
  153. data/lib/chef/knife/serve.rb +3 -0
  154. data/lib/chef/knife/ssh.rb +1 -1
  155. data/lib/chef/knife/ssl_check.rb +2 -2
  156. data/lib/chef/knife/ssl_fetch.rb +14 -1
  157. data/lib/chef/log.rb +10 -1
  158. data/lib/chef/mixin/command.rb +1 -1
  159. data/lib/chef/mixin/command/windows.rb +1 -5
  160. data/lib/chef/mixin/get_source_from_package.rb +1 -0
  161. data/lib/chef/mixin/params_validate.rb +2 -2
  162. data/lib/chef/mixin/securable.rb +1 -7
  163. data/lib/chef/mixin/shell_out.rb +7 -1
  164. data/lib/chef/mixin/template.rb +2 -14
  165. data/lib/chef/mixin/why_run.rb +1 -1
  166. data/lib/chef/monkey_patches/net_http.rb +4 -0
  167. data/lib/chef/monologger.rb +0 -2
  168. data/lib/chef/node.rb +5 -2
  169. data/lib/chef/node/attribute.rb +11 -9
  170. data/lib/chef/node/attribute_collections.rb +8 -12
  171. data/lib/chef/node/immutable_collections.rb +4 -10
  172. data/lib/chef/org.rb +148 -0
  173. data/lib/chef/platform/provider_mapping.rb +3 -2
  174. data/lib/chef/platform/provider_priority_map.rb +2 -0
  175. data/lib/chef/platform/query_helpers.rb +0 -3
  176. data/lib/chef/policy_builder/policyfile.rb +51 -8
  177. data/lib/chef/provider/deploy.rb +1 -2
  178. data/lib/chef/provider/directory.rb +3 -3
  179. data/lib/chef/provider/dsc_script.rb +13 -7
  180. data/lib/chef/provider/env.rb +8 -8
  181. data/lib/chef/provider/execute.rb +55 -36
  182. data/lib/chef/provider/file.rb +8 -0
  183. data/lib/chef/provider/group.rb +2 -0
  184. data/lib/chef/provider/group/dscl.rb +3 -4
  185. data/lib/chef/provider/ifconfig.rb +25 -25
  186. data/lib/chef/provider/ifconfig/aix.rb +25 -27
  187. data/lib/chef/provider/lwrp_base.rb +1 -1
  188. data/lib/chef/provider/mount.rb +2 -2
  189. data/lib/chef/provider/mount/mount.rb +3 -4
  190. data/lib/chef/provider/mount/solaris.rb +1 -1
  191. data/lib/chef/provider/package.rb +297 -48
  192. data/lib/chef/provider/package/aix.rb +25 -30
  193. data/lib/chef/provider/package/apt.rb +63 -19
  194. data/lib/chef/provider/package/dpkg.rb +15 -16
  195. data/lib/chef/provider/package/macports.rb +7 -7
  196. data/lib/chef/provider/package/openbsd.rb +107 -0
  197. data/lib/chef/provider/package/pacman.rb +13 -15
  198. data/lib/chef/provider/package/portage.rb +3 -4
  199. data/lib/chef/provider/package/rpm.rb +28 -17
  200. data/lib/chef/provider/package/rubygems.rb +9 -9
  201. data/lib/chef/provider/package/solaris.rb +17 -21
  202. data/lib/chef/provider/package/windows/msi.rb +1 -1
  203. data/lib/chef/provider/package/yum-dump.py +2 -2
  204. data/lib/chef/provider/package/yum.rb +117 -51
  205. data/lib/chef/provider/package/zypper.rb +17 -18
  206. data/lib/chef/provider/powershell_script.rb +4 -4
  207. data/lib/chef/provider/registry_key.rb +2 -2
  208. data/lib/chef/provider/remote_directory.rb +1 -1
  209. data/lib/chef/provider/script.rb +25 -16
  210. data/lib/chef/provider/service.rb +1 -1
  211. data/lib/chef/provider/service/freebsd.rb +1 -1
  212. data/lib/chef/provider/service/openbsd.rb +216 -0
  213. data/lib/chef/provider/service/upstart.rb +1 -1
  214. data/lib/chef/provider/service/windows.rb +99 -1
  215. data/lib/chef/provider/user.rb +1 -1
  216. data/lib/chef/provider/user/dscl.rb +19 -4
  217. data/lib/chef/providers.rb +2 -0
  218. data/lib/chef/recipe.rb +11 -5
  219. data/lib/chef/request_id.rb +1 -1
  220. data/lib/chef/resource.rb +839 -444
  221. data/lib/chef/resource/chef_gem.rb +20 -3
  222. data/lib/chef/resource/conditional.rb +3 -14
  223. data/lib/chef/resource/dsc_script.rb +14 -0
  224. data/lib/chef/resource/execute.rb +14 -7
  225. data/lib/chef/resource/file.rb +14 -0
  226. data/lib/chef/resource/file/verification.rb +122 -0
  227. data/lib/chef/resource/ips_package.rb +1 -1
  228. data/lib/chef/resource/lwrp_base.rb +2 -11
  229. data/lib/chef/resource/macports_package.rb +2 -1
  230. data/lib/chef/resource/openbsd_package.rb +51 -0
  231. data/lib/chef/resource/package.rb +2 -2
  232. data/lib/chef/resource/paludis_package.rb +1 -1
  233. data/lib/chef/resource/reboot.rb +1 -1
  234. data/lib/chef/resource/remote_file.rb +1 -0
  235. data/lib/chef/resource/rpm_package.rb +9 -0
  236. data/lib/chef/resource/script.rb +11 -0
  237. data/lib/chef/resource/template.rb +2 -3
  238. data/lib/chef/resource/windows_package.rb +1 -1
  239. data/lib/chef/resource/windows_service.rb +18 -0
  240. data/lib/chef/resource_builder.rb +137 -0
  241. data/lib/chef/resource_definition.rb +1 -1
  242. data/lib/chef/resource_reporter.rb +1 -1
  243. data/lib/chef/resources.rb +1 -0
  244. data/lib/chef/role.rb +17 -4
  245. data/lib/chef/run_context.rb +10 -6
  246. data/lib/chef/search/query.rb +66 -87
  247. data/lib/chef/shell/ext.rb +2 -2
  248. data/lib/chef/util/diff.rb +1 -4
  249. data/lib/chef/util/dsc/configuration_generator.rb +30 -6
  250. data/lib/chef/util/dsc/lcm_output_parser.rb +7 -3
  251. data/lib/chef/util/dsc/local_configuration_manager.rb +8 -8
  252. data/lib/chef/util/file_edit.rb +2 -2
  253. data/lib/chef/util/path_helper.rb +1 -4
  254. data/lib/chef/util/windows/net_use.rb +3 -3
  255. data/lib/chef/version.rb +1 -1
  256. data/lib/chef/win32/api.rb +1 -0
  257. data/lib/chef/win32/api/security.rb +26 -0
  258. data/lib/chef/win32/file.rb +21 -0
  259. data/lib/chef/win32/security.rb +46 -0
  260. data/lib/chef/win32/security/token.rb +8 -0
  261. data/lib/chef/win32/version.rb +0 -4
  262. data/spec/data/recipes.tgz +0 -0
  263. data/spec/functional/application_spec.rb +1 -1
  264. data/spec/functional/audit/rspec_formatter_spec.rb +54 -0
  265. data/spec/functional/audit/runner_spec.rb +137 -0
  266. data/spec/functional/dsl/reboot_pending_spec.rb +10 -10
  267. data/spec/functional/dsl/registry_helper_spec.rb +6 -6
  268. data/spec/functional/event_loggers/windows_eventlog_spec.rb +5 -5
  269. data/spec/functional/file_content_management/deploy_strategies_spec.rb +12 -21
  270. data/spec/functional/http/simple_spec.rb +1 -1
  271. data/spec/functional/knife/cookbook_delete_spec.rb +24 -24
  272. data/spec/functional/knife/exec_spec.rb +2 -4
  273. data/spec/functional/knife/smoke_test.rb +1 -1
  274. data/spec/functional/knife/ssh_spec.rb +23 -23
  275. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +8 -8
  276. data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +2 -2
  277. data/spec/functional/rebooter_spec.rb +1 -1
  278. data/spec/functional/resource/aix_service_spec.rb +3 -0
  279. data/spec/functional/resource/aixinit_service_spec.rb +3 -3
  280. data/spec/functional/resource/bash_spec.rb +88 -0
  281. data/spec/functional/resource/deploy_revision_spec.rb +99 -100
  282. data/spec/functional/resource/env_spec.rb +3 -3
  283. data/spec/functional/resource/execute_spec.rb +97 -63
  284. data/spec/functional/resource/file_spec.rb +7 -7
  285. data/spec/functional/resource/git_spec.rb +13 -13
  286. data/spec/functional/resource/group_spec.rb +28 -25
  287. data/spec/functional/resource/ifconfig_spec.rb +2 -2
  288. data/spec/functional/resource/link_spec.rb +77 -78
  289. data/spec/functional/resource/mount_spec.rb +5 -5
  290. data/spec/functional/resource/ohai_spec.rb +1 -1
  291. data/spec/functional/resource/package_spec.rb +22 -22
  292. data/spec/functional/resource/powershell_spec.rb +57 -42
  293. data/spec/functional/resource/reboot_spec.rb +2 -2
  294. data/spec/functional/resource/registry_spec.rb +91 -91
  295. data/spec/functional/resource/remote_directory_spec.rb +19 -19
  296. data/spec/functional/resource/remote_file_spec.rb +18 -18
  297. data/spec/functional/resource/template_spec.rb +4 -4
  298. data/spec/functional/resource/user/dscl_spec.rb +4 -4
  299. data/spec/functional/resource/user/useradd_spec.rb +64 -51
  300. data/spec/functional/resource/windows_service_spec.rb +98 -0
  301. data/spec/functional/run_lock_spec.rb +9 -9
  302. data/spec/functional/shell_spec.rb +3 -3
  303. data/spec/functional/tiny_server_spec.rb +12 -12
  304. data/spec/functional/util/path_helper_spec.rb +1 -1
  305. data/spec/functional/version_spec.rb +1 -1
  306. data/spec/functional/win32/registry_helper_spec.rb +125 -125
  307. data/spec/functional/win32/security_spec.rb +65 -2
  308. data/spec/functional/win32/service_manager_spec.rb +30 -84
  309. data/spec/functional/win32/versions_spec.rb +6 -6
  310. data/spec/integration/client/client_spec.rb +102 -9
  311. data/spec/integration/knife/chef_fs_data_store_spec.rb +12 -8
  312. data/spec/integration/knife/common_options_spec.rb +3 -3
  313. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  314. data/spec/integration/knife/deps_spec.rb +4 -4
  315. data/spec/integration/knife/diff_spec.rb +6 -6
  316. data/spec/integration/knife/download_spec.rb +6 -6
  317. data/spec/integration/knife/list_spec.rb +2 -2
  318. data/spec/integration/knife/raw_spec.rb +5 -5
  319. data/spec/integration/knife/serve_spec.rb +3 -3
  320. data/spec/integration/knife/show_spec.rb +3 -3
  321. data/spec/integration/knife/upload_spec.rb +18 -18
  322. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  323. data/spec/integration/solo/solo_spec.rb +11 -12
  324. data/spec/spec_helper.rb +27 -15
  325. data/spec/stress/win32/file_spec.rb +4 -4
  326. data/spec/stress/win32/security_spec.rb +4 -4
  327. data/spec/support/chef_helpers.rb +3 -3
  328. data/spec/support/matchers/leak.rb +2 -2
  329. data/spec/support/mock/platform.rb +1 -1
  330. data/spec/support/pedant/Gemfile +3 -0
  331. data/spec/support/pedant/pedant_config.rb +9 -2
  332. data/spec/support/pedant/run_pedant.rb +15 -16
  333. data/spec/support/platform_helpers.rb +8 -12
  334. data/spec/support/shared/functional/directory_resource.rb +13 -13
  335. data/spec/support/shared/functional/file_resource.rb +83 -83
  336. data/spec/support/shared/functional/http.rb +1 -1
  337. data/spec/support/shared/functional/securable_resource.rb +64 -64
  338. data/spec/support/shared/functional/securable_resource_with_reporting.rb +43 -41
  339. data/spec/support/shared/functional/win32_service.rb +60 -0
  340. data/spec/support/shared/functional/windows_script.rb +8 -8
  341. data/spec/support/shared/integration/knife_support.rb +8 -5
  342. data/spec/support/shared/matchers/exit_with_code.rb +6 -2
  343. data/spec/support/shared/unit/api_error_inspector.rb +8 -8
  344. data/spec/support/shared/unit/execute_resource.rb +24 -20
  345. data/spec/support/shared/unit/file_system_support.rb +2 -2
  346. data/spec/support/shared/unit/platform_introspector.rb +21 -21
  347. data/spec/support/shared/unit/provider/file.rb +239 -210
  348. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +69 -69
  349. data/spec/support/shared/unit/script_resource.rb +40 -32
  350. data/spec/support/shared/unit/windows_script_resource.rb +8 -8
  351. data/spec/unit/api_client/registration_spec.rb +47 -47
  352. data/spec/unit/api_client_spec.rb +107 -69
  353. data/spec/unit/application/apply_spec.rb +31 -15
  354. data/spec/unit/application/client_spec.rb +146 -45
  355. data/spec/unit/application/knife_spec.rb +31 -31
  356. data/spec/unit/application/solo_spec.rb +59 -43
  357. data/spec/unit/application_spec.rb +109 -74
  358. data/spec/unit/audit/audit_event_proxy_spec.rb +311 -0
  359. data/spec/unit/audit/audit_reporter_spec.rb +393 -0
  360. data/spec/unit/audit/control_group_data_spec.rb +478 -0
  361. data/{lib/chef/monkey_patches/file.rb → spec/unit/audit/rspec_formatter_spec.rb} +11 -8
  362. data/spec/unit/audit/runner_spec.rb +135 -0
  363. data/spec/unit/chef_fs/config_spec.rb +52 -0
  364. data/spec/unit/chef_fs/diff_spec.rb +12 -12
  365. data/spec/unit/chef_fs/file_pattern_spec.rb +276 -277
  366. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +6 -6
  367. data/spec/unit/chef_fs/file_system_spec.rb +26 -13
  368. data/spec/unit/chef_fs/parallelizer.rb +87 -87
  369. data/spec/unit/chef_spec.rb +1 -1
  370. data/spec/unit/client_spec.rb +263 -97
  371. data/spec/unit/config_fetcher_spec.rb +13 -13
  372. data/spec/unit/config_spec.rb +105 -66
  373. data/spec/unit/cookbook/chefignore_spec.rb +6 -6
  374. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +3 -3
  375. data/spec/unit/cookbook/metadata_spec.rb +149 -149
  376. data/spec/unit/cookbook/syntax_check_spec.rb +36 -31
  377. data/spec/unit/cookbook_loader_spec.rb +62 -58
  378. data/spec/unit/cookbook_manifest_spec.rb +141 -468
  379. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +27 -27
  380. data/spec/unit/cookbook_spec.rb +15 -15
  381. data/spec/unit/cookbook_uploader_spec.rb +37 -3
  382. data/spec/unit/cookbook_version_file_specificity_spec.rb +554 -0
  383. data/spec/unit/cookbook_version_spec.rb +98 -240
  384. data/spec/unit/daemon_spec.rb +31 -31
  385. data/spec/unit/data_bag_item_spec.rb +121 -89
  386. data/spec/unit/data_bag_spec.rb +35 -35
  387. data/spec/unit/deprecation_spec.rb +27 -14
  388. data/spec/unit/digester_spec.rb +3 -3
  389. data/spec/unit/dsl/audit_spec.rb +43 -0
  390. data/spec/unit/dsl/data_query_spec.rb +1 -1
  391. data/spec/unit/dsl/platform_introspection_spec.rb +14 -14
  392. data/spec/unit/dsl/reboot_pending_spec.rb +18 -18
  393. data/spec/unit/dsl/regsitry_helper_spec.rb +6 -6
  394. data/spec/unit/encrypted_data_bag_item_spec.rb +58 -82
  395. data/spec/unit/environment_spec.rb +105 -105
  396. data/spec/unit/exceptions_spec.rb +47 -1
  397. data/spec/unit/file_access_control_spec.rb +62 -56
  398. data/spec/unit/file_cache_spec.rb +11 -11
  399. data/spec/unit/file_content_management/deploy/cp_spec.rb +2 -2
  400. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +10 -10
  401. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +23 -23
  402. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +14 -14
  403. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +12 -12
  404. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
  405. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +16 -16
  406. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +4 -4
  407. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +103 -13
  408. data/spec/unit/guard_interpreter_spec.rb +41 -0
  409. data/spec/unit/handler/json_file_spec.rb +10 -10
  410. data/spec/unit/handler_spec.rb +39 -39
  411. data/spec/unit/http/basic_client_spec.rb +3 -3
  412. data/spec/unit/http/http_request_spec.rb +10 -10
  413. data/spec/unit/http/simple_spec.rb +3 -3
  414. data/spec/unit/http/ssl_policies_spec.rb +15 -15
  415. data/spec/unit/http/validate_content_length_spec.rb +18 -13
  416. data/spec/unit/http_spec.rb +16 -9
  417. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +153 -0
  418. data/spec/unit/knife/bootstrap/client_builder_spec.rb +178 -0
  419. data/spec/unit/knife/bootstrap_spec.rb +144 -91
  420. data/spec/unit/knife/client_bulk_delete_spec.rb +24 -24
  421. data/spec/unit/knife/client_create_spec.rb +57 -43
  422. data/spec/unit/knife/client_delete_spec.rb +15 -15
  423. data/spec/unit/knife/client_edit_spec.rb +4 -4
  424. data/spec/unit/knife/client_list_spec.rb +2 -2
  425. data/spec/unit/knife/client_reregister_spec.rb +9 -9
  426. data/spec/unit/knife/configure_client_spec.rb +20 -20
  427. data/spec/unit/knife/configure_spec.rb +85 -85
  428. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +15 -15
  429. data/spec/unit/knife/cookbook_create_spec.rb +59 -59
  430. data/spec/unit/knife/cookbook_delete_spec.rb +49 -49
  431. data/spec/unit/knife/cookbook_download_spec.rb +56 -56
  432. data/spec/unit/knife/cookbook_list_spec.rb +9 -9
  433. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +8 -8
  434. data/spec/unit/knife/cookbook_metadata_spec.rb +44 -44
  435. data/spec/unit/knife/cookbook_show_spec.rb +29 -29
  436. data/spec/unit/knife/cookbook_site_download_spec.rb +26 -26
  437. data/spec/unit/knife/cookbook_site_install_spec.rb +5 -1
  438. data/spec/unit/knife/cookbook_site_share_spec.rb +68 -59
  439. data/spec/unit/knife/cookbook_site_unshare_spec.rb +15 -15
  440. data/spec/unit/knife/cookbook_test_spec.rb +16 -16
  441. data/spec/unit/knife/cookbook_upload_spec.rb +105 -71
  442. data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -22
  443. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +36 -36
  444. data/spec/unit/knife/core/object_loader_spec.rb +3 -3
  445. data/spec/unit/knife/core/subcommand_loader_spec.rb +107 -33
  446. data/spec/unit/knife/core/ui_spec.rb +84 -72
  447. data/spec/unit/knife/data_bag_from_file_spec.rb +1 -1
  448. data/spec/unit/knife/environment_compare_spec.rb +12 -12
  449. data/spec/unit/knife/environment_create_spec.rb +16 -16
  450. data/spec/unit/knife/environment_delete_spec.rb +14 -14
  451. data/spec/unit/knife/environment_edit_spec.rb +15 -15
  452. data/spec/unit/knife/environment_from_file_spec.rb +17 -17
  453. data/spec/unit/knife/environment_list_spec.rb +7 -7
  454. data/spec/unit/knife/environment_show_spec.rb +10 -10
  455. data/spec/unit/knife/index_rebuild_spec.rb +17 -17
  456. data/spec/unit/knife/knife_help.rb +24 -24
  457. data/spec/unit/knife/node_bulk_delete_spec.rb +14 -14
  458. data/spec/unit/knife/node_delete_spec.rb +11 -11
  459. data/spec/unit/knife/node_edit_spec.rb +17 -17
  460. data/spec/unit/knife/node_environment_set_spec.rb +12 -12
  461. data/spec/unit/knife/node_from_file_spec.rb +8 -8
  462. data/spec/unit/knife/node_list_spec.rb +9 -9
  463. data/spec/unit/knife/node_run_list_add_spec.rb +29 -29
  464. data/spec/unit/knife/node_run_list_remove_spec.rb +28 -13
  465. data/spec/unit/knife/node_run_list_set_spec.rb +27 -27
  466. data/spec/unit/knife/raw_spec.rb +43 -0
  467. data/spec/unit/knife/role_bulk_delete_spec.rb +12 -12
  468. data/spec/unit/knife/role_create_spec.rb +12 -12
  469. data/spec/unit/knife/role_delete_spec.rb +10 -10
  470. data/spec/unit/knife/role_edit_spec.rb +13 -13
  471. data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -0
  472. data/spec/unit/knife/role_env_run_list_clear_spec.rb +100 -0
  473. data/spec/unit/knife/role_env_run_list_remove_spec.rb +108 -0
  474. data/spec/unit/knife/role_env_run_list_replace_spec.rb +108 -0
  475. data/spec/unit/knife/role_env_run_list_set_spec.rb +102 -0
  476. data/spec/unit/knife/role_from_file_spec.rb +10 -10
  477. data/spec/unit/knife/role_list_spec.rb +7 -7
  478. data/spec/unit/knife/role_run_list_add_spec.rb +179 -0
  479. data/spec/unit/knife/role_run_list_clear_spec.rb +90 -0
  480. data/spec/unit/knife/role_run_list_remove_spec.rb +98 -0
  481. data/spec/unit/knife/role_run_list_replace_spec.rb +101 -0
  482. data/spec/unit/knife/role_run_list_set_spec.rb +92 -0
  483. data/spec/unit/knife/ssh_spec.rb +66 -66
  484. data/spec/unit/knife/ssl_check_spec.rb +27 -27
  485. data/spec/unit/knife/ssl_fetch_spec.rb +45 -12
  486. data/spec/unit/knife/status_spec.rb +5 -5
  487. data/spec/unit/knife/tag_create_spec.rb +5 -5
  488. data/spec/unit/knife/tag_delete_spec.rb +6 -6
  489. data/spec/unit/knife/tag_list_spec.rb +4 -4
  490. data/spec/unit/knife/user_create_spec.rb +18 -18
  491. data/spec/unit/knife/user_delete_spec.rb +4 -4
  492. data/spec/unit/knife/user_edit_spec.rb +7 -7
  493. data/spec/unit/knife/user_list_spec.rb +2 -2
  494. data/spec/unit/knife/user_reregister_spec.rb +10 -10
  495. data/spec/unit/knife/user_show_spec.rb +5 -5
  496. data/spec/unit/knife_spec.rb +36 -36
  497. data/spec/unit/lwrp_spec.rb +63 -39
  498. data/spec/unit/mash_spec.rb +6 -6
  499. data/spec/unit/mixin/checksum_spec.rb +2 -2
  500. data/spec/unit/mixin/command_spec.rb +13 -13
  501. data/spec/unit/mixin/convert_to_class_name_spec.rb +6 -6
  502. data/spec/unit/mixin/deep_merge_spec.rb +49 -49
  503. data/spec/unit/mixin/deprecation_spec.rb +5 -5
  504. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +14 -14
  505. data/spec/unit/mixin/homebrew_user_spec.rb +3 -3
  506. data/spec/unit/mixin/params_validate_spec.rb +71 -71
  507. data/spec/unit/mixin/path_sanity_spec.rb +14 -14
  508. data/spec/unit/mixin/securable_spec.rb +177 -177
  509. data/spec/unit/mixin/shell_out_spec.rb +56 -27
  510. data/spec/unit/mixin/template_spec.rb +31 -31
  511. data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
  512. data/spec/unit/mixin/xml_escape_spec.rb +7 -7
  513. data/spec/unit/monkey_patches/uri_spec.rb +1 -1
  514. data/spec/unit/monologger_spec.rb +3 -3
  515. data/spec/unit/node/attribute_spec.rb +185 -136
  516. data/spec/unit/node/immutable_collections_spec.rb +22 -22
  517. data/spec/unit/node_spec.rb +210 -179
  518. data/spec/unit/org_spec.rb +196 -0
  519. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  520. data/spec/unit/platform_spec.rb +46 -46
  521. data/spec/unit/policy_builder/expand_node_object_spec.rb +17 -18
  522. data/spec/unit/policy_builder/policyfile_spec.rb +159 -71
  523. data/spec/unit/provider/directory_spec.rb +5 -5
  524. data/spec/unit/provider/dsc_script_spec.rb +6 -6
  525. data/spec/unit/provider/env_spec.rb +27 -14
  526. data/spec/unit/provider/execute_spec.rb +139 -68
  527. data/spec/unit/provider/file/content_spec.rb +8 -8
  528. data/spec/unit/provider/git_spec.rb +10 -5
  529. data/spec/unit/provider/group/dscl_spec.rb +8 -11
  530. data/spec/unit/provider/group_spec.rb +13 -13
  531. data/spec/unit/provider/ifconfig/aix_spec.rb +3 -2
  532. data/spec/unit/provider/ifconfig/debian_spec.rb +19 -19
  533. data/spec/unit/provider/ifconfig_spec.rb +2 -2
  534. data/spec/unit/provider/mdadm_spec.rb +2 -2
  535. data/spec/unit/provider/mount/aix_spec.rb +5 -5
  536. data/spec/unit/provider/mount/mount_spec.rb +22 -22
  537. data/spec/unit/provider/mount/solaris_spec.rb +20 -20
  538. data/spec/unit/provider/package/aix_spec.rb +23 -22
  539. data/spec/unit/provider/package/apt_spec.rb +23 -4
  540. data/spec/unit/provider/package/dpkg_spec.rb +14 -15
  541. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
  542. data/spec/unit/provider/package/freebsd/port_spec.rb +1 -1
  543. data/spec/unit/provider/package/ips_spec.rb +1 -2
  544. data/spec/unit/provider/package/macports_spec.rb +14 -14
  545. data/spec/unit/provider/package/openbsd_spec.rb +66 -0
  546. data/spec/unit/provider/package/pacman_spec.rb +15 -14
  547. data/spec/unit/provider/package/portage_spec.rb +11 -11
  548. data/spec/unit/provider/package/rpm_spec.rb +132 -84
  549. data/spec/unit/provider/package/rubygems_spec.rb +54 -25
  550. data/spec/unit/provider/package/solaris_spec.rb +22 -25
  551. data/spec/unit/provider/package/yum_spec.rb +237 -36
  552. data/spec/unit/provider/package/zypper_spec.rb +9 -12
  553. data/spec/unit/provider/package_spec.rb +276 -2
  554. data/spec/unit/provider/package_spec.rbe +0 -0
  555. data/spec/unit/provider/remote_directory_spec.rb +25 -25
  556. data/spec/unit/provider/remote_file/ftp_spec.rb +3 -3
  557. data/spec/unit/provider/route_spec.rb +3 -3
  558. data/spec/unit/provider/script_spec.rb +61 -43
  559. data/spec/unit/provider/service/aix_service_spec.rb +5 -5
  560. data/spec/unit/provider/service/arch_service_spec.rb +5 -5
  561. data/spec/unit/provider/service/debian_service_spec.rb +8 -8
  562. data/spec/unit/provider/service/freebsd_service_spec.rb +16 -2
  563. data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
  564. data/spec/unit/provider/service/init_service_spec.rb +5 -5
  565. data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
  566. data/spec/unit/provider/service/invokercd_service_spec.rb +5 -5
  567. data/spec/unit/provider/service/macosx_spec.rb +7 -7
  568. data/spec/unit/provider/service/openbsd_service_spec.rb +543 -0
  569. data/spec/unit/provider/service/redhat_spec.rb +4 -4
  570. data/spec/unit/provider/service/simple_service_spec.rb +2 -2
  571. data/spec/unit/provider/service/solaris_smf_service_spec.rb +14 -14
  572. data/spec/unit/provider/service/systemd_service_spec.rb +15 -7
  573. data/spec/unit/provider/service/upstart_service_spec.rb +4 -4
  574. data/spec/unit/provider/service/windows_spec.rb +119 -25
  575. data/spec/unit/provider/service_spec.rb +1 -1
  576. data/spec/unit/provider/user/dscl_spec.rb +38 -30
  577. data/spec/unit/provider/user_spec.rb +1 -1
  578. data/spec/unit/provider_resolver_spec.rb +7 -7
  579. data/spec/unit/provider_spec.rb +23 -23
  580. data/spec/unit/recipe_spec.rb +194 -83
  581. data/spec/unit/registry_helper_spec.rb +143 -143
  582. data/spec/unit/resource/chef_gem_spec.rb +117 -3
  583. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  584. data/spec/unit/resource/conditional_spec.rb +56 -15
  585. data/spec/unit/resource/deploy_spec.rb +2 -2
  586. data/spec/unit/resource/dsc_script_spec.rb +32 -0
  587. data/spec/unit/resource/execute_spec.rb +4 -0
  588. data/spec/unit/resource/file/verification_spec.rb +111 -0
  589. data/spec/unit/resource/file_spec.rb +14 -0
  590. data/spec/unit/resource/openbsd_package_spec.rb +49 -0
  591. data/spec/unit/resource/remote_file_spec.rb +12 -12
  592. data/spec/unit/resource/resource_notification_spec.rb +18 -18
  593. data/spec/unit/resource/rpm_package_spec.rb +12 -0
  594. data/spec/unit/resource/scm_spec.rb +4 -4
  595. data/spec/unit/resource/script_spec.rb +3 -5
  596. data/spec/unit/resource/subversion_spec.rb +1 -1
  597. data/spec/unit/resource_builder_spec.rb +1 -0
  598. data/spec/unit/resource_collection/resource_list_spec.rb +2 -2
  599. data/spec/unit/resource_collection/resource_set_spec.rb +3 -3
  600. data/spec/unit/resource_collection/stepable_iterator_spec.rb +24 -24
  601. data/spec/unit/resource_collection_spec.rb +52 -52
  602. data/spec/unit/resource_definition_spec.rb +1 -1
  603. data/spec/unit/resource_reporter_spec.rb +118 -118
  604. data/spec/unit/resource_spec.rb +131 -125
  605. data/spec/unit/rest/auth_credentials_spec.rb +73 -73
  606. data/spec/unit/rest_spec.rb +12 -12
  607. data/spec/unit/role_spec.rb +85 -84
  608. data/spec/unit/run_context/cookbook_compiler_spec.rb +18 -18
  609. data/spec/unit/run_context_spec.rb +39 -68
  610. data/spec/unit/run_list/run_list_expansion_spec.rb +21 -21
  611. data/spec/unit/run_list/run_list_item_spec.rb +28 -28
  612. data/spec/unit/run_list/versioned_recipe_list_spec.rb +14 -14
  613. data/spec/unit/run_list_spec.rb +55 -55
  614. data/spec/unit/run_lock_spec.rb +14 -14
  615. data/spec/unit/run_status_spec.rb +24 -24
  616. data/spec/unit/scan_access_control_spec.rb +23 -23
  617. data/spec/unit/search/query_spec.rb +54 -66
  618. data/spec/unit/shell/model_wrapper_spec.rb +13 -13
  619. data/spec/unit/shell/shell_ext_spec.rb +32 -32
  620. data/spec/unit/shell/shell_session_spec.rb +24 -24
  621. data/spec/unit/shell_out_spec.rb +4 -4
  622. data/spec/unit/shell_spec.rb +27 -27
  623. data/spec/unit/user_spec.rb +50 -50
  624. data/spec/unit/util/backup_spec.rb +32 -32
  625. data/spec/unit/util/diff_spec.rb +31 -31
  626. data/spec/unit/util/dsc/configuration_generator_spec.rb +38 -16
  627. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +21 -26
  628. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +10 -10
  629. data/spec/unit/util/editor_spec.rb +10 -10
  630. data/spec/unit/util/file_edit_spec.rb +10 -10
  631. data/spec/unit/util/path_helper_spec.rb +38 -46
  632. data/spec/unit/util/powershell/cmdlet_spec.rb +9 -9
  633. data/spec/unit/util/selinux_spec.rb +30 -30
  634. data/spec/unit/util/threaded_job_queue_spec.rb +6 -6
  635. data/spec/unit/version/platform_spec.rb +5 -5
  636. data/spec/unit/version_class_spec.rb +15 -15
  637. data/spec/unit/version_constraint/platform_spec.rb +7 -7
  638. data/spec/unit/version_constraint_spec.rb +43 -43
  639. data/spec/unit/windows_service_spec.rb +15 -15
  640. data/spec/unit/workstation_config_loader_spec.rb +2 -2
  641. data/tasks/rspec.rb +16 -18
  642. metadata +126 -49
  643. data/bin/shef +0 -35
  644. data/lib/chef/application/agent.rb +0 -18
  645. data/lib/chef/monkey_patches/fileutils.rb +0 -65
  646. data/lib/chef/monkey_patches/numeric.rb +0 -15
  647. data/lib/chef/monkey_patches/object.rb +0 -9
  648. data/lib/chef/monkey_patches/pathname.rb +0 -32
  649. data/lib/chef/monkey_patches/regexp.rb +0 -34
  650. data/lib/chef/monkey_patches/securerandom.rb +0 -44
  651. data/lib/chef/monkey_patches/string.rb +0 -49
  652. data/lib/chef/monkey_patches/tempfile.rb +0 -64
  653. data/lib/chef/monkey_patches/uri.rb +0 -70
@@ -39,33 +39,33 @@ describe Chef::Resource do
39
39
 
40
40
  it "adds an entry to a list of subclasses" do
41
41
  subclass = Class.new(Chef::Resource)
42
- Chef::Resource.resource_classes.should include(subclass)
42
+ expect(Chef::Resource.resource_classes).to include(subclass)
43
43
  end
44
44
 
45
45
  it "keeps track of subclasses of subclasses" do
46
46
  subclass = Class.new(Chef::Resource)
47
47
  subclass_of_subclass = Class.new(subclass)
48
- Chef::Resource.resource_classes.should include(subclass_of_subclass)
48
+ expect(Chef::Resource.resource_classes).to include(subclass_of_subclass)
49
49
  end
50
50
 
51
51
  end
52
52
 
53
53
  describe "when declaring the identity attribute" do
54
54
  it "has no identity attribute by default" do
55
- Chef::Resource.identity_attr.should be_nil
55
+ expect(Chef::Resource.identity_attr).to be_nil
56
56
  end
57
57
 
58
58
  it "sets an identity attribute" do
59
59
  resource_class = Class.new(Chef::Resource)
60
60
  resource_class.identity_attr(:path)
61
- resource_class.identity_attr.should == :path
61
+ expect(resource_class.identity_attr).to eq(:path)
62
62
  end
63
63
 
64
64
  it "inherits an identity attribute from a superclass" do
65
65
  resource_class = Class.new(Chef::Resource)
66
66
  resource_subclass = Class.new(resource_class)
67
67
  resource_class.identity_attr(:package_name)
68
- resource_subclass.identity_attr.should == :package_name
68
+ expect(resource_subclass.identity_attr).to eq(:package_name)
69
69
  end
70
70
 
71
71
  it "overrides the identity attribute from a superclass when the identity attr is set" do
@@ -73,7 +73,7 @@ describe Chef::Resource do
73
73
  resource_subclass = Class.new(resource_class)
74
74
  resource_class.identity_attr(:package_name)
75
75
  resource_subclass.identity_attr(:something_else)
76
- resource_subclass.identity_attr.should == :something_else
76
+ expect(resource_subclass.identity_attr).to eq(:something_else)
77
77
  end
78
78
  end
79
79
 
@@ -85,7 +85,7 @@ describe Chef::Resource do
85
85
  # Would rather force identity attributes to be set for everything,
86
86
  # but that's not plausible for back compat reasons.
87
87
  it "uses the name as the identity" do
88
- @resource_sans_id.identity.should == "my-name"
88
+ expect(@resource_sans_id.identity).to eq("my-name")
89
89
  end
90
90
  end
91
91
 
@@ -101,26 +101,26 @@ describe Chef::Resource do
101
101
  end
102
102
 
103
103
  it "gives the value of its identity attribute" do
104
- @file_resource.identity.should == "/tmp/foo.txt"
104
+ expect(@file_resource.identity).to eq("/tmp/foo.txt")
105
105
  end
106
106
  end
107
107
 
108
108
  describe "when declaring state attributes" do
109
109
  it "has no state_attrs by default" do
110
- Chef::Resource.state_attrs.should be_empty
110
+ expect(Chef::Resource.state_attrs).to be_empty
111
111
  end
112
112
 
113
113
  it "sets a list of state attributes" do
114
114
  resource_class = Class.new(Chef::Resource)
115
115
  resource_class.state_attrs(:checksum, :owner, :group, :mode)
116
- resource_class.state_attrs.should =~ [:checksum, :owner, :group, :mode]
116
+ expect(resource_class.state_attrs).to match_array([:checksum, :owner, :group, :mode])
117
117
  end
118
118
 
119
119
  it "inherits state attributes from the superclass" do
120
120
  resource_class = Class.new(Chef::Resource)
121
121
  resource_subclass = Class.new(resource_class)
122
122
  resource_class.state_attrs(:checksum, :owner, :group, :mode)
123
- resource_subclass.state_attrs.should =~ [:checksum, :owner, :group, :mode]
123
+ expect(resource_subclass.state_attrs).to match_array([:checksum, :owner, :group, :mode])
124
124
  end
125
125
 
126
126
  it "combines inherited state attributes with non-inherited state attributes" do
@@ -128,7 +128,7 @@ describe Chef::Resource do
128
128
  resource_subclass = Class.new(resource_class)
129
129
  resource_class.state_attrs(:checksum, :owner)
130
130
  resource_subclass.state_attrs(:group, :mode)
131
- resource_subclass.state_attrs.should =~ [:checksum, :owner, :group, :mode]
131
+ expect(resource_subclass.state_attrs).to match_array([:checksum, :owner, :group, :mode])
132
132
  end
133
133
 
134
134
  end
@@ -154,15 +154,15 @@ describe Chef::Resource do
154
154
 
155
155
  it "describes its state" do
156
156
  resource_state = @file_resource.state
157
- resource_state.keys.should =~ [:checksum, :owner, :group, :mode]
158
- resource_state[:checksum].should == "abc123"
159
- resource_state[:owner].should == "root"
160
- resource_state[:group].should == "wheel"
161
- resource_state[:mode].should == "0644"
157
+ expect(resource_state.keys).to match_array([:checksum, :owner, :group, :mode])
158
+ expect(resource_state[:checksum]).to eq("abc123")
159
+ expect(resource_state[:owner]).to eq("root")
160
+ expect(resource_state[:group]).to eq("wheel")
161
+ expect(resource_state[:mode]).to eq("0644")
162
162
  end
163
163
  end
164
164
 
165
- describe "load_prior_resource" do
165
+ describe "load_from" do
166
166
  before(:each) do
167
167
  @prior_resource = Chef::Resource.new("funk")
168
168
  @prior_resource.supports(:funky => true)
@@ -174,40 +174,40 @@ describe Chef::Resource do
174
174
  end
175
175
 
176
176
  it "should load the attributes of a prior resource" do
177
- @resource.load_prior_resource(@resource.resource_name, @resource.name)
178
- @resource.supports.should == { :funky => true }
177
+ @resource.load_from(@prior_resource)
178
+ expect(@resource.supports).to eq({ :funky => true })
179
179
  end
180
180
 
181
181
  it "should not inherit the action from the prior resource" do
182
- @resource.load_prior_resource(@resource.resource_name, @resource.name)
183
- @resource.action.should_not == @prior_resource.action
182
+ @resource.load_from(@prior_resource)
183
+ expect(@resource.action).not_to eq(@prior_resource.action)
184
184
  end
185
185
  end
186
186
 
187
187
  describe "name" do
188
188
  it "should have a name" do
189
- @resource.name.should eql("funk")
189
+ expect(@resource.name).to eql("funk")
190
190
  end
191
191
 
192
192
  it "should let you set a new name" do
193
193
  @resource.name "monkey"
194
- @resource.name.should eql("monkey")
194
+ expect(@resource.name).to eql("monkey")
195
195
  end
196
196
 
197
- it "should not be valid without a name" do
198
- lambda { @resource.name false }.should raise_error(ArgumentError)
197
+ it "coerces arrays to names" do
198
+ expect(@resource.name ['a', 'b']).to eql('a, b')
199
199
  end
200
200
 
201
- it "should always have a string for name" do
202
- lambda { @resource.name Hash.new }.should raise_error(ArgumentError)
201
+ it "should coerce objects to a string" do
202
+ expect(@resource.name Object.new).to be_a(String)
203
203
  end
204
204
  end
205
205
 
206
206
  describe "noop" do
207
207
  it "should accept true or false for noop" do
208
- lambda { @resource.noop true }.should_not raise_error
209
- lambda { @resource.noop false }.should_not raise_error
210
- lambda { @resource.noop "eat it" }.should raise_error(ArgumentError)
208
+ expect { @resource.noop true }.not_to raise_error
209
+ expect { @resource.noop false }.not_to raise_error
210
+ expect { @resource.noop "eat it" }.to raise_error(ArgumentError)
211
211
  end
212
212
  end
213
213
 
@@ -215,48 +215,54 @@ describe Chef::Resource do
215
215
  it "should make notified resources appear in the actions hash" do
216
216
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
217
217
  @resource.notifies :reload, @run_context.resource_collection.find(:zen_master => "coffee")
218
- @resource.delayed_notifications.detect{|e| e.resource.name == "coffee" && e.action == :reload}.should_not be_nil
218
+ expect(@resource.delayed_notifications.detect{|e| e.resource.name == "coffee" && e.action == :reload}).not_to be_nil
219
219
  end
220
220
 
221
221
  it "should make notified resources be capable of acting immediately" do
222
222
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
223
223
  @resource.notifies :reload, @run_context.resource_collection.find(:zen_master => "coffee"), :immediate
224
- @resource.immediate_notifications.detect{|e| e.resource.name == "coffee" && e.action == :reload}.should_not be_nil
224
+ expect(@resource.immediate_notifications.detect{|e| e.resource.name == "coffee" && e.action == :reload}).not_to be_nil
225
225
  end
226
226
 
227
227
  it "should raise an exception if told to act in other than :delay or :immediate(ly)" do
228
228
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
229
- lambda {
229
+ expect {
230
230
  @resource.notifies :reload, @run_context.resource_collection.find(:zen_master => "coffee"), :someday
231
- }.should raise_error(ArgumentError)
231
+ }.to raise_error(ArgumentError)
232
232
  end
233
233
 
234
234
  it "should allow multiple notified resources appear in the actions hash" do
235
235
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
236
236
  @resource.notifies :reload, @run_context.resource_collection.find(:zen_master => "coffee")
237
- @resource.delayed_notifications.detect{|e| e.resource.name == "coffee" && e.action == :reload}.should_not be_nil
237
+ expect(@resource.delayed_notifications.detect{|e| e.resource.name == "coffee" && e.action == :reload}).not_to be_nil
238
238
 
239
239
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("beans")
240
240
  @resource.notifies :reload, @run_context.resource_collection.find(:zen_master => "beans")
241
- @resource.delayed_notifications.detect{|e| e.resource.name == "beans" && e.action == :reload}.should_not be_nil
241
+ expect(@resource.delayed_notifications.detect{|e| e.resource.name == "beans" && e.action == :reload}).not_to be_nil
242
242
  end
243
243
 
244
244
  it "creates a notification for a resource that is not yet in the resource collection" do
245
245
  @resource.notifies(:restart, :service => 'apache')
246
246
  expected_notification = Chef::Resource::Notification.new({:service => "apache"}, :restart, @resource)
247
- @resource.delayed_notifications.should include(expected_notification)
247
+ expect(@resource.delayed_notifications).to include(expected_notification)
248
248
  end
249
249
 
250
250
  it "notifies another resource immediately" do
251
251
  @resource.notifies_immediately(:restart, :service => 'apache')
252
252
  expected_notification = Chef::Resource::Notification.new({:service => "apache"}, :restart, @resource)
253
- @resource.immediate_notifications.should include(expected_notification)
253
+ expect(@resource.immediate_notifications).to include(expected_notification)
254
254
  end
255
255
 
256
256
  it "notifies a resource to take action at the end of the chef run" do
257
257
  @resource.notifies_delayed(:restart, :service => "apache")
258
258
  expected_notification = Chef::Resource::Notification.new({:service => "apache"}, :restart, @resource)
259
- @resource.delayed_notifications.should include(expected_notification)
259
+ expect(@resource.delayed_notifications).to include(expected_notification)
260
+ end
261
+
262
+ it "notifies a resource with an array for its name via its prettified string name" do
263
+ @run_context.resource_collection << Chef::Resource::ZenMaster.new(["coffee", "tea"])
264
+ @resource.notifies :reload, @run_context.resource_collection.find(:zen_master => "coffee, tea")
265
+ expect(@resource.delayed_notifications.detect{|e| e.resource.name == "coffee, tea" && e.action == :reload}).not_to be_nil
260
266
  end
261
267
  end
262
268
 
@@ -265,76 +271,76 @@ describe Chef::Resource do
265
271
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
266
272
  zr = @run_context.resource_collection.find(:zen_master => "coffee")
267
273
  @resource.subscribes :reload, zr
268
- zr.delayed_notifications.detect{|e| e.resource.name == "funk" && e.action == :reload}.should_not be_nil
274
+ expect(zr.delayed_notifications.detect{|e| e.resource.name == "funk" && e.action == :reload}).not_to be_nil
269
275
  end
270
276
 
271
277
  it "should make resources appear in the actions hash of subscribed nodes" do
272
278
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
273
279
  zr = @run_context.resource_collection.find(:zen_master => "coffee")
274
280
  @resource.subscribes :reload, zr
275
- zr.delayed_notifications.detect{|e| e.resource.name == @resource.name && e.action == :reload}.should_not be_nil
281
+ expect(zr.delayed_notifications.detect{|e| e.resource.name == @resource.name && e.action == :reload}).not_to be_nil
276
282
 
277
283
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("bean")
278
284
  zrb = @run_context.resource_collection.find(:zen_master => "bean")
279
285
  zrb.subscribes :reload, zr
280
- zr.delayed_notifications.detect{|e| e.resource.name == @resource.name && e.action == :reload}.should_not be_nil
286
+ expect(zr.delayed_notifications.detect{|e| e.resource.name == @resource.name && e.action == :reload}).not_to be_nil
281
287
  end
282
288
 
283
289
  it "should make subscribed resources be capable of acting immediately" do
284
290
  @run_context.resource_collection << Chef::Resource::ZenMaster.new("coffee")
285
291
  zr = @run_context.resource_collection.find(:zen_master => "coffee")
286
292
  @resource.subscribes :reload, zr, :immediately
287
- zr.immediate_notifications.detect{|e| e.resource.name == @resource.name && e.action == :reload}.should_not be_nil
293
+ expect(zr.immediate_notifications.detect{|e| e.resource.name == @resource.name && e.action == :reload}).not_to be_nil
288
294
  end
289
295
  end
290
296
 
291
297
  describe "defined_at" do
292
298
  it "should correctly parse source_line on unix-like operating systems" do
293
299
  @resource.source_line = "/some/path/to/file.rb:80:in `wombat_tears'"
294
- @resource.defined_at.should == "/some/path/to/file.rb line 80"
300
+ expect(@resource.defined_at).to eq("/some/path/to/file.rb line 80")
295
301
  end
296
302
 
297
303
  it "should correctly parse source_line on Windows" do
298
304
  @resource.source_line = "C:/some/path/to/file.rb:80 in 1`wombat_tears'"
299
- @resource.defined_at.should == "C:/some/path/to/file.rb line 80"
305
+ expect(@resource.defined_at).to eq("C:/some/path/to/file.rb line 80")
300
306
  end
301
307
 
302
308
  it "should include the cookbook and recipe when it knows it" do
303
309
  @resource.source_line = "/some/path/to/file.rb:80:in `wombat_tears'"
304
310
  @resource.recipe_name = "wombats"
305
311
  @resource.cookbook_name = "animals"
306
- @resource.defined_at.should == "animals::wombats line 80"
312
+ expect(@resource.defined_at).to eq("animals::wombats line 80")
307
313
  end
308
314
 
309
315
  it "should recognize dynamically defined resources" do
310
- @resource.defined_at.should == "dynamically defined"
316
+ expect(@resource.defined_at).to eq("dynamically defined")
311
317
  end
312
318
  end
313
319
 
314
320
  describe "to_s" do
315
321
  it "should become a string like resource_name[name]" do
316
322
  zm = Chef::Resource::ZenMaster.new("coffee")
317
- zm.to_s.should eql("zen_master[coffee]")
323
+ expect(zm.to_s).to eql("zen_master[coffee]")
318
324
  end
319
325
  end
320
326
 
321
327
  describe "is" do
322
328
  it "should return the arguments passed with 'is'" do
323
329
  zm = Chef::Resource::ZenMaster.new("coffee")
324
- zm.is("one", "two", "three").should == %w|one two three|
330
+ expect(zm.is("one", "two", "three")).to eq(%w|one two three|)
325
331
  end
326
332
 
327
- it "should allow arguments preceeded by is to methods" do
333
+ it "should allow arguments preceded by is to methods" do
328
334
  @resource.noop(@resource.is(true))
329
- @resource.noop.should eql(true)
335
+ expect(@resource.noop).to eql(true)
330
336
  end
331
337
  end
332
338
 
333
339
  describe "to_json" do
334
340
  it "should serialize to json" do
335
341
  json = @resource.to_json
336
- json.should =~ /json_class/
337
- json.should =~ /instance_vars/
342
+ expect(json).to match(/json_class/)
343
+ expect(json).to match(/instance_vars/)
338
344
  end
339
345
 
340
346
  include_examples "to_json equalivent to Chef::JSONCompat.to_json" do
@@ -350,9 +356,9 @@ describe Chef::Resource do
350
356
  :noop, :ignore_failure, :name, :source_line,
351
357
  :action, :retries, :retry_delay, :elapsed_time,
352
358
  :default_guard_interpreter, :guard_interpreter, :sensitive ]
353
- (hash.keys - expected_keys).should == []
354
- (expected_keys - hash.keys).should == []
355
- hash[:name].should eql("funk")
359
+ expect(hash.keys - expected_keys).to eq([])
360
+ expect(expected_keys - hash.keys).to eq([])
361
+ expect(hash[:name]).to eql("funk")
356
362
  end
357
363
  end
358
364
 
@@ -360,8 +366,8 @@ describe Chef::Resource do
360
366
  it "should deserialize itself from json" do
361
367
  json = Chef::JSONCompat.to_json(@resource)
362
368
  serialized_node = Chef::JSONCompat.from_json(json)
363
- serialized_node.should be_a_kind_of(Chef::Resource)
364
- serialized_node.name.should eql(@resource.name)
369
+ expect(serialized_node).to be_a_kind_of(Chef::Resource)
370
+ expect(serialized_node.name).to eql(@resource.name)
365
371
  end
366
372
  end
367
373
 
@@ -369,27 +375,27 @@ describe Chef::Resource do
369
375
  it "should allow you to set what features this resource supports" do
370
376
  support_hash = { :one => :two }
371
377
  @resource.supports(support_hash)
372
- @resource.supports.should eql(support_hash)
378
+ expect(@resource.supports).to eql(support_hash)
373
379
  end
374
380
 
375
381
  it "should return the current value of supports" do
376
- @resource.supports.should == {}
382
+ expect(@resource.supports).to eq({})
377
383
  end
378
384
  end
379
385
 
380
386
  describe "ignore_failure" do
381
387
  it "should default to throwing an error if a provider fails for a resource" do
382
- @resource.ignore_failure.should == false
388
+ expect(@resource.ignore_failure).to eq(false)
383
389
  end
384
390
 
385
391
  it "should allow you to set whether a provider should throw exceptions with ignore_failure" do
386
392
  @resource.ignore_failure(true)
387
- @resource.ignore_failure.should == true
393
+ expect(@resource.ignore_failure).to eq(true)
388
394
  end
389
395
 
390
396
  it "should allow you to epic_fail" do
391
397
  @resource.epic_fail(true)
392
- @resource.epic_fail.should == true
398
+ expect(@resource.epic_fail).to eq(true)
393
399
  end
394
400
  end
395
401
 
@@ -404,21 +410,21 @@ describe Chef::Resource do
404
410
  end
405
411
 
406
412
  it "should default to not retrying if a provider fails for a resource" do
407
- @retriable_resource.retries.should == 0
413
+ expect(@retriable_resource.retries).to eq(0)
408
414
  end
409
415
 
410
416
  it "should allow you to set how many retries a provider should attempt after a failure" do
411
417
  @retriable_resource.retries(2)
412
- @retriable_resource.retries.should == 2
418
+ expect(@retriable_resource.retries).to eq(2)
413
419
  end
414
420
 
415
421
  it "should default to a retry delay of 2 seconds" do
416
- @retriable_resource.retry_delay.should == 2
422
+ expect(@retriable_resource.retry_delay).to eq(2)
417
423
  end
418
424
 
419
425
  it "should allow you to set the retry delay" do
420
426
  @retriable_resource.retry_delay(10)
421
- @retriable_resource.retry_delay.should == 10
427
+ expect(@retriable_resource.retry_delay).to eq(10)
422
428
  end
423
429
 
424
430
  it "should keep given value of retries intact after the provider fails for a resource" do
@@ -426,29 +432,29 @@ describe Chef::Resource do
426
432
  @retriable_resource.retry_delay(0) # No need to wait.
427
433
 
428
434
  provider = Chef::Provider::SnakeOil.new(@retriable_resource, @run_context)
429
- Chef::Provider::SnakeOil.stub(:new).and_return(provider)
430
- provider.stub(:action_purr).and_raise
435
+ allow(Chef::Provider::SnakeOil).to receive(:new).and_return(provider)
436
+ allow(provider).to receive(:action_purr).and_raise
431
437
 
432
- @retriable_resource.should_receive(:sleep).exactly(3).times
438
+ expect(@retriable_resource).to receive(:sleep).exactly(3).times
433
439
  expect { @retriable_resource.run_action(:purr) }.to raise_error
434
- @retriable_resource.retries.should == 3
440
+ expect(@retriable_resource.retries).to eq(3)
435
441
  end
436
442
  end
437
443
 
438
444
  describe "setting the base provider class for the resource" do
439
445
 
440
446
  it "defaults to Chef::Provider for the base class" do
441
- Chef::Resource.provider_base.should == Chef::Provider
447
+ expect(Chef::Resource.provider_base).to eq(Chef::Provider)
442
448
  end
443
449
 
444
450
  it "allows the base provider to be overriden by a " do
445
- ResourceTestHarness.provider_base.should == Chef::Provider::Package
451
+ expect(ResourceTestHarness.provider_base).to eq(Chef::Provider::Package)
446
452
  end
447
453
 
448
454
  end
449
455
 
450
456
  it "runs an action by finding its provider, loading the current resource and then running the action" do
451
- pending
457
+ skip
452
458
  end
453
459
 
454
460
  describe "when updated by a provider" do
@@ -457,11 +463,11 @@ describe Chef::Resource do
457
463
  end
458
464
 
459
465
  it "records that it was updated" do
460
- @resource.should be_updated
466
+ expect(@resource).to be_updated
461
467
  end
462
468
 
463
469
  it "records that the last action updated the resource" do
464
- @resource.should be_updated_by_last_action
470
+ expect(@resource).to be_updated_by_last_action
465
471
  end
466
472
 
467
473
  describe "and then run again without being updated" do
@@ -470,11 +476,11 @@ describe Chef::Resource do
470
476
  end
471
477
 
472
478
  it "reports that it is updated" do
473
- @resource.should be_updated
479
+ expect(@resource).to be_updated
474
480
  end
475
481
 
476
482
  it "reports that it was not updated by the last action" do
477
- @resource.should_not be_updated_by_last_action
483
+ expect(@resource).not_to be_updated_by_last_action
478
484
  end
479
485
 
480
486
  end
@@ -498,10 +504,10 @@ describe Chef::Resource do
498
504
  it "runs runs an only_if when one is given" do
499
505
  snitch_variable = nil
500
506
  @resource.only_if { snitch_variable = true }
501
- @resource.only_if.first.positivity.should == :only_if
507
+ expect(@resource.only_if.first.positivity).to eq(:only_if)
502
508
  #Chef::Mixin::Command.should_receive(:only_if).with(true, {}).and_return(false)
503
509
  @resource.run_action(:purr)
504
- snitch_variable.should be_true
510
+ expect(snitch_variable).to be_truthy
505
511
  end
506
512
 
507
513
  it "runs multiple only_if conditionals" do
@@ -509,25 +515,25 @@ describe Chef::Resource do
509
515
  @resource.only_if { snitch_var1 = 1 }
510
516
  @resource.only_if { snitch_var2 = 2 }
511
517
  @resource.run_action(:purr)
512
- snitch_var1.should == 1
513
- snitch_var2.should == 2
518
+ expect(snitch_var1).to eq(1)
519
+ expect(snitch_var2).to eq(2)
514
520
  end
515
521
 
516
522
  it "accepts command options for only_if conditionals" do
517
- Chef::Resource::Conditional.any_instance.should_receive(:evaluate_command).at_least(1).times
523
+ expect_any_instance_of(Chef::Resource::Conditional).to receive(:evaluate_command).at_least(1).times
518
524
  @resource.only_if("true", :cwd => '/tmp')
519
- @resource.only_if.first.command_opts.should == {:cwd => '/tmp'}
525
+ expect(@resource.only_if.first.command_opts).to eq({:cwd => '/tmp'})
520
526
  @resource.run_action(:purr)
521
527
  end
522
528
 
523
529
  it "runs not_if as a command when it is a string" do
524
- Chef::Resource::Conditional.any_instance.should_receive(:evaluate_command).at_least(1).times
530
+ expect_any_instance_of(Chef::Resource::Conditional).to receive(:evaluate_command).at_least(1).times
525
531
  @resource.not_if "pwd"
526
532
  @resource.run_action(:purr)
527
533
  end
528
534
 
529
535
  it "runs not_if as a block when it is a ruby block" do
530
- Chef::Resource::Conditional.any_instance.should_receive(:evaluate_block).at_least(1).times
536
+ expect_any_instance_of(Chef::Resource::Conditional).to receive(:evaluate_block).at_least(1).times
531
537
  @resource.not_if { puts 'foo' }
532
538
  @resource.run_action(:purr)
533
539
  end
@@ -540,7 +546,7 @@ describe Chef::Resource do
540
546
 
541
547
  it "accepts command options for not_if conditionals" do
542
548
  @resource.not_if("pwd" , :cwd => '/tmp')
543
- @resource.not_if.first.command_opts.should == {:cwd => '/tmp'}
549
+ expect(@resource.not_if.first.command_opts).to eq({:cwd => '/tmp'})
544
550
  end
545
551
 
546
552
  it "accepts multiple not_if conditionals" do
@@ -548,27 +554,27 @@ describe Chef::Resource do
548
554
  @resource.not_if {snitch_var1 = nil}
549
555
  @resource.not_if {snitch_var2 = false}
550
556
  @resource.run_action(:purr)
551
- snitch_var1.should be_nil
552
- snitch_var2.should be_false
557
+ expect(snitch_var1).to be_nil
558
+ expect(snitch_var2).to be_falsey
553
559
  end
554
560
 
555
561
  it "reports 0 elapsed time if actual elapsed time is < 0" do
556
562
  expected = Time.now
557
- Time.stub(:now).and_return(expected, expected - 1)
563
+ allow(Time).to receive(:now).and_return(expected, expected - 1)
558
564
  @resource.run_action(:purr)
559
- @resource.elapsed_time.should == 0
565
+ expect(@resource.elapsed_time).to eq(0)
560
566
  end
561
567
 
562
568
  describe "guard_interpreter attribute" do
563
569
  let(:resource) { @resource }
564
570
 
565
571
  it "should be set to :default by default" do
566
- resource.guard_interpreter.should == :default
572
+ expect(resource.guard_interpreter).to eq(:default)
567
573
  end
568
574
 
569
575
  it "if set to :default should return :default when read" do
570
576
  resource.guard_interpreter(:default)
571
- resource.guard_interpreter.should == :default
577
+ expect(resource.guard_interpreter).to eq(:default)
572
578
  end
573
579
 
574
580
  it "should raise Chef::Exceptions::ValidationFailed on an attempt to set the guard_interpreter attribute to something other than a Symbol" do
@@ -576,7 +582,7 @@ describe Chef::Resource do
576
582
  end
577
583
 
578
584
  it "should not raise an exception when setting the guard interpreter attribute to a Symbol" do
579
- Chef::GuardInterpreter::ResourceGuardInterpreter.stub(:new).and_return(nil)
585
+ allow(Chef::GuardInterpreter::ResourceGuardInterpreter).to receive(:new).and_return(nil)
580
586
  expect { resource.guard_interpreter(:command_dot_com) }.not_to raise_error
581
587
  end
582
588
  end
@@ -588,63 +594,63 @@ describe Chef::Resource do
588
594
  end
589
595
 
590
596
  it "should return false by default" do
591
- @resource.should_skip?(:purr).should be_false
597
+ expect(@resource.should_skip?(:purr)).to be_falsey
592
598
  end
593
599
 
594
600
  it "should return false when only_if is met" do
595
601
  @resource.only_if { true }
596
- @resource.should_skip?(:purr).should be_false
602
+ expect(@resource.should_skip?(:purr)).to be_falsey
597
603
  end
598
604
 
599
605
  it "should return true when only_if is not met" do
600
606
  @resource.only_if { false }
601
- @resource.should_skip?(:purr).should be_true
607
+ expect(@resource.should_skip?(:purr)).to be_truthy
602
608
  end
603
609
 
604
610
  it "should return true when not_if is met" do
605
611
  @resource.not_if { true }
606
- @resource.should_skip?(:purr).should be_true
612
+ expect(@resource.should_skip?(:purr)).to be_truthy
607
613
  end
608
614
 
609
615
  it "should return false when not_if is not met" do
610
616
  @resource.not_if { false }
611
- @resource.should_skip?(:purr).should be_false
617
+ expect(@resource.should_skip?(:purr)).to be_falsey
612
618
  end
613
619
 
614
620
  it "should return true when only_if is met but also not_if is met" do
615
621
  @resource.only_if { true }
616
622
  @resource.not_if { true }
617
- @resource.should_skip?(:purr).should be_true
623
+ expect(@resource.should_skip?(:purr)).to be_truthy
618
624
  end
619
625
 
620
626
  it "should return true when one of multiple only_if's is not met" do
621
627
  @resource.only_if { true }
622
628
  @resource.only_if { false }
623
629
  @resource.only_if { true }
624
- @resource.should_skip?(:purr).should be_true
630
+ expect(@resource.should_skip?(:purr)).to be_truthy
625
631
  end
626
632
 
627
633
  it "should return true when one of multiple not_if's is met" do
628
634
  @resource.not_if { false }
629
635
  @resource.not_if { true }
630
636
  @resource.not_if { false }
631
- @resource.should_skip?(:purr).should be_true
637
+ expect(@resource.should_skip?(:purr)).to be_truthy
632
638
  end
633
639
 
634
640
  it "should return true when action is :nothing" do
635
- @resource.should_skip?(:nothing).should be_true
641
+ expect(@resource.should_skip?(:nothing)).to be_truthy
636
642
  end
637
643
 
638
644
  it "should return true when action is :nothing ignoring only_if/not_if conditionals" do
639
645
  @resource.only_if { true }
640
646
  @resource.not_if { false }
641
- @resource.should_skip?(:nothing).should be_true
647
+ expect(@resource.should_skip?(:nothing)).to be_truthy
642
648
  end
643
649
 
644
650
  it "should print \"skipped due to action :nothing\" message for doc formatter when action is :nothing" do
645
651
  fdoc = Chef::Formatters.new(:doc, STDOUT, STDERR)
646
- @run_context.stub(:events).and_return(fdoc)
647
- fdoc.should_receive(:puts).with(" (skipped due to action :nothing)", anything())
652
+ allow(@run_context).to receive(:events).and_return(fdoc)
653
+ expect(fdoc).to receive(:puts).with(" (skipped due to action :nothing)", anything())
648
654
  @resource.should_skip?(:nothing)
649
655
  end
650
656
 
@@ -664,7 +670,7 @@ describe Chef::Resource do
664
670
  @resource1.only_if { snitch_var1 = 1 }
665
671
  @resource1.not_if { snitch_var1 = 2 }
666
672
  @resource1.run_action(:nothing)
667
- snitch_var1.should == 0
673
+ expect(snitch_var1).to eq(0)
668
674
  end
669
675
 
670
676
  it "should run only_if/not_if conditionals when notified to run another action (CHEF-972)" do
@@ -685,8 +691,8 @@ describe Chef::Resource do
685
691
  @run_context.resource_collection << @resource2
686
692
  @runner.converge
687
693
 
688
- snitch_var1.should == 1
689
- snitch_var2.should == 2
694
+ expect(snitch_var1).to eq(1)
695
+ expect(snitch_var2).to eq(2)
690
696
  end
691
697
  end
692
698
 
@@ -750,10 +756,10 @@ describe Chef::Resource do
750
756
 
751
757
  describe "resource_for_node" do
752
758
  it "returns a resource by short_name and node" do
753
- Chef::Resource.resource_for_node(:dinobot, @node).should eql(Grimlock)
759
+ expect(Chef::Resource.resource_for_node(:dinobot, @node)).to eql(Grimlock)
754
760
  end
755
761
  it "returns a resource by short_name if nothing else matches" do
756
- Chef::Resource.resource_for_node(:soundwave, @node).should eql(Soundwave)
762
+ expect(Chef::Resource.resource_for_node(:soundwave, @node)).to eql(Soundwave)
757
763
  end
758
764
  end
759
765
 
@@ -765,30 +771,30 @@ describe Chef::Resource do
765
771
 
766
772
  it "creates a delayed notification when timing is not specified" do
767
773
  @resource.notifies(:run, "execute[foo]")
768
- @run_context.delayed_notification_collection.should have(1).notifications
774
+ expect(@run_context.delayed_notification_collection.size).to eq(1)
769
775
  end
770
776
 
771
777
  it "creates a delayed notification when :delayed is not specified" do
772
778
  @resource.notifies(:run, "execute[foo]", :delayed)
773
- @run_context.delayed_notification_collection.should have(1).notifications
779
+ expect(@run_context.delayed_notification_collection.size).to eq(1)
774
780
  end
775
781
 
776
782
  it "creates an immediate notification when :immediate is specified" do
777
783
  @resource.notifies(:run, "execute[foo]", :immediate)
778
- @run_context.immediate_notification_collection.should have(1).notifications
784
+ expect(@run_context.immediate_notification_collection.size).to eq(1)
779
785
  end
780
786
 
781
787
  it "creates an immediate notification when :immediately is specified" do
782
788
  @resource.notifies(:run, "execute[foo]", :immediately)
783
- @run_context.immediate_notification_collection.should have(1).notifications
789
+ expect(@run_context.immediate_notification_collection.size).to eq(1)
784
790
  end
785
791
 
786
792
  describe "with a syntax error in the resource spec" do
787
793
 
788
794
  it "raises an exception immmediately" do
789
- lambda do
795
+ expect do
790
796
  @resource.notifies(:run, "typo[missing-closing-bracket")
791
- end.should raise_error(Chef::Exceptions::InvalidResourceSpecification)
797
+ end.to raise_error(Chef::Exceptions::InvalidResourceSpecification)
792
798
  end
793
799
  end
794
800
  end
@@ -800,22 +806,22 @@ describe Chef::Resource do
800
806
 
801
807
  it "creates a delayed notification when timing is not specified" do
802
808
  @resource.notifies(:run, @notified_resource)
803
- @run_context.delayed_notification_collection.should have(1).notifications
809
+ expect(@run_context.delayed_notification_collection.size).to eq(1)
804
810
  end
805
811
 
806
812
  it "creates a delayed notification when :delayed is not specified" do
807
813
  @resource.notifies(:run, @notified_resource, :delayed)
808
- @run_context.delayed_notification_collection.should have(1).notifications
814
+ expect(@run_context.delayed_notification_collection.size).to eq(1)
809
815
  end
810
816
 
811
817
  it "creates an immediate notification when :immediate is specified" do
812
818
  @resource.notifies(:run, @notified_resource, :immediate)
813
- @run_context.immediate_notification_collection.should have(1).notifications
819
+ expect(@run_context.immediate_notification_collection.size).to eq(1)
814
820
  end
815
821
 
816
822
  it "creates an immediate notification when :immediately is specified" do
817
823
  @resource.notifies(:run, @notified_resource, :immediately)
818
- @run_context.immediate_notification_collection.should have(1).notifications
824
+ expect(@run_context.immediate_notification_collection.size).to eq(1)
819
825
  end
820
826
  end
821
827
 
@@ -837,19 +843,19 @@ describe Chef::Resource do
837
843
  end
838
844
 
839
845
  it "set to false by default" do
840
- @resource.sensitive.should be_false
846
+ expect(@resource.sensitive).to be_falsey
841
847
  end
842
848
 
843
849
  it "when set to false should show compiled resource for failed resource" do
844
850
  expect { @resource_file.run_action(@action) }.to raise_error { |err|
845
- compiled_resource_data(@resource_file, @action, err).should match 'path "/nonexistent/CHEF-5098/file"'
851
+ expect(compiled_resource_data(@resource_file, @action, err)).to match 'path "/nonexistent/CHEF-5098/file"'
846
852
  }
847
853
  end
848
854
 
849
855
  it "when set to true should show compiled resource for failed resource" do
850
856
  @resource_file.sensitive true
851
857
  expect { @resource_file.run_action(@action) }.to raise_error { |err|
852
- compiled_resource_data(@resource_file, @action, err).should eql("suppressed sensitive resource output")
858
+ expect(compiled_resource_data(@resource_file, @action, err)).to eql("suppressed sensitive resource output")
853
859
  }
854
860
  end
855
861