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
@@ -23,7 +23,7 @@ describe Shell::Extensions do
23
23
 
24
24
  before do
25
25
  @shell_client = TestableShellSession.instance
26
- Shell.stub(:session).and_return(@shell_client)
26
+ allow(Shell).to receive(:session).and_return(@shell_client)
27
27
  @job_manager = TestJobManager.new
28
28
  @root_context = Object.new
29
29
  @root_context.instance_eval(&ObjectTestHarness)
@@ -37,98 +37,98 @@ describe Shell::Extensions do
37
37
  irb_context = double("context", :main => target_context_obj)
38
38
  irb_session = double("irb session", :context => irb_context)
39
39
  @job_manager.jobs = [[:thread, irb_session]]
40
- @root_context.stub(:jobs).and_return(@job_manager)
40
+ allow(@root_context).to receive(:jobs).and_return(@job_manager)
41
41
  @root_context.ensure_session_select_defined
42
- @root_context.jobs.select_shell_session(target_context_obj).should == irb_session
43
- @root_context.jobs.select_shell_session(:idontexist).should be_nil
42
+ expect(@root_context.jobs.select_shell_session(target_context_obj)).to eq(irb_session)
43
+ expect(@root_context.jobs.select_shell_session(:idontexist)).to be_nil
44
44
  end
45
45
 
46
46
  it "finds, then switches to a session" do
47
47
  @job_manager.jobs = []
48
- @root_context.stub(:ensure_session_select_defined)
49
- @root_context.stub(:jobs).and_return(@job_manager)
50
- @job_manager.should_receive(:select_shell_session).and_return(:the_shell_session)
51
- @job_manager.should_receive(:switch).with(:the_shell_session)
48
+ allow(@root_context).to receive(:ensure_session_select_defined)
49
+ allow(@root_context).to receive(:jobs).and_return(@job_manager)
50
+ expect(@job_manager).to receive(:select_shell_session).and_return(:the_shell_session)
51
+ expect(@job_manager).to receive(:switch).with(:the_shell_session)
52
52
  @root_context.find_or_create_session_for(:foo)
53
53
  end
54
54
 
55
55
  it "creates a new session if an existing one isn't found" do
56
56
  @job_manager.jobs = []
57
- @root_context.stub(:jobs).and_return(@job_manager)
58
- @job_manager.stub(:select_shell_session).and_return(nil)
59
- @root_context.should_receive(:irb).with(:foo)
57
+ allow(@root_context).to receive(:jobs).and_return(@job_manager)
58
+ allow(@job_manager).to receive(:select_shell_session).and_return(nil)
59
+ expect(@root_context).to receive(:irb).with(:foo)
60
60
  @root_context.find_or_create_session_for(:foo)
61
61
  end
62
62
 
63
63
  it "switches to recipe context" do
64
- @root_context.should respond_to(:recipe_mode)
64
+ expect(@root_context).to respond_to(:recipe_mode)
65
65
  @shell_client.recipe = :monkeyTime
66
- @root_context.should_receive(:find_or_create_session_for).with(:monkeyTime)
66
+ expect(@root_context).to receive(:find_or_create_session_for).with(:monkeyTime)
67
67
  @root_context.recipe_mode
68
68
  end
69
69
 
70
70
  it "switches to attribute context" do
71
- @root_context.should respond_to(:attributes_mode)
71
+ expect(@root_context).to respond_to(:attributes_mode)
72
72
  @shell_client.node = "monkeyNodeTime"
73
- @root_context.should_receive(:find_or_create_session_for).with("monkeyNodeTime")
73
+ expect(@root_context).to receive(:find_or_create_session_for).with("monkeyNodeTime")
74
74
  @root_context.attributes_mode
75
75
  end
76
76
 
77
77
  it "has a help command" do
78
- @root_context.should respond_to(:help)
78
+ expect(@root_context).to respond_to(:help)
79
79
  end
80
80
 
81
81
  it "turns irb tracing on and off" do
82
- @root_context.should respond_to(:trace)
83
- @root_context.conf.should_receive(:use_tracer=).with(true)
84
- @root_context.stub(:tracing?)
82
+ expect(@root_context).to respond_to(:trace)
83
+ expect(@root_context.conf).to receive(:use_tracer=).with(true)
84
+ allow(@root_context).to receive(:tracing?)
85
85
  @root_context.tracing :on
86
86
  end
87
87
 
88
88
  it "says if tracing is on or off" do
89
- @root_context.conf.stub(:use_tracer).and_return(true)
90
- @root_context.should_receive(:puts).with("tracing is on")
89
+ allow(@root_context.conf).to receive(:use_tracer).and_return(true)
90
+ expect(@root_context).to receive(:puts).with("tracing is on")
91
91
  @root_context.tracing?
92
92
  end
93
93
 
94
94
  it "prints node attributes" do
95
95
  node = double("node", :attribute => {:foo => :bar})
96
96
  @shell_client.node = node
97
- @root_context.should_receive(:pp).with({:foo => :bar})
97
+ expect(@root_context).to receive(:pp).with({:foo => :bar})
98
98
  @root_context.ohai
99
- @root_context.should_receive(:pp).with(:bar)
99
+ expect(@root_context).to receive(:pp).with(:bar)
100
100
  @root_context.ohai(:foo)
101
101
  end
102
102
 
103
103
  it "resets the recipe and reloads ohai data" do
104
- @shell_client.should_receive(:reset!)
104
+ expect(@shell_client).to receive(:reset!)
105
105
  @root_context.reset
106
106
  end
107
107
 
108
108
  it "turns irb echo on and off" do
109
- @root_context.conf.should_receive(:echo=).with(true)
109
+ expect(@root_context.conf).to receive(:echo=).with(true)
110
110
  @root_context.echo :on
111
111
  end
112
112
 
113
113
  it "says if echo is on or off" do
114
- @root_context.conf.stub(:echo).and_return(true)
115
- @root_context.should_receive(:puts).with("echo is on")
114
+ allow(@root_context.conf).to receive(:echo).and_return(true)
115
+ expect(@root_context).to receive(:puts).with("echo is on")
116
116
  @root_context.echo?
117
117
  end
118
118
 
119
119
  it "gives access to the stepable iterator" do
120
- Shell::StandAloneSession.instance.stub(:reset!)
121
- Shell.session.stub(:rebuild_context)
120
+ allow(Shell::StandAloneSession.instance).to receive(:reset!)
121
+ allow(Shell.session).to receive(:rebuild_context)
122
122
  events = Chef::EventDispatch::Dispatcher.new
123
123
  run_context = Chef::RunContext.new(Chef::Node.new, {}, events)
124
124
  run_context.resource_collection.instance_variable_get(:@resource_list).instance_variable_set(:@iterator, :the_iterator)
125
125
  Shell.session.run_context = run_context
126
- @root_context.chef_run.should == :the_iterator
126
+ expect(@root_context.chef_run).to eq(:the_iterator)
127
127
  end
128
128
 
129
129
  it "lists directory contents" do
130
130
  entries = %w{. .. someFile}
131
- Dir.should_receive(:entries).with("/tmp").and_return(entries)
131
+ expect(Dir).to receive(:entries).with("/tmp").and_return(entries)
132
132
  @root_context.ls "/tmp"
133
133
  end
134
134
 
@@ -145,7 +145,7 @@ describe Shell::Extensions do
145
145
 
146
146
  it "gives a list of the resources" do
147
147
  resource = @recipe_object.file("foo")
148
- @recipe_object.should_receive(:pp).with(["file[foo]"])
148
+ expect(@recipe_object).to receive(:pp).with(["file[foo]"])
149
149
  @recipe_object.resources
150
150
  end
151
151
 
@@ -42,7 +42,7 @@ end
42
42
  describe Shell::ShellSession do
43
43
 
44
44
  it "is a singleton object" do
45
- Shell::ShellSession.should include(Singleton)
45
+ expect(Shell::ShellSession).to include(Singleton)
46
46
  end
47
47
 
48
48
  end
@@ -66,13 +66,13 @@ describe Shell::ClientSession do
66
66
  @session.instance_variable_set(:@client, @client)
67
67
  @expansion = Chef::RunList::RunListExpansion.new(@node.chef_environment, [])
68
68
 
69
- @node.run_list.should_receive(:expand).with(@node.chef_environment).and_return(@expansion)
70
- Chef::REST.should_receive(:new).with(Chef::Config[:chef_server_url]).and_return(@chef_rest)
69
+ expect(@node.run_list).to receive(:expand).with(@node.chef_environment).and_return(@expansion)
70
+ expect(Chef::REST).to receive(:new).with(Chef::Config[:chef_server_url]).and_return(@chef_rest)
71
71
  @session.rebuild_context
72
72
  end
73
73
 
74
74
  it "passes the shell CLI args to the client" do
75
- Chef::Client.should_receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
75
+ expect(Chef::Client).to receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
76
76
  @session.send(:rebuild_node)
77
77
  end
78
78
 
@@ -90,30 +90,30 @@ describe Shell::StandAloneSession do
90
90
  end
91
91
 
92
92
  it "has a run_context" do
93
- @session.run_context.should equal(@run_context)
93
+ expect(@session.run_context).to equal(@run_context)
94
94
  end
95
95
 
96
96
  it "returns a collection based on it's standalone recipe file" do
97
- @session.resource_collection.should == @recipe.run_context.resource_collection
97
+ expect(@session.resource_collection).to eq(@recipe.run_context.resource_collection)
98
98
  end
99
99
 
100
100
  it "gives nil for the definitions (for now)" do
101
- @session.definitions.should be_nil
101
+ expect(@session.definitions).to be_nil
102
102
  end
103
103
 
104
104
  it "gives nil for the cookbook_loader" do
105
- @session.cookbook_loader.should be_nil
105
+ expect(@session.cookbook_loader).to be_nil
106
106
  end
107
107
 
108
108
  it "runs chef with the standalone recipe" do
109
- @session.stub(:node_built?).and_return(true)
110
- Chef::Log.stub(:level)
109
+ allow(@session).to receive(:node_built?).and_return(true)
110
+ allow(Chef::Log).to receive(:level)
111
111
  chef_runner = double("Chef::Runner.new", :converge => :converged)
112
112
  # pre-heat resource collection cache
113
113
  @session.resource_collection
114
114
 
115
- Chef::Runner.should_receive(:new).with(@session.recipe.run_context).and_return(chef_runner)
116
- @recipe.run_chef.should == :converged
115
+ expect(Chef::Runner).to receive(:new).with(@session.recipe.run_context).and_return(chef_runner)
116
+ expect(@recipe.run_chef).to eq(:converged)
117
117
  end
118
118
 
119
119
  it "passes the shell CLI args to the client" do
@@ -123,7 +123,7 @@ describe Shell::StandAloneSession do
123
123
  :build_node => true,
124
124
  :register => true,
125
125
  :sync_cookbooks => {})
126
- Chef::Client.should_receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
126
+ expect(Chef::Client).to receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
127
127
  @session.send(:rebuild_node)
128
128
  end
129
129
 
@@ -147,39 +147,39 @@ describe Shell::SoloSession do
147
147
  end
148
148
 
149
149
  it "returns a collection based on it's compilation object and the extra recipe provided by chef-shell" do
150
- @session.stub(:node_built?).and_return(true)
150
+ allow(@session).to receive(:node_built?).and_return(true)
151
151
  kitteh = Chef::Resource::Cat.new("keyboard")
152
152
  @recipe.run_context.resource_collection << kitteh
153
- @session.resource_collection.should include(kitteh)
153
+ expect(@session.resource_collection).to include(kitteh)
154
154
  end
155
155
 
156
156
  it "returns definitions from its compilation object" do
157
- @session.definitions.should == @run_context.definitions
157
+ expect(@session.definitions).to eq(@run_context.definitions)
158
158
  end
159
159
 
160
160
  it "keeps json attribs and passes them to the node for consumption" do
161
161
  @session.node_attributes = {"besnard_lakes" => "are_the_dark_horse"}
162
- @session.node.besnard_lakes.should == "are_the_dark_horse"
162
+ expect(@session.node.besnard_lakes).to eq("are_the_dark_horse")
163
163
  #pending "1) keep attribs in an ivar 2) pass them to the node 3) feed them to the node on reset"
164
164
  end
165
165
 
166
166
  it "generates its resource collection from the compiled cookbooks and the ad hoc recipe" do
167
- @session.stub(:node_built?).and_return(true)
167
+ allow(@session).to receive(:node_built?).and_return(true)
168
168
  kitteh_cat = Chef::Resource::Cat.new("kitteh")
169
169
  @run_context.resource_collection << kitteh_cat
170
170
  keyboard_cat = Chef::Resource::Cat.new("keyboard_cat")
171
171
  @recipe.run_context.resource_collection << keyboard_cat
172
172
  #@session.rebuild_collection
173
- @session.resource_collection.should include(kitteh_cat, keyboard_cat)
173
+ expect(@session.resource_collection).to include(kitteh_cat, keyboard_cat)
174
174
  end
175
175
 
176
176
  it "runs chef with a resource collection from the compiled cookbooks" do
177
- @session.stub(:node_built?).and_return(true)
178
- Chef::Log.stub(:level)
177
+ allow(@session).to receive(:node_built?).and_return(true)
178
+ allow(Chef::Log).to receive(:level)
179
179
  chef_runner = double("Chef::Runner.new", :converge => :converged)
180
- Chef::Runner.should_receive(:new).with(an_instance_of(Chef::RunContext)).and_return(chef_runner)
180
+ expect(Chef::Runner).to receive(:new).with(an_instance_of(Chef::RunContext)).and_return(chef_runner)
181
181
 
182
- @recipe.run_chef.should == :converged
182
+ expect(@recipe.run_chef).to eq(:converged)
183
183
  end
184
184
 
185
185
  it "passes the shell CLI args to the client" do
@@ -189,7 +189,7 @@ describe Shell::SoloSession do
189
189
  :build_node => true,
190
190
  :register => true,
191
191
  :sync_cookbooks => {})
192
- Chef::Client.should_receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
192
+ expect(Chef::Client).to receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
193
193
  @session.send(:rebuild_node)
194
194
  end
195
195
 
@@ -2,8 +2,8 @@ require File.expand_path('../../spec_helper', __FILE__)
2
2
 
3
3
  describe "Chef::ShellOut deprecation notices" do
4
4
  it "logs a warning when initializing a new Chef::ShellOut object" do
5
- Chef::Log.should_receive(:warn).with("Chef::ShellOut is deprecated, please use Mixlib::ShellOut")
6
- Chef::Log.should_receive(:warn).with(/Called from\:/)
5
+ expect(Chef::Log).to receive(:warn).with("Chef::ShellOut is deprecated, please use Mixlib::ShellOut")
6
+ expect(Chef::Log).to receive(:warn).with(/Called from\:/)
7
7
  Chef::ShellOut.new("pwd")
8
8
  end
9
9
  end
@@ -11,8 +11,8 @@ end
11
11
  describe "Chef::Exceptions::ShellCommandFailed deprecation notices" do
12
12
 
13
13
  it "logs a warning when referencing the constant Chef::Exceptions::ShellCommandFailed" do
14
- Chef::Log.should_receive(:warn).with("Chef::Exceptions::ShellCommandFailed is deprecated, use Mixlib::ShellOut::ShellCommandFailed")
15
- Chef::Log.should_receive(:warn).with(/Called from\:/)
14
+ expect(Chef::Log).to receive(:warn).with("Chef::Exceptions::ShellCommandFailed is deprecated, use Mixlib::ShellOut::ShellCommandFailed")
15
+ expect(Chef::Log).to receive(:warn).with(/Called from\:/)
16
16
  Chef::Exceptions::ShellCommandFailed
17
17
  end
18
18
  end
@@ -42,13 +42,13 @@ describe Shell do
42
42
 
43
43
  before do
44
44
  Shell.irb_conf = {}
45
- Shell::ShellSession.instance.stub(:reset!)
45
+ allow(Shell::ShellSession.instance).to receive(:reset!)
46
46
  end
47
47
 
48
48
  describe "reporting its status" do
49
49
 
50
- it "alway says it is running" do
51
- Shell.should be_running
50
+ it "always says it is running" do
51
+ expect(Shell).to be_running
52
52
  end
53
53
 
54
54
  end
@@ -56,8 +56,8 @@ describe Shell do
56
56
  describe "configuring IRB" do
57
57
  it "configures irb history" do
58
58
  Shell.configure_irb
59
- Shell.irb_conf[:HISTORY_FILE].should == "~/.chef/chef_shell_history"
60
- Shell.irb_conf[:SAVE_HISTORY].should == 1000
59
+ expect(Shell.irb_conf[:HISTORY_FILE]).to eq("~/.chef/chef_shell_history")
60
+ expect(Shell.irb_conf[:SAVE_HISTORY]).to eq(1000)
61
61
  end
62
62
 
63
63
  it "has a prompt like ``chef > '' in the default context" do
@@ -67,12 +67,12 @@ describe Shell do
67
67
  conf.main = Object.new
68
68
  conf.main.instance_eval(&ObjectTestHarness)
69
69
  Shell.irb_conf[:IRB_RC].call(conf)
70
- conf.prompt_c.should == "chef > "
71
- conf.return_format.should == " => %s \n"
72
- conf.prompt_i.should == "chef > "
73
- conf.prompt_n.should == "chef ?> "
74
- conf.prompt_s.should == "chef%l> "
75
- conf.use_tracer.should == false
70
+ expect(conf.prompt_c).to eq("chef > ")
71
+ expect(conf.return_format).to eq(" => %s \n")
72
+ expect(conf.prompt_i).to eq("chef > ")
73
+ expect(conf.prompt_n).to eq("chef ?> ")
74
+ expect(conf.prompt_s).to eq("chef%l> ")
75
+ expect(conf.use_tracer).to eq(false)
76
76
  end
77
77
 
78
78
  it "has a prompt like ``chef:recipe > '' in recipe context" do
@@ -82,10 +82,10 @@ describe Shell do
82
82
  events = Chef::EventDispatch::Dispatcher.new
83
83
  conf.main = Chef::Recipe.new(nil,nil,Chef::RunContext.new(Chef::Node.new, {}, events))
84
84
  Shell.irb_conf[:IRB_RC].call(conf)
85
- conf.prompt_c.should == "chef:recipe > "
86
- conf.prompt_i.should == "chef:recipe > "
87
- conf.prompt_n.should == "chef:recipe ?> "
88
- conf.prompt_s.should == "chef:recipe%l> "
85
+ expect(conf.prompt_c).to eq("chef:recipe > ")
86
+ expect(conf.prompt_i).to eq("chef:recipe > ")
87
+ expect(conf.prompt_n).to eq("chef:recipe ?> ")
88
+ expect(conf.prompt_s).to eq("chef:recipe%l> ")
89
89
  end
90
90
 
91
91
  it "has a prompt like ``chef:attributes > '' in attributes/node context" do
@@ -94,10 +94,10 @@ describe Shell do
94
94
  conf = OpenStruct.new
95
95
  conf.main = Chef::Node.new
96
96
  Shell.irb_conf[:IRB_RC].call(conf)
97
- conf.prompt_c.should == "chef:attributes > "
98
- conf.prompt_i.should == "chef:attributes > "
99
- conf.prompt_n.should == "chef:attributes ?> "
100
- conf.prompt_s.should == "chef:attributes%l> "
97
+ expect(conf.prompt_c).to eq("chef:attributes > ")
98
+ expect(conf.prompt_i).to eq("chef:attributes > ")
99
+ expect(conf.prompt_n).to eq("chef:attributes ?> ")
100
+ expect(conf.prompt_s).to eq("chef:attributes%l> ")
101
101
  end
102
102
 
103
103
  end
@@ -110,7 +110,7 @@ describe Shell do
110
110
  end
111
111
 
112
112
  it "creates help text for methods with descriptions" do
113
- @chef_object.help_descriptions.should == [Shell::Extensions::Help.new("rspec_method", "rspecin'", nil)]
113
+ expect(@chef_object.help_descriptions).to eq([Shell::Extensions::Help.new("rspec_method", "rspecin'", nil)])
114
114
  end
115
115
 
116
116
  it "adds help text when a new method is described then defined" do
@@ -120,8 +120,8 @@ describe Shell do
120
120
  end
121
121
  EVAL
122
122
  @chef_object.instance_eval describe_define
123
- @chef_object.help_descriptions.should == [Shell::Extensions::Help.new("rspec_method", "rspecin'"),
124
- Shell::Extensions::Help.new("baz", "foo2the Bar")]
123
+ expect(@chef_object.help_descriptions).to eq([Shell::Extensions::Help.new("rspec_method", "rspecin'"),
124
+ Shell::Extensions::Help.new("baz", "foo2the Bar")])
125
125
  end
126
126
 
127
127
  it "adds help text for subcommands" do
@@ -133,7 +133,7 @@ describe Shell do
133
133
  @chef_object.instance_eval describe_define
134
134
  expected_help_text_fragments = [Shell::Extensions::Help.new("rspec_method", "rspecin'")]
135
135
  expected_help_text_fragments << Shell::Extensions::Help.new("baz.baz_obj_command", "something you can do with baz.baz_obj_command")
136
- @chef_object.help_descriptions.should == expected_help_text_fragments
136
+ expect(@chef_object.help_descriptions).to eq(expected_help_text_fragments)
137
137
  end
138
138
 
139
139
  it "doesn't add previous subcommand help to commands defined afterward" do
@@ -147,13 +147,13 @@ describe Shell do
147
147
 
148
148
  EVAL
149
149
  @chef_object.instance_eval describe_define
150
- @chef_object.help_descriptions.should have(2).descriptions
151
- @chef_object.help_descriptions.select {|h| h.cmd == "super_monkey_time" }.should be_empty
150
+ expect(@chef_object.help_descriptions.size).to eq(2)
151
+ expect(@chef_object.help_descriptions.select {|h| h.cmd == "super_monkey_time" }).to be_empty
152
152
  end
153
153
 
154
154
  it "creates a help banner with the command descriptions" do
155
- @chef_object.help_banner.should match(/^\|\ Command[\s]+\|\ Description[\s]*$/)
156
- @chef_object.help_banner.should match(/^\|\ rspec_method[\s]+\|\ rspecin\'[\s]*$/)
155
+ expect(@chef_object.help_banner).to match(/^\|\ Command[\s]+\|\ Description[\s]*$/)
156
+ expect(@chef_object.help_banner).to match(/^\|\ rspec_method[\s]+\|\ rspecin\'[\s]*$/)
157
157
  end
158
158
  end
159
159
 
@@ -28,89 +28,89 @@ describe Chef::User do
28
28
 
29
29
  describe "initialize" do
30
30
  it "should be a Chef::User" do
31
- @user.should be_a_kind_of(Chef::User)
31
+ expect(@user).to be_a_kind_of(Chef::User)
32
32
  end
33
33
  end
34
34
 
35
35
  describe "name" do
36
36
  it "should let you set the name to a string" do
37
- @user.name("ops_master").should == "ops_master"
37
+ expect(@user.name("ops_master")).to eq("ops_master")
38
38
  end
39
39
 
40
40
  it "should return the current name" do
41
41
  @user.name "ops_master"
42
- @user.name.should == "ops_master"
42
+ expect(@user.name).to eq("ops_master")
43
43
  end
44
44
 
45
45
  # It is not feasible to check all invalid characters. Here are a few
46
46
  # that we probably care about.
47
47
  it "should not accept invalid characters" do
48
48
  # capital letters
49
- lambda { @user.name "Bar" }.should raise_error(ArgumentError)
49
+ expect { @user.name "Bar" }.to raise_error(ArgumentError)
50
50
  # slashes
51
- lambda { @user.name "foo/bar" }.should raise_error(ArgumentError)
51
+ expect { @user.name "foo/bar" }.to raise_error(ArgumentError)
52
52
  # ?
53
- lambda { @user.name "foo?" }.should raise_error(ArgumentError)
53
+ expect { @user.name "foo?" }.to raise_error(ArgumentError)
54
54
  # &
55
- lambda { @user.name "foo&" }.should raise_error(ArgumentError)
55
+ expect { @user.name "foo&" }.to raise_error(ArgumentError)
56
56
  end
57
57
 
58
58
 
59
59
  it "should not accept spaces" do
60
- lambda { @user.name "ops master" }.should raise_error(ArgumentError)
60
+ expect { @user.name "ops master" }.to raise_error(ArgumentError)
61
61
  end
62
62
 
63
63
  it "should throw an ArgumentError if you feed it anything but a string" do
64
- lambda { @user.name Hash.new }.should raise_error(ArgumentError)
64
+ expect { @user.name Hash.new }.to raise_error(ArgumentError)
65
65
  end
66
66
  end
67
67
 
68
68
  describe "admin" do
69
69
  it "should let you set the admin bit" do
70
- @user.admin(true).should == true
70
+ expect(@user.admin(true)).to eq(true)
71
71
  end
72
72
 
73
73
  it "should return the current admin value" do
74
74
  @user.admin true
75
- @user.admin.should == true
75
+ expect(@user.admin).to eq(true)
76
76
  end
77
77
 
78
78
  it "should default to false" do
79
- @user.admin.should == false
79
+ expect(@user.admin).to eq(false)
80
80
  end
81
81
 
82
82
  it "should throw an ArgumentError if you feed it anything but true or false" do
83
- lambda { @user.name Hash.new }.should raise_error(ArgumentError)
83
+ expect { @user.name Hash.new }.to raise_error(ArgumentError)
84
84
  end
85
85
  end
86
86
 
87
87
  describe "public_key" do
88
88
  it "should let you set the public key" do
89
- @user.public_key("super public").should == "super public"
89
+ expect(@user.public_key("super public")).to eq("super public")
90
90
  end
91
91
 
92
92
  it "should return the current public key" do
93
93
  @user.public_key("super public")
94
- @user.public_key.should == "super public"
94
+ expect(@user.public_key).to eq("super public")
95
95
  end
96
96
 
97
97
  it "should throw an ArgumentError if you feed it something lame" do
98
- lambda { @user.public_key Hash.new }.should raise_error(ArgumentError)
98
+ expect { @user.public_key Hash.new }.to raise_error(ArgumentError)
99
99
  end
100
100
  end
101
101
 
102
102
  describe "private_key" do
103
103
  it "should let you set the private key" do
104
- @user.private_key("super private").should == "super private"
104
+ expect(@user.private_key("super private")).to eq("super private")
105
105
  end
106
106
 
107
107
  it "should return the private key" do
108
108
  @user.private_key("super private")
109
- @user.private_key.should == "super private"
109
+ expect(@user.private_key).to eq("super private")
110
110
  end
111
111
 
112
112
  it "should throw an ArgumentError if you feed it something lame" do
113
- lambda { @user.private_key Hash.new }.should raise_error(ArgumentError)
113
+ expect { @user.private_key Hash.new }.to raise_error(ArgumentError)
114
114
  end
115
115
  end
116
116
 
@@ -122,37 +122,37 @@ describe Chef::User do
122
122
  end
123
123
 
124
124
  it "serializes as a JSON object" do
125
- @json.should match(/^\{.+\}$/)
125
+ expect(@json).to match(/^\{.+\}$/)
126
126
  end
127
127
 
128
128
  it "includes the name value" do
129
- @json.should include(%q{"name":"black"})
129
+ expect(@json).to include(%q{"name":"black"})
130
130
  end
131
131
 
132
132
  it "includes the public key value" do
133
- @json.should include(%{"public_key":"crowes"})
133
+ expect(@json).to include(%{"public_key":"crowes"})
134
134
  end
135
135
 
136
136
  it "includes the 'admin' flag" do
137
- @json.should include(%q{"admin":false})
137
+ expect(@json).to include(%q{"admin":false})
138
138
  end
139
139
 
140
140
  it "includes the private key when present" do
141
141
  @user.private_key("monkeypants")
142
- @user.to_json.should include(%q{"private_key":"monkeypants"})
142
+ expect(@user.to_json).to include(%q{"private_key":"monkeypants"})
143
143
  end
144
144
 
145
145
  it "does not include the private key if not present" do
146
- @json.should_not include("private_key")
146
+ expect(@json).not_to include("private_key")
147
147
  end
148
148
 
149
149
  it "includes the password if present" do
150
150
  @user.password "password"
151
- @user.to_json.should include(%q{"password":"password"})
151
+ expect(@user.to_json).to include(%q{"password":"password"})
152
152
  end
153
153
 
154
154
  it "does not include the password if not present" do
155
- @json.should_not include("password")
155
+ expect(@json).not_to include("password")
156
156
  end
157
157
 
158
158
  include_examples "to_json equalivent to Chef::JSONCompat.to_json" do
@@ -171,27 +171,27 @@ describe Chef::User do
171
171
  end
172
172
 
173
173
  it "should deserialize to a Chef::User object" do
174
- @user.should be_a_kind_of(Chef::User)
174
+ expect(@user).to be_a_kind_of(Chef::User)
175
175
  end
176
176
 
177
177
  it "preserves the name" do
178
- @user.name.should == "mr_spinks"
178
+ expect(@user.name).to eq("mr_spinks")
179
179
  end
180
180
 
181
181
  it "preserves the public key" do
182
- @user.public_key.should == "turtles"
182
+ expect(@user.public_key).to eq("turtles")
183
183
  end
184
184
 
185
185
  it "preserves the admin status" do
186
- @user.admin.should be_true
186
+ expect(@user.admin).to be_truthy
187
187
  end
188
188
 
189
189
  it "includes the private key if present" do
190
- @user.private_key.should == "pandas"
190
+ expect(@user.private_key).to eq("pandas")
191
191
  end
192
192
 
193
193
  it "includes the password if present" do
194
- @user.password.should == "password"
194
+ expect(@user.password).to eq("password")
195
195
  end
196
196
 
197
197
  end
@@ -201,7 +201,7 @@ describe Chef::User do
201
201
  @user = Chef::User.new
202
202
  @user.name "foobar"
203
203
  @http_client = double("Chef::REST mock")
204
- Chef::REST.stub(:new).and_return(@http_client)
204
+ allow(Chef::REST).to receive(:new).and_return(@http_client)
205
205
  end
206
206
 
207
207
  describe "list" do
@@ -209,61 +209,61 @@ describe Chef::User do
209
209
  Chef::Config[:chef_server_url] = "http://www.example.com"
210
210
  @osc_response = { "admin" => "http://www.example.com/users/admin"}
211
211
  @ohc_response = [ { "user" => { "username" => "admin" }} ]
212
- Chef::User.stub(:load).with("admin").and_return(@user)
212
+ allow(Chef::User).to receive(:load).with("admin").and_return(@user)
213
213
  @osc_inflated_response = { "admin" => @user }
214
214
  end
215
215
 
216
216
  it "lists all clients on an OSC server" do
217
- @http_client.stub(:get_rest).with("users").and_return(@osc_response)
218
- Chef::User.list.should == @osc_response
217
+ allow(@http_client).to receive(:get_rest).with("users").and_return(@osc_response)
218
+ expect(Chef::User.list).to eq(@osc_response)
219
219
  end
220
220
 
221
221
  it "inflate all clients on an OSC server" do
222
- @http_client.stub(:get_rest).with("users").and_return(@osc_response)
223
- Chef::User.list(true).should == @osc_inflated_response
222
+ allow(@http_client).to receive(:get_rest).with("users").and_return(@osc_response)
223
+ expect(Chef::User.list(true)).to eq(@osc_inflated_response)
224
224
  end
225
225
 
226
226
  it "lists all clients on an OHC/OPC server" do
227
- @http_client.stub(:get_rest).with("users").and_return(@ohc_response)
227
+ allow(@http_client).to receive(:get_rest).with("users").and_return(@ohc_response)
228
228
  # We expect that Chef::User.list will give a consistent response
229
229
  # so OHC API responses should be transformed to OSC-style output.
230
- Chef::User.list.should == @osc_response
230
+ expect(Chef::User.list).to eq(@osc_response)
231
231
  end
232
232
 
233
233
  it "inflate all clients on an OHC/OPC server" do
234
- @http_client.stub(:get_rest).with("users").and_return(@ohc_response)
235
- Chef::User.list(true).should == @osc_inflated_response
234
+ allow(@http_client).to receive(:get_rest).with("users").and_return(@ohc_response)
235
+ expect(Chef::User.list(true)).to eq(@osc_inflated_response)
236
236
  end
237
237
  end
238
238
 
239
239
  describe "create" do
240
240
  it "creates a new user via the API" do
241
241
  @user.password "password"
242
- @http_client.should_receive(:post_rest).with("users", {:name => "foobar", :admin => false, :password => "password"}).and_return({})
242
+ expect(@http_client).to receive(:post_rest).with("users", {:name => "foobar", :admin => false, :password => "password"}).and_return({})
243
243
  @user.create
244
244
  end
245
245
  end
246
246
 
247
247
  describe "read" do
248
248
  it "loads a named user from the API" do
249
- @http_client.should_receive(:get_rest).with("users/foobar").and_return({"name" => "foobar", "admin" => true, "public_key" => "pubkey"})
249
+ expect(@http_client).to receive(:get_rest).with("users/foobar").and_return({"name" => "foobar", "admin" => true, "public_key" => "pubkey"})
250
250
  user = Chef::User.load("foobar")
251
- user.name.should == "foobar"
252
- user.admin.should == true
253
- user.public_key.should == "pubkey"
251
+ expect(user.name).to eq("foobar")
252
+ expect(user.admin).to eq(true)
253
+ expect(user.public_key).to eq("pubkey")
254
254
  end
255
255
  end
256
256
 
257
257
  describe "update" do
258
258
  it "updates an existing user on via the API" do
259
- @http_client.should_receive(:put_rest).with("users/foobar", {:name => "foobar", :admin => false}).and_return({})
259
+ expect(@http_client).to receive(:put_rest).with("users/foobar", {:name => "foobar", :admin => false}).and_return({})
260
260
  @user.update
261
261
  end
262
262
  end
263
263
 
264
264
  describe "destroy" do
265
265
  it "deletes the specified user via the API" do
266
- @http_client.should_receive(:delete_rest).with("users/foobar")
266
+ expect(@http_client).to receive(:delete_rest).with("users/foobar")
267
267
  @user.destroy
268
268
  end
269
269
  end