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,27 +17,24 @@
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::AptPackage, "initialize" do
22
23
 
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::AptPackage,
26
+ provider: Chef::Provider::Package::Apt,
27
+ name: :apt_package,
28
+ action: :install,
29
+ os: "linux",
30
+ )
31
+
23
32
  before(:each) do
24
33
  @resource = Chef::Resource::AptPackage.new("foo")
25
34
  end
26
35
 
27
- it "should return a Chef::Resource::AptPackage" do
28
- @resource.should be_a_kind_of(Chef::Resource::AptPackage)
29
- end
30
-
31
- it "should set the resource_name to :apt_package" do
32
- @resource.resource_name.should eql(:apt_package)
33
- end
34
-
35
- it "should set the provider to Chef::Provider::Package::Apt" do
36
- @resource.provider.should eql(Chef::Provider::Package::Apt)
37
- end
38
-
39
36
  it "should support default_release" do
40
37
  @resource.default_release("lenny-backports")
41
- @resource.default_release.should eql("lenny-backports")
38
+ expect(@resource.default_release).to eql("lenny-backports")
42
39
  end
43
40
  end
@@ -25,16 +25,16 @@ describe Chef::Resource::Bash do
25
25
  end
26
26
 
27
27
  it "should create a new Chef::Resource::Bash" do
28
- @resource.should be_a_kind_of(Chef::Resource)
29
- @resource.should be_a_kind_of(Chef::Resource::Bash)
28
+ expect(@resource).to be_a_kind_of(Chef::Resource)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource::Bash)
30
30
  end
31
31
 
32
32
  it "should have a resource name of :bash" do
33
- @resource.resource_name.should eql(:bash)
33
+ expect(@resource.resource_name).to eql(:bash)
34
34
  end
35
35
 
36
36
  it "should have an interpreter of bash" do
37
- @resource.interpreter.should eql("bash")
37
+ expect(@resource.interpreter).to eql("bash")
38
38
  end
39
39
 
40
40
  end
@@ -33,7 +33,7 @@ describe Chef::Resource::Batch do
33
33
  end
34
34
 
35
35
  it "should create a new Chef::Resource::Batch" do
36
- @resource.should be_a_kind_of(Chef::Resource::Batch)
36
+ expect(@resource).to be_a_kind_of(Chef::Resource::Batch)
37
37
  end
38
38
 
39
39
  context "windows script" do
@@ -17,27 +17,31 @@
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::Breakpoint do
22
23
 
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::Breakpoint,
26
+ provider: Chef::Provider::Breakpoint,
27
+ name: :breakpoint,
28
+ action: :break,
29
+ )
30
+
23
31
  before do
24
32
  @breakpoint = Chef::Resource::Breakpoint.new
25
33
  end
26
34
 
27
35
  it "allows the action :break" do
28
- @breakpoint.allowed_actions.should include(:break)
36
+ expect(@breakpoint.allowed_actions).to include(:break)
29
37
  end
30
38
 
31
39
  it "defaults to the break action" do
32
- @breakpoint.action.should == "break"
40
+ expect(@breakpoint.action).to eq("break")
33
41
  end
34
42
 
35
43
  it "names itself after the line number of the file where it's created" do
36
- @breakpoint.name.should match(/breakpoint_spec\.rb\:[\d]{2}\:in \`new\'$/)
37
- end
38
-
39
- it "uses the breakpoint provider" do
40
- @breakpoint.provider.should == Chef::Provider::Breakpoint
44
+ expect(@breakpoint.name).to match(/breakpoint_spec\.rb\:[\d]{2}\:in \`new\'$/)
41
45
  end
42
46
 
43
47
  end
@@ -18,24 +18,17 @@
18
18
  #
19
19
 
20
20
  require 'spec_helper'
21
+ require 'support/shared/unit/resource/static_provider_resolution'
21
22
 
22
23
  describe Chef::Resource::ChefGem, "initialize" do
23
24
 
24
- before(:each) do
25
- @resource = Chef::Resource::ChefGem.new("foo")
26
- end
27
-
28
- it "should return a Chef::Resource::ChefGem" do
29
- @resource.should be_a_kind_of(Chef::Resource::ChefGem)
30
- end
31
-
32
- it "should set the resource_name to :chef_gem" do
33
- @resource.resource_name.should eql(:chef_gem)
34
- end
25
+ static_provider_resolution(
26
+ resource: Chef::Resource::ChefGem,
27
+ provider: Chef::Provider::Package::Rubygems,
28
+ name: :chef_gem,
29
+ action: :install,
30
+ )
35
31
 
36
- it "should set the provider to Chef::Provider::Package::Rubygems" do
37
- @resource.provider.should eql(Chef::Provider::Package::Rubygems)
38
- end
39
32
  end
40
33
 
41
34
  describe Chef::Resource::ChefGem, "gem_binary" do
@@ -45,7 +38,7 @@ describe Chef::Resource::ChefGem, "gem_binary" do
45
38
  end
46
39
 
47
40
  it "should raise an exception when gem_binary is set" do
48
- lambda { @resource.gem_binary("/lol/cats/gem") }.should raise_error(ArgumentError)
41
+ expect { @resource.gem_binary("/lol/cats/gem") }.to raise_error(ArgumentError)
49
42
  end
50
43
 
51
44
  it "should set the gem_binary based on computing it from RbConfig" do
@@ -27,7 +27,7 @@ describe Chef::Resource::ConditionalActionNotNothing do
27
27
  end
28
28
 
29
29
  it "indicates that resource convergence should not continue" do
30
- @conditional.continue?.should be_false
30
+ expect(@conditional.continue?).to be_false
31
31
  end
32
32
  end
33
33
 
@@ -38,7 +38,7 @@ describe Chef::Resource::ConditionalActionNotNothing do
38
38
  end
39
39
 
40
40
  it "indicates that resource convergence should continue" do
41
- @conditional.continue?.should be_true
41
+ expect(@conditional.continue?).to be_true
42
42
  end
43
43
  end
44
44
 
@@ -21,12 +21,31 @@ require 'ostruct'
21
21
 
22
22
  describe Chef::Resource::Conditional do
23
23
  before do
24
- Mixlib::ShellOut.any_instance.stub(:run_command).and_return(nil)
24
+ allow_any_instance_of(Mixlib::ShellOut).to receive(:run_command).and_return(nil)
25
25
  @status = OpenStruct.new(:success? => true)
26
- Mixlib::ShellOut.any_instance.stub(:status).and_return(@status)
26
+ allow_any_instance_of(Mixlib::ShellOut).to receive(:status).and_return(@status)
27
27
  @parent_resource = Chef::Resource.new(nil, Chef::Node.new)
28
28
  end
29
29
 
30
+ it "raises an exception when neither a block or command is given" do
31
+ expect { Chef::Resource::Conditional.send(:new, :always, @parent_resource, nil, {})}.to raise_error(ArgumentError, /requires either a command or a block/)
32
+ end
33
+
34
+ it "does not evaluate a guard interpreter on initialization of the conditional" do
35
+ expect_any_instance_of(Chef::Resource::Conditional).not_to receive(:configure)
36
+ expect(Chef::GuardInterpreter::DefaultGuardInterpreter).not_to receive(:new)
37
+ expect(Chef::GuardInterpreter::ResourceGuardInterpreter).not_to receive(:new)
38
+ Chef::Resource::Conditional.only_if(@parent_resource, "true")
39
+ end
40
+
41
+ describe "configure" do
42
+ it "raises an exception when a guard_interpreter is specified and a block is given" do
43
+ @parent_resource.guard_interpreter :canadian_mounties
44
+ conditional = Chef::Resource::Conditional.send(:new, :always, @parent_resource, nil, {}) { True }
45
+ expect { conditional.configure }.to raise_error(ArgumentError, /does not support blocks/)
46
+ end
47
+ end
48
+
30
49
  describe "when created as an `only_if`" do
31
50
  describe "after running a successful command" do
32
51
  before do
@@ -34,7 +53,7 @@ describe Chef::Resource::Conditional do
34
53
  end
35
54
 
36
55
  it "indicates that resource convergence should continue" do
37
- @conditional.continue?.should be_true
56
+ expect(@conditional.continue?).to be_true
38
57
  end
39
58
  end
40
59
 
@@ -45,22 +64,22 @@ describe Chef::Resource::Conditional do
45
64
  end
46
65
 
47
66
  it "indicates that resource convergence should not continue" do
48
- @conditional.continue?.should be_false
67
+ expect(@conditional.continue?).to be_false
49
68
  end
50
69
  end
51
70
 
52
71
  describe 'after running a command which timed out' do
53
72
  before do
54
73
  @conditional = Chef::Resource::Conditional.only_if(@parent_resource, "false")
55
- Chef::GuardInterpreter::DefaultGuardInterpreter.any_instance.stub(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
74
+ allow_any_instance_of(Chef::GuardInterpreter::DefaultGuardInterpreter).to receive(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
56
75
  end
57
76
 
58
77
  it 'indicates that resource convergence should not continue' do
59
- @conditional.continue?.should be_false
78
+ expect(@conditional.continue?).to be_false
60
79
  end
61
80
 
62
81
  it 'should log a warning' do
63
- Chef::Log.should_receive(:warn).with("Command 'false' timed out")
82
+ expect(Chef::Log).to receive(:warn).with("Command 'false' timed out")
64
83
  @conditional.continue?
65
84
  end
66
85
  end
@@ -71,7 +90,7 @@ describe Chef::Resource::Conditional do
71
90
  end
72
91
 
73
92
  it "indicates that resource convergence should continue" do
74
- @conditional.continue?.should be_true
93
+ expect(@conditional.continue?).to be_true
75
94
  end
76
95
  end
77
96
 
@@ -81,7 +100,7 @@ describe Chef::Resource::Conditional do
81
100
  end
82
101
 
83
102
  it "indicates that resource convergence should not continue" do
84
- @conditional.continue?.should be_false
103
+ expect(@conditional.continue?).to be_false
85
104
  end
86
105
  end
87
106
  end
@@ -93,7 +112,7 @@ describe Chef::Resource::Conditional do
93
112
  end
94
113
 
95
114
  it "indicates that resource convergence should not continue" do
96
- @conditional.continue?.should be_false
115
+ expect(@conditional.continue?).to be_false
97
116
  end
98
117
  end
99
118
 
@@ -104,22 +123,22 @@ describe Chef::Resource::Conditional do
104
123
  end
105
124
 
106
125
  it "indicates that resource convergence should continue" do
107
- @conditional.continue?.should be_true
126
+ expect(@conditional.continue?).to be_true
108
127
  end
109
128
  end
110
129
 
111
130
  describe 'after running a command which timed out' do
112
131
  before do
113
132
  @conditional = Chef::Resource::Conditional.not_if(@parent_resource, "false")
114
- Chef::GuardInterpreter::DefaultGuardInterpreter.any_instance.stub(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
133
+ allow_any_instance_of(Chef::GuardInterpreter::DefaultGuardInterpreter).to receive(:shell_out).and_raise(Chef::Exceptions::CommandTimeout)
115
134
  end
116
135
 
117
136
  it 'indicates that resource convergence should continue' do
118
- @conditional.continue?.should be_true
137
+ expect(@conditional.continue?).to be_true
119
138
  end
120
139
 
121
140
  it 'should log a warning' do
122
- Chef::Log.should_receive(:warn).with("Command 'false' timed out")
141
+ expect(Chef::Log).to receive(:warn).with("Command 'false' timed out")
123
142
  @conditional.continue?
124
143
  end
125
144
  end
@@ -130,7 +149,7 @@ describe Chef::Resource::Conditional do
130
149
  end
131
150
 
132
151
  it "indicates that resource convergence should not continue" do
133
- @conditional.continue?.should be_false
152
+ expect(@conditional.continue?).to be_false
134
153
  end
135
154
  end
136
155
 
@@ -140,7 +159,7 @@ describe Chef::Resource::Conditional do
140
159
  end
141
160
 
142
161
  it "indicates that resource convergence should continue" do
143
- @conditional.continue?.should be_true
162
+ expect(@conditional.continue?).to be_true
144
163
  end
145
164
  end
146
165
  end
@@ -25,25 +25,25 @@ describe Chef::Resource::CookbookFile do
25
25
  end
26
26
 
27
27
  it "uses the name parameter for the source parameter" do
28
- @cookbook_file.name.should == 'sourcecode_tarball.tgz'
28
+ expect(@cookbook_file.name).to eq('sourcecode_tarball.tgz')
29
29
  end
30
30
 
31
31
  it "has a source parameter" do
32
32
  @cookbook_file.name('config_file.conf')
33
- @cookbook_file.name.should == 'config_file.conf'
33
+ expect(@cookbook_file.name).to eq('config_file.conf')
34
34
  end
35
35
 
36
36
  it "defaults to a nil cookbook parameter (current cookbook will be used)" do
37
- @cookbook_file.cookbook.should be_nil
37
+ expect(@cookbook_file.cookbook).to be_nil
38
38
  end
39
39
 
40
40
  it "has a cookbook parameter" do
41
41
  @cookbook_file.cookbook("munin")
42
- @cookbook_file.cookbook.should == 'munin'
42
+ expect(@cookbook_file.cookbook).to eq('munin')
43
43
  end
44
44
 
45
45
  it "sets the provider to Chef::Provider::CookbookFile" do
46
- @cookbook_file.provider.should == Chef::Provider::CookbookFile
46
+ expect(@cookbook_file.provider).to eq(Chef::Provider::CookbookFile)
47
47
  end
48
48
 
49
49
  describe "when it has a backup number, group, mode, owner, source, checksum, and cookbook on nix or path, rights, deny_rights, checksum on windows" do
@@ -68,21 +68,21 @@ describe Chef::Resource::CookbookFile do
68
68
  state = @cookbook_file.state
69
69
  if Chef::Platform.windows?
70
70
  puts state
71
- state[:rights].should == [{:permissions => :read, :principals => "Everyone"}]
72
- state[:deny_rights].should == [{:permissions => :full_control, :principals => "Clumsy_Sam"}]
71
+ expect(state[:rights]).to eq([{:permissions => :read, :principals => "Everyone"}])
72
+ expect(state[:deny_rights]).to eq([{:permissions => :full_control, :principals => "Clumsy_Sam"}])
73
73
  else
74
- state[:group].should == "wheel"
75
- state[:mode].should == "0664"
76
- state[:owner].should == "root"
74
+ expect(state[:group]).to eq("wheel")
75
+ expect(state[:mode]).to eq("0664")
76
+ expect(state[:owner]).to eq("root")
77
77
  end
78
- state[:checksum].should == "1" * 64
78
+ expect(state[:checksum]).to eq("1" * 64)
79
79
  end
80
80
 
81
81
  it "returns the path as its identity" do
82
82
  if Chef::Platform.windows?
83
- @cookbook_file.identity.should == "C:/temp/origin/file.txt"
83
+ expect(@cookbook_file.identity).to eq("C:/temp/origin/file.txt")
84
84
  else
85
- @cookbook_file.identity.should == "/tmp/origin/file.txt"
85
+ expect(@cookbook_file.identity).to eq("/tmp/origin/file.txt")
86
86
  end
87
87
  end
88
88
  end
@@ -26,135 +26,135 @@ describe Chef::Resource::Cron do
26
26
  end
27
27
 
28
28
  it "should create a new Chef::Resource::Cron" do
29
- @resource.should be_a_kind_of(Chef::Resource)
30
- @resource.should be_a_kind_of(Chef::Resource::Cron)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource)
30
+ expect(@resource).to be_a_kind_of(Chef::Resource::Cron)
31
31
  end
32
32
 
33
33
  it "should have a name" do
34
- @resource.name.should eql("cronify")
34
+ expect(@resource.name).to eql("cronify")
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
  it "should accept create or delete for action" do
42
- lambda { @resource.action :create }.should_not raise_error
43
- lambda { @resource.action :delete }.should_not raise_error
44
- lambda { @resource.action :lolcat }.should raise_error(ArgumentError)
42
+ expect { @resource.action :create }.not_to raise_error
43
+ expect { @resource.action :delete }.not_to raise_error
44
+ expect { @resource.action :lolcat }.to raise_error(ArgumentError)
45
45
  end
46
46
 
47
47
  it "should allow you to set a command" do
48
48
  @resource.command "/bin/true"
49
- @resource.command.should eql("/bin/true")
49
+ expect(@resource.command).to eql("/bin/true")
50
50
  end
51
51
 
52
52
  it "should allow you to set a user" do
53
53
  @resource.user "daemon"
54
- @resource.user.should eql("daemon")
54
+ expect(@resource.user).to eql("daemon")
55
55
  end
56
56
 
57
57
  it "should allow you to specify the minute" do
58
58
  @resource.minute "30"
59
- @resource.minute.should eql("30")
59
+ expect(@resource.minute).to eql("30")
60
60
  end
61
61
 
62
62
  it "should allow you to specify the hour" do
63
63
  @resource.hour "6"
64
- @resource.hour.should eql("6")
64
+ expect(@resource.hour).to eql("6")
65
65
  end
66
66
 
67
67
  it "should allow you to specify the day" do
68
68
  @resource.day "10"
69
- @resource.day.should eql("10")
69
+ expect(@resource.day).to eql("10")
70
70
  end
71
71
 
72
72
  it "should allow you to specify the month" do
73
73
  @resource.month "10"
74
- @resource.month.should eql("10")
74
+ expect(@resource.month).to eql("10")
75
75
  end
76
76
 
77
77
  it "should allow you to specify the weekday" do
78
78
  @resource.weekday "2"
79
- @resource.weekday.should eql("2")
79
+ expect(@resource.weekday).to eql("2")
80
80
  end
81
81
 
82
82
  it "should allow you to specify the mailto variable" do
83
83
  @resource.mailto "test@example.com"
84
- @resource.mailto.should eql("test@example.com")
84
+ expect(@resource.mailto).to eql("test@example.com")
85
85
  end
86
86
 
87
87
  it "should allow you to specify the path" do
88
88
  @resource.path "/usr/bin:/usr/sbin"
89
- @resource.path.should eql("/usr/bin:/usr/sbin")
89
+ expect(@resource.path).to eql("/usr/bin:/usr/sbin")
90
90
  end
91
91
 
92
92
  it "should allow you to specify the home directory" do
93
93
  @resource.home "/root"
94
- @resource.home.should eql("/root")
94
+ expect(@resource.home).to eql("/root")
95
95
  end
96
96
 
97
97
  it "should allow you to specify the shell to run the command with" do
98
98
  @resource.shell "/bin/zsh"
99
- @resource.shell.should eql("/bin/zsh")
99
+ expect(@resource.shell).to eql("/bin/zsh")
100
100
  end
101
101
 
102
102
  it "should allow you to specify environment variables hash" do
103
103
  env = {"TEST" => "LOL"}
104
104
  @resource.environment env
105
- @resource.environment.should eql(env)
105
+ expect(@resource.environment).to eql(env)
106
106
  end
107
107
 
108
108
  it "should allow * for all time and date values" do
109
109
  [ "minute", "hour", "day", "month", "weekday" ].each do |x|
110
- @resource.send(x, "*").should eql("*")
110
+ expect(@resource.send(x, "*")).to eql("*")
111
111
  end
112
112
  end
113
113
 
114
114
  it "should allow ranges for all time and date values" do
115
115
  [ "minute", "hour", "day", "month", "weekday" ].each do |x|
116
- @resource.send(x, "1-2,5").should eql("1-2,5")
116
+ expect(@resource.send(x, "1-2,5")).to eql("1-2,5")
117
117
  end
118
118
  end
119
119
 
120
120
  it "should have a default value of * for all time and date values" do
121
121
  [ "minute", "hour", "day", "month", "weekday" ].each do |x|
122
- @resource.send(x).should eql("*")
122
+ expect(@resource.send(x)).to eql("*")
123
123
  end
124
124
  end
125
125
 
126
126
  it "should have a default value of root for the user" do
127
- @resource.user.should eql("root")
127
+ expect(@resource.user).to eql("root")
128
128
  end
129
129
 
130
130
  it "should reject any minute over 59" do
131
- lambda { @resource.minute "60" }.should raise_error(RangeError)
131
+ expect { @resource.minute "60" }.to raise_error(RangeError)
132
132
  end
133
133
 
134
134
  it "should reject any hour over 23" do
135
- lambda { @resource.hour "24" }.should raise_error(RangeError)
135
+ expect { @resource.hour "24" }.to raise_error(RangeError)
136
136
  end
137
137
 
138
138
  it "should reject any day over 31" do
139
- lambda { @resource.day "32" }.should raise_error(RangeError)
139
+ expect { @resource.day "32" }.to raise_error(RangeError)
140
140
  end
141
141
 
142
142
  it "should reject any month over 12" do
143
- lambda { @resource.month "13" }.should raise_error(RangeError)
143
+ expect { @resource.month "13" }.to raise_error(RangeError)
144
144
  end
145
145
 
146
146
  describe "weekday" do
147
147
  it "should reject any weekday over 7" do
148
- lambda { @resource.weekday "8" }.should raise_error(RangeError)
148
+ expect { @resource.weekday "8" }.to raise_error(RangeError)
149
149
  end
150
150
  it "should reject any symbols which don't represent day of week" do
151
- lambda { @resource.weekday :foo }.should raise_error(RangeError)
151
+ expect { @resource.weekday :foo }.to raise_error(RangeError)
152
152
  end
153
153
  end
154
154
 
155
155
  it "should convert integer schedule values to a string" do
156
156
  [ "minute", "hour", "day", "month", "weekday" ].each do |x|
157
- @resource.send(x, 5).should eql("5")
157
+ expect(@resource.send(x, 5)).to eql("5")
158
158
  end
159
159
  end
160
160
 
@@ -171,16 +171,16 @@ describe Chef::Resource::Cron do
171
171
 
172
172
  it "describes the state" do
173
173
  state = @resource.state
174
- state[:minute].should == "1"
175
- state[:hour].should == "2"
176
- state[:day].should == "3"
177
- state[:month].should == "4"
178
- state[:weekday].should == "5"
179
- state[:user].should == "root"
174
+ expect(state[:minute]).to eq("1")
175
+ expect(state[:hour]).to eq("2")
176
+ expect(state[:day]).to eq("3")
177
+ expect(state[:month]).to eq("4")
178
+ expect(state[:weekday]).to eq("5")
179
+ expect(state[:user]).to eq("root")
180
180
  end
181
181
 
182
182
  it "returns the command as its identity" do
183
- @resource.identity.should == "tackle"
183
+ expect(@resource.identity).to eq("tackle")
184
184
  end
185
185
  end
186
186
  end