chef 12.0.0.alpha.2-x86-mingw32 → 12.0.0.rc.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (628) hide show
  1. data/CONTRIBUTING.md +9 -0
  2. data/README.md +1 -1
  3. data/Rakefile +12 -0
  4. data/bin/chef-service-manager +1 -1
  5. data/bin/chef-windows-service +35 -0
  6. data/distro/common/html/_sources/ctl_chef_server.txt +307 -10
  7. data/distro/common/html/ctl_chef_client.html +3 -7
  8. data/distro/common/html/ctl_chef_server.html +609 -41
  9. data/distro/common/html/ctl_chef_shell.html +2 -2
  10. data/distro/common/html/ctl_chef_solo.html +1 -1
  11. data/distro/common/html/index.html +13 -13
  12. data/distro/common/html/knife.html +10 -10
  13. data/distro/common/html/knife_bootstrap.html +8 -8
  14. data/distro/common/html/knife_client.html +12 -12
  15. data/distro/common/html/knife_common_options.html +7 -7
  16. data/distro/common/html/knife_configure.html +3 -3
  17. data/distro/common/html/knife_cookbook.html +19 -19
  18. data/distro/common/html/knife_cookbook_site.html +28 -28
  19. data/distro/common/html/knife_data_bag.html +28 -13
  20. data/distro/common/html/knife_delete.html +2 -2
  21. data/distro/common/html/knife_deps.html +3 -3
  22. data/distro/common/html/knife_diff.html +4 -4
  23. data/distro/common/html/knife_download.html +3 -3
  24. data/distro/common/html/knife_edit.html +2 -2
  25. data/distro/common/html/knife_environment.html +14 -14
  26. data/distro/common/html/knife_exec.html +11 -11
  27. data/distro/common/html/knife_index_rebuild.html +2 -2
  28. data/distro/common/html/knife_list.html +3 -3
  29. data/distro/common/html/knife_node.html +23 -23
  30. data/distro/common/html/knife_raw.html +4 -4
  31. data/distro/common/html/knife_recipe_list.html +3 -3
  32. data/distro/common/html/knife_role.html +11 -11
  33. data/distro/common/html/knife_search.html +4 -4
  34. data/distro/common/html/knife_serve.html +3 -3
  35. data/distro/common/html/knife_show.html +3 -3
  36. data/distro/common/html/knife_ssh.html +7 -7
  37. data/distro/common/html/knife_ssl_check.html +7 -7
  38. data/distro/common/html/knife_ssl_fetch.html +9 -9
  39. data/distro/common/html/knife_status.html +3 -3
  40. data/distro/common/html/knife_tag.html +9 -9
  41. data/distro/common/html/knife_upload.html +3 -3
  42. data/distro/common/html/knife_user.html +9 -9
  43. data/distro/common/html/knife_using.html +11 -11
  44. data/distro/common/html/knife_xargs.html +14 -5
  45. data/distro/common/html/search.html +2 -2
  46. data/distro/common/html/searchindex.js +1 -1
  47. data/distro/common/man/man1/chef-shell.1 +2 -2
  48. data/distro/common/man/man1/knife-bootstrap.1 +7 -7
  49. data/distro/common/man/man1/knife-client.1 +10 -10
  50. data/distro/common/man/man1/knife-configure.1 +5 -5
  51. data/distro/common/man/man1/knife-cookbook-site.1 +24 -24
  52. data/distro/common/man/man1/knife-cookbook.1 +12 -12
  53. data/distro/common/man/man1/knife-data-bag.1 +34 -10
  54. data/distro/common/man/man1/knife-delete.1 +5 -5
  55. data/distro/common/man/man1/knife-deps.1 +5 -5
  56. data/distro/common/man/man1/knife-diff.1 +7 -7
  57. data/distro/common/man/man1/knife-download.1 +5 -5
  58. data/distro/common/man/man1/knife-edit.1 +5 -5
  59. data/distro/common/man/man1/knife-environment.1 +11 -11
  60. data/distro/common/man/man1/knife-exec.1 +11 -11
  61. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  62. data/distro/common/man/man1/knife-list.1 +5 -5
  63. data/distro/common/man/man1/knife-node.1 +16 -16
  64. data/distro/common/man/man1/knife-raw.1 +6 -6
  65. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  66. data/distro/common/man/man1/knife-role.1 +7 -7
  67. data/distro/common/man/man1/knife-search.1 +6 -6
  68. data/distro/common/man/man1/knife-serve.1 +6 -6
  69. data/distro/common/man/man1/knife-show.1 +5 -5
  70. data/distro/common/man/man1/knife-ssh.1 +9 -9
  71. data/distro/common/man/man1/knife-ssl-check.1 +7 -7
  72. data/distro/common/man/man1/knife-ssl-fetch.1 +9 -9
  73. data/distro/common/man/man1/knife-status.1 +5 -5
  74. data/distro/common/man/man1/knife-tag.1 +8 -8
  75. data/distro/common/man/man1/knife-upload.1 +5 -5
  76. data/distro/common/man/man1/knife-user.1 +8 -8
  77. data/distro/common/man/man1/knife-xargs.1 +36 -10
  78. data/distro/common/man/man1/knife.1 +14 -14
  79. data/distro/common/man/man8/chef-client.8 +3 -10
  80. data/distro/common/man/man8/chef-solo.8 +1 -1
  81. data/ext/win32-eventlog/Rakefile +50 -0
  82. data/ext/win32-eventlog/chef-log.man +26 -0
  83. data/lib/chef/application.rb +313 -241
  84. data/lib/chef/application/apply.rb +10 -8
  85. data/lib/chef/application/client.rb +58 -33
  86. data/lib/chef/application/solo.rb +33 -12
  87. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  88. data/lib/chef/chef_fs/command_line.rb +1 -1
  89. data/lib/chef/chef_fs/file_system/organization_invites_entry.rb +2 -1
  90. data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -1
  91. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +2 -1
  92. data/lib/chef/client.rb +18 -48
  93. data/lib/chef/config.rb +43 -11
  94. data/lib/chef/cookbook/cookbook_version_loader.rb +14 -7
  95. data/lib/chef/cookbook/metadata.rb +81 -38
  96. data/lib/chef/cookbook/syntax_check.rb +18 -52
  97. data/lib/chef/cookbook_loader.rb +1 -1
  98. data/lib/chef/cookbook_version.rb +58 -39
  99. data/lib/chef/data_bag.rb +2 -2
  100. data/lib/chef/deprecation/provider/file.rb +2 -1
  101. data/lib/chef/dsl/data_query.rb +2 -29
  102. data/lib/chef/dsl/recipe.rb +8 -22
  103. data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
  104. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -0
  105. data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +1 -1
  106. data/lib/chef/event_loggers/base.rb +62 -0
  107. data/lib/chef/event_loggers/windows_eventlog.rb +104 -0
  108. data/lib/chef/exceptions.rb +18 -1
  109. data/lib/chef/file_cache.rb +3 -2
  110. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +15 -6
  111. data/lib/chef/http.rb +20 -13
  112. data/lib/chef/http/ssl_policies.rb +2 -1
  113. data/lib/chef/json_compat.rb +9 -3
  114. data/lib/chef/knife.rb +2 -1
  115. data/lib/chef/knife/bootstrap.rb +12 -18
  116. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  117. data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
  118. data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
  119. data/lib/chef/knife/cookbook_create.rb +1 -1
  120. data/lib/chef/knife/cookbook_site_share.rb +43 -8
  121. data/lib/chef/knife/core/bootstrap_context.rb +6 -11
  122. data/lib/chef/knife/core/object_loader.rb +5 -5
  123. data/lib/chef/knife/core/status_presenter.rb +156 -0
  124. data/lib/chef/knife/core/subcommand_loader.rb +6 -5
  125. data/lib/chef/knife/core/ui.rb +4 -4
  126. data/lib/chef/knife/data_bag_create.rb +7 -32
  127. data/lib/chef/knife/data_bag_edit.rb +24 -43
  128. data/lib/chef/knife/data_bag_from_file.rb +6 -31
  129. data/lib/chef/knife/data_bag_secret_options.rb +142 -0
  130. data/lib/chef/knife/data_bag_show.rb +19 -33
  131. data/lib/chef/knife/node_from_file.rb +9 -8
  132. data/lib/chef/knife/ssh.rb +0 -7
  133. data/lib/chef/knife/ssl_check.rb +70 -6
  134. data/lib/chef/knife/status.rb +11 -58
  135. data/lib/chef/mixin/command/unix.rb +2 -2
  136. data/lib/chef/mixin/convert_to_class_name.rb +54 -0
  137. data/lib/chef/mixin/descendants_tracker.rb +82 -0
  138. data/lib/chef/mixin/homebrew_user.rb +68 -0
  139. data/lib/chef/mixin/shell_out.rb +0 -4
  140. data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
  141. data/lib/chef/mixin/windows_env_helper.rb +56 -0
  142. data/lib/chef/node.rb +2 -2
  143. data/lib/chef/node_map.rb +146 -0
  144. data/lib/chef/platform/provider_mapping.rb +11 -39
  145. data/lib/chef/platform/provider_priority_map.rb +80 -0
  146. data/lib/chef/platform/query_helpers.rb +5 -1
  147. data/lib/chef/platform/service_helpers.rb +113 -0
  148. data/lib/chef/provider.rb +24 -0
  149. data/lib/chef/provider/breakpoint.rb +2 -0
  150. data/lib/chef/provider/cookbook_file.rb +2 -0
  151. data/lib/chef/provider/cron.rb +1 -1
  152. data/lib/chef/provider/cron/unix.rb +13 -9
  153. data/lib/chef/provider/deploy.rb +3 -2
  154. data/lib/chef/provider/deploy/revision.rb +4 -2
  155. data/lib/chef/provider/deploy/timestamped.rb +2 -0
  156. data/lib/chef/provider/directory.rb +2 -0
  157. data/lib/chef/provider/dsc_script.rb +179 -0
  158. data/lib/chef/provider/env.rb +25 -10
  159. data/lib/chef/provider/env/windows.rb +9 -16
  160. data/lib/chef/provider/erl_call.rb +2 -0
  161. data/lib/chef/provider/execute.rb +5 -2
  162. data/lib/chef/provider/file.rb +2 -0
  163. data/lib/chef/provider/git.rb +51 -23
  164. data/lib/chef/provider/group/dscl.rb +2 -2
  165. data/lib/chef/provider/group/pw.rb +9 -13
  166. data/lib/chef/provider/http_request.rb +2 -0
  167. data/lib/chef/provider/link.rb +3 -0
  168. data/lib/chef/provider/log.rb +2 -0
  169. data/lib/chef/provider/lwrp_base.rb +11 -9
  170. data/lib/chef/provider/mount/mount.rb +1 -1
  171. data/lib/chef/provider/package/aix.rb +2 -0
  172. data/lib/chef/provider/package/apt.rb +2 -0
  173. data/lib/chef/provider/package/dpkg.rb +2 -0
  174. data/lib/chef/provider/package/easy_install.rb +2 -0
  175. data/lib/chef/provider/package/freebsd/pkg.rb +2 -1
  176. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  177. data/lib/chef/provider/package/freebsd/port.rb +1 -9
  178. data/lib/chef/provider/package/homebrew.rb +127 -0
  179. data/lib/chef/provider/package/ips.rb +2 -0
  180. data/lib/chef/provider/package/macports.rb +3 -0
  181. data/lib/chef/provider/package/pacman.rb +5 -4
  182. data/lib/chef/provider/package/paludis.rb +4 -2
  183. data/lib/chef/provider/package/portage.rb +4 -1
  184. data/lib/chef/provider/package/rpm.rb +2 -0
  185. data/lib/chef/provider/package/rubygems.rb +4 -0
  186. data/lib/chef/provider/package/smartos.rb +2 -0
  187. data/lib/chef/provider/package/solaris.rb +2 -0
  188. data/lib/chef/provider/package/windows.rb +5 -2
  189. data/lib/chef/provider/package/yum.rb +2 -0
  190. data/lib/chef/provider/powershell_script.rb +3 -1
  191. data/lib/chef/provider/remote_directory.rb +25 -10
  192. data/lib/chef/provider/route.rb +2 -0
  193. data/lib/chef/provider/ruby_block.rb +2 -0
  194. data/lib/chef/provider/script.rb +6 -0
  195. data/lib/chef/provider/service/aix.rb +128 -0
  196. data/lib/chef/provider/service/aixinit.rb +117 -0
  197. data/lib/chef/provider/service/arch.rb +6 -0
  198. data/lib/chef/provider/service/debian.rb +35 -29
  199. data/lib/chef/provider/service/freebsd.rb +7 -1
  200. data/lib/chef/provider/service/gentoo.rb +5 -1
  201. data/lib/chef/provider/service/init.rb +2 -0
  202. data/lib/chef/provider/service/insserv.rb +15 -8
  203. data/lib/chef/provider/service/invokercd.rb +6 -0
  204. data/lib/chef/provider/service/macosx.rb +4 -1
  205. data/lib/chef/provider/service/redhat.rb +9 -3
  206. data/lib/chef/provider/service/simple.rb +2 -0
  207. data/lib/chef/provider/service/solaris.rb +2 -0
  208. data/lib/chef/provider/service/systemd.rb +7 -0
  209. data/lib/chef/provider/service/upstart.rb +7 -0
  210. data/lib/chef/provider/service/windows.rb +5 -0
  211. data/lib/chef/provider/subversion.rb +2 -0
  212. data/lib/chef/provider/template.rb +1 -0
  213. data/lib/chef/provider/user/dscl.rb +3 -2
  214. data/lib/chef/provider/whyrun_safe_ruby_block.rb +2 -0
  215. data/lib/chef/provider_resolver.rb +103 -0
  216. data/lib/chef/providers.rb +6 -2
  217. data/lib/chef/recipe.rb +2 -0
  218. data/lib/chef/resource.rb +69 -78
  219. data/lib/chef/resource/apt_package.rb +3 -1
  220. data/lib/chef/resource/bash.rb +1 -0
  221. data/lib/chef/resource/bff_package.rb +0 -1
  222. data/lib/chef/resource/breakpoint.rb +1 -1
  223. data/lib/chef/resource/chef_gem.rb +1 -2
  224. data/lib/chef/resource/conditional.rb +26 -6
  225. data/lib/chef/resource/cookbook_file.rb +2 -3
  226. data/lib/chef/resource/csh.rb +1 -0
  227. data/lib/chef/resource/deploy.rb +0 -1
  228. data/lib/chef/resource/deploy_revision.rb +6 -1
  229. data/lib/chef/resource/directory.rb +1 -2
  230. data/lib/chef/resource/dpkg_package.rb +2 -1
  231. data/lib/chef/resource/dsc_script.rb +125 -0
  232. data/lib/chef/resource/easy_install_package.rb +2 -1
  233. data/lib/chef/resource/erl_call.rb +1 -0
  234. data/lib/chef/resource/execute.rb +26 -9
  235. data/lib/chef/resource/file.rb +1 -3
  236. data/lib/chef/resource/freebsd_package.rb +10 -23
  237. data/lib/chef/resource/gem_package.rb +2 -1
  238. data/lib/chef/resource/git.rb +2 -1
  239. data/lib/chef/resource/homebrew_package.rb +46 -0
  240. data/lib/chef/resource/http_request.rb +1 -0
  241. data/lib/chef/resource/ips_package.rb +3 -1
  242. data/lib/chef/resource/link.rb +1 -2
  243. data/lib/chef/resource/log.rb +4 -0
  244. data/lib/chef/resource/lwrp_base.rb +24 -15
  245. data/lib/chef/resource/macports_package.rb +3 -1
  246. data/lib/chef/resource/pacman_package.rb +2 -1
  247. data/lib/chef/resource/paludis_package.rb +3 -1
  248. data/lib/chef/resource/perl.rb +1 -0
  249. data/lib/chef/resource/powershell_script.rb +0 -2
  250. data/lib/chef/resource/python.rb +1 -1
  251. data/lib/chef/resource/remote_directory.rb +1 -2
  252. data/lib/chef/resource/remote_file.rb +1 -1
  253. data/lib/chef/resource/rpm_package.rb +2 -1
  254. data/lib/chef/resource/ruby.rb +1 -0
  255. data/lib/chef/resource/ruby_block.rb +3 -0
  256. data/lib/chef/resource/script.rb +2 -25
  257. data/lib/chef/resource/service.rb +0 -4
  258. data/lib/chef/resource/smartos_package.rb +3 -4
  259. data/lib/chef/resource/solaris_package.rb +7 -1
  260. data/lib/chef/resource/subversion.rb +0 -1
  261. data/lib/chef/resource/template.rb +2 -3
  262. data/lib/chef/resource/timestamped_deploy.rb +1 -2
  263. data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
  264. data/lib/chef/resource/windows_package.rb +3 -4
  265. data/lib/chef/resource/windows_script.rb +3 -0
  266. data/lib/chef/resource/windows_service.rb +2 -2
  267. data/lib/chef/resource/yum_package.rb +3 -1
  268. data/lib/chef/resource_collection.rb +50 -227
  269. data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -0
  270. data/lib/chef/resource_collection/resource_list.rb +89 -0
  271. data/lib/chef/resource_collection/resource_set.rb +170 -0
  272. data/lib/chef/resources.rb +2 -0
  273. data/lib/chef/role.rb +1 -1
  274. data/lib/chef/run_context.rb +5 -1
  275. data/lib/chef/shell/ext.rb +1 -1
  276. data/lib/chef/util/backup.rb +3 -2
  277. data/lib/chef/util/dsc/configuration_generator.rb +115 -0
  278. data/lib/chef/util/dsc/lcm_output_parser.rb +133 -0
  279. data/lib/chef/util/dsc/local_configuration_manager.rb +141 -0
  280. data/lib/chef/util/dsc/resource_info.rb +26 -0
  281. data/lib/chef/util/path_helper.rb +12 -0
  282. data/lib/chef/util/powershell/cmdlet.rb +136 -0
  283. data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
  284. data/lib/chef/version.rb +1 -1
  285. data/lib/chef/win32/api/system.rb +9 -0
  286. data/lib/chef/win32/version.rb +2 -0
  287. data/spec/.DS_Store +0 -0
  288. data/spec/data/.DS_Store +0 -0
  289. data/spec/data/bootstrap/test-hints.erb +1 -1
  290. data/spec/data/bootstrap/test.erb +1 -1
  291. data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
  292. data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
  293. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -0
  294. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -0
  295. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -0
  296. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -0
  297. data/spec/data/lwrp/.DS_Store +0 -0
  298. data/spec/data/lwrp/providers/.DS_Store +0 -0
  299. data/spec/data/lwrp/providers/buck_passer.rb +9 -2
  300. data/spec/data/lwrp/resources/.DS_Store +0 -0
  301. data/spec/data/lwrp/resources/foo.rb +3 -2
  302. data/spec/data/lwrp_override/.DS_Store +0 -0
  303. data/spec/data/lwrp_override/providers/.DS_Store +0 -0
  304. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -10
  305. data/spec/data/lwrp_override/resources/.DS_Store +0 -0
  306. data/spec/data/lwrp_override/resources/foo.rb +4 -3
  307. data/spec/functional/assets/chefinittest +34 -0
  308. data/spec/functional/assets/testchefsubsys +11 -0
  309. data/spec/functional/dsl/reboot_pending_spec.rb +19 -16
  310. data/spec/functional/event_loggers/windows_eventlog_spec.rb +82 -0
  311. data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
  312. data/spec/functional/knife/exec_spec.rb +1 -1
  313. data/spec/functional/resource/aix_service_spec.rb +136 -0
  314. data/spec/functional/resource/aixinit_service_spec.rb +211 -0
  315. data/spec/functional/resource/base.rb +1 -0
  316. data/spec/functional/resource/batch_spec.rb +4 -11
  317. data/spec/functional/resource/cron_spec.rb +7 -1
  318. data/spec/functional/resource/dsc_script_spec.rb +382 -0
  319. data/spec/functional/resource/env_spec.rb +54 -0
  320. data/spec/functional/resource/execute_spec.rb +113 -0
  321. data/spec/functional/resource/file_spec.rb +2 -0
  322. data/spec/functional/resource/group_spec.rb +7 -4
  323. data/spec/functional/resource/powershell_spec.rb +198 -185
  324. data/spec/functional/resource/rpm_spec.rb +5 -4
  325. data/spec/functional/resource/user/dscl_spec.rb +2 -1
  326. data/spec/functional/util/path_helper_spec.rb +37 -0
  327. data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
  328. data/spec/integration/client/client_spec.rb +1 -1
  329. data/spec/integration/client/ipv6_spec.rb +1 -1
  330. data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
  331. data/spec/integration/knife/chef_repo_path_spec.rb +1 -1
  332. data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
  333. data/spec/integration/knife/chefignore_spec.rb +1 -1
  334. data/spec/integration/knife/common_options_spec.rb +1 -1
  335. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  336. data/spec/integration/knife/delete_spec.rb +1 -1
  337. data/spec/integration/knife/deps_spec.rb +1 -1
  338. data/spec/integration/knife/diff_spec.rb +1 -1
  339. data/spec/integration/knife/download_spec.rb +1 -1
  340. data/spec/integration/knife/list_spec.rb +1 -1
  341. data/spec/integration/knife/raw_spec.rb +1 -1
  342. data/spec/integration/knife/redirection_spec.rb +1 -1
  343. data/spec/integration/knife/serve_spec.rb +1 -1
  344. data/spec/integration/knife/show_spec.rb +1 -1
  345. data/spec/integration/knife/upload_spec.rb +4 -3
  346. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  347. data/spec/spec_helper.rb +15 -0
  348. data/spec/support/chef_helpers.rb +1 -0
  349. data/spec/support/lib/chef/provider/snakeoil.rb +1 -0
  350. data/spec/support/lib/chef/resource/zen_follower.rb +1 -7
  351. data/spec/support/platform_helpers.rb +28 -0
  352. data/spec/support/shared/functional/file_resource.rb +6 -0
  353. data/spec/support/shared/functional/windows_script.rb +118 -0
  354. data/spec/support/shared/integration/integration_helper.rb +5 -2
  355. data/spec/support/shared/matchers/exit_with_code.rb +28 -0
  356. data/spec/support/shared/matchers/match_environment_variable.rb +17 -0
  357. data/spec/support/shared/shared_examples.rb +14 -0
  358. data/spec/support/shared/unit/execute_resource.rb +0 -7
  359. data/spec/support/shared/unit/resource/static_provider_resolution.rb +71 -0
  360. data/spec/support/shared/unit/script_resource.rb +1 -1
  361. data/spec/support/shared/unit/windows_script_resource.rb +35 -2
  362. data/spec/tiny_server.rb +1 -2
  363. data/spec/unit/api_client_spec.rb +5 -1
  364. data/spec/unit/application/{apply.rb → apply_spec.rb} +13 -5
  365. data/spec/unit/application/client_spec.rb +106 -13
  366. data/spec/unit/application/solo_spec.rb +25 -1
  367. data/spec/unit/client_spec.rb +1 -26
  368. data/spec/unit/config_fetcher_spec.rb +2 -1
  369. data/spec/unit/config_spec.rb +91 -2
  370. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +8 -0
  371. data/spec/unit/cookbook/metadata_spec.rb +43 -6
  372. data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
  373. data/spec/unit/cookbook_loader_spec.rb +4 -2
  374. data/spec/unit/cookbook_version_spec.rb +83 -2
  375. data/spec/unit/data_bag_item_spec.rb +5 -1
  376. data/spec/unit/data_bag_spec.rb +6 -1
  377. data/spec/unit/dsl/data_query_spec.rb +8 -110
  378. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -0
  379. data/spec/unit/encrypted_data_bag_item_spec.rb +16 -23
  380. data/spec/unit/environment_spec.rb +6 -2
  381. data/spec/unit/exceptions_spec.rb +6 -0
  382. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +16 -15
  383. data/spec/unit/json_compat_spec.rb +12 -2
  384. data/spec/unit/knife/bootstrap_spec.rb +16 -63
  385. data/spec/unit/knife/cookbook_site_share_spec.rb +59 -6
  386. data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -37
  387. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  388. data/spec/unit/knife/core/ui_spec.rb +28 -0
  389. data/spec/unit/knife/data_bag_create_spec.rb +63 -71
  390. data/spec/unit/knife/data_bag_edit_spec.rb +83 -49
  391. data/spec/unit/knife/data_bag_from_file_spec.rb +104 -126
  392. data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -0
  393. data/spec/unit/knife/data_bag_show_spec.rb +74 -72
  394. data/spec/unit/knife/environment_from_file_spec.rb +3 -2
  395. data/spec/unit/knife/ssl_check_spec.rb +46 -1
  396. data/spec/unit/knife/status_spec.rb +1 -2
  397. data/spec/unit/knife_spec.rb +18 -1
  398. data/spec/unit/lwrp_spec.rb +29 -8
  399. data/spec/unit/mixin/homebrew_user_spec.rb +100 -0
  400. data/spec/unit/node_map_spec.rb +155 -0
  401. data/spec/unit/node_spec.rb +11 -0
  402. data/spec/unit/platform/query_helpers_spec.rb +23 -0
  403. data/spec/unit/platform_spec.rb +23 -0
  404. data/spec/unit/provider/breakpoint_spec.rb +9 -9
  405. data/spec/unit/provider/cookbook_file/content_spec.rb +3 -3
  406. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  407. data/spec/unit/provider/cron/unix_spec.rb +78 -60
  408. data/spec/unit/provider/cron_spec.rb +175 -175
  409. data/spec/unit/provider/deploy/revision_spec.rb +22 -21
  410. data/spec/unit/provider/deploy/timestamped_spec.rb +3 -3
  411. data/spec/unit/provider/deploy_spec.rb +231 -230
  412. data/spec/unit/provider/directory_spec.rb +55 -55
  413. data/spec/unit/provider/dsc_script_spec.rb +174 -0
  414. data/spec/unit/provider/env/windows_spec.rb +70 -34
  415. data/spec/unit/provider/env_spec.rb +95 -49
  416. data/spec/unit/provider/erl_call_spec.rb +9 -9
  417. data/spec/unit/provider/execute_spec.rb +43 -27
  418. data/spec/unit/provider/file/content_spec.rb +9 -9
  419. data/spec/unit/provider/file_spec.rb +1 -1
  420. data/spec/unit/provider/git_spec.rb +221 -159
  421. data/spec/unit/provider/group/dscl_spec.rb +64 -63
  422. data/spec/unit/provider/group/gpasswd_spec.rb +14 -14
  423. data/spec/unit/provider/group/groupadd_spec.rb +33 -33
  424. data/spec/unit/provider/group/groupmod_spec.rb +23 -23
  425. data/spec/unit/provider/group/pw_spec.rb +21 -21
  426. data/spec/unit/provider/group/usermod_spec.rb +20 -20
  427. data/spec/unit/provider/group/windows_spec.rb +15 -15
  428. data/spec/unit/provider/group_spec.rb +76 -76
  429. data/spec/unit/provider/http_request_spec.rb +30 -30
  430. data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
  431. data/spec/unit/provider/ifconfig/debian_spec.rb +25 -9
  432. data/spec/unit/provider/ifconfig/redhat_spec.rb +13 -13
  433. data/spec/unit/provider/ifconfig_spec.rb +43 -43
  434. data/spec/unit/provider/link_spec.rb +60 -60
  435. data/spec/unit/provider/log_spec.rb +0 -4
  436. data/spec/unit/provider/mdadm_spec.rb +23 -23
  437. data/spec/unit/provider/mount/aix_spec.rb +17 -17
  438. data/spec/unit/provider/mount/mount_spec.rb +115 -119
  439. data/spec/unit/provider/mount/solaris_spec.rb +72 -72
  440. data/spec/unit/provider/mount/windows_spec.rb +24 -24
  441. data/spec/unit/provider/ohai_spec.rb +11 -11
  442. data/spec/unit/provider/package/aix_spec.rb +34 -34
  443. data/spec/unit/provider/package/apt_spec.rb +36 -36
  444. data/spec/unit/provider/package/dpkg_spec.rb +27 -27
  445. data/spec/unit/provider/package/easy_install_spec.rb +16 -16
  446. data/spec/unit/provider/package/freebsd/pkg_spec.rb +53 -53
  447. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +24 -24
  448. data/spec/unit/provider/package/freebsd/port_spec.rb +45 -35
  449. data/spec/unit/provider/package/homebrew_spec.rb +266 -0
  450. data/spec/unit/provider/package/ips_spec.rb +34 -34
  451. data/spec/unit/provider/package/macports_spec.rb +49 -49
  452. data/spec/unit/provider/package/pacman_spec.rb +35 -39
  453. data/spec/unit/provider/package/paludis_spec.rb +20 -20
  454. data/spec/unit/provider/package/portage_spec.rb +38 -38
  455. data/spec/unit/provider/package/rpm_spec.rb +29 -29
  456. data/spec/unit/provider/package/rubygems_spec.rb +284 -270
  457. data/spec/unit/provider/package/smartos_spec.rb +15 -15
  458. data/spec/unit/provider/package/solaris_spec.rb +35 -35
  459. data/spec/unit/provider/package/windows/msi_spec.rb +3 -3
  460. data/spec/unit/provider/package/windows_spec.rb +6 -6
  461. data/spec/unit/provider/package/yum_spec.rb +416 -416
  462. data/spec/unit/provider/package/zypper_spec.rb +47 -47
  463. data/spec/unit/provider/package_spec.rb +107 -107
  464. data/spec/unit/provider/powershell_spec.rb +1 -1
  465. data/spec/unit/provider/registry_key_spec.rb +61 -61
  466. data/spec/unit/provider/remote_directory_spec.rb +36 -36
  467. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +24 -24
  468. data/spec/unit/provider/remote_file/content_spec.rb +45 -45
  469. data/spec/unit/provider/remote_file/fetcher_spec.rb +9 -9
  470. data/spec/unit/provider/remote_file/ftp_spec.rb +32 -32
  471. data/spec/unit/provider/remote_file/http_spec.rb +44 -44
  472. data/spec/unit/provider/remote_file/local_file_spec.rb +9 -9
  473. data/spec/unit/provider/remote_file_spec.rb +3 -3
  474. data/spec/unit/provider/route_spec.rb +63 -63
  475. data/spec/unit/provider/ruby_block_spec.rb +4 -4
  476. data/spec/unit/provider/script_spec.rb +12 -12
  477. data/spec/unit/provider/service/aix_service_spec.rb +181 -0
  478. data/spec/unit/provider/service/aixinit_service_spec.rb +269 -0
  479. data/spec/unit/provider/service/arch_service_spec.rb +48 -48
  480. data/spec/unit/provider/service/debian_service_spec.rb +40 -40
  481. data/spec/unit/provider/service/gentoo_service_spec.rb +28 -28
  482. data/spec/unit/provider/service/init_service_spec.rb +39 -39
  483. data/spec/unit/provider/service/insserv_service_spec.rb +8 -8
  484. data/spec/unit/provider/service/invokercd_service_spec.rb +35 -35
  485. data/spec/unit/provider/service/macosx_spec.rb +49 -49
  486. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  487. data/spec/unit/provider/service/simple_service_spec.rb +28 -28
  488. data/spec/unit/provider/service/solaris_smf_service_spec.rb +43 -46
  489. data/spec/unit/provider/service/systemd_service_spec.rb +63 -63
  490. data/spec/unit/provider/service/upstart_service_spec.rb +78 -78
  491. data/spec/unit/provider/service/windows_spec.rb +92 -92
  492. data/spec/unit/provider/service_spec.rb +40 -40
  493. data/spec/unit/provider/subversion_spec.rb +80 -80
  494. data/spec/unit/provider/template/content_spec.rb +9 -9
  495. data/spec/unit/provider/template_spec.rb +6 -6
  496. data/spec/unit/provider/user/dscl_spec.rb +170 -167
  497. data/spec/unit/provider/user/pw_spec.rb +48 -48
  498. data/spec/unit/provider/user/solaris_spec.rb +8 -8
  499. data/spec/unit/provider/user/useradd_spec.rb +1 -1
  500. data/spec/unit/provider/user/windows_spec.rb +26 -26
  501. data/spec/unit/provider/user_spec.rb +72 -72
  502. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +4 -4
  503. data/spec/unit/provider_resolver_spec.rb +387 -0
  504. data/spec/unit/recipe_spec.rb +33 -12
  505. data/spec/unit/resource/apt_package_spec.rb +10 -13
  506. data/spec/unit/resource/bash_spec.rb +4 -4
  507. data/spec/unit/resource/batch_spec.rb +1 -1
  508. data/spec/unit/resource/breakpoint_spec.rb +11 -7
  509. data/spec/unit/resource/chef_gem_spec.rb +8 -15
  510. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  511. data/spec/unit/resource/conditional_spec.rb +35 -16
  512. data/spec/unit/resource/cookbook_file_spec.rb +13 -13
  513. data/spec/unit/resource/cron_spec.rb +37 -37
  514. data/spec/unit/resource/csh_spec.rb +4 -4
  515. data/spec/unit/resource/deploy_revision_spec.rb +13 -18
  516. data/spec/unit/resource/deploy_spec.rb +60 -55
  517. data/spec/unit/resource/directory_spec.rb +18 -18
  518. data/spec/unit/resource/dpkg_package_spec.rb +8 -14
  519. data/spec/unit/resource/dsc_script_spec.rb +98 -0
  520. data/spec/unit/resource/easy_install_package_spec.rb +9 -18
  521. data/spec/unit/resource/env_spec.rb +12 -12
  522. data/spec/unit/resource/erl_call_spec.rb +11 -11
  523. data/spec/unit/resource/execute_spec.rb +5 -0
  524. data/spec/unit/resource/file_spec.rb +29 -29
  525. data/spec/unit/resource/freebsd_package_spec.rb +11 -12
  526. data/spec/unit/resource/gem_package_spec.rb +8 -15
  527. data/spec/unit/resource/git_spec.rb +12 -8
  528. data/spec/unit/resource/group_spec.rb +27 -27
  529. data/spec/unit/resource/homebrew_package_spec.rb +50 -0
  530. data/spec/unit/resource/http_request_spec.rb +6 -6
  531. data/spec/unit/resource/ifconfig_spec.rb +8 -8
  532. data/spec/unit/resource/ips_package_spec.rb +10 -13
  533. data/spec/unit/resource/link_spec.rb +25 -25
  534. data/spec/unit/resource/log_spec.rb +9 -9
  535. data/spec/unit/resource/macports_package_spec.rb +8 -13
  536. data/spec/unit/resource/mdadm_spec.rb +18 -18
  537. data/spec/unit/resource/mount_spec.rb +45 -45
  538. data/spec/unit/resource/ohai_spec.rb +7 -7
  539. data/spec/unit/resource/package_spec.rb +12 -12
  540. data/spec/unit/resource/pacman_package_spec.rb +8 -14
  541. data/spec/unit/resource/perl_spec.rb +4 -4
  542. data/spec/unit/resource/portage_package_spec.rb +3 -3
  543. data/spec/unit/resource/powershell_spec.rb +7 -7
  544. data/spec/unit/resource/python_spec.rb +4 -4
  545. data/spec/unit/resource/registry_key_spec.rb +32 -32
  546. data/spec/unit/resource/remote_directory_spec.rb +17 -17
  547. data/spec/unit/resource/remote_file_spec.rb +41 -41
  548. data/spec/unit/resource/route_spec.rb +19 -19
  549. data/spec/unit/resource/rpm_package_spec.rb +9 -13
  550. data/spec/unit/resource/ruby_block_spec.rb +8 -8
  551. data/spec/unit/resource/ruby_spec.rb +4 -4
  552. data/spec/unit/resource/scm_spec.rb +40 -40
  553. data/spec/unit/resource/script_spec.rb +2 -2
  554. data/spec/unit/resource/service_spec.rb +37 -47
  555. data/spec/unit/resource/smartos_package_spec.rb +10 -15
  556. data/spec/unit/resource/solaris_package_spec.rb +13 -28
  557. data/spec/unit/resource/subversion_spec.rb +16 -12
  558. data/spec/unit/resource/template_spec.rb +35 -35
  559. data/spec/unit/resource/timestamped_deploy_spec.rb +30 -4
  560. data/spec/unit/resource/user_spec.rb +23 -23
  561. data/spec/unit/resource/windows_package_spec.rb +17 -10
  562. data/spec/unit/resource/windows_service_spec.rb +9 -6
  563. data/spec/unit/resource/yum_package_spec.rb +16 -21
  564. data/spec/unit/resource_collection/resource_list_spec.rb +137 -0
  565. data/spec/unit/resource_collection/resource_set_spec.rb +199 -0
  566. data/spec/unit/resource_collection_spec.rb +73 -92
  567. data/spec/unit/resource_definition_spec.rb +38 -40
  568. data/spec/unit/resource_reporter_spec.rb +3 -3
  569. data/spec/unit/resource_spec.rb +68 -33
  570. data/spec/unit/rest_spec.rb +83 -76
  571. data/spec/unit/role_spec.rb +5 -0
  572. data/spec/unit/run_list_spec.rb +5 -1
  573. data/spec/unit/runner_spec.rb +245 -238
  574. data/spec/unit/shell/shell_ext_spec.rb +1 -1
  575. data/spec/unit/user_spec.rb +5 -1
  576. data/spec/unit/util/dsc/configuration_generator_spec.rb +171 -0
  577. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +169 -0
  578. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +139 -0
  579. data/spec/unit/util/path_helper_spec.rb +23 -1
  580. data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
  581. data/spec/unit/workstation_config_loader_spec.rb +1 -1
  582. metadata +303 -196
  583. checksums.yaml +0 -7
  584. data/distro/README +0 -2
  585. data/distro/arch/etc/conf.d/chef-client.conf +0 -5
  586. data/distro/arch/etc/conf.d/chef-expander.conf +0 -8
  587. data/distro/arch/etc/conf.d/chef-server-webui.conf +0 -10
  588. data/distro/arch/etc/conf.d/chef-server.conf +0 -10
  589. data/distro/arch/etc/conf.d/chef-solr.conf +0 -8
  590. data/distro/arch/etc/rc.d/chef-client +0 -90
  591. data/distro/arch/etc/rc.d/chef-expander +0 -78
  592. data/distro/arch/etc/rc.d/chef-server +0 -78
  593. data/distro/arch/etc/rc.d/chef-server-webui +0 -78
  594. data/distro/arch/etc/rc.d/chef-solr +0 -78
  595. data/distro/debian/etc/default/chef-client +0 -4
  596. data/distro/debian/etc/default/chef-expander +0 -8
  597. data/distro/debian/etc/default/chef-server +0 -9
  598. data/distro/debian/etc/default/chef-server-webui +0 -9
  599. data/distro/debian/etc/default/chef-solr +0 -8
  600. data/distro/debian/etc/init.d/chef-client +0 -212
  601. data/distro/debian/etc/init.d/chef-expander +0 -176
  602. data/distro/debian/etc/init.d/chef-server +0 -122
  603. data/distro/debian/etc/init.d/chef-server-webui +0 -123
  604. data/distro/debian/etc/init.d/chef-solr +0 -176
  605. data/distro/debian/etc/init/chef-client.conf +0 -17
  606. data/distro/debian/etc/init/chef-expander.conf +0 -17
  607. data/distro/debian/etc/init/chef-server-webui.conf +0 -17
  608. data/distro/debian/etc/init/chef-server.conf +0 -17
  609. data/distro/debian/etc/init/chef-solr.conf +0 -17
  610. data/distro/redhat/etc/init.d/chef-client +0 -121
  611. data/distro/redhat/etc/init.d/chef-expander +0 -104
  612. data/distro/redhat/etc/init.d/chef-server +0 -112
  613. data/distro/redhat/etc/init.d/chef-server-webui +0 -112
  614. data/distro/redhat/etc/init.d/chef-solr +0 -104
  615. data/distro/redhat/etc/logrotate.d/chef-client +0 -8
  616. data/distro/redhat/etc/logrotate.d/chef-expander +0 -8
  617. data/distro/redhat/etc/logrotate.d/chef-server +0 -8
  618. data/distro/redhat/etc/logrotate.d/chef-server-webui +0 -8
  619. data/distro/redhat/etc/logrotate.d/chef-solr +0 -8
  620. data/distro/redhat/etc/sysconfig/chef-client +0 -15
  621. data/distro/redhat/etc/sysconfig/chef-expander +0 -7
  622. data/distro/redhat/etc/sysconfig/chef-server +0 -14
  623. data/distro/redhat/etc/sysconfig/chef-server-webui +0 -14
  624. data/distro/redhat/etc/sysconfig/chef-solr +0 -8
  625. data/distro/windows/service_manager.rb +0 -20
  626. data/lib/chef/resource_platform_map.rb +0 -151
  627. data/spec/support/shared/matchers.rb +0 -17
  628. data/spec/unit/resource_platform_map_spec.rb +0 -164
@@ -56,64 +56,64 @@ describe Chef::Provider::User::Pw do
56
56
  }
57
57
  field_list.each do |attribute, option|
58
58
  it "should check for differences in #{attribute} between the new and current resources" do
59
- @current_resource.should_receive(attribute)
60
- @new_resource.should_receive(attribute)
59
+ expect(@current_resource).to receive(attribute)
60
+ expect(@new_resource).to receive(attribute)
61
61
  @provider.set_options
62
62
  end
63
63
 
64
64
  it "should set the option for #{attribute} if the new resources #{attribute} is not null" do
65
- @new_resource.stub(attribute).and_return("hola")
66
- @provider.set_options.should eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}' -m")
65
+ allow(@new_resource).to receive(attribute).and_return("hola")
66
+ expect(@provider.set_options).to eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}' -m")
67
67
  end
68
68
 
69
69
  it "should set the option for #{attribute} if the new resources #{attribute} is not null, without homedir management" do
70
- @new_resource.stub(:supports).and_return({:manage_home => false})
71
- @new_resource.stub(attribute).and_return("hola")
72
- @provider.set_options.should eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}'")
70
+ allow(@new_resource).to receive(:supports).and_return({:manage_home => false})
71
+ allow(@new_resource).to receive(attribute).and_return("hola")
72
+ expect(@provider.set_options).to eql(" #{@new_resource.username} #{option} '#{@new_resource.send(attribute)}'")
73
73
  end
74
74
  end
75
75
 
76
76
  it "should combine all the possible options" do
77
77
  match_string = " adam"
78
78
  field_list.sort{ |a,b| a[0] <=> b[0] }.each do |attribute, option|
79
- @new_resource.stub(attribute).and_return("hola")
79
+ allow(@new_resource).to receive(attribute).and_return("hola")
80
80
  match_string << " #{option} 'hola'"
81
81
  end
82
82
  match_string << " -m"
83
- @provider.set_options.should eql(match_string)
83
+ expect(@provider.set_options).to eql(match_string)
84
84
  end
85
85
  end
86
86
 
87
87
  describe "create_user" do
88
88
  before(:each) do
89
- @provider.stub(:run_command).and_return(true)
90
- @provider.stub(:modify_password).and_return(true)
89
+ allow(@provider).to receive(:run_command).and_return(true)
90
+ allow(@provider).to receive(:modify_password).and_return(true)
91
91
  end
92
92
 
93
93
  it "should run pw useradd with the return of set_options" do
94
- @provider.should_receive(:run_command).with({ :command => "pw useradd adam -m" }).and_return(true)
94
+ expect(@provider).to receive(:run_command).with({ :command => "pw useradd adam -m" }).and_return(true)
95
95
  @provider.create_user
96
96
  end
97
97
 
98
98
  it "should modify the password" do
99
- @provider.should_receive(:modify_password).and_return(true)
99
+ expect(@provider).to receive(:modify_password).and_return(true)
100
100
  @provider.create_user
101
101
  end
102
102
  end
103
103
 
104
104
  describe "manage_user" do
105
105
  before(:each) do
106
- @provider.stub(:run_command).and_return(true)
107
- @provider.stub(:modify_password).and_return(true)
106
+ allow(@provider).to receive(:run_command).and_return(true)
107
+ allow(@provider).to receive(:modify_password).and_return(true)
108
108
  end
109
109
 
110
110
  it "should run pw usermod with the return of set_options" do
111
- @provider.should_receive(:run_command).with({ :command => "pw usermod adam -m" }).and_return(true)
111
+ expect(@provider).to receive(:run_command).with({ :command => "pw usermod adam -m" }).and_return(true)
112
112
  @provider.manage_user
113
113
  end
114
114
 
115
115
  it "should modify the password" do
116
- @provider.should_receive(:modify_password).and_return(true)
116
+ expect(@provider).to receive(:modify_password).and_return(true)
117
117
  @provider.create_user
118
118
  end
119
119
  end
@@ -121,38 +121,38 @@ describe Chef::Provider::User::Pw do
121
121
  describe "remove_user" do
122
122
  it "should run pw userdel with the new resources user name" do
123
123
  @new_resource.supports :manage_home => false
124
- @provider.should_receive(:run_command).with({ :command => "pw userdel #{@new_resource.username}" }).and_return(true)
124
+ expect(@provider).to receive(:run_command).with({ :command => "pw userdel #{@new_resource.username}" }).and_return(true)
125
125
  @provider.remove_user
126
126
  end
127
127
 
128
128
  it "should run pw userdel with the new resources user name and -r if manage_home is true" do
129
- @provider.should_receive(:run_command).with({ :command => "pw userdel #{@new_resource.username} -r"}).and_return(true)
129
+ expect(@provider).to receive(:run_command).with({ :command => "pw userdel #{@new_resource.username} -r"}).and_return(true)
130
130
  @provider.remove_user
131
131
  end
132
132
  end
133
133
 
134
134
  describe "determining if the user is locked" do
135
135
  it "should return true if user is locked" do
136
- @current_resource.stub(:password).and_return("*LOCKED*abracadabra")
137
- @provider.check_lock.should eql(true)
136
+ allow(@current_resource).to receive(:password).and_return("*LOCKED*abracadabra")
137
+ expect(@provider.check_lock).to eql(true)
138
138
  end
139
139
 
140
140
  it "should return false if user is not locked" do
141
- @current_resource.stub(:password).and_return("abracadabra")
142
- @provider.check_lock.should eql(false)
141
+ allow(@current_resource).to receive(:password).and_return("abracadabra")
142
+ expect(@provider.check_lock).to eql(false)
143
143
  end
144
144
  end
145
145
 
146
146
  describe "when locking the user" do
147
147
  it "should run pw lock with the new resources username" do
148
- @provider.should_receive(:run_command).with({ :command => "pw lock #{@new_resource.username}"})
148
+ expect(@provider).to receive(:run_command).with({ :command => "pw lock #{@new_resource.username}"})
149
149
  @provider.lock_user
150
150
  end
151
151
  end
152
152
 
153
153
  describe "when unlocking the user" do
154
154
  it "should run pw unlock with the new resources username" do
155
- @provider.should_receive(:run_command).with({ :command => "pw unlock #{@new_resource.username}"})
155
+ expect(@provider).to receive(:run_command).with({ :command => "pw unlock #{@new_resource.username}"})
156
156
  @provider.unlock_user
157
157
  end
158
158
  end
@@ -160,76 +160,76 @@ describe Chef::Provider::User::Pw do
160
160
  describe "when modifying the password" do
161
161
  before(:each) do
162
162
  @status = double("Status", :exitstatus => 0)
163
- @provider.stub(:popen4).and_return(@status)
163
+ allow(@provider).to receive(:popen4).and_return(@status)
164
164
  @pid, @stdin, @stdout, @stderr = nil, nil, nil, nil
165
165
  end
166
166
 
167
167
  describe "and the new password has not been specified" do
168
168
  before(:each) do
169
- @new_resource.stub(:password).and_return(nil)
169
+ allow(@new_resource).to receive(:password).and_return(nil)
170
170
  end
171
171
 
172
172
  it "logs an appropriate message" do
173
- Chef::Log.should_receive(:debug).with("user[adam] no change needed to password")
173
+ expect(Chef::Log).to receive(:debug).with("user[adam] no change needed to password")
174
174
  @provider.modify_password
175
175
  end
176
176
  end
177
177
 
178
178
  describe "and the new password has been specified" do
179
179
  before(:each) do
180
- @new_resource.stub(:password).and_return("abracadabra")
180
+ allow(@new_resource).to receive(:password).and_return("abracadabra")
181
181
  end
182
182
 
183
183
  it "should check for differences in password between the new and current resources" do
184
- @current_resource.should_receive(:password)
185
- @new_resource.should_receive(:password)
184
+ expect(@current_resource).to receive(:password)
185
+ expect(@new_resource).to receive(:password)
186
186
  @provider.modify_password
187
187
  end
188
188
  end
189
189
 
190
190
  describe "and the passwords are identical" do
191
191
  before(:each) do
192
- @new_resource.stub(:password).and_return("abracadabra")
193
- @current_resource.stub(:password).and_return("abracadabra")
192
+ allow(@new_resource).to receive(:password).and_return("abracadabra")
193
+ allow(@current_resource).to receive(:password).and_return("abracadabra")
194
194
  end
195
195
 
196
196
  it "logs an appropriate message" do
197
- Chef::Log.should_receive(:debug).with("user[adam] no change needed to password")
197
+ expect(Chef::Log).to receive(:debug).with("user[adam] no change needed to password")
198
198
  @provider.modify_password
199
199
  end
200
200
  end
201
201
 
202
202
  describe "and the passwords are different" do
203
203
  before(:each) do
204
- @new_resource.stub(:password).and_return("abracadabra")
205
- @current_resource.stub(:password).and_return("sesame")
204
+ allow(@new_resource).to receive(:password).and_return("abracadabra")
205
+ allow(@current_resource).to receive(:password).and_return("sesame")
206
206
  end
207
207
 
208
208
  it "should log an appropriate message" do
209
- Chef::Log.should_receive(:debug).with("user[adam] updating password")
209
+ expect(Chef::Log).to receive(:debug).with("user[adam] updating password")
210
210
  @provider.modify_password
211
211
  end
212
212
 
213
213
  it "should run pw usermod with the username and the option -H 0" do
214
- @provider.should_receive(:popen4).with("pw usermod adam -H 0", :waitlast => true).and_return(@status)
214
+ expect(@provider).to receive(:popen4).with("pw usermod adam -H 0", :waitlast => true).and_return(@status)
215
215
  @provider.modify_password
216
216
  end
217
217
 
218
218
  it "should send the new password to the stdin of pw usermod" do
219
219
  @stdin = StringIO.new
220
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
220
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
221
221
  @provider.modify_password
222
- @stdin.string.should == "abracadabra\n"
222
+ expect(@stdin.string).to eq("abracadabra\n")
223
223
  end
224
224
 
225
225
  it "should raise an exception if pw usermod fails" do
226
- @status.should_receive(:exitstatus).and_return(1)
227
- lambda { @provider.modify_password }.should raise_error(Chef::Exceptions::User)
226
+ expect(@status).to receive(:exitstatus).and_return(1)
227
+ expect { @provider.modify_password }.to raise_error(Chef::Exceptions::User)
228
228
  end
229
229
 
230
230
  it "should not raise an exception if pw usermod succeeds" do
231
- @status.should_receive(:exitstatus).and_return(0)
232
- lambda { @provider.modify_password }.should_not raise_error
231
+ expect(@status).to receive(:exitstatus).and_return(0)
232
+ expect { @provider.modify_password }.not_to raise_error
233
233
  end
234
234
  end
235
235
  end
@@ -240,13 +240,13 @@ describe Chef::Provider::User::Pw do
240
240
  end
241
241
 
242
242
  it "should raise an error if the required binary /usr/sbin/pw doesn't exist" do
243
- File.should_receive(:exists?).with("/usr/sbin/pw").and_return(false)
244
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::User)
243
+ expect(File).to receive(:exists?).with("/usr/sbin/pw").and_return(false)
244
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::User)
245
245
  end
246
246
 
247
247
  it "shouldn't raise an error if /usr/sbin/pw exists" do
248
- File.stub(:exists?).and_return(true)
249
- lambda { @provider.load_current_resource }.should_not raise_error
248
+ allow(File).to receive(:exists?).and_return(true)
249
+ expect { @provider.load_current_resource }.not_to raise_error
250
250
  end
251
251
  end
252
252
  end
@@ -27,7 +27,7 @@ describe Chef::Provider::User::Solaris do
27
27
  p.current_resource = @current_resource
28
28
 
29
29
  # Prevent the useradd-based provider tests from trying to write /etc/shadow
30
- p.stub(:write_shadow_file)
30
+ allow(p).to receive(:write_shadow_file)
31
31
  p
32
32
  end
33
33
 
@@ -51,28 +51,28 @@ describe Chef::Provider::User::Solaris do
51
51
 
52
52
  @new_resource.password "hocus-pocus"
53
53
 
54
- # Let these tests run #write_shadow_file
55
- provider.unstub(:write_shadow_file)
56
54
  end
57
55
 
58
56
  it "should use its own shadow file writer to set the password" do
59
- provider.should_receive(:write_shadow_file)
60
- provider.stub(:shell_out!).and_return(true)
57
+ expect(provider).to receive(:write_shadow_file)
58
+ allow(provider).to receive(:shell_out!).and_return(true)
61
59
  provider.manage_user
62
60
  end
63
61
 
64
62
  it "should write out a modified version of the password file" do
63
+ # Let this test run #write_shadow_file
64
+ allow(provider).to receive(:write_shadow_file).and_call_original
65
65
  password_file = Tempfile.new("shadow")
66
66
  password_file.puts "adam:existingpassword:15441::::::"
67
67
  password_file.close
68
68
  provider.password_file = password_file.path
69
- provider.stub(:shell_out!).and_return(true)
69
+ allow(provider).to receive(:shell_out!).and_return(true)
70
70
  # may not be able to write to /etc for tests...
71
71
  temp_file = Tempfile.new("shadow")
72
- Tempfile.stub(:new).with("shadow", "/etc").and_return(temp_file)
72
+ allow(Tempfile).to receive(:new).with("shadow", "/etc").and_return(temp_file)
73
73
  @new_resource.password "verysecurepassword"
74
74
  provider.manage_user
75
- ::File.open(password_file.path, "r").read.should =~ /adam:verysecurepassword:/
75
+ expect(::File.open(password_file.path, "r").read).to match(/adam:verysecurepassword:/)
76
76
  password_file.unlink
77
77
  end
78
78
  end
@@ -43,7 +43,7 @@ describe Chef::Provider::User::Useradd do
43
43
  # CHEF-5247: Chef::Provider::User::Solaris subclasses Chef::Provider::User::Useradd, but does not use usermod to change passwords.
44
44
  # Thus, a call to Solaris#manage_user calls Solaris#manage_password and Useradd#manage_user, but the latter should be a no-op.
45
45
  it "should not run the command if universal_options is an empty array" do
46
- provider.stub(:universal_options).and_return([])
46
+ allow(provider).to receive(:universal_options).and_return([])
47
47
  expect(provider).not_to receive(:shell_out!)
48
48
  provider.manage_user
49
49
  end
@@ -36,7 +36,7 @@ describe Chef::Provider::User::Windows do
36
36
  @current_resource = Chef::Resource::User.new("monkey")
37
37
 
38
38
  @net_user = double("Chef::Util::Windows::NetUser")
39
- Chef::Util::Windows::NetUser.stub(:new).and_return(@net_user)
39
+ allow(Chef::Util::Windows::NetUser).to receive(:new).and_return(@net_user)
40
40
 
41
41
  @provider = Chef::Provider::User::Windows.new(@new_resource, @run_context)
42
42
  @provider.current_resource = @current_resource
@@ -62,27 +62,27 @@ describe Chef::Provider::User::Windows do
62
62
 
63
63
  describe "and the attributes match" do
64
64
  it "doesn't set the comment field to be updated" do
65
- @provider.set_options.should_not have_key(:full_name)
65
+ expect(@provider.set_options).not_to have_key(:full_name)
66
66
  end
67
67
 
68
68
  it "doesn't set the home directory to be updated" do
69
- @provider.set_options.should_not have_key(:home_dir)
69
+ expect(@provider.set_options).not_to have_key(:home_dir)
70
70
  end
71
71
 
72
72
  it "doesn't set the group id to be updated" do
73
- @provider.set_options.should_not have_key(:primary_group_id)
73
+ expect(@provider.set_options).not_to have_key(:primary_group_id)
74
74
  end
75
75
 
76
76
  it "doesn't set the user id to be updated" do
77
- @provider.set_options.should_not have_key(:user_id)
77
+ expect(@provider.set_options).not_to have_key(:user_id)
78
78
  end
79
79
 
80
80
  it "doesn't set the shell to be updated" do
81
- @provider.set_options.should_not have_key(:script_path)
81
+ expect(@provider.set_options).not_to have_key(:script_path)
82
82
  end
83
83
 
84
84
  it "doesn't set the password to be updated" do
85
- @provider.set_options.should_not have_key(:password)
85
+ expect(@provider.set_options).not_to have_key(:password)
86
86
  end
87
87
 
88
88
  end
@@ -100,53 +100,53 @@ describe Chef::Provider::User::Windows do
100
100
  end
101
101
 
102
102
  it "marks the full_name field to be updated" do
103
- @provider.set_options[:full_name].should == "Adam Jacob"
103
+ expect(@provider.set_options[:full_name]).to eq("Adam Jacob")
104
104
  end
105
105
 
106
106
  it "marks the home_dir attribute to be updated" do
107
- @provider.set_options[:home_dir].should == '/home/adam'
107
+ expect(@provider.set_options[:home_dir]).to eq('/home/adam')
108
108
  end
109
109
 
110
110
  it "marks the primary_group_id attribute to be updated" do
111
- @provider.set_options[:primary_group_id].should == 1000
111
+ expect(@provider.set_options[:primary_group_id]).to eq(1000)
112
112
  end
113
113
 
114
114
  it "marks the user_id attribute to be updated" do
115
- @provider.set_options[:user_id].should == 1000
115
+ expect(@provider.set_options[:user_id]).to eq(1000)
116
116
  end
117
117
 
118
118
  it "marks the script_path attribute to be updated" do
119
- @provider.set_options[:script_path].should == '/usr/bin/zsh'
119
+ expect(@provider.set_options[:script_path]).to eq('/usr/bin/zsh')
120
120
  end
121
121
 
122
122
  it "marks the password attribute to be updated" do
123
- @provider.set_options[:password].should == 'abracadabra'
123
+ expect(@provider.set_options[:password]).to eq('abracadabra')
124
124
  end
125
125
  end
126
126
  end
127
127
 
128
128
  describe "when creating the user" do
129
129
  it "should call @net_user.add with the return of set_options" do
130
- @provider.stub(:set_options).and_return(:name=> "monkey")
131
- @net_user.should_receive(:add).with(:name=> "monkey")
130
+ allow(@provider).to receive(:set_options).and_return(:name=> "monkey")
131
+ expect(@net_user).to receive(:add).with(:name=> "monkey")
132
132
  @provider.create_user
133
133
  end
134
134
  end
135
135
 
136
136
  describe "manage_user" do
137
137
  before(:each) do
138
- @provider.stub(:set_options).and_return(:name=> "monkey")
138
+ allow(@provider).to receive(:set_options).and_return(:name=> "monkey")
139
139
  end
140
140
 
141
141
  it "should call @net_user.update with the return of set_options" do
142
- @net_user.should_receive(:update).with(:name=> "monkey")
142
+ expect(@net_user).to receive(:update).with(:name=> "monkey")
143
143
  @provider.manage_user
144
144
  end
145
145
  end
146
146
 
147
147
  describe "when removing the user" do
148
148
  it "should call @net_user.delete" do
149
- @net_user.should_receive(:delete)
149
+ expect(@net_user).to receive(:delete)
150
150
  @provider.remove_user
151
151
  end
152
152
  end
@@ -157,28 +157,28 @@ describe Chef::Provider::User::Windows do
157
157
  end
158
158
 
159
159
  it "should return true if user is locked" do
160
- @net_user.stub(:check_enabled).and_return(true)
161
- @provider.check_lock.should eql(true)
160
+ allow(@net_user).to receive(:check_enabled).and_return(true)
161
+ expect(@provider.check_lock).to eql(true)
162
162
  end
163
163
 
164
164
  it "should return false if user is not locked" do
165
- @net_user.stub(:check_enabled).and_return(false)
166
- @provider.check_lock.should eql(false)
165
+ allow(@net_user).to receive(:check_enabled).and_return(false)
166
+ expect(@provider.check_lock).to eql(false)
167
167
  end
168
168
  end
169
169
 
170
170
  describe "locking the user" do
171
171
  it "should call @net_user.disable_account" do
172
- @net_user.stub(:check_enabled).and_return(true)
173
- @net_user.should_receive(:disable_account)
172
+ allow(@net_user).to receive(:check_enabled).and_return(true)
173
+ expect(@net_user).to receive(:disable_account)
174
174
  @provider.lock_user
175
175
  end
176
176
  end
177
177
 
178
178
  describe "unlocking the user" do
179
179
  it "should call @net_user.enable_account" do
180
- @net_user.stub(:check_enabled).and_return(false)
181
- @net_user.should_receive(:enable_account)
180
+ allow(@net_user).to receive(:check_enabled).and_return(false)
181
+ expect(@net_user).to receive(:enable_account)
182
182
  @provider.unlock_user
183
183
  end
184
184
  end
@@ -47,11 +47,11 @@ describe Chef::Provider::User do
47
47
 
48
48
  describe "when first created" do
49
49
  it "assume the user exists by default" do
50
- @provider.user_exists.should eql(true)
50
+ expect(@provider.user_exists).to eql(true)
51
51
  end
52
52
 
53
53
  it "does not know the locked state" do
54
- @provider.locked.should eql(nil)
54
+ expect(@provider.locked).to eql(nil)
55
55
  end
56
56
  end
57
57
 
@@ -69,7 +69,7 @@ describe Chef::Provider::User do
69
69
  # :password => nil,
70
70
  # :updated => nil
71
71
  #)
72
- Chef::Resource::User.stub(:new).and_return(@current_resource)
72
+ allow(Chef::Resource::User).to receive(:new).and_return(@current_resource)
73
73
  @pw_user = EtcPwnamIsh.new
74
74
  @pw_user.name = "adam"
75
75
  @pw_user.gid = 1000
@@ -78,34 +78,34 @@ describe Chef::Provider::User do
78
78
  @pw_user.dir = "/home/adam"
79
79
  @pw_user.shell = "/usr/bin/zsh"
80
80
  @pw_user.passwd = "*"
81
- Etc.stub(:getpwnam).and_return(@pw_user)
81
+ allow(Etc).to receive(:getpwnam).and_return(@pw_user)
82
82
  end
83
83
 
84
84
  it "should create a current resource with the same name as the new resource" do
85
85
  @provider.load_current_resource
86
- @provider.current_resource.name.should == 'adam'
86
+ expect(@provider.current_resource.name).to eq('adam')
87
87
  end
88
88
 
89
89
  it "should set the username of the current resource to the username of the new resource" do
90
90
  @provider.load_current_resource
91
- @current_resource.username.should == @new_resource.username
91
+ expect(@current_resource.username).to eq(@new_resource.username)
92
92
  end
93
93
 
94
94
  it "should change the encoding of gecos to the encoding of the new resource", :ruby_gte_19_only do
95
95
  @pw_user.gecos.force_encoding('ASCII-8BIT')
96
96
  @provider.load_current_resource
97
- @provider.current_resource.comment.encoding.should == @new_resource.comment.encoding
97
+ expect(@provider.current_resource.comment.encoding).to eq(@new_resource.comment.encoding)
98
98
  end
99
99
 
100
100
  it "should look up the user in /etc/passwd with getpwnam" do
101
- Etc.should_receive(:getpwnam).with(@new_resource.username).and_return(@pw_user)
101
+ expect(Etc).to receive(:getpwnam).with(@new_resource.username).and_return(@pw_user)
102
102
  @provider.load_current_resource
103
103
  end
104
104
 
105
105
  it "should set user_exists to false if the user is not found with getpwnam" do
106
- Etc.should_receive(:getpwnam).and_raise(ArgumentError)
106
+ expect(Etc).to receive(:getpwnam).and_raise(ArgumentError)
107
107
  @provider.load_current_resource
108
- @provider.user_exists.should eql(false)
108
+ expect(@provider.user_exists).to eql(false)
109
109
  end
110
110
 
111
111
  # The mapping between the Chef::Resource::User and Getpwnam struct
@@ -118,24 +118,24 @@ describe Chef::Provider::User do
118
118
  }
119
119
  user_attrib_map.each do |user_attrib, getpwnam_attrib|
120
120
  it "should set the current resources #{user_attrib} based on getpwnam #{getpwnam_attrib}" do
121
- @current_resource.should_receive(user_attrib).with(@pw_user.send(getpwnam_attrib))
121
+ expect(@current_resource).to receive(user_attrib).with(@pw_user.send(getpwnam_attrib))
122
122
  @provider.load_current_resource
123
123
  end
124
124
  end
125
125
 
126
126
  it "should attempt to convert the group gid if one has been supplied" do
127
- @provider.should_receive(:convert_group_name)
127
+ expect(@provider).to receive(:convert_group_name)
128
128
  @provider.load_current_resource
129
129
  end
130
130
 
131
131
  it "shouldn't try and convert the group gid if none has been supplied" do
132
- @new_resource.stub(:gid).and_return(nil)
133
- @provider.should_not_receive(:convert_group_name)
132
+ allow(@new_resource).to receive(:gid).and_return(nil)
133
+ expect(@provider).not_to receive(:convert_group_name)
134
134
  @provider.load_current_resource
135
135
  end
136
136
 
137
137
  it "should return the current resource" do
138
- @provider.load_current_resource.should eql(@current_resource)
138
+ expect(@provider.load_current_resource).to eql(@current_resource)
139
139
  end
140
140
 
141
141
  describe "and running assertions" do
@@ -156,7 +156,7 @@ describe Chef::Provider::User do
156
156
  user.name = "root"
157
157
  user.passwd = "x"
158
158
  @new_resource.password "some new password"
159
- Etc.stub(:getpwnam).and_return(user)
159
+ allow(Etc).to receive(:getpwnam).and_return(user)
160
160
  end
161
161
 
162
162
  unless shadow_lib_unavail?
@@ -167,10 +167,10 @@ describe Chef::Provider::User do
167
167
  it "should pass assertions when ruby-shadow can be loaded" do
168
168
  @provider.action = 'create'
169
169
  original_method = @provider.method(:require)
170
- @provider.should_receive(:require) { |*args| original_method.call(*args) }
170
+ expect(@provider).to receive(:require) { |*args| original_method.call(*args) }
171
171
  passwd_info = Struct::PasswdEntry.new(:sp_namp => "adm ", :sp_pwdp => "$1$T0N0Q.lc$nyG6pFI3Dpqa5cxUz/57j0", :sp_lstchg => 14861, :sp_min => 0, :sp_max => 99999,
172
172
  :sp_warn => 7, :sp_inact => -1, :sp_expire => -1, :sp_flag => -1)
173
- Shadow::Passwd.should_receive(:getspnam).with("adam").and_return(passwd_info)
173
+ expect(Shadow::Passwd).to receive(:getspnam).with("adam").and_return(passwd_info)
174
174
  @provider.load_current_resource
175
175
  @provider.define_resource_requirements
176
176
  @provider.process_resource_requirements
@@ -180,10 +180,10 @@ describe Chef::Provider::User do
180
180
  end
181
181
 
182
182
  it "should fail assertions when ruby-shadow cannot be loaded" do
183
- @provider.should_receive(:require).with("shadow") { raise LoadError }
183
+ expect(@provider).to receive(:require).with("shadow") { raise LoadError }
184
184
  @provider.load_current_resource
185
185
  @provider.define_resource_requirements
186
- lambda {@provider.process_resource_requirements}.should raise_error Chef::Exceptions::MissingLibrary
186
+ expect {@provider.process_resource_requirements}.to raise_error Chef::Exceptions::MissingLibrary
187
187
  end
188
188
 
189
189
  end
@@ -206,7 +206,7 @@ describe Chef::Provider::User do
206
206
  it "should return true if #{attribute} doesn't match" do
207
207
  @new_resource.send(attribute, mapping[attribute][0])
208
208
  @current_resource.send(attribute, mapping[attribute][1])
209
- @provider.compare_user.should eql(true)
209
+ expect(@provider.compare_user).to eql(true)
210
210
  end
211
211
  end
212
212
 
@@ -214,18 +214,18 @@ describe Chef::Provider::User do
214
214
  it "should return false if string #{attribute} matches fixnum" do
215
215
  @new_resource.send(attribute, "100")
216
216
  @current_resource.send(attribute, 100)
217
- @provider.compare_user.should eql(false)
217
+ expect(@provider.compare_user).to eql(false)
218
218
  end
219
219
  end
220
220
 
221
221
  it "should return false if the objects are identical" do
222
- @provider.compare_user.should eql(false)
222
+ expect(@provider.compare_user).to eql(false)
223
223
  end
224
224
  end
225
225
 
226
226
  describe "action_create" do
227
227
  before(:each) do
228
- @provider.stub(:load_current_resource)
228
+ allow(@provider).to receive(:load_current_resource)
229
229
  # @current_resource = double("Chef::Resource::User",
230
230
  # :null_object => true,
231
231
  # :username => "adam",
@@ -246,58 +246,58 @@ describe Chef::Provider::User do
246
246
 
247
247
  it "should call create_user if the user does not exist" do
248
248
  @provider.user_exists = false
249
- @provider.should_receive(:create_user).and_return(true)
249
+ expect(@provider).to receive(:create_user).and_return(true)
250
250
  @provider.action_create
251
251
  @provider.set_updated_status
252
- @new_resource.should be_updated
252
+ expect(@new_resource).to be_updated
253
253
  end
254
254
 
255
255
  it "should call manage_user if the user exists and has mismatched attributes" do
256
256
  @provider.user_exists = true
257
- @provider.stub(:compare_user).and_return(true)
258
- @provider.should_receive(:manage_user).and_return(true)
257
+ allow(@provider).to receive(:compare_user).and_return(true)
258
+ expect(@provider).to receive(:manage_user).and_return(true)
259
259
  @provider.action_create
260
260
  end
261
261
 
262
262
  it "should set the new_resources updated flag when it creates the user if we call manage_user" do
263
263
  @provider.user_exists = true
264
- @provider.stub(:compare_user).and_return(true)
265
- @provider.stub(:manage_user).and_return(true)
264
+ allow(@provider).to receive(:compare_user).and_return(true)
265
+ allow(@provider).to receive(:manage_user).and_return(true)
266
266
  @provider.action_create
267
267
  @provider.set_updated_status
268
- @new_resource.should be_updated
268
+ expect(@new_resource).to be_updated
269
269
  end
270
270
  end
271
271
 
272
272
  describe "action_remove" do
273
273
  before(:each) do
274
- @provider.stub(:load_current_resource)
274
+ allow(@provider).to receive(:load_current_resource)
275
275
  end
276
276
 
277
277
  it "should not call remove_user if the user does not exist" do
278
278
  @provider.user_exists = false
279
- @provider.should_not_receive(:remove_user)
279
+ expect(@provider).not_to receive(:remove_user)
280
280
  @provider.action_remove
281
281
  end
282
282
 
283
283
  it "should call remove_user if the user exists" do
284
284
  @provider.user_exists = true
285
- @provider.should_receive(:remove_user)
285
+ expect(@provider).to receive(:remove_user)
286
286
  @provider.action_remove
287
287
  end
288
288
 
289
289
  it "should set the new_resources updated flag to true if the user is removed" do
290
290
  @provider.user_exists = true
291
- @provider.should_receive(:remove_user)
291
+ expect(@provider).to receive(:remove_user)
292
292
  @provider.action_remove
293
293
  @provider.set_updated_status
294
- @new_resource.should be_updated
294
+ expect(@new_resource).to be_updated
295
295
  end
296
296
  end
297
297
 
298
298
  describe "action_manage" do
299
299
  before(:each) do
300
- @provider.stub(:load_current_resource)
300
+ allow(@provider).to receive(:load_current_resource)
301
301
  # @node = Chef::Node.new
302
302
  # @new_resource = double("Chef::Resource::User",
303
303
  # :null_object => true
@@ -312,35 +312,35 @@ describe Chef::Provider::User do
312
312
  end
313
313
 
314
314
  it "should run manage_user if the user exists and has mismatched attributes" do
315
- @provider.should_receive(:compare_user).and_return(true)
316
- @provider.should_receive(:manage_user).and_return(true)
315
+ expect(@provider).to receive(:compare_user).and_return(true)
316
+ expect(@provider).to receive(:manage_user).and_return(true)
317
317
  @provider.action_manage
318
318
  end
319
319
 
320
320
  it "should set the new resources updated flag to true if manage_user is called" do
321
- @provider.stub(:compare_user).and_return(true)
322
- @provider.stub(:manage_user).and_return(true)
321
+ allow(@provider).to receive(:compare_user).and_return(true)
322
+ allow(@provider).to receive(:manage_user).and_return(true)
323
323
  @provider.action_manage
324
324
  @provider.set_updated_status
325
- @new_resource.should be_updated
325
+ expect(@new_resource).to be_updated
326
326
  end
327
327
 
328
328
  it "should not run manage_user if the user does not exist" do
329
329
  @provider.user_exists = false
330
- @provider.should_not_receive(:manage_user)
330
+ expect(@provider).not_to receive(:manage_user)
331
331
  @provider.action_manage
332
332
  end
333
333
 
334
334
  it "should not run manage_user if the user exists but has no differing attributes" do
335
- @provider.should_receive(:compare_user).and_return(false)
336
- @provider.should_not_receive(:manage_user)
335
+ expect(@provider).to receive(:compare_user).and_return(false)
336
+ expect(@provider).not_to receive(:manage_user)
337
337
  @provider.action_manage
338
338
  end
339
339
  end
340
340
 
341
341
  describe "action_modify" do
342
342
  before(:each) do
343
- @provider.stub(:load_current_resource)
343
+ allow(@provider).to receive(:load_current_resource)
344
344
  # @node = Chef::Node.new
345
345
  # @new_resource = double("Chef::Resource::User",
346
346
  # :null_object => true
@@ -355,61 +355,61 @@ describe Chef::Provider::User do
355
355
  end
356
356
 
357
357
  it "should run manage_user if the user exists and has mismatched attributes" do
358
- @provider.should_receive(:compare_user).and_return(true)
359
- @provider.should_receive(:manage_user).and_return(true)
358
+ expect(@provider).to receive(:compare_user).and_return(true)
359
+ expect(@provider).to receive(:manage_user).and_return(true)
360
360
  @provider.action_modify
361
361
  end
362
362
 
363
363
  it "should set the new resources updated flag to true if manage_user is called" do
364
- @provider.stub(:compare_user).and_return(true)
365
- @provider.stub(:manage_user).and_return(true)
364
+ allow(@provider).to receive(:compare_user).and_return(true)
365
+ allow(@provider).to receive(:manage_user).and_return(true)
366
366
  @provider.action_modify
367
367
  @provider.set_updated_status
368
- @new_resource.should be_updated
368
+ expect(@new_resource).to be_updated
369
369
  end
370
370
 
371
371
  it "should not run manage_user if the user exists but has no differing attributes" do
372
- @provider.should_receive(:compare_user).and_return(false)
373
- @provider.should_not_receive(:manage_user)
372
+ expect(@provider).to receive(:compare_user).and_return(false)
373
+ expect(@provider).not_to receive(:manage_user)
374
374
  @provider.action_modify
375
375
  end
376
376
 
377
377
  it "should raise a Chef::Exceptions::User if the user doesn't exist" do
378
378
  @provider.user_exists = false
379
- lambda { @provider.action = :modify; @provider.run_action }.should raise_error(Chef::Exceptions::User)
379
+ expect { @provider.action = :modify; @provider.run_action }.to raise_error(Chef::Exceptions::User)
380
380
  end
381
381
  end
382
382
 
383
383
 
384
384
  describe "action_lock" do
385
385
  before(:each) do
386
- @provider.stub(:load_current_resource)
386
+ allow(@provider).to receive(:load_current_resource)
387
387
  end
388
388
  it "should lock the user if it exists and is unlocked" do
389
- @provider.stub(:check_lock).and_return(false)
390
- @provider.should_receive(:lock_user).and_return(true)
389
+ allow(@provider).to receive(:check_lock).and_return(false)
390
+ expect(@provider).to receive(:lock_user).and_return(true)
391
391
  @provider.action_lock
392
392
  end
393
393
 
394
394
  it "should set the new resources updated flag to true if lock_user is called" do
395
- @provider.stub(:check_lock).and_return(false)
396
- @provider.should_receive(:lock_user)
395
+ allow(@provider).to receive(:check_lock).and_return(false)
396
+ expect(@provider).to receive(:lock_user)
397
397
  @provider.action_lock
398
398
  @provider.set_updated_status
399
- @new_resource.should be_updated
399
+ expect(@new_resource).to be_updated
400
400
  end
401
401
 
402
402
  it "should raise a Chef::Exceptions::User if we try and lock a user that does not exist" do
403
403
  @provider.user_exists = false
404
404
  @provider.action = :lock
405
405
 
406
- lambda { @provider.run_action }.should raise_error(Chef::Exceptions::User)
406
+ expect { @provider.run_action }.to raise_error(Chef::Exceptions::User)
407
407
  end
408
408
  end
409
409
 
410
410
  describe "action_unlock" do
411
411
  before(:each) do
412
- @provider.stub(:load_current_resource)
412
+ allow(@provider).to receive(:load_current_resource)
413
413
  # @node = Chef::Node.new
414
414
  # @new_resource = double("Chef::Resource::User",
415
415
  # :null_object => true
@@ -425,17 +425,17 @@ describe Chef::Provider::User do
425
425
  end
426
426
 
427
427
  it "should unlock the user if it exists and is locked" do
428
- @provider.stub(:check_lock).and_return(true)
429
- @provider.should_receive(:unlock_user).and_return(true)
428
+ allow(@provider).to receive(:check_lock).and_return(true)
429
+ expect(@provider).to receive(:unlock_user).and_return(true)
430
430
  @provider.action_unlock
431
431
  @provider.set_updated_status
432
- @new_resource.should be_updated
432
+ expect(@new_resource).to be_updated
433
433
  end
434
434
 
435
435
  it "should raise a Chef::Exceptions::User if we try and unlock a user that does not exist" do
436
436
  @provider.user_exists = false
437
437
  @provider.action = :unlock
438
- lambda { @provider.run_action }.should raise_error(Chef::Exceptions::User)
438
+ expect { @provider.run_action }.to raise_error(Chef::Exceptions::User)
439
439
  end
440
440
  end
441
441
 
@@ -446,21 +446,21 @@ describe Chef::Provider::User do
446
446
  end
447
447
 
448
448
  it "should lookup the group name locally" do
449
- Etc.should_receive(:getgrnam).with("999").and_return(@group)
450
- @provider.convert_group_name.should == 999
449
+ expect(Etc).to receive(:getgrnam).with("999").and_return(@group)
450
+ expect(@provider.convert_group_name).to eq(999)
451
451
  end
452
452
 
453
453
  it "should raise an error if we can't translate the group name during resource assertions" do
454
- Etc.should_receive(:getgrnam).and_raise(ArgumentError)
454
+ expect(Etc).to receive(:getgrnam).and_raise(ArgumentError)
455
455
  @provider.define_resource_requirements
456
456
  @provider.convert_group_name
457
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::User)
457
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::User)
458
458
  end
459
459
 
460
460
  it "should set the new resources gid to the integerized version if available" do
461
- Etc.should_receive(:getgrnam).with("999").and_return(@group)
461
+ expect(Etc).to receive(:getgrnam).with("999").and_return(@group)
462
462
  @provider.convert_group_name
463
- @new_resource.gid.should == 999
463
+ expect(@new_resource.gid).to eq(999)
464
464
  end
465
465
  end
466
466
  end