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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -32,64 +32,64 @@ describe Chef::Provider::Group::Dscl do
32
32
  @stdin = StringIO.new
33
33
  @stdout = StringIO.new("\n")
34
34
  @stderr = StringIO.new("")
35
- @provider.stub(:popen4).and_yield(@pid,@stdin,@stdout,@stderr).and_return(@status)
35
+ allow(@provider).to receive(:popen4).and_yield(@pid,@stdin,@stdout,@stderr).and_return(@status)
36
36
  end
37
37
 
38
38
  it "should run popen4 with the supplied array of arguments appended to the dscl command" do
39
- @provider.should_receive(:popen4).with("dscl . -cmd /Path arg1 arg2")
39
+ expect(@provider).to receive(:popen4).with("dscl . -cmd /Path arg1 arg2")
40
40
  @provider.dscl("cmd", "/Path", "arg1", "arg2")
41
41
  end
42
42
 
43
43
  it "should return an array of four elements - cmd, status, stdout, stderr" do
44
44
  dscl_retval = @provider.dscl("cmd /Path args")
45
- dscl_retval.should be_a_kind_of(Array)
46
- dscl_retval.should == ["dscl . -cmd /Path args",@status,"\n",""]
45
+ expect(dscl_retval).to be_a_kind_of(Array)
46
+ expect(dscl_retval).to eq(["dscl . -cmd /Path args",@status,"\n",""])
47
47
  end
48
48
 
49
49
  describe "safe_dscl" do
50
50
  before do
51
51
  @node = Chef::Node.new
52
52
  @provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
53
- @provider.stub(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
53
+ allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
54
54
  end
55
55
 
56
56
  it "should run dscl with the supplied cmd /Path args" do
57
- @provider.should_receive(:dscl).with("cmd /Path args")
57
+ expect(@provider).to receive(:dscl).with("cmd /Path args")
58
58
  @provider.safe_dscl("cmd /Path args")
59
59
  end
60
60
 
61
61
  describe "with the dscl command returning a non zero exit status for a delete" do
62
62
  before do
63
63
  @status = double("Process::Status", :exitstatus => 1)
64
- @provider.stub(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
64
+ allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
65
65
  end
66
66
 
67
67
  it "should return an empty string of standard output for a delete" do
68
68
  safe_dscl_retval = @provider.safe_dscl("delete /Path args")
69
- safe_dscl_retval.should be_a_kind_of(String)
70
- safe_dscl_retval.should == ""
69
+ expect(safe_dscl_retval).to be_a_kind_of(String)
70
+ expect(safe_dscl_retval).to eq("")
71
71
  end
72
72
 
73
73
  it "should raise an exception for any other command" do
74
- lambda { @provider.safe_dscl("cmd /Path arguments") }.should raise_error(Chef::Exceptions::Group)
74
+ expect { @provider.safe_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::Group)
75
75
  end
76
76
  end
77
77
 
78
78
  describe "with the dscl command returning no such key" do
79
79
  before do
80
- @provider.stub(:dscl).and_return(["cmd", @status, "No such key: ", "stderr"])
80
+ allow(@provider).to receive(:dscl).and_return(["cmd", @status, "No such key: ", "stderr"])
81
81
  end
82
82
 
83
83
  it "should raise an exception" do
84
- lambda { @provider.safe_dscl("cmd /Path arguments") }.should raise_error(Chef::Exceptions::Group)
84
+ expect { @provider.safe_dscl("cmd /Path arguments") }.to raise_error(Chef::Exceptions::Group)
85
85
  end
86
86
  end
87
87
 
88
88
  describe "with the dscl command returning a zero exit status" do
89
89
  it "should return the third array element, the string of standard output" do
90
90
  safe_dscl_retval = @provider.safe_dscl("cmd /Path args")
91
- safe_dscl_retval.should be_a_kind_of(String)
92
- safe_dscl_retval.should == "stdout"
91
+ expect(safe_dscl_retval).to be_a_kind_of(String)
92
+ expect(safe_dscl_retval).to eq("stdout")
93
93
  end
94
94
  end
95
95
  end
@@ -98,21 +98,21 @@ describe Chef::Provider::Group::Dscl do
98
98
  before do
99
99
  @node = Chef::Node.new
100
100
  @provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
101
- @provider.stub(:safe_dscl).and_return("\naj 200\njt 201\n")
101
+ allow(@provider).to receive(:safe_dscl).and_return("\naj 200\njt 201\n")
102
102
  end
103
103
 
104
104
  it "should run safe_dscl with list /Groups gid" do
105
- @provider.should_receive(:safe_dscl).with("list /Groups gid")
105
+ expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
106
106
  @provider.get_free_gid
107
107
  end
108
108
 
109
109
  it "should return the first unused gid number on or above 200" do
110
- @provider.get_free_gid.should equal(202)
110
+ expect(@provider.get_free_gid).to equal(202)
111
111
  end
112
112
 
113
113
  it "should raise an exception when the search limit is exhausted" do
114
114
  search_limit = 1
115
- lambda { @provider.get_free_gid(search_limit) }.should raise_error(RuntimeError)
115
+ expect { @provider.get_free_gid(search_limit) }.to raise_error(RuntimeError)
116
116
  end
117
117
  end
118
118
 
@@ -120,41 +120,41 @@ describe Chef::Provider::Group::Dscl do
120
120
  before do
121
121
  @node = Chef::Node.new
122
122
  @provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
123
- @provider.stub(:safe_dscl).and_return("\naj 500\n")
123
+ allow(@provider).to receive(:safe_dscl).and_return("\naj 500\n")
124
124
  end
125
125
 
126
126
  it "should run safe_dscl with list /Groups gid" do
127
- @provider.should_receive(:safe_dscl).with("list /Groups gid")
127
+ expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
128
128
  @provider.gid_used?(500)
129
129
  end
130
130
 
131
131
  it "should return true for a used gid number" do
132
- @provider.gid_used?(500).should be_true
132
+ expect(@provider.gid_used?(500)).to be_true
133
133
  end
134
134
 
135
135
  it "should return false for an unused gid number" do
136
- @provider.gid_used?(501).should be_false
136
+ expect(@provider.gid_used?(501)).to be_false
137
137
  end
138
138
 
139
139
  it "should return false if not given any valid gid number" do
140
- @provider.gid_used?(nil).should be_false
140
+ expect(@provider.gid_used?(nil)).to be_false
141
141
  end
142
142
  end
143
143
 
144
144
  describe "set_gid" do
145
145
  describe "with the new resource and a gid number which is already in use" do
146
146
  before do
147
- @provider.stub(:gid_used?).and_return(true)
147
+ allow(@provider).to receive(:gid_used?).and_return(true)
148
148
  end
149
149
 
150
150
  it "should raise an exception if the new resources gid is already in use" do
151
- lambda { @provider.set_gid }.should raise_error(Chef::Exceptions::Group)
151
+ expect { @provider.set_gid }.to raise_error(Chef::Exceptions::Group)
152
152
  end
153
153
  end
154
154
 
155
155
  describe "with no gid number for the new resources" do
156
156
  it "should run get_free_gid and return a valid, unused gid number" do
157
- @provider.should_receive(:get_free_gid).and_return(501)
157
+ expect(@provider).to receive(:get_free_gid).and_return(501)
158
158
  @provider.set_gid
159
159
  end
160
160
  end
@@ -162,20 +162,20 @@ describe Chef::Provider::Group::Dscl do
162
162
  describe "with blank gid number for the new resources" do
163
163
  before do
164
164
  @new_resource.instance_variable_set(:@gid, nil)
165
- @new_resource.stub(:safe_dscl)
165
+ allow(@new_resource).to receive(:safe_dscl)
166
166
  end
167
167
 
168
168
  it "should run get_free_gid and return a valid, unused gid number" do
169
- @provider.should_receive(:get_free_gid).and_return(501)
169
+ expect(@provider).to receive(:get_free_gid).and_return(501)
170
170
  @provider.set_gid
171
171
  end
172
172
  end
173
173
 
174
174
  describe "with a valid gid number which is not already in use" do
175
175
  it "should run safe_dscl with create /Groups/group PrimaryGroupID gid" do
176
- @provider.stub(:get_free_gid).and_return(50)
177
- @provider.should_receive(:safe_dscl).with("list /Groups gid")
178
- @provider.should_receive(:safe_dscl).with("create /Groups/aj PrimaryGroupID 50").and_return(true)
176
+ allow(@provider).to receive(:get_free_gid).and_return(50)
177
+ expect(@provider).to receive(:safe_dscl).with("list /Groups gid")
178
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj PrimaryGroupID 50").and_return(true)
179
179
  @provider.set_gid
180
180
  end
181
181
  end
@@ -185,19 +185,19 @@ describe Chef::Provider::Group::Dscl do
185
185
 
186
186
  describe "with existing members in the current resource and append set to false in the new resource" do
187
187
  before do
188
- @new_resource.stub(:members).and_return([])
189
- @new_resource.stub(:append).and_return(false)
190
- @current_resource.stub(:members).and_return(["all", "your", "base"])
188
+ allow(@new_resource).to receive(:members).and_return([])
189
+ allow(@new_resource).to receive(:append).and_return(false)
190
+ allow(@current_resource).to receive(:members).and_return(["all", "your", "base"])
191
191
  end
192
192
 
193
193
  it "should log an appropriate message" do
194
- Chef::Log.should_receive(:debug).with("group[aj] removing group members all your base")
194
+ expect(Chef::Log).to receive(:debug).with("group[aj] removing group members all your base")
195
195
  @provider.set_members
196
196
  end
197
197
 
198
198
  it "should run safe_dscl with create /Groups/group GroupMembership to clear the Group's UID list" do
199
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
200
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
199
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
200
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
201
201
  @provider.set_members
202
202
  end
203
203
  end
@@ -209,14 +209,14 @@ describe Chef::Provider::Group::Dscl do
209
209
  end
210
210
 
211
211
  it "should log an appropriate debug message" do
212
- Chef::Log.should_receive(:debug).with("group[aj] setting group members all, your, base")
212
+ expect(Chef::Log).to receive(:debug).with("group[aj] setting group members all, your, base")
213
213
  @provider.set_members
214
214
  end
215
215
 
216
216
  it "should run safe_dscl with append /Groups/group GroupMembership and group members all, your, base" do
217
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
218
- @provider.should_receive(:safe_dscl).with("append /Groups/aj GroupMembership all your base").and_return(true)
219
- @provider.should_receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
217
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembers ''").and_return(true)
218
+ expect(@provider).to receive(:safe_dscl).with("append /Groups/aj GroupMembership all your base").and_return(true)
219
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj GroupMembership ''").and_return(true)
220
220
  @provider.set_members
221
221
  end
222
222
  end
@@ -228,7 +228,7 @@ describe Chef::Provider::Group::Dscl do
228
228
  end
229
229
 
230
230
  it "should not call safe_dscl" do
231
- @provider.should_not_receive(:safe_dscl)
231
+ expect(@provider).not_to receive(:safe_dscl)
232
232
  @provider.set_members
233
233
  end
234
234
  end
@@ -242,23 +242,23 @@ describe Chef::Provider::Group::Dscl do
242
242
  end
243
243
 
244
244
  it "raises an error if the required binary /usr/bin/dscl doesn't exist" do
245
- File.should_receive(:exists?).with("/usr/bin/dscl").and_return(false)
245
+ expect(File).to receive(:exists?).with("/usr/bin/dscl").and_return(false)
246
246
 
247
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
247
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
248
248
  end
249
249
 
250
250
  it "doesn't raise an error if /usr/bin/dscl exists" do
251
- File.stub(:exists?).and_return(true)
252
- lambda { @provider.process_resource_requirements }.should_not raise_error
251
+ allow(File).to receive(:exists?).and_return(true)
252
+ expect { @provider.process_resource_requirements }.not_to raise_error
253
253
  end
254
254
  end
255
-
255
+
256
256
  describe "when creating the group" do
257
257
  it "creates the group, password field, gid, and sets group membership" do
258
- @provider.should_receive(:set_gid).and_return(true)
259
- @provider.should_receive(:set_members).and_return(true)
260
- @provider.should_receive(:safe_dscl).with("create /Groups/aj Password '*'")
261
- @provider.should_receive(:safe_dscl).with("create /Groups/aj")
258
+ expect(@provider).to receive(:set_gid).and_return(true)
259
+ expect(@provider).to receive(:set_members).and_return(true)
260
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj Password '*'")
261
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/aj")
262
262
  @provider.create_group
263
263
  end
264
264
  end
@@ -267,30 +267,30 @@ describe Chef::Provider::Group::Dscl do
267
267
  it "should manage the group_name if it changed and the new resources group_name is not null" do
268
268
  @current_resource.group_name("oldval")
269
269
  @new_resource.group_name("newname")
270
- @provider.should_receive(:set_members).and_return(true)
271
- @provider.should_receive(:safe_dscl).with("create /Groups/newname")
272
- @provider.should_receive(:safe_dscl).with("create /Groups/newname Password '*'")
270
+ expect(@provider).to receive(:set_members).and_return(true)
271
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/newname")
272
+ expect(@provider).to receive(:safe_dscl).with("create /Groups/newname Password '*'")
273
273
  @provider.manage_group
274
274
  end
275
275
 
276
276
  it "should manage the gid if it changed and the new resources gid is not null" do
277
277
  @current_resource.gid(23)
278
278
  @new_resource.gid(42)
279
- @provider.should_receive(:set_gid)
279
+ expect(@provider).to receive(:set_gid)
280
280
  @provider.manage_group
281
281
  end
282
282
 
283
283
  it "should manage the members if it changed and the new resources members is not null" do
284
284
  @current_resource.members(%{charlie root})
285
285
  @new_resource.members(%{crab revenge})
286
- @provider.should_receive(:set_members)
286
+ expect(@provider).to receive(:set_members)
287
287
  @provider.manage_group
288
288
  end
289
289
  end
290
290
 
291
291
  describe "remove_group" do
292
292
  it "should run safe_dscl with delete /Groups/group and with the new resources group name" do
293
- @provider.should_receive(:safe_dscl).with("delete /Groups/aj").and_return(true)
293
+ expect(@provider).to receive(:safe_dscl).with("delete /Groups/aj").and_return(true)
294
294
  @provider.remove_group
295
295
  end
296
296
  end
@@ -301,7 +301,8 @@ describe 'Test DSCL loading' do
301
301
  @node = Chef::Node.new
302
302
  @events = Chef::EventDispatch::Dispatcher.new
303
303
  @run_context = Chef::RunContext.new(@node, {}, @events)
304
- @new_resource = Chef::Resource::Group.new("aj")
304
+ @new_resource = Chef::Resource::Group.new("group name aj")
305
+ @new_resource.group_name("aj")
305
306
  @provider = Chef::Provider::Group::Dscl.new(@new_resource, @run_context)
306
307
  @output = <<-EOF
307
308
  AppleMetaNodeLocation: /Local/Default
@@ -317,17 +318,17 @@ RecordName: com.apple.aj
317
318
  RecordType: dsRecTypeStandard:Groups
318
319
  GroupMembership: waka bar
319
320
  EOF
320
- @provider.stub(:safe_dscl).with("read /Groups/aj").and_return(@output)
321
+ allow(@provider).to receive(:safe_dscl).with("read /Groups/aj").and_return(@output)
321
322
  @current_resource = @provider.load_current_resource
322
323
 
323
324
  end
324
325
 
325
326
  it 'should parse gid properly' do
326
- File.stub(:exists?).and_return(true)
327
- @current_resource.gid.should eq("999")
327
+ allow(File).to receive(:exists?).and_return(true)
328
+ expect(@current_resource.gid).to eq("999")
328
329
  end
329
330
  it 'should parse members properly' do
330
- File.stub(:exists?).and_return(true)
331
- @current_resource.members.should eq(['waka', 'bar'])
331
+ allow(File).to receive(:exists?).and_return(true)
332
+ expect(@current_resource.members).to eq(['waka', 'bar'])
332
333
  end
333
334
  end
@@ -41,14 +41,14 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
41
41
  # for Chef::Provider::Group - no need to repeat it here. We'll
42
42
  # include only what's specific to this provider.
43
43
  it "should raise an error if the required binary /usr/bin/gpasswd doesn't exist" do
44
- File.stub(:exists?).and_return(true)
45
- File.should_receive(:exists?).with("/usr/bin/gpasswd").and_return(false)
46
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
44
+ allow(File).to receive(:exists?).and_return(true)
45
+ expect(File).to receive(:exists?).with("/usr/bin/gpasswd").and_return(false)
46
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
47
47
  end
48
48
 
49
49
  it "shouldn't raise an error if the required binaries exist" do
50
- File.stub(:exists?).and_return(true)
51
- lambda { @provider.process_resource_requirements }.should_not raise_error
50
+ allow(File).to receive(:exists?).and_return(true)
51
+ expect { @provider.process_resource_requirements }.not_to raise_error
52
52
  end
53
53
  end
54
54
 
@@ -65,8 +65,8 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
65
65
  end
66
66
 
67
67
  it "logs a message and sets group's members to 'none'" do
68
- Chef::Log.should_receive(:debug).with("group[wheel] setting group members to: none")
69
- @provider.should_receive(:shell_out!).with("gpasswd -M \"\" wheel")
68
+ expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
69
+ expect(@provider).to receive(:shell_out!).with("gpasswd -M \"\" wheel")
70
70
  @provider.modify_group_members
71
71
  end
72
72
  end
@@ -78,20 +78,20 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
78
78
  end
79
79
 
80
80
  it "does not modify group membership" do
81
- @provider.should_not_receive(:shell_out!)
81
+ expect(@provider).not_to receive(:shell_out!)
82
82
  @provider.modify_group_members
83
83
  end
84
84
  end
85
85
 
86
86
  describe "when the resource specifies group members" do
87
87
  it "should log an appropriate debug message" do
88
- Chef::Log.should_receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
89
- @provider.stub(:shell_out!)
88
+ expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
89
+ allow(@provider).to receive(:shell_out!)
90
90
  @provider.modify_group_members
91
91
  end
92
92
 
93
93
  it "should run gpasswd with the members joined by ',' followed by the target group" do
94
- @provider.should_receive(:shell_out!).with("gpasswd -M lobster,rage,fist wheel")
94
+ expect(@provider).to receive(:shell_out!).with("gpasswd -M lobster,rage,fist wheel")
95
95
  @provider.modify_group_members
96
96
  end
97
97
 
@@ -104,9 +104,9 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
104
104
 
105
105
  it "should run gpasswd individually for each user when the append option is set" do
106
106
  @new_resource.append(true)
107
- @provider.should_receive(:shell_out!).with("gpasswd -a lobster wheel")
108
- @provider.should_receive(:shell_out!).with("gpasswd -a rage wheel")
109
- @provider.should_receive(:shell_out!).with("gpasswd -a fist wheel")
107
+ expect(@provider).to receive(:shell_out!).with("gpasswd -a lobster wheel")
108
+ expect(@provider).to receive(:shell_out!).with("gpasswd -a rage wheel")
109
+ expect(@provider).to receive(:shell_out!).with("gpasswd -a fist wheel")
110
110
  @provider.modify_group_members
111
111
  end
112
112
  end
@@ -43,47 +43,47 @@ describe Chef::Provider::Group::Groupadd, "set_options" do
43
43
 
44
44
  field_list.each do |attribute, option|
45
45
  it "should check for differences in #{attribute.to_s} between the current and new resources" do
46
- @new_resource.should_receive(attribute)
47
- @current_resource.should_receive(attribute)
46
+ expect(@new_resource).to receive(attribute)
47
+ expect(@current_resource).to receive(attribute)
48
48
  @provider.set_options
49
49
  end
50
50
  it "should set the option for #{attribute} if the new resources #{attribute} is not null" do
51
- @new_resource.stub(attribute).and_return("wowaweea")
52
- @provider.set_options.should eql(" #{option} '#{@new_resource.send(attribute)}' #{@new_resource.group_name}")
51
+ allow(@new_resource).to receive(attribute).and_return("wowaweea")
52
+ expect(@provider.set_options).to eql(" #{option} '#{@new_resource.send(attribute)}' #{@new_resource.group_name}")
53
53
  end
54
54
  end
55
55
 
56
56
  it "should combine all the possible options" do
57
57
  match_string = ""
58
58
  field_list.sort{ |a,b| a[0] <=> b[0] }.each do |attribute, option|
59
- @new_resource.stub(attribute).and_return("hola")
59
+ allow(@new_resource).to receive(attribute).and_return("hola")
60
60
  match_string << " #{option} 'hola'"
61
61
  end
62
62
  match_string << " aj"
63
- @provider.set_options.should eql(match_string)
63
+ expect(@provider.set_options).to eql(match_string)
64
64
  end
65
65
 
66
66
  describe "when we want to create a system group" do
67
67
  it "should not set groupadd_options '-r' when system is false" do
68
68
  @new_resource.system(false)
69
- @provider.groupadd_options.should_not =~ /-r/
69
+ expect(@provider.groupadd_options).not_to match(/-r/)
70
70
  end
71
71
 
72
72
  it "should set groupadd -r if system is true" do
73
73
  @new_resource.system(true)
74
- @provider.groupadd_options.should == " -r"
74
+ expect(@provider.groupadd_options).to eq(" -r")
75
75
  end
76
76
  end
77
77
 
78
78
  describe "when we want to create a non_unique gid group" do
79
79
  it "should not set groupadd_options '-o' when non_unique is false" do
80
80
  @new_resource.non_unique(false)
81
- @provider.groupadd_options.should_not =~ /-o/
81
+ expect(@provider.groupadd_options).not_to match(/-o/)
82
82
  end
83
83
 
84
84
  it "should set groupadd -o if non_unique is true" do
85
85
  @new_resource.non_unique(true)
86
- @provider.groupadd_options.should == " -o"
86
+ expect(@provider.groupadd_options).to eq(" -o")
87
87
  end
88
88
  end
89
89
  end
@@ -93,19 +93,19 @@ describe Chef::Provider::Group::Groupadd, "create_group" do
93
93
  @node = Chef::Node.new
94
94
  @new_resource = Chef::Resource::Group.new("aj")
95
95
  @provider = Chef::Provider::Group::Groupadd.new(@node, @new_resource)
96
- @provider.stub(:run_command).and_return(true)
97
- @provider.stub(:set_options).and_return(" monkey")
98
- @provider.stub(:groupadd_options).and_return("")
99
- @provider.stub(:modify_group_members).and_return(true)
96
+ allow(@provider).to receive(:run_command).and_return(true)
97
+ allow(@provider).to receive(:set_options).and_return(" monkey")
98
+ allow(@provider).to receive(:groupadd_options).and_return("")
99
+ allow(@provider).to receive(:modify_group_members).and_return(true)
100
100
  end
101
101
 
102
102
  it "should run groupadd with the return of set_options" do
103
- @provider.should_receive(:run_command).with({ :command => "groupadd monkey" }).and_return(true)
103
+ expect(@provider).to receive(:run_command).with({ :command => "groupadd monkey" }).and_return(true)
104
104
  @provider.create_group
105
105
  end
106
106
 
107
107
  it "should modify the group members" do
108
- @provider.should_receive(:modify_group_members).and_return(true)
108
+ expect(@provider).to receive(:modify_group_members).and_return(true)
109
109
  @provider.create_group
110
110
  end
111
111
  end
@@ -117,20 +117,20 @@ describe Chef::Provider::Group::Groupadd do
117
117
  @run_context = Chef::RunContext.new(@node, {}, @events)
118
118
  @new_resource = Chef::Resource::Group.new("aj")
119
119
  @provider = Chef::Provider::Group::Groupadd.new(@new_resource, @run_context)
120
- @provider.stub(:run_command).and_return(true)
121
- @provider.stub(:set_options).and_return(" monkey")
120
+ allow(@provider).to receive(:run_command).and_return(true)
121
+ allow(@provider).to receive(:set_options).and_return(" monkey")
122
122
  end
123
123
 
124
124
  describe "manage group" do
125
125
 
126
126
  it "should run groupmod with the return of set_options" do
127
- @provider.stub(:modify_group_members).and_return(true)
128
- @provider.should_receive(:run_command).with({ :command => "groupmod monkey" }).and_return(true)
127
+ allow(@provider).to receive(:modify_group_members).and_return(true)
128
+ expect(@provider).to receive(:run_command).with({ :command => "groupmod monkey" }).and_return(true)
129
129
  @provider.manage_group
130
130
  end
131
131
 
132
132
  it "should modify the group members" do
133
- @provider.should_receive(:modify_group_members).and_return(true)
133
+ expect(@provider).to receive(:modify_group_members).and_return(true)
134
134
  @provider.manage_group
135
135
  end
136
136
  end
@@ -138,36 +138,36 @@ describe Chef::Provider::Group::Groupadd do
138
138
  describe "remove_group" do
139
139
 
140
140
  it "should run groupdel with the new resources group name" do
141
- @provider.should_receive(:run_command).with({ :command => "groupdel aj" }).and_return(true)
141
+ expect(@provider).to receive(:run_command).with({ :command => "groupdel aj" }).and_return(true)
142
142
  @provider.remove_group
143
143
  end
144
144
  end
145
145
 
146
146
  [:add_member, :remove_member, :set_members].each do |m|
147
147
  it "should raise an error when calling #{m}" do
148
- lambda { @provider.send(m, [ ]) }.should raise_error(Chef::Exceptions::Group, "you must override #{m} in #{@provider.to_s}")
148
+ expect { @provider.send(m, [ ]) }.to raise_error(Chef::Exceptions::Group, "you must override #{m} in #{@provider.to_s}")
149
149
  end
150
150
  end
151
151
 
152
152
  describe "load_current_resource" do
153
153
  before do
154
- File.stub(:exists?).and_return(false)
154
+ allow(File).to receive(:exists?).and_return(false)
155
155
  @provider.define_resource_requirements
156
156
  end
157
157
  it "should raise an error if the required binary /usr/sbin/groupadd doesn't exist" do
158
- File.should_receive(:exists?).with("/usr/sbin/groupadd").and_return(false)
159
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
158
+ expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(false)
159
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
160
160
  end
161
161
  it "should raise an error if the required binary /usr/sbin/groupmod doesn't exist" do
162
- File.should_receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
163
- File.should_receive(:exists?).with("/usr/sbin/groupmod").and_return(false)
164
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
162
+ expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
163
+ expect(File).to receive(:exists?).with("/usr/sbin/groupmod").and_return(false)
164
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
165
165
  end
166
166
  it "should raise an error if the required binary /usr/sbin/groupdel doesn't exist" do
167
- File.should_receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
168
- File.should_receive(:exists?).with("/usr/sbin/groupmod").and_return(true)
169
- File.should_receive(:exists?).with("/usr/sbin/groupdel").and_return(false)
170
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Group)
167
+ expect(File).to receive(:exists?).with("/usr/sbin/groupadd").and_return(true)
168
+ expect(File).to receive(:exists?).with("/usr/sbin/groupmod").and_return(true)
169
+ expect(File).to receive(:exists?).with("/usr/sbin/groupdel").and_return(false)
170
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Group)
171
171
  end
172
172
 
173
173
  end