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
@@ -17,32 +17,23 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'support/shared/unit/resource/static_provider_resolution'
20
21
 
21
22
  describe Chef::Resource::EasyInstallPackage, "initialize" do
22
23
 
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::EasyInstallPackage,
26
+ provider: Chef::Provider::Package::EasyInstall,
27
+ name: :easy_install_package,
28
+ action: :install,
29
+ )
30
+
23
31
  before(:each) do
24
32
  @resource = Chef::Resource::EasyInstallPackage.new("foo")
25
33
  end
26
34
 
27
- it "should create a new Chef::Resource::EasyInstallPackage" do
28
- @resource.should be_a_kind_of(Chef::Resource)
29
- @resource.should be_a_kind_of(Chef::Resource::EasyInstallPackage)
30
- end
31
-
32
- it "should return a Chef::Resource::EasyInstallPackage" do
33
- @resource.should be_a_kind_of(Chef::Resource::EasyInstallPackage)
34
- end
35
-
36
- it "should set the resource_name to :easy_install_package" do
37
- @resource.resource_name.should eql(:easy_install_package)
38
- end
39
-
40
- it "should set the provider to Chef::Provider::Package::EasyInstall" do
41
- @resource.provider.should eql(Chef::Provider::Package::EasyInstall)
42
- end
43
-
44
35
  it "should allow you to set the easy_install_binary attribute" do
45
36
  @resource.easy_install_binary "/opt/local/bin/easy_install"
46
- @resource.easy_install_binary.should eql("/opt/local/bin/easy_install")
37
+ expect(@resource.easy_install_binary).to eql("/opt/local/bin/easy_install")
47
38
  end
48
39
  end
@@ -26,43 +26,43 @@ describe Chef::Resource::Env do
26
26
  end
27
27
 
28
28
  it "should create a new Chef::Resource::Env" do
29
- @resource.should be_a_kind_of(Chef::Resource)
30
- @resource.should be_a_kind_of(Chef::Resource::Env)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource)
30
+ expect(@resource).to be_a_kind_of(Chef::Resource::Env)
31
31
  end
32
32
 
33
33
  it "should have a name" do
34
- @resource.name.should eql("FOO")
34
+ expect(@resource.name).to eql("FOO")
35
35
  end
36
36
 
37
37
  it "should have a default action of 'create'" do
38
- @resource.action.should eql(:create)
38
+ expect(@resource.action).to eql(:create)
39
39
  end
40
40
 
41
41
  { :create => false, :delete => false, :modify => false, :flibber => true }.each do |action,bad_value|
42
42
  it "should #{bad_value ? 'not' : ''} accept #{action.to_s}" do
43
43
  if bad_value
44
- lambda { @resource.action action }.should raise_error(ArgumentError)
44
+ expect { @resource.action action }.to raise_error(ArgumentError)
45
45
  else
46
- lambda { @resource.action action }.should_not raise_error
46
+ expect { @resource.action action }.not_to raise_error
47
47
  end
48
48
  end
49
49
  end
50
50
 
51
51
  it "should use the object name as the key_name by default" do
52
- @resource.key_name.should eql("FOO")
52
+ expect(@resource.key_name).to eql("FOO")
53
53
  end
54
54
 
55
55
  it "should accept a string as the env value via 'value'" do
56
- lambda { @resource.value "bar" }.should_not raise_error
56
+ expect { @resource.value "bar" }.not_to raise_error
57
57
  end
58
58
 
59
59
  it "should not accept a Hash for the env value via 'to'" do
60
- lambda { @resource.value Hash.new }.should raise_error(ArgumentError)
60
+ expect { @resource.value Hash.new }.to raise_error(ArgumentError)
61
61
  end
62
62
 
63
63
  it "should allow you to set an env value via 'to'" do
64
64
  @resource.value "bar"
65
- @resource.value.should eql("bar")
65
+ expect(@resource.value).to eql("bar")
66
66
  end
67
67
 
68
68
  describe "when it has key name and value" do
@@ -74,11 +74,11 @@ describe Chef::Resource::Env do
74
74
 
75
75
  it "describes its state" do
76
76
  state = @resource.state
77
- state[:value].should == "level7"
77
+ expect(state[:value]).to eq("level7")
78
78
  end
79
79
 
80
80
  it "returns the key name as its identity" do
81
- @resource.identity.should == "charmander"
81
+ expect(@resource.identity).to eq("charmander")
82
82
  end
83
83
  end
84
84
 
@@ -26,45 +26,45 @@ describe Chef::Resource::ErlCall do
26
26
  end
27
27
 
28
28
  it "should create a new Chef::Resource::ErlCall" do
29
- @resource.should be_a_kind_of(Chef::Resource)
30
- @resource.should be_a_kind_of(Chef::Resource::ErlCall)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource)
30
+ expect(@resource).to be_a_kind_of(Chef::Resource::ErlCall)
31
31
  end
32
32
 
33
33
  it "should have a resource name of :erl_call" do
34
- @resource.resource_name.should eql(:erl_call)
34
+ expect(@resource.resource_name).to eql(:erl_call)
35
35
  end
36
36
 
37
37
  it "should have a default action of run" do
38
- @resource.action.should eql("run")
38
+ expect(@resource.action).to eql("run")
39
39
  end
40
40
 
41
41
  it "should accept run as an action" do
42
- lambda { @resource.action :run }.should_not raise_error
42
+ expect { @resource.action :run }.not_to raise_error
43
43
  end
44
44
 
45
45
  it "should allow you to set the code attribute" do
46
46
  @resource.code "q()."
47
- @resource.code.should eql("q().")
47
+ expect(@resource.code).to eql("q().")
48
48
  end
49
49
 
50
50
  it "should allow you to set the cookie attribute" do
51
51
  @resource.cookie "nomnomnom"
52
- @resource.cookie.should eql("nomnomnom")
52
+ expect(@resource.cookie).to eql("nomnomnom")
53
53
  end
54
54
 
55
55
  it "should allow you to set the distributed attribute" do
56
56
  @resource.distributed true
57
- @resource.distributed.should eql(true)
57
+ expect(@resource.distributed).to eql(true)
58
58
  end
59
59
 
60
60
  it "should allow you to set the name_type attribute" do
61
61
  @resource.name_type "sname"
62
- @resource.name_type.should eql("sname")
62
+ expect(@resource.name_type).to eql("sname")
63
63
  end
64
64
 
65
65
  it "should allow you to set the node_name attribute" do
66
66
  @resource.node_name "chef@erlang"
67
- @resource.node_name.should eql("chef@erlang")
67
+ expect(@resource.node_name).to eql("chef@erlang")
68
68
  end
69
69
 
70
70
  describe "when it has cookie and node_name" do
@@ -75,7 +75,7 @@ describe Chef::Resource::ErlCall do
75
75
  end
76
76
 
77
77
  it "returns the code as its identity" do
78
- @resource.identity.should == "erl-call:function()"
78
+ expect(@resource.identity).to eq("erl-call:function()")
79
79
  end
80
80
  end
81
81
  end
@@ -23,4 +23,9 @@ describe Chef::Resource::Execute do
23
23
  let(:resource_instance_name) { "some command" }
24
24
  let(:execute_resource) { Chef::Resource::Execute.new(resource_instance_name) }
25
25
  it_behaves_like "an execute resource"
26
+
27
+ it "default guard interpreter should be :execute interpreter" do
28
+ expect(execute_resource.guard_interpreter).to be(:execute)
29
+ end
30
+
26
31
  end
@@ -25,55 +25,55 @@ describe Chef::Resource::File do
25
25
  end
26
26
 
27
27
  it "should have a name" do
28
- @resource.name.should eql("fakey_fakerton")
28
+ expect(@resource.name).to eql("fakey_fakerton")
29
29
  end
30
30
 
31
31
  it "should have a default action of 'create'" do
32
- @resource.action.should eql("create")
32
+ expect(@resource.action).to eql("create")
33
33
  end
34
34
 
35
35
  it "should have a default content of nil" do
36
- @resource.content.should be_nil
36
+ expect(@resource.content).to be_nil
37
37
  end
38
38
 
39
39
  it "should be set to back up 5 files by default" do
40
- @resource.backup.should eql(5)
40
+ expect(@resource.backup).to eql(5)
41
41
  end
42
42
 
43
43
  it "should only accept strings for content" do
44
- lambda { @resource.content 5 }.should raise_error(ArgumentError)
45
- lambda { @resource.content :foo }.should raise_error(ArgumentError)
46
- lambda { @resource.content "hello" => "there" }.should raise_error(ArgumentError)
47
- lambda { @resource.content "hi" }.should_not raise_error
44
+ expect { @resource.content 5 }.to raise_error(ArgumentError)
45
+ expect { @resource.content :foo }.to raise_error(ArgumentError)
46
+ expect { @resource.content "hello" => "there" }.to raise_error(ArgumentError)
47
+ expect { @resource.content "hi" }.not_to raise_error
48
48
  end
49
49
 
50
50
  it "should only accept false or a number for backup" do
51
- lambda { @resource.backup true }.should raise_error(ArgumentError)
52
- lambda { @resource.backup false }.should_not raise_error
53
- lambda { @resource.backup 10 }.should_not raise_error
54
- lambda { @resource.backup "blues" }.should raise_error(ArgumentError)
51
+ expect { @resource.backup true }.to raise_error(ArgumentError)
52
+ expect { @resource.backup false }.not_to raise_error
53
+ expect { @resource.backup 10 }.not_to raise_error
54
+ expect { @resource.backup "blues" }.to raise_error(ArgumentError)
55
55
  end
56
56
 
57
57
  it "should accept a sha256 for checksum" do
58
- lambda { @resource.checksum "0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa" }.should_not raise_error
59
- lambda { @resource.checksum "monkey!" }.should raise_error(ArgumentError)
58
+ expect { @resource.checksum "0fd012fdc96e96f8f7cf2046522a54aed0ce470224513e45da6bc1a17a4924aa" }.not_to raise_error
59
+ expect { @resource.checksum "monkey!" }.to raise_error(ArgumentError)
60
60
  end
61
61
 
62
62
  it "should accept create, delete or touch for action" do
63
- lambda { @resource.action :create }.should_not raise_error
64
- lambda { @resource.action :delete }.should_not raise_error
65
- lambda { @resource.action :touch }.should_not raise_error
66
- lambda { @resource.action :blues }.should raise_error(ArgumentError)
63
+ expect { @resource.action :create }.not_to raise_error
64
+ expect { @resource.action :delete }.not_to raise_error
65
+ expect { @resource.action :touch }.not_to raise_error
66
+ expect { @resource.action :blues }.to raise_error(ArgumentError)
67
67
  end
68
68
 
69
69
  it "should use the object name as the path by default" do
70
- @resource.path.should eql("fakey_fakerton")
70
+ expect(@resource.path).to eql("fakey_fakerton")
71
71
  end
72
72
 
73
73
  it "should accept a string as the path" do
74
- lambda { @resource.path "/tmp" }.should_not raise_error
75
- @resource.path.should eql("/tmp")
76
- lambda { @resource.path Hash.new }.should raise_error(ArgumentError)
74
+ expect { @resource.path "/tmp" }.not_to raise_error
75
+ expect(@resource.path).to eql("/tmp")
76
+ expect { @resource.path Hash.new }.to raise_error(ArgumentError)
77
77
  end
78
78
 
79
79
  describe "when it has a path, owner, group, mode, and checksum" do
@@ -88,15 +88,15 @@ describe Chef::Resource::File do
88
88
  context "on unix", :unix_only do
89
89
  it "describes its state" do
90
90
  state = @resource.state
91
- state[:owner].should == "root"
92
- state[:group].should == "wheel"
93
- state[:mode].should == "0644"
94
- state[:checksum].should == "1" * 64
91
+ expect(state[:owner]).to eq("root")
92
+ expect(state[:group]).to eq("wheel")
93
+ expect(state[:mode]).to eq("0644")
94
+ expect(state[:checksum]).to eq("1" * 64)
95
95
  end
96
96
  end
97
97
 
98
98
  it "returns the file path as its identity" do
99
- @resource.identity.should == "/tmp/foo.txt"
99
+ expect(@resource.identity).to eq("/tmp/foo.txt")
100
100
  end
101
101
 
102
102
  end
@@ -108,8 +108,8 @@ describe Chef::Resource::File do
108
108
  end
109
109
  it "describes its state including windows ACL attributes" do
110
110
  state = @resource.state
111
- state[:rights].should == [ {:permissions => :read, :principals => "Everyone"},
112
- {:permissions => :full_control, :principals => "DOMAIN\User"} ]
111
+ expect(state[:rights]).to eq([ {:permissions => :read, :principals => "Everyone"},
112
+ {:permissions => :full_control, :principals => "DOMAIN\User"} ])
113
113
  end
114
114
  end
115
115
 
@@ -32,15 +32,15 @@ describe Chef::Resource::FreebsdPackage do
32
32
 
33
33
  describe "Initialization" do
34
34
  it "should return a Chef::Resource::FreebsdPackage" do
35
- @resource.should be_a_kind_of(Chef::Resource::FreebsdPackage)
35
+ expect(@resource).to be_a_kind_of(Chef::Resource::FreebsdPackage)
36
36
  end
37
37
 
38
38
  it "should set the resource_name to :freebsd_package" do
39
- @resource.resource_name.should eql(:freebsd_package)
39
+ expect(@resource.resource_name).to eql(:freebsd_package)
40
40
  end
41
41
 
42
42
  it "should not set the provider" do
43
- @resource.provider.should be_nil
43
+ expect(@resource.provider).to be_nil
44
44
  end
45
45
  end
46
46
 
@@ -50,16 +50,16 @@ describe Chef::Resource::FreebsdPackage do
50
50
  it "should be Freebsd::Port" do
51
51
  @resource.source('ports')
52
52
  @resource.after_created
53
- @resource.provider.should == Chef::Provider::Package::Freebsd::Port
53
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Port)
54
54
  end
55
55
  end
56
56
 
57
57
  describe "if __Freebsd_version is greater than or equal to 1000017" do
58
58
  it "should be Freebsd::Pkgng" do
59
59
  [1000017, 1000018, 1000500, 1001001, 1100000].each do |__freebsd_version|
60
- @node.normal[:os_version] = __freebsd_version
60
+ @node.automatic_attrs[:os_version] = __freebsd_version
61
61
  @resource.after_created
62
- @resource.provider.should == Chef::Provider::Package::Freebsd::Pkgng
62
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Pkgng)
63
63
  end
64
64
  end
65
65
  end
@@ -67,22 +67,21 @@ describe Chef::Resource::FreebsdPackage do
67
67
  describe "if pkgng enabled" do
68
68
  it "should be Freebsd::Pkgng" do
69
69
  pkg_enabled = OpenStruct.new(:stdout => "yes\n")
70
- @resource.stub(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
70
+ allow(@resource).to receive(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
71
71
  @resource.after_created
72
- @resource.provider.should == Chef::Provider::Package::Freebsd::Pkgng
72
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Pkgng)
73
73
  end
74
74
  end
75
75
 
76
76
  describe "if __Freebsd_version is less than 1000017 and pkgng not enabled" do
77
77
  it "should be Freebsd::Pkg" do
78
78
  pkg_enabled = OpenStruct.new(:stdout => "\n")
79
- @resource.stub(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
79
+ allow(@resource).to receive(:shell_out!).with("make -V WITH_PKGNG", :env => nil).and_return(pkg_enabled)
80
80
 
81
81
  [1000016, 1000000, 901503, 902506, 802511].each do |__freebsd_version|
82
- @node[:os_version] == __freebsd_version
83
- @node.normal[:os_version] = __freebsd_version
82
+ @node.automatic_attrs[:os_version] = __freebsd_version
84
83
  @resource.after_created
85
- @resource.provider.should == Chef::Provider::Package::Freebsd::Pkg
84
+ expect(@resource.provider).to eq(Chef::Provider::Package::Freebsd::Pkg)
86
85
  end
87
86
  end
88
87
  end
@@ -17,24 +17,17 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'support/shared/unit/resource/static_provider_resolution'
20
21
 
21
22
  describe Chef::Resource::GemPackage, "initialize" do
22
23
 
23
- before(:each) do
24
- @resource = Chef::Resource::GemPackage.new("foo")
25
- end
26
-
27
- it "should return a Chef::Resource::GemPackage" do
28
- @resource.should be_a_kind_of(Chef::Resource::GemPackage)
29
- end
30
-
31
- it "should set the resource_name to :gem_package" do
32
- @resource.resource_name.should eql(:gem_package)
33
- end
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::GemPackage,
26
+ provider: Chef::Provider::Package::Rubygems,
27
+ name: :gem_package,
28
+ action: :install,
29
+ )
34
30
 
35
- it "should set the provider to Chef::Provider::Package::Rubygems" do
36
- @resource.provider.should eql(Chef::Provider::Package::Rubygems)
37
- end
38
31
  end
39
32
 
40
33
  describe Chef::Resource::GemPackage, "gem_binary" do
@@ -44,6 +37,6 @@ describe Chef::Resource::GemPackage, "gem_binary" do
44
37
 
45
38
  it "should set the gem_binary variable to whatever is passed in" do
46
39
  @resource.gem_binary("/opt/local/bin/gem")
47
- @resource.gem_binary.should eql("/opt/local/bin/gem")
40
+ expect(@resource.gem_binary).to eql("/opt/local/bin/gem")
48
41
  end
49
42
  end
@@ -17,30 +17,34 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'support/shared/unit/resource/static_provider_resolution'
20
21
 
21
22
  describe Chef::Resource::Git do
22
23
 
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::Git,
26
+ provider: Chef::Provider::Git,
27
+ name: :git,
28
+ action: :sync,
29
+ )
30
+
23
31
  before(:each) do
24
32
  @git = Chef::Resource::Git.new("my awesome webapp")
25
33
  end
26
34
 
27
35
  it "is a kind of Scm Resource" do
28
- @git.should be_a_kind_of(Chef::Resource::Scm)
29
- @git.should be_an_instance_of(Chef::Resource::Git)
30
- end
31
-
32
- it "uses the git provider" do
33
- @git.provider.should eql(Chef::Provider::Git)
36
+ expect(@git).to be_a_kind_of(Chef::Resource::Scm)
37
+ expect(@git).to be_an_instance_of(Chef::Resource::Git)
34
38
  end
35
39
 
36
40
  it "uses aliases revision as branch" do
37
41
  @git.branch "HEAD"
38
- @git.revision.should eql("HEAD")
42
+ expect(@git.revision).to eql("HEAD")
39
43
  end
40
44
 
41
45
  it "aliases revision as reference" do
42
46
  @git.reference "v1.0 tag"
43
- @git.revision.should eql("v1.0 tag")
47
+ expect(@git.revision).to eql("v1.0 tag")
44
48
  end
45
49
 
46
50
  end
@@ -25,47 +25,47 @@ describe Chef::Resource::Group, "initialize" do
25
25
  end
26
26
 
27
27
  it "should create a new Chef::Resource::Group" do
28
- @resource.should be_a_kind_of(Chef::Resource)
29
- @resource.should be_a_kind_of(Chef::Resource::Group)
28
+ expect(@resource).to be_a_kind_of(Chef::Resource)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource::Group)
30
30
  end
31
31
 
32
32
  it "should set the resource_name to :group" do
33
- @resource.resource_name.should eql(:group)
33
+ expect(@resource.resource_name).to eql(:group)
34
34
  end
35
35
 
36
36
  it "should set the group_name equal to the argument to initialize" do
37
- @resource.group_name.should eql("admin")
37
+ expect(@resource.group_name).to eql("admin")
38
38
  end
39
39
 
40
40
  it "should default gid to nil" do
41
- @resource.gid.should eql(nil)
41
+ expect(@resource.gid).to eql(nil)
42
42
  end
43
43
 
44
44
  it "should default members to an empty array" do
45
- @resource.members.should eql([])
45
+ expect(@resource.members).to eql([])
46
46
  end
47
47
 
48
48
  it "should alias users to members, also an empty array" do
49
- @resource.users.should eql([])
49
+ expect(@resource.users).to eql([])
50
50
  end
51
51
 
52
52
  it "should set action to :create" do
53
- @resource.action.should eql(:create)
53
+ expect(@resource.action).to eql(:create)
54
54
  end
55
55
 
56
56
  %w{create remove modify manage}.each do |action|
57
57
  it "should allow action #{action}" do
58
- @resource.allowed_actions.detect { |a| a == action.to_sym }.should eql(action.to_sym)
58
+ expect(@resource.allowed_actions.detect { |a| a == action.to_sym }).to eql(action.to_sym)
59
59
  end
60
60
  end
61
61
 
62
62
  it "should accept domain groups (@ or \ separator) on non-windows" do
63
- lambda { @resource.group_name "domain\@group" }.should_not raise_error
64
- @resource.group_name.should == "domain\@group"
65
- lambda { @resource.group_name "domain\\group" }.should_not raise_error
66
- @resource.group_name.should == "domain\\group"
67
- lambda { @resource.group_name "domain\\group^name" }.should_not raise_error
68
- @resource.group_name.should == "domain\\group^name"
63
+ expect { @resource.group_name "domain\@group" }.not_to raise_error
64
+ expect(@resource.group_name).to eq("domain\@group")
65
+ expect { @resource.group_name "domain\\group" }.not_to raise_error
66
+ expect(@resource.group_name).to eq("domain\\group")
67
+ expect { @resource.group_name "domain\\group^name" }.not_to raise_error
68
+ expect(@resource.group_name).to eq("domain\\group^name")
69
69
  end
70
70
  end
71
71
 
@@ -76,11 +76,11 @@ describe Chef::Resource::Group, "group_name" do
76
76
 
77
77
  it "should allow a string" do
78
78
  @resource.group_name "pirates"
79
- @resource.group_name.should eql("pirates")
79
+ expect(@resource.group_name).to eql("pirates")
80
80
  end
81
81
 
82
82
  it "should not allow a hash" do
83
- lambda { @resource.send(:group_name, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
83
+ expect { @resource.send(:group_name, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
84
84
  end
85
85
  end
86
86
 
@@ -91,11 +91,11 @@ describe Chef::Resource::Group, "gid" do
91
91
 
92
92
  it "should allow an integer" do
93
93
  @resource.gid 100
94
- @resource.gid.should eql(100)
94
+ expect(@resource.gid).to eql(100)
95
95
  end
96
96
 
97
97
  it "should not allow a hash" do
98
- lambda { @resource.send(:gid, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
98
+ expect { @resource.send(:gid, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
99
99
  end
100
100
  end
101
101
 
@@ -107,16 +107,16 @@ describe Chef::Resource::Group, "members" do
107
107
  [ :users, :members].each do |method|
108
108
  it "(#{method}) should allow and convert a string" do
109
109
  @resource.send(method, "aj")
110
- @resource.send(method).should eql(["aj"])
110
+ expect(@resource.send(method)).to eql(["aj"])
111
111
  end
112
112
 
113
113
  it "(#{method}) should allow an array" do
114
114
  @resource.send(method, [ "aj", "adam" ])
115
- @resource.send(method).should eql( ["aj", "adam"] )
115
+ expect(@resource.send(method)).to eql( ["aj", "adam"] )
116
116
  end
117
117
 
118
118
  it "(#{method}) should not allow a hash" do
119
- lambda { @resource.send(method, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
119
+ expect { @resource.send(method, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
120
120
  end
121
121
  end
122
122
  end
@@ -127,16 +127,16 @@ describe Chef::Resource::Group, "append" do
127
127
  end
128
128
 
129
129
  it "should default to false" do
130
- @resource.append.should eql(false)
130
+ expect(@resource.append).to eql(false)
131
131
  end
132
132
 
133
133
  it "should allow a boolean" do
134
134
  @resource.append true
135
- @resource.append.should eql(true)
135
+ expect(@resource.append).to eql(true)
136
136
  end
137
137
 
138
138
  it "should not allow a hash" do
139
- lambda { @resource.send(:gid, { :aj => "is freakin awesome" }) }.should raise_error(ArgumentError)
139
+ expect { @resource.send(:gid, { :aj => "is freakin awesome" }) }.to raise_error(ArgumentError)
140
140
  end
141
141
 
142
142
  describe "when it has members" do
@@ -147,11 +147,11 @@ describe Chef::Resource::Group, "append" do
147
147
 
148
148
  it "describes its state" do
149
149
  state = @resource.state
150
- state[:members].should eql(["blastoise", "pikachu"])
150
+ expect(state[:members]).to eql(["blastoise", "pikachu"])
151
151
  end
152
152
 
153
153
  it "returns the group name as its identity" do
154
- @resource.identity.should == "pokemon"
154
+ expect(@resource.identity).to eq("pokemon")
155
155
  end
156
156
  end
157
157
  end