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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -23,18 +23,18 @@ describe Chef::Cookbook::Chefignore do
23
23
  end
24
24
 
25
25
  it "loads the globs in the chefignore file" do
26
- @chefignore.ignores.should =~ %w[recipes/ignoreme.rb ignored]
26
+ expect(@chefignore.ignores).to match_array(%w[recipes/ignoreme.rb ignored])
27
27
  end
28
28
 
29
29
  it "removes items from an array that match the ignores" do
30
30
  file_list = %w[ recipes/ignoreme.rb recipes/dontignoreme.rb ]
31
- @chefignore.remove_ignores_from(file_list).should == %w[recipes/dontignoreme.rb]
31
+ expect(@chefignore.remove_ignores_from(file_list)).to eq(%w[recipes/dontignoreme.rb])
32
32
  end
33
33
 
34
34
  it "determines if a file is ignored" do
35
- @chefignore.ignored?('ignored').should be_true
36
- @chefignore.ignored?('recipes/ignoreme.rb').should be_true
37
- @chefignore.ignored?('recipes/dontignoreme.rb').should be_false
35
+ expect(@chefignore.ignored?('ignored')).to be_truthy
36
+ expect(@chefignore.ignored?('recipes/ignoreme.rb')).to be_truthy
37
+ expect(@chefignore.ignored?('recipes/dontignoreme.rb')).to be_falsey
38
38
  end
39
39
 
40
40
  context "when using the single cookbook pattern" do
@@ -43,7 +43,7 @@ describe Chef::Cookbook::Chefignore do
43
43
  end
44
44
 
45
45
  it "loads the globs in the chefignore file" do
46
- @chefignore.ignores.should =~ %w[recipes/ignoreme.rb ignored vendor/bundle/*]
46
+ expect(@chefignore.ignores).to match_array(%w[recipes/ignoreme.rb ignored vendor/bundle/*])
47
47
  end
48
48
  end
49
49
  end
@@ -20,7 +20,7 @@ require 'spec_helper'
20
20
 
21
21
  describe Chef::Cookbook::CookbookVersionLoader do
22
22
  before do
23
- Chef::Platform.stub(:windows?) { false }
23
+ allow(Chef::Platform).to receive(:windows?) { false }
24
24
  end
25
25
 
26
26
  describe "loading a cookbook" do
@@ -74,8 +74,8 @@ describe Chef::Cookbook::CookbookVersionLoader do
74
74
  end
75
75
 
76
76
  it "should load the metadata for the cookbook" do
77
- loaded_cookbook.metadata.name.to_s.should == "openldap"
78
- loaded_cookbook.metadata.should be_a_kind_of(Chef::Cookbook::Metadata)
77
+ expect(loaded_cookbook.metadata.name.to_s).to eq("openldap")
78
+ expect(loaded_cookbook.metadata).to be_a_kind_of(Chef::Cookbook::Metadata)
79
79
  end
80
80
 
81
81
  context "when a cookbook has ignored files" do
@@ -34,7 +34,7 @@ describe Chef::Cookbook::Metadata do
34
34
  end
35
35
 
36
36
  it "does not depend on object identity for equality" do
37
- metadata.should == metadata.dup
37
+ expect(metadata).to eq(metadata.dup)
38
38
  end
39
39
 
40
40
  it "is not equal to another object if it isn't have all of the metadata fields" do
@@ -46,7 +46,7 @@ describe Chef::Cookbook::Metadata do
46
46
  setter = "#{field}="
47
47
  metadata_value = metadata.send(field)
48
48
  almost_duck_type.send(setter, metadata_value) if almost_duck_type.respond_to?(setter)
49
- @mets.should_not == almost_duck_type
49
+ expect(@mets).not_to eq(almost_duck_type)
50
50
  end
51
51
  end
52
52
  end
@@ -58,7 +58,7 @@ describe Chef::Cookbook::Metadata do
58
58
  metadata_value = metadata.send(field)
59
59
  duck_type.send(setter, metadata_value)
60
60
  end
61
- metadata.should == duck_type
61
+ expect(metadata).to eq(duck_type)
62
62
  end
63
63
 
64
64
  it "is not equal if any values are different" do
@@ -73,7 +73,7 @@ describe Chef::Cookbook::Metadata do
73
73
  end
74
74
 
75
75
  duck_type.send("#{field_to_change}=".to_sym, :epic_fail)
76
- metadata.should_not == duck_type
76
+ expect(metadata).not_to eq(duck_type)
77
77
  end
78
78
  end
79
79
 
@@ -82,71 +82,71 @@ describe Chef::Cookbook::Metadata do
82
82
  describe "when first created" do
83
83
 
84
84
  it "has no name" do
85
- metadata.name.should eq(nil)
85
+ expect(metadata.name).to eq(nil)
86
86
  end
87
87
 
88
88
  it "has an empty description" do
89
- metadata.description.should eq("")
89
+ expect(metadata.description).to eq("")
90
90
  end
91
91
 
92
92
  it "has an empty long description" do
93
- metadata.long_description.should eq("")
93
+ expect(metadata.long_description).to eq("")
94
94
  end
95
95
 
96
96
  it "defaults to 'all rights reserved' license" do
97
- metadata.license.should eq("All rights reserved")
97
+ expect(metadata.license).to eq("All rights reserved")
98
98
  end
99
99
 
100
100
  it "has an empty maintainer field" do
101
- metadata.maintainer.should eq(nil)
101
+ expect(metadata.maintainer).to eq(nil)
102
102
  end
103
103
 
104
104
  it "has an empty maintainer_email field" do
105
- metadata.maintainer.should eq(nil)
105
+ expect(metadata.maintainer).to eq(nil)
106
106
  end
107
107
 
108
108
  it "has an empty platforms list" do
109
- metadata.platforms.should eq(Mash.new)
109
+ expect(metadata.platforms).to eq(Mash.new)
110
110
  end
111
111
 
112
112
  it "has an empty dependencies list" do
113
- metadata.dependencies.should eq(Mash.new)
113
+ expect(metadata.dependencies).to eq(Mash.new)
114
114
  end
115
115
 
116
116
  it "has an empty recommends list" do
117
- metadata.recommendations.should eq(Mash.new)
117
+ expect(metadata.recommendations).to eq(Mash.new)
118
118
  end
119
119
 
120
120
  it "has an empty suggestions list" do
121
- metadata.suggestions.should eq(Mash.new)
121
+ expect(metadata.suggestions).to eq(Mash.new)
122
122
  end
123
123
 
124
124
  it "has an empty conflicts list" do
125
- metadata.conflicting.should eq(Mash.new)
125
+ expect(metadata.conflicting).to eq(Mash.new)
126
126
  end
127
127
 
128
128
  it "has an empty replaces list" do
129
- metadata.replacing.should eq(Mash.new)
129
+ expect(metadata.replacing).to eq(Mash.new)
130
130
  end
131
131
 
132
132
  it "has an empty attributes list" do
133
- metadata.attributes.should eq(Mash.new)
133
+ expect(metadata.attributes).to eq(Mash.new)
134
134
  end
135
135
 
136
136
  it "has an empty groupings list" do
137
- metadata.groupings.should eq(Mash.new)
137
+ expect(metadata.groupings).to eq(Mash.new)
138
138
  end
139
139
 
140
140
  it "has an empty recipes list" do
141
- metadata.recipes.should eq(Mash.new)
141
+ expect(metadata.recipes).to eq(Mash.new)
142
142
  end
143
143
 
144
144
  it "has an empty source_url string" do
145
- metadata.source_url.should eq('')
145
+ expect(metadata.source_url).to eq('')
146
146
  end
147
147
 
148
148
  it "has an empty issues_url string" do
149
- metadata.issues_url.should eq('')
149
+ expect(metadata.issues_url).to eq('')
150
150
  end
151
151
  end
152
152
 
@@ -155,12 +155,12 @@ describe Chef::Cookbook::Metadata do
155
155
  context "when no required fields are set" do
156
156
 
157
157
  it "is not valid" do
158
- metadata.should_not be_valid
158
+ expect(metadata).not_to be_valid
159
159
  end
160
160
 
161
161
  it "has a list of validation errors" do
162
162
  expected_errors = ["The `name' attribute is required in cookbook metadata"]
163
- metadata.errors.should eq(expected_errors)
163
+ expect(metadata.errors).to eq(expected_errors)
164
164
  end
165
165
 
166
166
  end
@@ -171,11 +171,11 @@ describe Chef::Cookbook::Metadata do
171
171
  end
172
172
 
173
173
  it "is valid" do
174
- metadata.should be_valid
174
+ expect(metadata).to be_valid
175
175
  end
176
176
 
177
177
  it "has no validation errors" do
178
- metadata.errors.should be_empty
178
+ expect(metadata.errors).to be_empty
179
179
  end
180
180
 
181
181
  end
@@ -185,7 +185,7 @@ describe Chef::Cookbook::Metadata do
185
185
  describe "adding a supported platform" do
186
186
  it "should support adding a supported platform with a single expression" do
187
187
  metadata.supports("ubuntu", ">= 8.04")
188
- metadata.platforms["ubuntu"].should == '>= 8.04'
188
+ expect(metadata.platforms["ubuntu"]).to eq('>= 8.04')
189
189
  end
190
190
  end
191
191
 
@@ -203,23 +203,23 @@ describe Chef::Cookbook::Metadata do
203
203
  params.sort { |a,b| a.to_s <=> b.to_s }.each do |field, field_value|
204
204
  describe field do
205
205
  it "should be set-able via #{field}" do
206
- metadata.send(field, field_value).should eql(field_value)
206
+ expect(metadata.send(field, field_value)).to eql(field_value)
207
207
  end
208
208
  it "should be get-able via #{field}" do
209
209
  metadata.send(field, field_value)
210
- metadata.send(field).should eql(field_value)
210
+ expect(metadata.send(field)).to eql(field_value)
211
211
  end
212
212
  end
213
213
  end
214
214
 
215
215
  describe "version transformation" do
216
216
  it "should transform an '0.6' version to '0.6.0'" do
217
- metadata.send(:version, "0.6").should eql("0.6.0")
217
+ expect(metadata.send(:version, "0.6")).to eql("0.6.0")
218
218
  end
219
219
 
220
220
  it "should spit out '0.6.0' after transforming '0.6'" do
221
221
  metadata.send(:version, "0.6")
222
- metadata.send(:version).should eql("0.6.0")
222
+ expect(metadata.send(:version)).to eql("0.6.0")
223
223
  end
224
224
  end
225
225
  end
@@ -238,11 +238,11 @@ describe Chef::Cookbook::Metadata do
238
238
  check_with = dep_args.shift
239
239
  describe dep do
240
240
  it "should be set-able via #{dep}" do
241
- metadata.send(dep, *dep_args).should == dep_args[1]
241
+ expect(metadata.send(dep, *dep_args)).to eq(dep_args[1])
242
242
  end
243
243
  it "should be get-able via #{check_with}" do
244
244
  metadata.send(dep, *dep_args)
245
- metadata.send(check_with).should == { dep_args[0] => dep_args[1] }
245
+ expect(metadata.send(check_with)).to eq({ dep_args[0] => dep_args[1] })
246
246
  end
247
247
  end
248
248
  end
@@ -260,11 +260,11 @@ describe Chef::Cookbook::Metadata do
260
260
  normalized_version = dep_args.pop
261
261
  describe dep do
262
262
  it "should be set-able and normalized via #{dep}" do
263
- metadata.send(dep, *dep_args).should == normalized_version
263
+ expect(metadata.send(dep, *dep_args)).to eq(normalized_version)
264
264
  end
265
265
  it "should be get-able and normalized via #{check_with}" do
266
266
  metadata.send(dep, *dep_args)
267
- metadata.send(check_with).should == { dep_args[0] => normalized_version }
267
+ expect(metadata.send(check_with)).to eq({ dep_args[0] => normalized_version })
268
268
  end
269
269
  end
270
270
  end
@@ -282,7 +282,7 @@ describe Chef::Cookbook::Metadata do
282
282
 
283
283
  dep_types.each do |dep, dep_args|
284
284
  it "for #{dep} raises an informative error instead of vomiting on your shoes" do
285
- lambda {metadata.send(dep, *dep_args)}.should raise_error(Chef::Exceptions::ObsoleteDependencySyntax)
285
+ expect {metadata.send(dep, *dep_args)}.to raise_error(Chef::Exceptions::ObsoleteDependencySyntax)
286
286
  end
287
287
  end
288
288
  end
@@ -300,7 +300,7 @@ describe Chef::Cookbook::Metadata do
300
300
 
301
301
  dep_types.each do |dep, dep_args|
302
302
  it "for #{dep} raises an informative error instead of vomiting on your shoes" do
303
- lambda {metadata.send(dep, *dep_args)}.should raise_error(Chef::Exceptions::InvalidVersionConstraint)
303
+ expect {metadata.send(dep, *dep_args)}.to raise_error(Chef::Exceptions::InvalidVersionConstraint)
304
304
  end
305
305
  end
306
306
  end
@@ -312,24 +312,24 @@ describe Chef::Cookbook::Metadata do
312
312
  "title" => "MySQL Tuning",
313
313
  "description" => "Setting from the my.cnf file that allow you to tune your mysql server"
314
314
  }
315
- metadata.grouping("/db/mysql/databases/tuning", group).should == group
315
+ expect(metadata.grouping("/db/mysql/databases/tuning", group)).to eq(group)
316
316
  end
317
317
  it "should not accept anything but a string for display_name" do
318
- lambda {
318
+ expect {
319
319
  metadata.grouping("db/mysql/databases", :title => "foo")
320
- }.should_not raise_error
321
- lambda {
320
+ }.not_to raise_error
321
+ expect {
322
322
  metadata.grouping("db/mysql/databases", :title => Hash.new)
323
- }.should raise_error(ArgumentError)
323
+ }.to raise_error(ArgumentError)
324
324
  end
325
325
 
326
326
  it "should not accept anything but a string for the description" do
327
- lambda {
327
+ expect {
328
328
  metadata.grouping("db/mysql/databases", :description => "foo")
329
- }.should_not raise_error
330
- lambda {
329
+ }.not_to raise_error
330
+ expect {
331
331
  metadata.grouping("db/mysql/databases", :description => Hash.new)
332
- }.should raise_error(ArgumentError)
332
+ }.to raise_error(ArgumentError)
333
333
  end
334
334
  end
335
335
 
@@ -347,170 +347,170 @@ describe Chef::Cookbook::Metadata do
347
347
  "source_url" => "http://example.com",
348
348
  "issues_url" => "http://example.com/issues"
349
349
  }
350
- metadata.attribute("/db/mysql/databases", attrs).should == attrs
350
+ expect(metadata.attribute("/db/mysql/databases", attrs)).to eq(attrs)
351
351
  end
352
352
 
353
353
  it "should not accept anything but a string for display_name" do
354
- lambda {
354
+ expect {
355
355
  metadata.attribute("db/mysql/databases", :display_name => "foo")
356
- }.should_not raise_error
357
- lambda {
356
+ }.not_to raise_error
357
+ expect {
358
358
  metadata.attribute("db/mysql/databases", :display_name => Hash.new)
359
- }.should raise_error(ArgumentError)
359
+ }.to raise_error(ArgumentError)
360
360
  end
361
361
 
362
362
  it "should not accept anything but a string for the description" do
363
- lambda {
363
+ expect {
364
364
  metadata.attribute("db/mysql/databases", :description => "foo")
365
- }.should_not raise_error
366
- lambda {
365
+ }.not_to raise_error
366
+ expect {
367
367
  metadata.attribute("db/mysql/databases", :description => Hash.new)
368
- }.should raise_error(ArgumentError)
368
+ }.to raise_error(ArgumentError)
369
369
  end
370
370
 
371
371
  it "should not accept anything but a string for the source_url" do
372
- lambda {
372
+ expect {
373
373
  metadata.attribute("db/mysql/databases", :source_url => "foo")
374
- }.should_not raise_error
375
- lambda {
374
+ }.not_to raise_error
375
+ expect {
376
376
  metadata.attribute("db/mysql/databases", :source_url => Hash.new)
377
- }.should raise_error(ArgumentError)
377
+ }.to raise_error(ArgumentError)
378
378
  end
379
379
 
380
380
  it "should not accept anything but a string for the issues_url" do
381
- lambda {
381
+ expect {
382
382
  metadata.attribute("db/mysql/databases", :issues_url => "foo")
383
- }.should_not raise_error
384
- lambda {
383
+ }.not_to raise_error
384
+ expect {
385
385
  metadata.attribute("db/mysql/databases", :issues_url => Hash.new)
386
- }.should raise_error(ArgumentError)
386
+ }.to raise_error(ArgumentError)
387
387
  end
388
388
 
389
389
  it "should not accept anything but an array of strings for choice" do
390
- lambda {
390
+ expect {
391
391
  metadata.attribute("db/mysql/databases", :choice => ['dedicated', 'shared'])
392
- }.should_not raise_error
393
- lambda {
392
+ }.not_to raise_error
393
+ expect {
394
394
  metadata.attribute("db/mysql/databases", :choice => [10, 'shared'])
395
- }.should raise_error(ArgumentError)
396
- lambda {
395
+ }.to raise_error(ArgumentError)
396
+ expect {
397
397
  metadata.attribute("db/mysql/databases", :choice => Hash.new)
398
- }.should raise_error(ArgumentError)
398
+ }.to raise_error(ArgumentError)
399
399
  end
400
400
 
401
401
  it "should set choice to empty array by default" do
402
402
  metadata.attribute("db/mysql/databases", {})
403
- metadata.attributes["db/mysql/databases"][:choice].should == []
403
+ expect(metadata.attributes["db/mysql/databases"][:choice]).to eq([])
404
404
  end
405
405
 
406
406
  it "should let calculated be true or false" do
407
- lambda {
407
+ expect {
408
408
  metadata.attribute("db/mysql/databases", :calculated => true)
409
- }.should_not raise_error
410
- lambda {
409
+ }.not_to raise_error
410
+ expect {
411
411
  metadata.attribute("db/mysql/databases", :calculated => false)
412
- }.should_not raise_error
413
- lambda {
412
+ }.not_to raise_error
413
+ expect {
414
414
  metadata.attribute("db/mysql/databases", :calculated => Hash.new)
415
- }.should raise_error(ArgumentError)
415
+ }.to raise_error(ArgumentError)
416
416
  end
417
417
 
418
418
  it "should set calculated to false by default" do
419
419
  metadata.attribute("db/mysql/databases", {})
420
- metadata.attributes["db/mysql/databases"][:calculated].should == false
420
+ expect(metadata.attributes["db/mysql/databases"][:calculated]).to eq(false)
421
421
  end
422
422
 
423
423
  it "accepts String for the attribute type" do
424
- lambda {
424
+ expect {
425
425
  metadata.attribute("db/mysql/databases", :type => "string")
426
- }.should_not raise_error
426
+ }.not_to raise_error
427
427
  end
428
428
 
429
429
  it "accepts Array for the attribute type" do
430
- lambda {
430
+ expect {
431
431
  metadata.attribute("db/mysql/databases", :type => "array")
432
- }.should_not raise_error
433
- lambda {
432
+ }.not_to raise_error
433
+ expect {
434
434
  metadata.attribute("db/mysql/databases", :type => Array.new)
435
- }.should raise_error(ArgumentError)
435
+ }.to raise_error(ArgumentError)
436
436
  end
437
437
 
438
438
  it "accepts symbol for the attribute type" do
439
- lambda {
439
+ expect {
440
440
  metadata.attribute("db/mysql/databases", :type => "symbol")
441
- }.should_not raise_error
441
+ }.not_to raise_error
442
442
  end
443
443
 
444
- it "should let type be hash (backwards compatability only)" do
445
- lambda {
444
+ it "should let type be hash (backwards compatibility only)" do
445
+ expect {
446
446
  metadata.attribute("db/mysql/databases", :type => "hash")
447
- }.should_not raise_error
447
+ }.not_to raise_error
448
448
  end
449
449
 
450
450
  it "should let required be required, recommended or optional" do
451
- lambda {
451
+ expect {
452
452
  metadata.attribute("db/mysql/databases", :required => 'required')
453
- }.should_not raise_error
454
- lambda {
453
+ }.not_to raise_error
454
+ expect {
455
455
  metadata.attribute("db/mysql/databases", :required => 'recommended')
456
- }.should_not raise_error
457
- lambda {
456
+ }.not_to raise_error
457
+ expect {
458
458
  metadata.attribute("db/mysql/databases", :required => 'optional')
459
- }.should_not raise_error
459
+ }.not_to raise_error
460
460
  end
461
461
 
462
462
  it "should convert required true to required" do
463
- lambda {
463
+ expect {
464
464
  metadata.attribute("db/mysql/databases", :required => true)
465
- }.should_not raise_error
465
+ }.not_to raise_error
466
466
  #attrib = metadata.attributes["db/mysql/databases"][:required].should == "required"
467
467
  end
468
468
 
469
469
  it "should convert required false to optional" do
470
- lambda {
470
+ expect {
471
471
  metadata.attribute("db/mysql/databases", :required => false)
472
- }.should_not raise_error
472
+ }.not_to raise_error
473
473
  #attrib = metadata.attributes["db/mysql/databases"][:required].should == "optional"
474
474
  end
475
475
 
476
476
  it "should set required to 'optional' by default" do
477
477
  metadata.attribute("db/mysql/databases", {})
478
- metadata.attributes["db/mysql/databases"][:required].should == 'optional'
478
+ expect(metadata.attributes["db/mysql/databases"][:required]).to eq('optional')
479
479
  end
480
480
 
481
481
  it "should make sure recipes is an array" do
482
- lambda {
482
+ expect {
483
483
  metadata.attribute("db/mysql/databases", :recipes => [])
484
- }.should_not raise_error
485
- lambda {
484
+ }.not_to raise_error
485
+ expect {
486
486
  metadata.attribute("db/mysql/databases", :required => Hash.new)
487
- }.should raise_error(ArgumentError)
487
+ }.to raise_error(ArgumentError)
488
488
  end
489
489
 
490
490
  it "should set recipes to an empty array by default" do
491
491
  metadata.attribute("db/mysql/databases", {})
492
- metadata.attributes["db/mysql/databases"][:recipes].should == []
492
+ expect(metadata.attributes["db/mysql/databases"][:recipes]).to eq([])
493
493
  end
494
494
 
495
495
  it "should allow the default value to be a string, array, hash, boolean or numeric" do
496
- lambda {
496
+ expect {
497
497
  metadata.attribute("db/mysql/databases", :default => [])
498
- }.should_not raise_error
499
- lambda {
498
+ }.not_to raise_error
499
+ expect {
500
500
  metadata.attribute("db/mysql/databases", :default => {})
501
- }.should_not raise_error
502
- lambda {
501
+ }.not_to raise_error
502
+ expect {
503
503
  metadata.attribute("db/mysql/databases", :default => "alice in chains")
504
- }.should_not raise_error
505
- lambda {
504
+ }.not_to raise_error
505
+ expect {
506
506
  metadata.attribute("db/mysql/databases", :default => 1337)
507
- }.should_not raise_error
508
- lambda {
507
+ }.not_to raise_error
508
+ expect {
509
509
  metadata.attribute("db/mysql/databases", :default => true)
510
- }.should_not raise_error
511
- lambda {
510
+ }.not_to raise_error
511
+ expect {
512
512
  metadata.attribute("db/mysql/databases", :required => :not_gonna_do_it)
513
- }.should raise_error(ArgumentError)
513
+ }.to raise_error(ArgumentError)
514
514
  end
515
515
 
516
516
  it "should limit the types allowed in the choice array" do
@@ -519,87 +519,87 @@ describe Chef::Cookbook::Metadata do
519
519
  :choice => [ "test1", "test2" ],
520
520
  :default => "test1"
521
521
  }
522
- lambda {
522
+ expect {
523
523
  metadata.attribute("test_cookbook/test", options)
524
- }.should_not raise_error
524
+ }.not_to raise_error
525
525
 
526
526
  options = {
527
527
  :type => "boolean",
528
528
  :choice => [ true, false ],
529
529
  :default => true
530
530
  }
531
- lambda {
531
+ expect {
532
532
  metadata.attribute("test_cookbook/test", options)
533
- }.should_not raise_error
533
+ }.not_to raise_error
534
534
 
535
535
  options = {
536
536
  :type => "numeric",
537
537
  :choice => [ 1337, 420 ],
538
538
  :default => 1337
539
539
  }
540
- lambda {
540
+ expect {
541
541
  metadata.attribute("test_cookbook/test", options)
542
- }.should_not raise_error
542
+ }.not_to raise_error
543
543
 
544
544
  options = {
545
545
  :type => "numeric",
546
546
  :choice => [ true, "false" ],
547
547
  :default => false
548
548
  }
549
- lambda {
549
+ expect {
550
550
  metadata.attribute("test_cookbook/test", options)
551
- }.should raise_error
551
+ }.to raise_error
552
552
  end
553
553
 
554
554
  it "should error if default used with calculated" do
555
- lambda {
555
+ expect {
556
556
  attrs = {
557
557
  :calculated => true,
558
558
  :default => [ "I thought you said calculated" ]
559
559
  }
560
560
  metadata.attribute("db/mysql/databases", attrs)
561
- }.should raise_error(ArgumentError)
562
- lambda {
561
+ }.to raise_error(ArgumentError)
562
+ expect {
563
563
  attrs = {
564
564
  :calculated => true,
565
565
  :default => "I thought you said calculated"
566
566
  }
567
567
  metadata.attribute("db/mysql/databases", attrs)
568
- }.should raise_error(ArgumentError)
568
+ }.to raise_error(ArgumentError)
569
569
  end
570
570
 
571
571
  it "should allow a default that is a choice" do
572
- lambda {
572
+ expect {
573
573
  attrs = {
574
574
  :choice => [ "a", "b", "c"],
575
575
  :default => "b"
576
576
  }
577
577
  metadata.attribute("db/mysql/databases", attrs)
578
- }.should_not raise_error
579
- lambda {
578
+ }.not_to raise_error
579
+ expect {
580
580
  attrs = {
581
581
  :choice => [ "a", "b", "c", "d", "e"],
582
582
  :default => ["b", "d"]
583
583
  }
584
584
  metadata.attribute("db/mysql/databases", attrs)
585
- }.should_not raise_error
585
+ }.not_to raise_error
586
586
  end
587
587
 
588
588
  it "should error if default is not a choice" do
589
- lambda {
589
+ expect {
590
590
  attrs = {
591
591
  :choice => [ "a", "b", "c"],
592
592
  :default => "d"
593
593
  }
594
594
  metadata.attribute("db/mysql/databases", attrs)
595
- }.should raise_error(ArgumentError)
596
- lambda {
595
+ }.to raise_error(ArgumentError)
596
+ expect {
597
597
  attrs = {
598
598
  :choice => [ "a", "b", "c", "d", "e"],
599
599
  :default => ["b", "z"]
600
600
  }
601
601
  metadata.attribute("db/mysql/databases", attrs)
602
- }.should raise_error(ArgumentError)
602
+ }.to raise_error(ArgumentError)
603
603
  end
604
604
  end
605
605
 
@@ -616,18 +616,18 @@ describe Chef::Cookbook::Metadata do
616
616
  end
617
617
 
618
618
  it "should have the names of the recipes" do
619
- metadata.recipes["test_cookbook"].should == ""
620
- metadata.recipes["test_cookbook::enlighten"].should == ""
619
+ expect(metadata.recipes["test_cookbook"]).to eq("")
620
+ expect(metadata.recipes["test_cookbook::enlighten"]).to eq("")
621
621
  end
622
622
 
623
623
  it "should let you set the description for a recipe" do
624
624
  metadata.recipe "test_cookbook", "It, um... tests stuff?"
625
- metadata.recipes["test_cookbook"].should == "It, um... tests stuff?"
625
+ expect(metadata.recipes["test_cookbook"]).to eq("It, um... tests stuff?")
626
626
  end
627
627
 
628
628
  it "should automatically provide each recipe" do
629
- metadata.providing.has_key?("test_cookbook").should == true
630
- metadata.providing.has_key?("test_cookbook::enlighten").should == true
629
+ expect(metadata.providing.has_key?("test_cookbook")).to eq(true)
630
+ expect(metadata.providing.has_key?("test_cookbook::enlighten")).to eq(true)
631
631
  end
632
632
 
633
633
  end
@@ -662,7 +662,7 @@ describe Chef::Cookbook::Metadata do
662
662
  let(:deserialized_metadata) { Chef::JSONCompat.from_json(Chef::JSONCompat.to_json(metadata)) }
663
663
 
664
664
  it "should serialize to a json hash" do
665
- deserialized_metadata.should be_a_kind_of(Hash)
665
+ expect(deserialized_metadata).to be_a_kind_of(Hash)
666
666
  end
667
667
 
668
668
  %w{
@@ -686,7 +686,7 @@ describe Chef::Cookbook::Metadata do
686
686
  issues_url
687
687
  }.each do |t|
688
688
  it "should include '#{t}'" do
689
- deserialized_metadata[t].should == metadata.send(t.to_sym)
689
+ expect(deserialized_metadata[t]).to eq(metadata.send(t.to_sym))
690
690
  end
691
691
  end
692
692
  end
@@ -697,7 +697,7 @@ describe Chef::Cookbook::Metadata do
697
697
 
698
698
 
699
699
  it "should deserialize to a Chef::Cookbook::Metadata object" do
700
- deserialized_metadata.should be_a_kind_of(Chef::Cookbook::Metadata)
700
+ expect(deserialized_metadata).to be_a_kind_of(Chef::Cookbook::Metadata)
701
701
  end
702
702
 
703
703
  %w{
@@ -721,7 +721,7 @@ describe Chef::Cookbook::Metadata do
721
721
  issues_url
722
722
  }.each do |t|
723
723
  it "should match '#{t}'" do
724
- deserialized_metadata.send(t.to_sym).should == metadata.send(t.to_sym)
724
+ expect(deserialized_metadata.send(t.to_sym)).to eq(metadata.send(t.to_sym))
725
725
  end
726
726
  end
727
727
  end
@@ -739,31 +739,31 @@ describe Chef::Cookbook::Metadata do
739
739
  it "should transform deprecated greater than syntax for :#{to_check.to_s}" do
740
740
  @hash[to_check.to_s]["foo::bar"] = ">> 0.2"
741
741
  deserial = Chef::Cookbook::Metadata.from_hash(@hash)
742
- deserial.send(to_check)["foo::bar"].should == '> 0.2'
742
+ expect(deserial.send(to_check)["foo::bar"]).to eq('> 0.2')
743
743
  end
744
744
 
745
745
  it "should transform deprecated less than syntax for :#{to_check.to_s}" do
746
746
  @hash[to_check.to_s]["foo::bar"] = "<< 0.2"
747
747
  deserial = Chef::Cookbook::Metadata.from_hash(@hash)
748
- deserial.send(to_check)["foo::bar"].should == '< 0.2'
748
+ expect(deserial.send(to_check)["foo::bar"]).to eq('< 0.2')
749
749
  end
750
750
 
751
751
  it "should ignore multiple dependency constraints for :#{to_check.to_s}" do
752
752
  @hash[to_check.to_s]["foo::bar"] = [ ">= 1.0", "<= 5.2" ]
753
753
  deserial = Chef::Cookbook::Metadata.from_hash(@hash)
754
- deserial.send(to_check)["foo::bar"].should == []
754
+ expect(deserial.send(to_check)["foo::bar"]).to eq([])
755
755
  end
756
756
 
757
757
  it "should accept an empty array of dependency constraints for :#{to_check.to_s}" do
758
758
  @hash[to_check.to_s]["foo::bar"] = []
759
759
  deserial = Chef::Cookbook::Metadata.from_hash(@hash)
760
- deserial.send(to_check)["foo::bar"].should == []
760
+ expect(deserial.send(to_check)["foo::bar"]).to eq([])
761
761
  end
762
762
 
763
763
  it "should accept single-element arrays of dependency constraints for :#{to_check.to_s}" do
764
764
  @hash[to_check.to_s]["foo::bar"] = [ ">= 2.0" ]
765
765
  deserial = Chef::Cookbook::Metadata.from_hash(@hash)
766
- deserial.send(to_check)["foo::bar"].should == ">= 2.0"
766
+ expect(deserial.send(to_check)["foo::bar"]).to eq(">= 2.0")
767
767
  end
768
768
  end
769
769
  end