chefspec 7.0.0 → 9.3.8

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 (830) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +28 -10
  3. data/Rakefile +74 -18
  4. data/chefspec.gemspec +26 -28
  5. data/lib/chefspec/api/core.rb +217 -0
  6. data/lib/chefspec/api/described.rb +53 -0
  7. data/lib/chefspec/api/do_nothing.rb +23 -21
  8. data/lib/chefspec/api/include_any_recipe.rb +24 -0
  9. data/lib/chefspec/api/include_recipe.rb +25 -23
  10. data/lib/chefspec/api/link.rb +24 -98
  11. data/lib/chefspec/api/notifications.rb +37 -35
  12. data/lib/chefspec/api/reboot.rb +9 -13
  13. data/lib/chefspec/api/render_file.rb +34 -32
  14. data/lib/chefspec/api/state_attrs.rb +27 -25
  15. data/lib/chefspec/api/stubs.rb +183 -0
  16. data/lib/chefspec/api/stubs_for.rb +139 -0
  17. data/lib/chefspec/api/subscriptions.rb +34 -32
  18. data/lib/chefspec/api/user.rb +221 -219
  19. data/lib/chefspec/api.rb +32 -89
  20. data/lib/chefspec/berkshelf.rb +5 -5
  21. data/lib/chefspec/cacher.rb +2 -2
  22. data/lib/chefspec/coverage/filters.rb +18 -15
  23. data/lib/chefspec/coverage.rb +36 -40
  24. data/lib/chefspec/deprecations.rb +5 -14
  25. data/lib/chefspec/errors.rb +8 -7
  26. data/lib/chefspec/expect_exception.rb +2 -1
  27. data/lib/chefspec/extensions/chef/client.rb +6 -7
  28. data/lib/chefspec/extensions/chef/conditional.rb +5 -3
  29. data/lib/chefspec/extensions/chef/cookbook/gem_installer.rb +33 -0
  30. data/lib/chefspec/extensions/chef/cookbook_loader.rb +14 -0
  31. data/lib/chefspec/extensions/chef/cookbook_uploader.rb +4 -3
  32. data/lib/chefspec/extensions/chef/data_query.rb +8 -11
  33. data/lib/chefspec/extensions/chef/lwrp_base.rb +18 -21
  34. data/lib/chefspec/extensions/chef/provider.rb +39 -0
  35. data/lib/chefspec/extensions/chef/resource/freebsd_package.rb +15 -17
  36. data/lib/chefspec/extensions/chef/resource.rb +148 -9
  37. data/lib/chefspec/extensions/chef/run_context/cookbook_compiler.rb +84 -0
  38. data/lib/chefspec/extensions/chef/securable.rb +1 -1
  39. data/lib/chefspec/extensions/ohai/system.rb +11 -0
  40. data/lib/chefspec/extensions.rb +21 -0
  41. data/lib/chefspec/file_cache_path_proxy.rb +3 -3
  42. data/lib/chefspec/formatter.rb +15 -3
  43. data/lib/chefspec/librarian.rb +7 -6
  44. data/lib/chefspec/matchers/do_nothing_matcher.rb +15 -15
  45. data/lib/chefspec/matchers/include_any_recipe_matcher.rb +51 -0
  46. data/lib/chefspec/matchers/include_recipe_matcher.rb +1 -1
  47. data/lib/chefspec/matchers/link_to_matcher.rb +2 -2
  48. data/lib/chefspec/matchers/notifications_matcher.rb +5 -4
  49. data/lib/chefspec/matchers/render_file_matcher.rb +39 -29
  50. data/lib/chefspec/matchers/resource_matcher.rb +19 -17
  51. data/lib/chefspec/matchers.rb +9 -8
  52. data/lib/chefspec/mixins/normalize.rb +1 -1
  53. data/lib/chefspec/policyfile.rb +16 -9
  54. data/lib/chefspec/renderer.rb +4 -4
  55. data/lib/chefspec/rspec.rb +4 -8
  56. data/lib/chefspec/runner.rb +8 -0
  57. data/lib/chefspec/server.rb +1 -1
  58. data/lib/chefspec/server_methods.rb +9 -9
  59. data/lib/chefspec/server_runner.rb +21 -17
  60. data/lib/chefspec/solo_runner.rb +148 -42
  61. data/lib/chefspec/stubs/command_registry.rb +1 -1
  62. data/lib/chefspec/stubs/command_stub.rb +1 -1
  63. data/lib/chefspec/stubs/data_bag_item_registry.rb +1 -1
  64. data/lib/chefspec/stubs/data_bag_item_stub.rb +1 -1
  65. data/lib/chefspec/stubs/data_bag_registry.rb +1 -1
  66. data/lib/chefspec/stubs/data_bag_stub.rb +1 -1
  67. data/lib/chefspec/stubs/registry.rb +1 -1
  68. data/lib/chefspec/stubs/search_registry.rb +2 -2
  69. data/lib/chefspec/stubs/search_stub.rb +2 -2
  70. data/lib/chefspec/util.rb +7 -7
  71. data/lib/chefspec/version.rb +1 -1
  72. data/lib/chefspec/zero_server.rb +23 -21
  73. data/lib/chefspec.rb +29 -36
  74. data/spec/spec_helper.rb +3 -4
  75. data/spec/support/hash.rb +4 -4
  76. data/spec/unit/cacher_spec.rb +17 -17
  77. data/spec/unit/coverage/filters_spec.rb +16 -16
  78. data/spec/unit/deprecations_spec.rb +9 -35
  79. data/spec/unit/errors_spec.rb +15 -15
  80. data/spec/unit/expect_exception_spec.rb +9 -9
  81. data/spec/unit/macros_spec.rb +57 -57
  82. data/spec/unit/matchers/do_nothing_matcher.rb +1 -1
  83. data/spec/unit/matchers/include_any_recipe_matcher_spec.rb +52 -0
  84. data/spec/unit/matchers/include_recipe_matcher_spec.rb +15 -15
  85. data/spec/unit/matchers/link_to_matcher_spec.rb +18 -18
  86. data/spec/unit/matchers/notifications_matcher_spec.rb +15 -16
  87. data/spec/unit/matchers/render_file_matcher_spec.rb +31 -24
  88. data/spec/unit/matchers/resource_matcher_spec.rb +1 -1
  89. data/spec/unit/matchers/state_attrs_matcher_spec.rb +24 -24
  90. data/spec/unit/matchers/subscribes_matcher_spec.rb +27 -29
  91. data/spec/unit/renderer_spec.rb +36 -36
  92. data/spec/unit/server_runner_spec.rb +6 -6
  93. data/spec/unit/solo_runner_spec.rb +70 -70
  94. data/spec/unit/stubs/command_registry_spec.rb +11 -11
  95. data/spec/unit/stubs/command_stub_spec.rb +26 -26
  96. data/spec/unit/stubs/data_bag_item_registry_spec.rb +17 -17
  97. data/spec/unit/stubs/data_bag_item_stub_spec.rb +14 -14
  98. data/spec/unit/stubs/data_bag_registry_spec.rb +16 -16
  99. data/spec/unit/stubs/data_bag_stub_spec.rb +13 -13
  100. data/spec/unit/stubs/registry_spec.rb +9 -9
  101. data/spec/unit/stubs/search_registry_spec.rb +17 -17
  102. data/spec/unit/stubs/search_stub_spec.rb +14 -14
  103. data/spec/unit/stubs/stub_spec.rb +22 -22
  104. data/templates/errors/may_need_to_specify_platform.erb +3 -3
  105. data/templates/errors/shell_out_not_stubbed.erb +10 -0
  106. metadata +47 -902
  107. data/.gitignore +0 -16
  108. data/.travis.yml +0 -32
  109. data/CHANGELOG.md +0 -777
  110. data/CONTRIBUTING.md +0 -52
  111. data/ISSUES.md +0 -41
  112. data/README.md +0 -1230
  113. data/examples/apt_package/recipes/install.rb +0 -13
  114. data/examples/apt_package/recipes/purge.rb +0 -13
  115. data/examples/apt_package/recipes/reconfig.rb +0 -13
  116. data/examples/apt_package/recipes/remove.rb +0 -13
  117. data/examples/apt_package/recipes/upgrade.rb +0 -13
  118. data/examples/apt_package/spec/install_spec.rb +0 -26
  119. data/examples/apt_package/spec/purge_spec.rb +0 -22
  120. data/examples/apt_package/spec/reconfig_spec.rb +0 -22
  121. data/examples/apt_package/spec/remove_spec.rb +0 -22
  122. data/examples/apt_package/spec/upgrade_spec.rb +0 -22
  123. data/examples/apt_repository/recipes/add.rb +0 -8
  124. data/examples/apt_repository/recipes/remove.rb +0 -4
  125. data/examples/apt_repository/spec/add_spec.rb +0 -17
  126. data/examples/apt_repository/spec/remove_spec.rb +0 -12
  127. data/examples/apt_update/recipes/periodic.rb +0 -5
  128. data/examples/apt_update/recipes/update.rb +0 -3
  129. data/examples/apt_update/spec/periodic_spec.rb +0 -17
  130. data/examples/apt_update/spec/update_spec.rb +0 -12
  131. data/examples/attributes/attributes/default.rb +0 -1
  132. data/examples/attributes/recipes/default.rb +0 -4
  133. data/examples/attributes/spec/default_spec.rb +0 -20
  134. data/examples/batch/recipes/run.rb +0 -9
  135. data/examples/batch/spec/run_spec.rb +0 -22
  136. data/examples/bff_package/recipes/install.rb +0 -13
  137. data/examples/bff_package/recipes/purge.rb +0 -13
  138. data/examples/bff_package/recipes/remove.rb +0 -13
  139. data/examples/bff_package/recipes/upgrade.rb +0 -13
  140. data/examples/bff_package/spec/install_spec.rb +0 -23
  141. data/examples/bff_package/spec/purge_spec.rb +0 -19
  142. data/examples/bff_package/spec/remove_spec.rb +0 -19
  143. data/examples/bff_package/spec/upgrade_spec.rb +0 -19
  144. data/examples/cab_package/recipes/install.rb +0 -13
  145. data/examples/cab_package/recipes/remove.rb +0 -13
  146. data/examples/cab_package/spec/install_spec.rb +0 -26
  147. data/examples/cab_package/spec/remove_spec.rb +0 -22
  148. data/examples/cached/recipes/default.rb +0 -1
  149. data/examples/cached/spec/default_spec.rb +0 -13
  150. data/examples/chef_gem/recipes/install.rb +0 -18
  151. data/examples/chef_gem/recipes/purge.rb +0 -16
  152. data/examples/chef_gem/recipes/reconfig.rb +0 -16
  153. data/examples/chef_gem/recipes/remove.rb +0 -16
  154. data/examples/chef_gem/recipes/upgrade.rb +0 -16
  155. data/examples/chef_gem/spec/install_spec.rb +0 -23
  156. data/examples/chef_gem/spec/purge_spec.rb +0 -19
  157. data/examples/chef_gem/spec/reconfig_spec.rb +0 -19
  158. data/examples/chef_gem/spec/remove_spec.rb +0 -19
  159. data/examples/chef_gem/spec/upgrade_spec.rb +0 -19
  160. data/examples/chocolatey_package/recipes/install.rb +0 -6
  161. data/examples/chocolatey_package/recipes/remove.rb +0 -8
  162. data/examples/chocolatey_package/recipes/upgrade.rb +0 -8
  163. data/examples/chocolatey_package/spec/install_spec.rb +0 -19
  164. data/examples/chocolatey_package/spec/remove_spec.rb +0 -18
  165. data/examples/chocolatey_package/spec/upgrade_spec.rb +0 -18
  166. data/examples/compile_time/recipes/default.rb +0 -3
  167. data/examples/compile_time/spec/default_spec.rb +0 -27
  168. data/examples/cookbook_file/recipes/create.rb +0 -15
  169. data/examples/cookbook_file/recipes/create_if_missing.rb +0 -15
  170. data/examples/cookbook_file/recipes/delete.rb +0 -15
  171. data/examples/cookbook_file/recipes/touch.rb +0 -15
  172. data/examples/cookbook_file/spec/create_if_missing_spec.rb +0 -28
  173. data/examples/cookbook_file/spec/create_spec.rb +0 -32
  174. data/examples/cookbook_file/spec/delete_spec.rb +0 -19
  175. data/examples/cookbook_file/spec/touch_spec.rb +0 -19
  176. data/examples/cron/recipes/create.rb +0 -10
  177. data/examples/cron/recipes/delete.rb +0 -9
  178. data/examples/cron/spec/create_spec.rb +0 -19
  179. data/examples/cron/spec/delete_spec.rb +0 -15
  180. data/examples/custom_matcher/libraries/matcher.rb +0 -23
  181. data/examples/custom_matcher/providers/thing.rb +0 -2
  182. data/examples/custom_matcher/recipes/install.rb +0 -13
  183. data/examples/custom_matcher/recipes/remove.rb +0 -13
  184. data/examples/custom_matcher/resources/thing.rb +0 -5
  185. data/examples/custom_matcher/spec/install_spec.rb +0 -27
  186. data/examples/custom_matcher/spec/remove_spec.rb +0 -23
  187. data/examples/custom_resource/libraries/matchers.rb +0 -5
  188. data/examples/custom_resource/recipes/default.rb +0 -1
  189. data/examples/custom_resource/resources/custom_resource.rb +0 -9
  190. data/examples/custom_resource/spec/default_spec.rb +0 -18
  191. data/examples/deploy/recipes/deploy.rb +0 -10
  192. data/examples/deploy/recipes/force_deploy.rb +0 -9
  193. data/examples/deploy/recipes/rollback.rb +0 -9
  194. data/examples/deploy/spec/deploy_spec.rb +0 -15
  195. data/examples/deploy/spec/force_deploy_spec.rb +0 -15
  196. data/examples/deploy/spec/rollback_spec.rb +0 -15
  197. data/examples/directory/recipes/create.rb +0 -18
  198. data/examples/directory/recipes/delete.rb +0 -14
  199. data/examples/directory/spec/create_spec.rb +0 -34
  200. data/examples/directory/spec/delete_spec.rb +0 -26
  201. data/examples/dnf_package/recipes/install.rb +0 -13
  202. data/examples/dnf_package/recipes/purge.rb +0 -13
  203. data/examples/dnf_package/recipes/remove.rb +0 -13
  204. data/examples/dnf_package/recipes/upgrade.rb +0 -13
  205. data/examples/dnf_package/spec/install_spec.rb +0 -26
  206. data/examples/dnf_package/spec/purge_spec.rb +0 -22
  207. data/examples/dnf_package/spec/remove_spec.rb +0 -22
  208. data/examples/dnf_package/spec/upgrade_spec.rb +0 -22
  209. data/examples/do_nothing/recipes/default.rb +0 -3
  210. data/examples/do_nothing/spec/default_spec.rb +0 -15
  211. data/examples/dpkg_package/recipes/install.rb +0 -13
  212. data/examples/dpkg_package/recipes/purge.rb +0 -13
  213. data/examples/dpkg_package/recipes/remove.rb +0 -13
  214. data/examples/dpkg_package/spec/install_spec.rb +0 -26
  215. data/examples/dpkg_package/spec/purge_spec.rb +0 -22
  216. data/examples/dpkg_package/spec/remove_spec.rb +0 -22
  217. data/examples/dsc_resource/recipes/run.rb +0 -20
  218. data/examples/dsc_resource/spec/run_spec.rb +0 -38
  219. data/examples/dsc_script/recipes/run.rb +0 -12
  220. data/examples/dsc_script/spec/run_spec.rb +0 -16
  221. data/examples/env/recipes/create.rb +0 -13
  222. data/examples/env/recipes/delete.rb +0 -13
  223. data/examples/env/recipes/modify.rb +0 -13
  224. data/examples/env/spec/create_spec.rb +0 -26
  225. data/examples/env/spec/delete_spec.rb +0 -22
  226. data/examples/env/spec/modify_spec.rb +0 -22
  227. data/examples/erl_call/recipes/run.rb +0 -13
  228. data/examples/erl_call/spec/run_spec.rb +0 -23
  229. data/examples/execute/recipes/run.rb +0 -13
  230. data/examples/execute/spec/run_spec.rb +0 -23
  231. data/examples/expect_exception/recipes/compile_error.rb +0 -1
  232. data/examples/expect_exception/recipes/converge_error.rb +0 -5
  233. data/examples/expect_exception/recipes/no_error.rb +0 -1
  234. data/examples/expect_exception/spec/compile_error_spec.rb +0 -10
  235. data/examples/expect_exception/spec/converge_error_spec.rb +0 -10
  236. data/examples/expect_exception/spec/no_error_spec.rb +0 -10
  237. data/examples/file/recipes/create.rb +0 -15
  238. data/examples/file/recipes/create_if_missing.rb +0 -15
  239. data/examples/file/recipes/delete.rb +0 -15
  240. data/examples/file/recipes/touch.rb +0 -15
  241. data/examples/file/spec/create_if_missing_spec.rb +0 -28
  242. data/examples/file/spec/create_spec.rb +0 -32
  243. data/examples/file/spec/delete_spec.rb +0 -19
  244. data/examples/file/spec/touch_spec.rb +0 -19
  245. data/examples/freebsd_package/recipes/install.rb +0 -13
  246. data/examples/freebsd_package/recipes/remove.rb +0 -13
  247. data/examples/freebsd_package/spec/install_spec.rb +0 -26
  248. data/examples/freebsd_package/spec/remove_spec.rb +0 -22
  249. data/examples/gem_package/recipes/install.rb +0 -13
  250. data/examples/gem_package/recipes/purge.rb +0 -13
  251. data/examples/gem_package/recipes/reconfig.rb +0 -13
  252. data/examples/gem_package/recipes/remove.rb +0 -13
  253. data/examples/gem_package/recipes/upgrade.rb +0 -13
  254. data/examples/gem_package/spec/install_spec.rb +0 -23
  255. data/examples/gem_package/spec/purge_spec.rb +0 -19
  256. data/examples/gem_package/spec/reconfig_spec.rb +0 -19
  257. data/examples/gem_package/spec/remove_spec.rb +0 -19
  258. data/examples/gem_package/spec/upgrade_spec.rb +0 -19
  259. data/examples/git/recipes/checkout.rb +0 -13
  260. data/examples/git/recipes/export.rb +0 -13
  261. data/examples/git/recipes/sync.rb +0 -13
  262. data/examples/git/spec/checkout_spec.rb +0 -19
  263. data/examples/git/spec/export_spec.rb +0 -19
  264. data/examples/git/spec/sync_spec.rb +0 -23
  265. data/examples/group/recipes/create.rb +0 -13
  266. data/examples/group/recipes/manage.rb +0 -13
  267. data/examples/group/recipes/modify.rb +0 -13
  268. data/examples/group/recipes/remove.rb +0 -13
  269. data/examples/group/spec/create_spec.rb +0 -23
  270. data/examples/group/spec/manage_spec.rb +0 -19
  271. data/examples/group/spec/modify_spec.rb +0 -19
  272. data/examples/group/spec/remove_spec.rb +0 -18
  273. data/examples/guards/recipes/default.rb +0 -13
  274. data/examples/guards/spec/default_spec.rb +0 -17
  275. data/examples/heavy_provider_light_resource/libraries/resource_service.rb +0 -15
  276. data/examples/heavy_provider_light_resource/providers/service.rb +0 -9
  277. data/examples/heavy_provider_light_resource/recipes/default.rb +0 -3
  278. data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +0 -7
  279. data/examples/homebrew_package/recipes/install.rb +0 -13
  280. data/examples/homebrew_package/recipes/purge.rb +0 -13
  281. data/examples/homebrew_package/recipes/remove.rb +0 -13
  282. data/examples/homebrew_package/recipes/upgrade.rb +0 -13
  283. data/examples/homebrew_package/spec/install_spec.rb +0 -23
  284. data/examples/homebrew_package/spec/purge_spec.rb +0 -19
  285. data/examples/homebrew_package/spec/remove_spec.rb +0 -19
  286. data/examples/homebrew_package/spec/upgrade_spec.rb +0 -19
  287. data/examples/http_request/recipes/delete.rb +0 -13
  288. data/examples/http_request/recipes/get.rb +0 -13
  289. data/examples/http_request/recipes/head.rb +0 -13
  290. data/examples/http_request/recipes/options.rb +0 -13
  291. data/examples/http_request/recipes/post.rb +0 -13
  292. data/examples/http_request/recipes/put.rb +0 -13
  293. data/examples/http_request/spec/delete_spec.rb +0 -19
  294. data/examples/http_request/spec/get_spec.rb +0 -23
  295. data/examples/http_request/spec/head_spec.rb +0 -19
  296. data/examples/http_request/spec/options_spec.rb +0 -19
  297. data/examples/http_request/spec/post_spec.rb +0 -19
  298. data/examples/http_request/spec/put_spec.rb +0 -19
  299. data/examples/ifconfig/recipes/add.rb +0 -9
  300. data/examples/ifconfig/recipes/delete.rb +0 -8
  301. data/examples/ifconfig/recipes/disable.rb +0 -8
  302. data/examples/ifconfig/recipes/enable.rb +0 -8
  303. data/examples/ifconfig/spec/add_spec.rb +0 -19
  304. data/examples/ifconfig/spec/delete_spec.rb +0 -15
  305. data/examples/ifconfig/spec/disable_spec.rb +0 -15
  306. data/examples/ifconfig/spec/enable_spec.rb +0 -15
  307. data/examples/include_recipe/recipes/default.rb +0 -1
  308. data/examples/include_recipe/recipes/not.rb +0 -0
  309. data/examples/include_recipe/recipes/other.rb +0 -0
  310. data/examples/include_recipe/spec/default_spec.rb +0 -13
  311. data/examples/ips_package/recipes/install.rb +0 -13
  312. data/examples/ips_package/recipes/remove.rb +0 -13
  313. data/examples/ips_package/recipes/upgrade.rb +0 -13
  314. data/examples/ips_package/spec/install_spec.rb +0 -26
  315. data/examples/ips_package/spec/remove_spec.rb +0 -22
  316. data/examples/ips_package/spec/upgrade_spec.rb +0 -22
  317. data/examples/launchd/recipes/create.rb +0 -5
  318. data/examples/launchd/recipes/create_if_missing.rb +0 -3
  319. data/examples/launchd/recipes/delete.rb +0 -3
  320. data/examples/launchd/recipes/disable.rb +0 -3
  321. data/examples/launchd/recipes/enable.rb +0 -3
  322. data/examples/launchd/spec/create_if_missing_spec.rb +0 -10
  323. data/examples/launchd/spec/create_spec.rb +0 -14
  324. data/examples/launchd/spec/delete_spec.rb +0 -10
  325. data/examples/launchd/spec/disable_spec.rb +0 -10
  326. data/examples/launchd/spec/enable_spec.rb +0 -10
  327. data/examples/link/recipes/create.rb +0 -13
  328. data/examples/link/recipes/delete.rb +0 -13
  329. data/examples/link/recipes/link_to.rb +0 -3
  330. data/examples/link/spec/create_spec.rb +0 -23
  331. data/examples/link/spec/delete_spec.rb +0 -19
  332. data/examples/link/spec/link_to_spec.rb +0 -11
  333. data/examples/log/recipes/write.rb +0 -14
  334. data/examples/log/spec/write_spec.rb +0 -24
  335. data/examples/macports_package/recipes/install.rb +0 -13
  336. data/examples/macports_package/recipes/purge.rb +0 -13
  337. data/examples/macports_package/recipes/remove.rb +0 -13
  338. data/examples/macports_package/recipes/upgrade.rb +0 -13
  339. data/examples/macports_package/spec/install_spec.rb +0 -23
  340. data/examples/macports_package/spec/purge_spec.rb +0 -19
  341. data/examples/macports_package/spec/remove_spec.rb +0 -19
  342. data/examples/macports_package/spec/upgrade_spec.rb +0 -19
  343. data/examples/mdadm/recipes/assemble.rb +0 -13
  344. data/examples/mdadm/recipes/create.rb +0 -13
  345. data/examples/mdadm/recipes/stop.rb +0 -13
  346. data/examples/mdadm/spec/assemble_spec.rb +0 -19
  347. data/examples/mdadm/spec/create_spec.rb +0 -23
  348. data/examples/mdadm/spec/stop_spec.rb +0 -19
  349. data/examples/mount/recipes/disable.rb +0 -8
  350. data/examples/mount/recipes/enable.rb +0 -8
  351. data/examples/mount/recipes/mount.rb +0 -9
  352. data/examples/mount/recipes/remount.rb +0 -8
  353. data/examples/mount/recipes/umount.rb +0 -8
  354. data/examples/mount/spec/disable_spec.rb +0 -15
  355. data/examples/mount/spec/enable_spec.rb +0 -15
  356. data/examples/mount/spec/mount_spec.rb +0 -19
  357. data/examples/mount/spec/remount_spec.rb +0 -15
  358. data/examples/mount/spec/umount_spec.rb +0 -15
  359. data/examples/msu_package/recipes/install.rb +0 -13
  360. data/examples/msu_package/recipes/remove.rb +0 -13
  361. data/examples/msu_package/spec/install_spec.rb +0 -26
  362. data/examples/msu_package/spec/remove_spec.rb +0 -22
  363. data/examples/multiple_actions/recipes/default.rb +0 -3
  364. data/examples/multiple_actions/recipes/reversed.rb +0 -9
  365. data/examples/multiple_actions/recipes/sequential.rb +0 -9
  366. data/examples/multiple_actions/spec/default_spec.rb +0 -14
  367. data/examples/multiple_actions/spec/reversed_spec.rb +0 -17
  368. data/examples/multiple_actions/spec/sequential_spec.rb +0 -17
  369. data/examples/multiple_run_action/recipes/default.rb +0 -5
  370. data/examples/multiple_run_action/spec/default_spec.rb +0 -18
  371. data/examples/notifications/recipes/before.rb +0 -7
  372. data/examples/notifications/recipes/chained.rb +0 -12
  373. data/examples/notifications/recipes/default.rb +0 -7
  374. data/examples/notifications/recipes/delayed.rb +0 -7
  375. data/examples/notifications/recipes/immediately.rb +0 -7
  376. data/examples/notifications/spec/before_spec.rb +0 -16
  377. data/examples/notifications/spec/chained_spec.rb +0 -21
  378. data/examples/notifications/spec/default_spec.rb +0 -16
  379. data/examples/notifications/spec/delayed_spec.rb +0 -16
  380. data/examples/notifications/spec/immediately_spec.rb +0 -16
  381. data/examples/ohai/recipes/reload.rb +0 -13
  382. data/examples/ohai/spec/reload_spec.rb +0 -23
  383. data/examples/openbsd_package/recipes/install.rb +0 -13
  384. data/examples/openbsd_package/recipes/purge.rb +0 -13
  385. data/examples/openbsd_package/recipes/remove.rb +0 -13
  386. data/examples/openbsd_package/recipes/upgrade.rb +0 -13
  387. data/examples/openbsd_package/spec/install_spec.rb +0 -23
  388. data/examples/openbsd_package/spec/purge_spec.rb +0 -19
  389. data/examples/openbsd_package/spec/remove_spec.rb +0 -19
  390. data/examples/openbsd_package/spec/upgrade_spec.rb +0 -19
  391. data/examples/osx_profile/recipes/install.rb +0 -8
  392. data/examples/osx_profile/recipes/remove.rb +0 -8
  393. data/examples/osx_profile/spec/install_spec.rb +0 -15
  394. data/examples/osx_profile/spec/remove_spec.rb +0 -13
  395. data/examples/package/recipes/install.rb +0 -17
  396. data/examples/package/recipes/purge.rb +0 -17
  397. data/examples/package/recipes/reconfig.rb +0 -17
  398. data/examples/package/recipes/remove.rb +0 -17
  399. data/examples/package/recipes/upgrade.rb +0 -17
  400. data/examples/package/spec/install_spec.rb +0 -27
  401. data/examples/package/spec/purge_spec.rb +0 -23
  402. data/examples/package/spec/reconfig_spec.rb +0 -23
  403. data/examples/package/spec/remove_spec.rb +0 -23
  404. data/examples/package/spec/upgrade_spec.rb +0 -23
  405. data/examples/pacman_package/recipes/install.rb +0 -13
  406. data/examples/pacman_package/recipes/purge.rb +0 -13
  407. data/examples/pacman_package/recipes/remove.rb +0 -13
  408. data/examples/pacman_package/recipes/upgrade.rb +0 -13
  409. data/examples/pacman_package/spec/install_spec.rb +0 -26
  410. data/examples/pacman_package/spec/purge_spec.rb +0 -22
  411. data/examples/pacman_package/spec/remove_spec.rb +0 -22
  412. data/examples/pacman_package/spec/upgrade_spec.rb +0 -22
  413. data/examples/paludis_package/recipes/install.rb +0 -13
  414. data/examples/paludis_package/recipes/purge.rb +0 -13
  415. data/examples/paludis_package/recipes/remove.rb +0 -13
  416. data/examples/paludis_package/recipes/upgrade.rb +0 -13
  417. data/examples/paludis_package/spec/install_spec.rb +0 -23
  418. data/examples/paludis_package/spec/purge_spec.rb +0 -19
  419. data/examples/paludis_package/spec/remove_spec.rb +0 -19
  420. data/examples/paludis_package/spec/upgrade_spec.rb +0 -19
  421. data/examples/portage_package/recipes/install.rb +0 -13
  422. data/examples/portage_package/recipes/purge.rb +0 -13
  423. data/examples/portage_package/recipes/remove.rb +0 -13
  424. data/examples/portage_package/recipes/upgrade.rb +0 -13
  425. data/examples/portage_package/spec/install_spec.rb +0 -26
  426. data/examples/portage_package/spec/purge_spec.rb +0 -22
  427. data/examples/portage_package/spec/remove_spec.rb +0 -22
  428. data/examples/portage_package/spec/upgrade_spec.rb +0 -22
  429. data/examples/powershell_script/recipes/run.rb +0 -9
  430. data/examples/powershell_script/spec/run_spec.rb +0 -22
  431. data/examples/reboot/recipes/cancel.rb +0 -3
  432. data/examples/reboot/recipes/now.rb +0 -3
  433. data/examples/reboot/recipes/request.rb +0 -3
  434. data/examples/reboot/spec/cancel_spec.rb +0 -9
  435. data/examples/reboot/spec/now_spec.rb +0 -9
  436. data/examples/reboot/spec/request_spec.rb +0 -9
  437. data/examples/registry_key/recipes/create.rb +0 -13
  438. data/examples/registry_key/recipes/create_if_missing.rb +0 -13
  439. data/examples/registry_key/recipes/delete.rb +0 -13
  440. data/examples/registry_key/recipes/delete_key.rb +0 -13
  441. data/examples/registry_key/spec/create_if_missing_spec.rb +0 -22
  442. data/examples/registry_key/spec/create_spec.rb +0 -26
  443. data/examples/registry_key/spec/delete_key_spec.rb +0 -22
  444. data/examples/registry_key/spec/delete_spec.rb +0 -22
  445. data/examples/remote_directory/recipes/create.rb +0 -13
  446. data/examples/remote_directory/recipes/create_if_missing.rb +0 -13
  447. data/examples/remote_directory/recipes/delete.rb +0 -13
  448. data/examples/remote_directory/spec/create_if_missing_spec.rb +0 -19
  449. data/examples/remote_directory/spec/create_spec.rb +0 -23
  450. data/examples/remote_directory/spec/delete_spec.rb +0 -19
  451. data/examples/remote_file/recipes/create.rb +0 -18
  452. data/examples/remote_file/recipes/create_if_missing.rb +0 -16
  453. data/examples/remote_file/recipes/delete.rb +0 -16
  454. data/examples/remote_file/recipes/touch.rb +0 -16
  455. data/examples/remote_file/spec/create_if_missing_spec.rb +0 -19
  456. data/examples/remote_file/spec/create_spec.rb +0 -23
  457. data/examples/remote_file/spec/delete_spec.rb +0 -19
  458. data/examples/remote_file/spec/touch_spec.rb +0 -19
  459. data/examples/render_file/files/default/cookbook_file +0 -1
  460. data/examples/render_file/recipes/default.rb +0 -15
  461. data/examples/render_file/recipes/template_helpers.rb +0 -9
  462. data/examples/render_file/spec/default_spec.rb +0 -155
  463. data/examples/render_file/spec/template_helpers_spec.rb +0 -10
  464. data/examples/render_file/templates/default/_partial.erb +0 -1
  465. data/examples/render_file/templates/default/partial.erb +0 -1
  466. data/examples/render_file/templates/default/template.erb +0 -1
  467. data/examples/render_file/templates/default/template_with_helper.erb +0 -1
  468. data/examples/roles/recipes/another.rb +0 -3
  469. data/examples/roles/recipes/default.rb +0 -1
  470. data/examples/roles/roles/role.rb +0 -9
  471. data/examples/roles/spec/default_spec.rb +0 -21
  472. data/examples/route/recipes/add.rb +0 -13
  473. data/examples/route/recipes/delete.rb +0 -13
  474. data/examples/route/spec/add_spec.rb +0 -23
  475. data/examples/route/spec/delete_spec.rb +0 -19
  476. data/examples/rpm_package/recipes/install.rb +0 -13
  477. data/examples/rpm_package/recipes/remove.rb +0 -13
  478. data/examples/rpm_package/recipes/upgrade.rb +0 -13
  479. data/examples/rpm_package/spec/install_spec.rb +0 -26
  480. data/examples/rpm_package/spec/remove_spec.rb +0 -22
  481. data/examples/rpm_package/spec/upgrade_spec.rb +0 -22
  482. data/examples/ruby_block/recipes/create.rb +0 -8
  483. data/examples/ruby_block/recipes/run.rb +0 -9
  484. data/examples/ruby_block/spec/create_spec.rb +0 -13
  485. data/examples/ruby_block/spec/run_spec.rb +0 -18
  486. data/examples/script/recipes/run_bash.rb +0 -9
  487. data/examples/script/recipes/run_csh.rb +0 -9
  488. data/examples/script/recipes/run_ksh.rb +0 -9
  489. data/examples/script/recipes/run_perl.rb +0 -9
  490. data/examples/script/recipes/run_python.rb +0 -9
  491. data/examples/script/recipes/run_ruby.rb +0 -9
  492. data/examples/script/recipes/run_script.rb +0 -9
  493. data/examples/script/spec/run_bash_spec.rb +0 -19
  494. data/examples/script/spec/run_csh_spec.rb +0 -19
  495. data/examples/script/spec/run_ksh_spec.rb +0 -19
  496. data/examples/script/spec/run_perl_spec.rb +0 -19
  497. data/examples/script/spec/run_python_spec.rb +0 -19
  498. data/examples/script/spec/run_ruby_spec.rb +0 -19
  499. data/examples/script/spec/run_script_spec.rb +0 -19
  500. data/examples/server/recipes/client.rb +0 -6
  501. data/examples/server/recipes/data_bag.rb +0 -7
  502. data/examples/server/recipes/environment.rb +0 -6
  503. data/examples/server/recipes/node.rb +0 -6
  504. data/examples/server/recipes/render_with_cached.rb +0 -3
  505. data/examples/server/recipes/role.rb +0 -6
  506. data/examples/server/recipes/search.rb +0 -5
  507. data/examples/server/spec/client_spec.rb +0 -18
  508. data/examples/server/spec/data_bag_spec.rb +0 -25
  509. data/examples/server/spec/environment_spec.rb +0 -18
  510. data/examples/server/spec/exotic_port_spec.rb +0 -17
  511. data/examples/server/spec/node_spec.rb +0 -49
  512. data/examples/server/spec/render_with_cached_spec.rb +0 -15
  513. data/examples/server/spec/role_spec.rb +0 -18
  514. data/examples/server/spec/search_spec.rb +0 -61
  515. data/examples/service/recipes/disable.rb +0 -13
  516. data/examples/service/recipes/enable.rb +0 -13
  517. data/examples/service/recipes/reload.rb +0 -13
  518. data/examples/service/recipes/restart.rb +0 -13
  519. data/examples/service/recipes/start.rb +0 -13
  520. data/examples/service/recipes/stop.rb +0 -13
  521. data/examples/service/spec/disable_spec.rb +0 -19
  522. data/examples/service/spec/enable_spec.rb +0 -19
  523. data/examples/service/spec/reload_spec.rb +0 -19
  524. data/examples/service/spec/restart_spec.rb +0 -19
  525. data/examples/service/spec/start_spec.rb +0 -19
  526. data/examples/service/spec/stop_spec.rb +0 -19
  527. data/examples/smartos_package/recipes/install.rb +0 -13
  528. data/examples/smartos_package/recipes/remove.rb +0 -13
  529. data/examples/smartos_package/recipes/upgrade.rb +0 -13
  530. data/examples/smartos_package/spec/install_spec.rb +0 -26
  531. data/examples/smartos_package/spec/remove_spec.rb +0 -22
  532. data/examples/smartos_package/spec/upgrade_spec.rb +0 -22
  533. data/examples/solaris_package/recipes/install.rb +0 -13
  534. data/examples/solaris_package/recipes/remove.rb +0 -13
  535. data/examples/solaris_package/recipes/upgrade.rb +0 -13
  536. data/examples/solaris_package/spec/install_spec.rb +0 -26
  537. data/examples/solaris_package/spec/remove_spec.rb +0 -22
  538. data/examples/solaris_package/spec/upgrade_spec.rb +0 -22
  539. data/examples/state_attrs/providers/lwrp.rb +0 -2
  540. data/examples/state_attrs/recipes/default.rb +0 -3
  541. data/examples/state_attrs/resources/lwrp.rb +0 -6
  542. data/examples/state_attrs/spec/default_spec.rb +0 -12
  543. data/examples/step_into/providers/lwrp.rb +0 -3
  544. data/examples/step_into/providers/provides.rb +0 -3
  545. data/examples/step_into/recipes/default.rb +0 -3
  546. data/examples/step_into/resources/lwrp.rb +0 -4
  547. data/examples/step_into/resources/provides.rb +0 -6
  548. data/examples/step_into/spec/default_spec.rb +0 -30
  549. data/examples/stub_command/recipes/default.rb +0 -5
  550. data/examples/stub_command/recipes/other_recipe.rb +0 -3
  551. data/examples/stub_command/spec/default_spec.rb +0 -28
  552. data/examples/stub_data_bag/recipes/default.rb +0 -5
  553. data/examples/stub_data_bag/spec/default_spec.rb +0 -27
  554. data/examples/stub_data_bag_item/recipes/default.rb +0 -5
  555. data/examples/stub_data_bag_item/spec/default_spec.rb +0 -27
  556. data/examples/stub_node/recipes/default.rb +0 -0
  557. data/examples/stub_node/spec/default_spec.rb +0 -17
  558. data/examples/stub_search/recipes/block.rb +0 -3
  559. data/examples/stub_search/recipes/default.rb +0 -2
  560. data/examples/stub_search/spec/block_spec.rb +0 -27
  561. data/examples/stub_search/spec/default_spec.rb +0 -27
  562. data/examples/subscribes/recipes/before.rb +0 -5
  563. data/examples/subscribes/recipes/chained.rb +0 -10
  564. data/examples/subscribes/recipes/default.rb +0 -5
  565. data/examples/subscribes/recipes/delayed.rb +0 -5
  566. data/examples/subscribes/recipes/immediately.rb +0 -5
  567. data/examples/subscribes/spec/before_spec.rb +0 -16
  568. data/examples/subscribes/spec/chained_spec.rb +0 -21
  569. data/examples/subscribes/spec/default_spec.rb +0 -16
  570. data/examples/subscribes/spec/delayed_spec.rb +0 -16
  571. data/examples/subscribes/spec/immediately_spec.rb +0 -16
  572. data/examples/subversion/recipes/checkout.rb +0 -13
  573. data/examples/subversion/recipes/export.rb +0 -13
  574. data/examples/subversion/recipes/force_export.rb +0 -13
  575. data/examples/subversion/recipes/sync.rb +0 -13
  576. data/examples/subversion/spec/checkout_spec.rb +0 -19
  577. data/examples/subversion/spec/export_spec.rb +0 -19
  578. data/examples/subversion/spec/force_export_spec.rb +0 -19
  579. data/examples/subversion/spec/sync_spec.rb +0 -23
  580. data/examples/systemd_unit/recipes/create.rb +0 -3
  581. data/examples/systemd_unit/recipes/delete.rb +0 -3
  582. data/examples/systemd_unit/recipes/disable.rb +0 -3
  583. data/examples/systemd_unit/recipes/enable.rb +0 -3
  584. data/examples/systemd_unit/recipes/mask.rb +0 -3
  585. data/examples/systemd_unit/recipes/reload_or_restart.rb +0 -3
  586. data/examples/systemd_unit/recipes/reload_or_try_restart.rb +0 -3
  587. data/examples/systemd_unit/recipes/restart.rb +0 -3
  588. data/examples/systemd_unit/recipes/start.rb +0 -3
  589. data/examples/systemd_unit/recipes/stop.rb +0 -3
  590. data/examples/systemd_unit/recipes/try_restart.rb +0 -3
  591. data/examples/systemd_unit/recipes/unmask.rb +0 -3
  592. data/examples/systemd_unit/spec/create_spec.rb +0 -10
  593. data/examples/systemd_unit/spec/delete_spec.rb +0 -10
  594. data/examples/systemd_unit/spec/disable_spec.rb +0 -10
  595. data/examples/systemd_unit/spec/enable_spec.rb +0 -10
  596. data/examples/systemd_unit/spec/mask_spec.rb +0 -10
  597. data/examples/systemd_unit/spec/reload_or_restart_spec.rb +0 -10
  598. data/examples/systemd_unit/spec/reload_or_try_restart_spec.rb +0 -10
  599. data/examples/systemd_unit/spec/restart_spec.rb +0 -10
  600. data/examples/systemd_unit/spec/start_spec.rb +0 -10
  601. data/examples/systemd_unit/spec/stop_spec.rb +0 -10
  602. data/examples/systemd_unit/spec/try_restart_spec.rb +0 -10
  603. data/examples/systemd_unit/spec/unmask_spec.rb +0 -10
  604. data/examples/template/recipes/create.rb +0 -15
  605. data/examples/template/recipes/create_if_missing.rb +0 -15
  606. data/examples/template/recipes/delete.rb +0 -15
  607. data/examples/template/recipes/touch.rb +0 -15
  608. data/examples/template/spec/create_if_missing_spec.rb +0 -28
  609. data/examples/template/spec/create_spec.rb +0 -32
  610. data/examples/template/spec/delete_spec.rb +0 -19
  611. data/examples/template/spec/touch_spec.rb +0 -19
  612. data/examples/use_inline_resources/libraries/matchers.rb +0 -5
  613. data/examples/use_inline_resources/providers/lwrp.rb +0 -7
  614. data/examples/use_inline_resources/recipes/default.rb +0 -1
  615. data/examples/use_inline_resources/resources/lwrp.rb +0 -4
  616. data/examples/use_inline_resources/spec/default_spec.rb +0 -18
  617. data/examples/user/recipes/create.rb +0 -13
  618. data/examples/user/recipes/lock.rb +0 -13
  619. data/examples/user/recipes/manage.rb +0 -13
  620. data/examples/user/recipes/modify.rb +0 -13
  621. data/examples/user/recipes/remove.rb +0 -13
  622. data/examples/user/recipes/unlock.rb +0 -13
  623. data/examples/user/spec/create_spec.rb +0 -26
  624. data/examples/user/spec/lock_spec.rb +0 -22
  625. data/examples/user/spec/manage_spec.rb +0 -22
  626. data/examples/user/spec/modify_spec.rb +0 -22
  627. data/examples/user/spec/remove_spec.rb +0 -22
  628. data/examples/user/spec/unlock_spec.rb +0 -22
  629. data/examples/windows_package/recipes/install.rb +0 -13
  630. data/examples/windows_package/recipes/remove.rb +0 -13
  631. data/examples/windows_package/spec/install_spec.rb +0 -22
  632. data/examples/windows_package/spec/remove_spec.rb +0 -22
  633. data/examples/windows_service/recipes/configure_startup.rb +0 -13
  634. data/examples/windows_service/recipes/disable.rb +0 -13
  635. data/examples/windows_service/recipes/enable.rb +0 -13
  636. data/examples/windows_service/recipes/reload.rb +0 -13
  637. data/examples/windows_service/recipes/restart.rb +0 -13
  638. data/examples/windows_service/recipes/start.rb +0 -13
  639. data/examples/windows_service/recipes/stop.rb +0 -13
  640. data/examples/windows_service/spec/configure_startup_spec.rb +0 -22
  641. data/examples/windows_service/spec/disable_spec.rb +0 -22
  642. data/examples/windows_service/spec/enable_spec.rb +0 -22
  643. data/examples/windows_service/spec/reload_spec.rb +0 -22
  644. data/examples/windows_service/spec/restart_spec.rb +0 -22
  645. data/examples/windows_service/spec/start_spec.rb +0 -22
  646. data/examples/windows_service/spec/stop_spec.rb +0 -22
  647. data/examples/yum_package/recipes/install.rb +0 -13
  648. data/examples/yum_package/recipes/purge.rb +0 -13
  649. data/examples/yum_package/recipes/remove.rb +0 -13
  650. data/examples/yum_package/recipes/upgrade.rb +0 -13
  651. data/examples/yum_package/spec/install_spec.rb +0 -26
  652. data/examples/yum_package/spec/purge_spec.rb +0 -22
  653. data/examples/yum_package/spec/remove_spec.rb +0 -22
  654. data/examples/yum_package/spec/upgrade_spec.rb +0 -22
  655. data/examples/yum_repository/recipes/add.rb +0 -8
  656. data/examples/yum_repository/recipes/create.rb +0 -8
  657. data/examples/yum_repository/recipes/delete.rb +0 -3
  658. data/examples/yum_repository/recipes/makecache.rb +0 -3
  659. data/examples/yum_repository/recipes/remove.rb +0 -7
  660. data/examples/yum_repository/spec/add_spec.rb +0 -12
  661. data/examples/yum_repository/spec/create_spec.rb +0 -17
  662. data/examples/yum_repository/spec/delete_spec.rb +0 -12
  663. data/examples/yum_repository/spec/makecache_spec.rb +0 -12
  664. data/examples/yum_repository/spec/remove_spec.rb +0 -12
  665. data/examples/zypper_package/recipes/install.rb +0 -13
  666. data/examples/zypper_package/recipes/purge.rb +0 -13
  667. data/examples/zypper_package/recipes/remove.rb +0 -13
  668. data/examples/zypper_package/recipes/upgrade.rb +0 -13
  669. data/examples/zypper_package/spec/install_spec.rb +0 -23
  670. data/examples/zypper_package/spec/purge_spec.rb +0 -19
  671. data/examples/zypper_package/spec/remove_spec.rb +0 -19
  672. data/examples/zypper_package/spec/upgrade_spec.rb +0 -19
  673. data/features/apt_package.feature +0 -14
  674. data/features/apt_repository.feature +0 -15
  675. data/features/apt_update.feature +0 -13
  676. data/features/attributes.feature +0 -7
  677. data/features/batch.feature +0 -10
  678. data/features/bff_package.feature +0 -12
  679. data/features/cab_package.feature +0 -21
  680. data/features/cached.feature +0 -7
  681. data/features/chef_gem.feature +0 -14
  682. data/features/chocolatey_package.feature +0 -14
  683. data/features/compile_time.feature +0 -7
  684. data/features/cookbook_file.feature +0 -13
  685. data/features/cron.feature +0 -11
  686. data/features/custom_matcher.feature +0 -11
  687. data/features/custom_resource.feature +0 -7
  688. data/features/deploy.feature +0 -12
  689. data/features/directory.feature +0 -11
  690. data/features/dnf_package.feature +0 -26
  691. data/features/do_nothing.feature +0 -10
  692. data/features/dpkg_package.feature +0 -12
  693. data/features/dsc_resource.feature +0 -10
  694. data/features/dsc_script.feature +0 -10
  695. data/features/env.feature +0 -12
  696. data/features/erl_call.feature +0 -10
  697. data/features/execute.feature +0 -10
  698. data/features/exotic_zero_port.feature +0 -7
  699. data/features/expect_exception.feature +0 -12
  700. data/features/file.feature +0 -13
  701. data/features/freebsd_package.feature +0 -11
  702. data/features/gem_package.feature +0 -14
  703. data/features/git.feature +0 -12
  704. data/features/group.feature +0 -13
  705. data/features/guards.feature +0 -10
  706. data/features/heavy_provider_light_resource.feature +0 -10
  707. data/features/homebrew_package.feature +0 -12
  708. data/features/http_request.feature +0 -15
  709. data/features/ifconfig.feature +0 -13
  710. data/features/include_recipe.feature +0 -10
  711. data/features/ips_package.feature +0 -12
  712. data/features/launchd.feature +0 -17
  713. data/features/link.feature +0 -12
  714. data/features/log.feature +0 -10
  715. data/features/macports_package.feature +0 -13
  716. data/features/mdadm.feature +0 -12
  717. data/features/mount.feature +0 -14
  718. data/features/msu_package.feature +0 -23
  719. data/features/multiple_actions.feature +0 -12
  720. data/features/multiple_run_action.feature +0 -7
  721. data/features/notifications.feature +0 -14
  722. data/features/ohai.feature +0 -10
  723. data/features/openbsd_package.feature +0 -12
  724. data/features/osx_profile.feature +0 -13
  725. data/features/package.feature +0 -14
  726. data/features/pacman_package.feature +0 -13
  727. data/features/paludis_package.feature +0 -12
  728. data/features/portage_package.feature +0 -13
  729. data/features/powershell_script.feature +0 -10
  730. data/features/reboot.feature +0 -12
  731. data/features/registry_key.feature +0 -13
  732. data/features/remote_directory.feature +0 -12
  733. data/features/remote_file.feature +0 -13
  734. data/features/render_file.feature +0 -11
  735. data/features/roles.feature +0 -7
  736. data/features/route.feature +0 -11
  737. data/features/rpm_package.feature +0 -12
  738. data/features/ruby_block.feature +0 -11
  739. data/features/script.feature +0 -16
  740. data/features/server.feature +0 -16
  741. data/features/server_on_disk.feature +0 -16
  742. data/features/service.feature +0 -15
  743. data/features/smartos_package.feature +0 -12
  744. data/features/solaris_package.feature +0 -12
  745. data/features/state_attrs.feature +0 -7
  746. data/features/step_definitions/background_steps.rb +0 -7
  747. data/features/step_into.feature +0 -7
  748. data/features/stub_command.feature +0 -7
  749. data/features/stub_data_bag.feature +0 -7
  750. data/features/stub_data_bag_item.feature +0 -7
  751. data/features/stub_node.feature +0 -7
  752. data/features/stub_search.feature +0 -7
  753. data/features/subscribes.feature +0 -14
  754. data/features/subversion.feature +0 -13
  755. data/features/support/env.rb +0 -38
  756. data/features/support/executor.rb +0 -20
  757. data/features/support/exotic_zero_port.rb +0 -3
  758. data/features/support/on_disk.rb +0 -7
  759. data/features/systemd_unit.feature +0 -27
  760. data/features/template.feature +0 -13
  761. data/features/use_inline_resources.feature +0 -7
  762. data/features/user.feature +0 -15
  763. data/features/windows_package.feature +0 -11
  764. data/features/windows_service.feature +0 -16
  765. data/features/yum_package.feature +0 -13
  766. data/features/yum_repository.feature +0 -23
  767. data/features/zypper_package.feature +0 -13
  768. data/lib/chefspec/api/apt_package.rb +0 -192
  769. data/lib/chefspec/api/apt_repository.rb +0 -56
  770. data/lib/chefspec/api/apt_update.rb +0 -53
  771. data/lib/chefspec/api/batch.rb +0 -43
  772. data/lib/chefspec/api/bff_package.rb +0 -154
  773. data/lib/chefspec/api/cab_package.rb +0 -80
  774. data/lib/chefspec/api/chef_gem.rb +0 -191
  775. data/lib/chefspec/api/chocolatey_package.rb +0 -107
  776. data/lib/chefspec/api/cookbook_file.rb +0 -166
  777. data/lib/chefspec/api/cron.rb +0 -80
  778. data/lib/chefspec/api/deploy.rb +0 -117
  779. data/lib/chefspec/api/directory.rb +0 -80
  780. data/lib/chefspec/api/dnf_package.rb +0 -154
  781. data/lib/chefspec/api/dpkg_package.rb +0 -117
  782. data/lib/chefspec/api/dsc_resource.rb +0 -49
  783. data/lib/chefspec/api/dsc_script.rb +0 -37
  784. data/lib/chefspec/api/easy_install_package.rb +0 -154
  785. data/lib/chefspec/api/env.rb +0 -117
  786. data/lib/chefspec/api/erl_call.rb +0 -43
  787. data/lib/chefspec/api/execute.rb +0 -43
  788. data/lib/chefspec/api/file.rb +0 -166
  789. data/lib/chefspec/api/freebsd_package.rb +0 -80
  790. data/lib/chefspec/api/gem_package.rb +0 -191
  791. data/lib/chefspec/api/git.rb +0 -117
  792. data/lib/chefspec/api/group.rb +0 -154
  793. data/lib/chefspec/api/homebrew_package.rb +0 -154
  794. data/lib/chefspec/api/http_request.rb +0 -228
  795. data/lib/chefspec/api/ifconfig.rb +0 -154
  796. data/lib/chefspec/api/ips_package.rb +0 -117
  797. data/lib/chefspec/api/launchd.rb +0 -151
  798. data/lib/chefspec/api/log.rb +0 -43
  799. data/lib/chefspec/api/macports_package.rb +0 -154
  800. data/lib/chefspec/api/mdadm.rb +0 -117
  801. data/lib/chefspec/api/mount.rb +0 -192
  802. data/lib/chefspec/api/msu_package.rb +0 -81
  803. data/lib/chefspec/api/ohai.rb +0 -43
  804. data/lib/chefspec/api/openbsd_package.rb +0 -155
  805. data/lib/chefspec/api/osx_profile.rb +0 -63
  806. data/lib/chefspec/api/package.rb +0 -192
  807. data/lib/chefspec/api/pacman_package.rb +0 -155
  808. data/lib/chefspec/api/paludis_package.rb +0 -155
  809. data/lib/chefspec/api/portage_package.rb +0 -155
  810. data/lib/chefspec/api/powershell_script.rb +0 -43
  811. data/lib/chefspec/api/registry_key.rb +0 -166
  812. data/lib/chefspec/api/remote_directory.rb +0 -120
  813. data/lib/chefspec/api/remote_file.rb +0 -166
  814. data/lib/chefspec/api/route.rb +0 -80
  815. data/lib/chefspec/api/rpm_package.rb +0 -117
  816. data/lib/chefspec/api/ruby_block.rb +0 -68
  817. data/lib/chefspec/api/script.rb +0 -278
  818. data/lib/chefspec/api/service.rb +0 -246
  819. data/lib/chefspec/api/smartos_package.rb +0 -117
  820. data/lib/chefspec/api/solaris_package.rb +0 -117
  821. data/lib/chefspec/api/subversion.rb +0 -154
  822. data/lib/chefspec/api/systemd_unit.rb +0 -353
  823. data/lib/chefspec/api/template.rb +0 -166
  824. data/lib/chefspec/api/windows_package.rb +0 -86
  825. data/lib/chefspec/api/windows_service.rb +0 -286
  826. data/lib/chefspec/api/yum_package.rb +0 -154
  827. data/lib/chefspec/api/yum_repository.rb +0 -130
  828. data/lib/chefspec/api/zypper_package.rb +0 -154
  829. data/lib/chefspec/macros.rb +0 -222
  830. data/spec/unit/api_spec.rb +0 -18
@@ -1,102 +1,28 @@
1
- module ChefSpec::API
2
- # @since 1.1.0
3
- module LinkMatchers
4
- ChefSpec.define_matcher :link
1
+ module ChefSpec
2
+ module API
3
+ module Link
4
+ #
5
+ # Assert that a symlink links to a specific path. This is really
6
+ # syntactic sugar for the following:
7
+ #
8
+ # expect(chef_run).to create_link('/tmp/thing').with(to: '/tmp/other_thing')
9
+ #
10
+ # @example Using +link_to+ with a String path
11
+ # link = chef_run.link('/tmp/thing')
12
+ # expect(link).to link_to('/tmp/other_thing')
13
+ #
14
+ # @example Using +link_to+ with a regular expression
15
+ # expect(link).to link_to(/\/tmp/(.+)/)
16
+ #
17
+ # @param [String, Regex] path
18
+ # the path to link to
19
+ #
20
+ # @return [ChefSpec::Matchers::LinkToMatcher]
21
+ #
22
+ def link_to(path)
23
+ ChefSpec::Matchers::LinkToMatcher.new(path)
24
+ end
5
25
 
6
- #
7
- # Assert that a +link+ resource exists in the Chef run with the
8
- # action +:create+. Given a Chef Recipe that creates "/tmp" as a
9
- # +link+:
10
- #
11
- # link '/tmp' do
12
- # action :create
13
- # end
14
- #
15
- # The Examples section demonstrates the different ways to test a
16
- # +link+ resource with ChefSpec.
17
- #
18
- # @example Assert that a +link+ was created
19
- # expect(chef_run).to create_link('/tmp')
20
- #
21
- # @example Assert that a +link+ was created with predicate matchers
22
- # expect(chef_run).to create_link('/tmp').with_link_type(:hard)
23
- #
24
- # @example Assert that a +link+ was created with attributes
25
- # expect(chef_run).to create_link('/tmp').with(link_type: :hard)
26
- #
27
- # @example Assert that a +link+ was created using a regex
28
- # expect(chef_run).to create_link('/tmp').with(link_type: Symbol)
29
- #
30
- # @example Assert that a +link+ was _not_ created
31
- # expect(chef_run).to_not create_link('/tmp')
32
- #
33
- #
34
- # @param [String, Regex] resource_name
35
- # the name of the resource to match
36
- #
37
- # @return [ChefSpec::Matchers::ResourceMatcher]
38
- #
39
- def create_link(resource_name)
40
- ChefSpec::Matchers::ResourceMatcher.new(:link, :create, resource_name)
41
- end
42
-
43
- #
44
- # Assert that a +link+ resource exists in the Chef run with the
45
- # action +:delete+. Given a Chef Recipe that deletes "/tmp" as a
46
- # +link+:
47
- #
48
- # link '/tmp' do
49
- # action :delete
50
- # end
51
- #
52
- # The Examples section demonstrates the different ways to test a
53
- # +link+ resource with ChefSpec.
54
- #
55
- # @example Assert that a +link+ was deleted
56
- # expect(chef_run).to delete_link('/tmp')
57
- #
58
- # @example Assert that a +link+ was deleted with predicate matchers
59
- # expect(chef_run).to delete_link('/tmp').with_link_type(:hard)
60
- #
61
- # @example Assert that a +link+ was deleted with attributes
62
- # expect(chef_run).to delete_link('/tmp').with(link_type: :hard)
63
- #
64
- # @example Assert that a +link+ was deleted using a regex
65
- # expect(chef_run).to delete_link('/tmp').with(link_type: Symbol)
66
- #
67
- # @example Assert that a +link+ was _not_ deleted
68
- # expect(chef_run).to_not delete_link('/tmp')
69
- #
70
- #
71
- # @param [String, Regex] resource_name
72
- # the name of the resource to match
73
- #
74
- # @return [ChefSpec::Matchers::ResourceMatcher]
75
- #
76
- def delete_link(resource_name)
77
- ChefSpec::Matchers::ResourceMatcher.new(:link, :delete, resource_name)
78
- end
79
-
80
- #
81
- # Assert that a symlink links to a specific path. This is really
82
- # syntactic sugar for the following:
83
- #
84
- # expect(chef_run).to create_link('/tmp/thing').with(to: '/tmp/other_thing')
85
- #
86
- # @example Using +link_to+ with a String path
87
- # link = chef_run.link('/tmp/thing')
88
- # expect(link).to link_to('/tmp/other_thing')
89
- #
90
- # @example Using +link_to+ with a regular expression
91
- # expect(link).to link_to(/\/tmp/(.+)/)
92
- #
93
- # @param [String, Regex] path
94
- # the path to link to
95
- #
96
- # @return [ChefSpec::Matchers::LinkToMatcher]
97
- #
98
- def link_to(path)
99
- ChefSpec::Matchers::LinkToMatcher.new(path)
100
26
  end
101
27
  end
102
28
  end
@@ -1,38 +1,40 @@
1
- module ChefSpec::API
2
- # @since 0.9.0
3
- module NotificationsMatchers
4
- #
5
- # Assert that a resource notifies another. Given a Chef Recipe that
6
- # notifies a template resource to restart apache:
7
- #
8
- # template '/etc/apache2/config' do
9
- # notifies :restart, 'service[apache2]'
10
- # end
11
- #
12
- # The Examples section demonstrates the different ways to test an
13
- # notifications on a resource with ChefSpec.
14
- #
15
- # @example Assert the template notifies apache of something
16
- # template = chef_run.template('/etc/apache2.conf')
17
- # expect(template).to notify('service[apache2]')
18
- #
19
- # @example Assert the template notifies apache to restart
20
- # expect(template).to notify('service[apache2]').to(:restart)
21
- #
22
- # @example Assert the template notifies apache to restart immediately
23
- # expect(template).to notify('service[apache2]').to(:restart).immediately
24
- #
25
- # @example Assert the template notifies apache to restart delayed
26
- # expect(template).to notify('service[apache2]').to(:restart).delayed
27
- #
28
- #
29
- # @param [String] signature
30
- # the signature of the notification to match
31
- #
32
- # @return [ChefSpec::Matchers::NotificationsMatcher]
33
- #
34
- def notify(signature)
35
- ChefSpec::Matchers::NotificationsMatcher.new(signature)
1
+ module ChefSpec
2
+ module API
3
+ module Notifications
4
+ #
5
+ # Assert that a resource notifies another. Given a Chef Recipe that
6
+ # notifies a template resource to restart apache:
7
+ #
8
+ # template '/etc/apache2/config' do
9
+ # notifies :restart, 'service[apache2]'
10
+ # end
11
+ #
12
+ # The Examples section demonstrates the different ways to test an
13
+ # notifications on a resource with ChefSpec.
14
+ #
15
+ # @example Assert the template notifies apache of something
16
+ # template = chef_run.template('/etc/apache2.conf')
17
+ # expect(template).to notify('service[apache2]')
18
+ #
19
+ # @example Assert the template notifies apache to restart
20
+ # expect(template).to notify('service[apache2]').to(:restart)
21
+ #
22
+ # @example Assert the template notifies apache to restart immediately
23
+ # expect(template).to notify('service[apache2]').to(:restart).immediately
24
+ #
25
+ # @example Assert the template notifies apache to restart delayed
26
+ # expect(template).to notify('service[apache2]').to(:restart).delayed
27
+ #
28
+ #
29
+ # @param [String] signature
30
+ # the signature of the notification to match
31
+ #
32
+ # @return [ChefSpec::Matchers::NotificationsMatcher]
33
+ #
34
+ def notify(signature)
35
+ ChefSpec::Matchers::NotificationsMatcher.new(signature)
36
+ end
37
+
36
38
  end
37
39
  end
38
40
  end
@@ -1,18 +1,14 @@
1
- module ChefSpec::API
2
- # @since 0.5.0
3
- module RebootMatchers
4
- ChefSpec.define_matcher :reboot
1
+ module ChefSpec
2
+ module API
3
+ module Reboot
4
+ def now_reboot(resource_name)
5
+ ChefSpec::Matchers::ResourceMatcher.new(:reboot, :reboot_now, resource_name)
6
+ end
5
7
 
6
- def now_reboot(resource_name)
7
- ChefSpec::Matchers::ResourceMatcher.new(:reboot, :reboot_now, resource_name)
8
- end
9
-
10
- def request_reboot(resource_name)
11
- ChefSpec::Matchers::ResourceMatcher.new(:reboot, :request_reboot, resource_name)
12
- end
8
+ def request_reboot(resource_name)
9
+ ChefSpec::Matchers::ResourceMatcher.new(:reboot, :request_reboot, resource_name)
10
+ end
13
11
 
14
- def cancel_reboot(resource_name)
15
- ChefSpec::Matchers::ResourceMatcher.new(:reboot, :cancel, resource_name)
16
12
  end
17
13
  end
18
14
  end
@@ -1,35 +1,37 @@
1
- module ChefSpec::API
2
- # @since 3.0.0
3
- module RenderFileMatchers
4
- #
5
- # Assert that a file is rendered by the Chef run. This matcher works for
6
- # +template+, +file+, and +cookbook_file+ resources. The content from the
7
- # resource must be convertable to a string; verifying the content of a
8
- # binary file is not permissible at this time.
9
- #
10
- # @example Assert a template is rendered
11
- # expect(chef_run).to render_file('/etc/foo')
12
- #
13
- # @example Assert a template is rendered with certain content
14
- # expect(template).to render_file('/etc/foo').with_content('This is a file')
15
- #
16
- # @example Assert a template is rendered with matching content
17
- # expect(template).to render_file('/etc/foo').with_content(/^This(.+)$/)
18
- #
19
- # @example Assert a template is rendered with content matching any RSpec matcher
20
- # expect(template).to render_file('/etc/foo').with_content(starts_with('This'))
21
- #
22
- # @example Assert a partial path to a template is rendered with matching content
23
- # expect(template).to render_file(/\/etc\/foo-(\d+)$/).with_content(/^This(.+)$/)
24
- #
25
- #
26
- # @param [String] path
27
- # the path of the file to render
28
- #
29
- # @return [ChefSpec::Matchers::RenderFileMatcher]
30
- #
31
- def render_file(path)
32
- ChefSpec::Matchers::RenderFileMatcher.new(path)
1
+ module ChefSpec
2
+ module API
3
+ module RenderFile
4
+ #
5
+ # Assert that a file is rendered by the Chef run. This matcher works for
6
+ # +template+, +file+, and +cookbook_file+ resources. The content from the
7
+ # resource must be convertable to a string; verifying the content of a
8
+ # binary file is not permissible at this time.
9
+ #
10
+ # @example Assert a template is rendered
11
+ # expect(chef_run).to render_file('/etc/foo')
12
+ #
13
+ # @example Assert a template is rendered with certain content
14
+ # expect(template).to render_file('/etc/foo').with_content('This is a file')
15
+ #
16
+ # @example Assert a template is rendered with matching content
17
+ # expect(template).to render_file('/etc/foo').with_content(/^This(.+)$/)
18
+ #
19
+ # @example Assert a template is rendered with content matching any RSpec matcher
20
+ # expect(template).to render_file('/etc/foo').with_content(starts_with('This'))
21
+ #
22
+ # @example Assert a partial path to a template is rendered with matching content
23
+ # expect(template).to render_file(/\/etc\/foo-(\d+)$/).with_content(/^This(.+)$/)
24
+ #
25
+ #
26
+ # @param [String] path
27
+ # the path of the file to render
28
+ #
29
+ # @return [ChefSpec::Matchers::RenderFileMatcher]
30
+ #
31
+ def render_file(path)
32
+ ChefSpec::Matchers::RenderFileMatcher.new(path)
33
+ end
34
+
33
35
  end
34
36
  end
35
37
  end
@@ -1,28 +1,30 @@
1
- module ChefSpec::API
2
- # @since 3.1.0
3
- module StateAttrsMatcher
4
- #
5
- # Assert that a Chef resource has certain state attributes (since Chef
6
- # 11.8.0):
7
- #
8
- # state_attrs :time, :temperature
9
- #
10
- # @see https://github.com/opscode/chef/blob/e43d7ebda/lib/chef/resource/file.rb#L32-L37
11
- #
12
- # The Examples section demonstrates the different ways to test a
13
- # resource's +state_attrs+ with ChefSpec.
14
- #
15
- # @example Assert the +lwrp+ resource has two state attributes
16
- # expect(lwrp).to have_state_attrs(:time, :temperature)
17
- #
18
- #
19
- # @param [Array] state_attrs
20
- # the list of state attributes to assert
21
- #
22
- # @return [ChefSpec::Matchers::StateAttrsMatcher]
23
- #
24
- def have_state_attrs(*state_attrs)
25
- ChefSpec::Matchers::StateAttrsMatcher.new(state_attrs)
1
+ module ChefSpec
2
+ module API
3
+ module StateAttrs
4
+ #
5
+ # Assert that a Chef resource has certain state attributes (since Chef
6
+ # 11.8.0):
7
+ #
8
+ # state_attrs :time, :temperature
9
+ #
10
+ # @see https://github.com/opscode/chef/blob/e43d7ebda/lib/chef/resource/file.rb#L32-L37
11
+ #
12
+ # The Examples section demonstrates the different ways to test a
13
+ # resource's +state_attrs+ with ChefSpec.
14
+ #
15
+ # @example Assert the +lwrp+ resource has two state attributes
16
+ # expect(lwrp).to have_state_attrs(:time, :temperature)
17
+ #
18
+ #
19
+ # @param [Array] state_attrs
20
+ # the list of state attributes to assert
21
+ #
22
+ # @return [ChefSpec::Matchers::StateAttrsMatcher]
23
+ #
24
+ def have_state_attrs(*state_attrs)
25
+ ChefSpec::Matchers::StateAttrsMatcher.new(state_attrs)
26
+ end
27
+
26
28
  end
27
29
  end
28
30
  end
@@ -0,0 +1,183 @@
1
+ module ChefSpec
2
+ module API
3
+ module Stubs
4
+ #
5
+ # Stub a shell command to return a particular value without
6
+ # shelling out to the system.
7
+ #
8
+ # @example stubbing a command to return true
9
+ # stub_command('test -f /tmp/bacon').and_return(true)
10
+ #
11
+ # @example stubbing a block that is evaluated at runtime
12
+ # stub_command('test -f /tmp/bacon') { MyClass.check? }
13
+ #
14
+ # @example stubbing a command that matches a pattern
15
+ # stub_command(/test \-f/).and_return(true)
16
+ #
17
+ # @example stubbing a command that raises an exception
18
+ # stub_command('test -f /tmp/bacon').and_raise(SomeException)
19
+ #
20
+ #
21
+ # @param [String, Regexp] command
22
+ # the command to stub
23
+ #
24
+ # @return [ChefSpec::CommandStub]
25
+ #
26
+ def stub_command(command, &block)
27
+ ChefSpec::Stubs::CommandRegistry.register(ChefSpec::Stubs::CommandStub.new(command, &block))
28
+ end
29
+
30
+ #
31
+ # Stub a Chef call to load a data_bag.
32
+ #
33
+ # @example stubbing a data_bag to return an empty Array
34
+ # stub_data_bag('users').and_return([])
35
+ #
36
+ # @example stubbing a data_bag with a block that is evaluated at runtime
37
+ # stub_data_bag('users') { JSON.parse(File.read('fixtures/data_bag.json')) }
38
+ #
39
+ # @example stubbing a data_bag to return an Array of Hashes
40
+ # stub_data_bag('users').and_return([
41
+ # { id: 'bacon', comment: 'delicious' },
42
+ # { id: 'ham', comment: 'also good' }
43
+ # ])
44
+ #
45
+ # @example stubbing a data_bag to raise an exception
46
+ # stub_data_bag('users').and_raise(Chef::Exceptions::PrivateKeyMissing)
47
+ #
48
+ #
49
+ # @param [String, Symbol] bag
50
+ # the name of the data bag to stub
51
+ #
52
+ # @return [ChefSpec::DataBagStub]
53
+ #
54
+ def stub_data_bag(bag, &block)
55
+ ChefSpec::Stubs::DataBagRegistry.register(ChefSpec::Stubs::DataBagStub.new(bag, &block))
56
+ end
57
+
58
+ #
59
+ # Stub a Chef data_bag call.
60
+ #
61
+ # @example stubbing a data_bag_item to return a Hash of data
62
+ # stub_data_bag_item('users', 'svargo').and_return({
63
+ # id: 'svargo',
64
+ # name: 'Seth Vargo'
65
+ # })
66
+ #
67
+ # @example stubbing a data_bag_item with a block that is evaluated at runtime
68
+ # stub_data_bag_item('users', 'svargo') { JSON.parse(File.read('fixtures/data_bag_item.json')) }
69
+ #
70
+ # @example stubbing a data_bag_item to raise an exception
71
+ # stub_data_bag('users', 'svargo').and_raise(Chef::Exceptions::PrivateKeyMissing)
72
+ #
73
+ #
74
+ # @param [String, Symbol] bag
75
+ # the name of the data bag to find the item in
76
+ # @param [String] id
77
+ # the id of the data bag item to stub
78
+ #
79
+ # @return [ChefSpec::DataBagItemStub]
80
+ #
81
+ def stub_data_bag_item(bag, id, &block)
82
+ ChefSpec::Stubs::DataBagItemRegistry.register(ChefSpec::Stubs::DataBagItemStub.new(bag, id, &block))
83
+ end
84
+
85
+ #
86
+ # Creates a fake Chef::Node for use in testing.
87
+ #
88
+ # @example mocking a simple node
89
+ # stub_node('mynode.example')
90
+ #
91
+ # @example mocking a specific platform and version
92
+ # stub_node('mynode.example', platform: 'ubuntu', version: '18.04')
93
+ #
94
+ # @example overriding a specific ohai attribute
95
+ # stub_node('mynode.example', ohai: { ipaddress: '1.2.3.4' })
96
+ #
97
+ # @example stubbing a node based on a JSON fixture
98
+ # stub_node('mynode.example', path: File.join('fixtures', 'nodes', 'default.json'))
99
+ #
100
+ # @example setting specific attributes
101
+ # stub_node('mynode.example') do |node|
102
+ # node.default['attribute']['thing'] = 'value'
103
+ # end
104
+ #
105
+ #
106
+ # @param [String] name
107
+ # the name of the node
108
+ # @param [Hash] options
109
+ # the list of options for the node
110
+ #
111
+ # @option options [Symbol] :platform
112
+ # the platform to mock
113
+ # @option options [Symbol] :version
114
+ # the version of the platform to mock
115
+ # @option options [Symbol] :path
116
+ # filepath to a JSON file to pull a node from
117
+ # @option options [Hash] :ohai
118
+ # a Hash of Ohai attributes to mock on the node
119
+ #
120
+ # @return [Chef::Node]
121
+ #
122
+ def stub_node(*args, &block)
123
+ options = args.last.is_a?(Hash) ? args.pop : {}
124
+ name = args.first || "node.example"
125
+
126
+ fauxhai = Fauxhai.mock(options).data
127
+ fauxhai = fauxhai.merge(options[:ohai] || {})
128
+ fauxhai = Mash.new(fauxhai)
129
+
130
+ node = Chef::Node.new
131
+ node.name(name)
132
+ node.automatic_attrs = fauxhai
133
+ node.instance_eval(&block) if block_given?
134
+ node
135
+ end
136
+
137
+ #
138
+ # Stub a Chef search to return pre-defined data. When providing a value,
139
+ # the value is automatically mashified (to the best of ChefSpec's abilities)
140
+ # to ease in use.
141
+ #
142
+ # @example stubbing a search to return nothing
143
+ # stub_search(:node)
144
+ #
145
+ # @example stubbing a search with a query
146
+ # stub_search(:node, 'name:*')
147
+ #
148
+ # @example stubbing a search with a query as a regex
149
+ # stub_search(:node, /name:(.+)/)
150
+ #
151
+ # @example stubbing a search with a block that is evaluated at runtime
152
+ # stub_search(:node) { JSON.parse(File.read('fixtures/nodes.json')) }
153
+ #
154
+ # @example stubbing a search to return a fixed value
155
+ # stub_search(:node).and_return([ { a: 'b' } ])
156
+ #
157
+ # @example stubbing a search to raise an exception
158
+ # stub_search(:node).and_raise(Chef::Exceptions::PrivateKeyMissing)
159
+ #
160
+ #
161
+ # @param [String, Symbol] type
162
+ # the type to search to stub
163
+ # @param [String, Symbol, nil] query
164
+ # the query to stub
165
+ #
166
+ # @return [ChefSpec::SearchStub]
167
+ #
168
+ def stub_search(type, query = "*:*", &block)
169
+ ChefSpec::Stubs::SearchRegistry.register(ChefSpec::Stubs::SearchStub.new(type, query, &block))
170
+ end
171
+
172
+ # Automatically clear all stubs after each test.
173
+ extend RSpec::SharedContext
174
+ after(:each) do
175
+ ChefSpec::Stubs::CommandRegistry.reset!
176
+ ChefSpec::Stubs::DataBagRegistry.reset!
177
+ ChefSpec::Stubs::DataBagItemRegistry.reset!
178
+ ChefSpec::Stubs::SearchRegistry.reset!
179
+ end
180
+
181
+ end
182
+ end
183
+ end
@@ -0,0 +1,139 @@
1
+ require "chef/version"
2
+ require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
3
+
4
+ module ChefSpec
5
+ module API
6
+ module StubsFor
7
+ # Pull in the needed machinery to use `before` here.
8
+ extend RSpec::SharedContext
9
+
10
+ # Which version to use the shell_out_compacted hook on.
11
+ HAS_SHELLOUT_COMPACTED = Gem::Requirement.create("> 14.2")
12
+
13
+ # Hook used in the monkey patches to set up a place to inject stubs when
14
+ # needed for a resource or provider.
15
+ #
16
+ # @api private
17
+ # @param object [Chef::Resource, Chef::Provider] Resource or provider to inject
18
+ # @param type [Symbol] Type of object to register stubs on
19
+ # @return [void]
20
+ def self.setup_stubs_for(object, type)
21
+ # This space left intentionally blank, real implementation is below.
22
+ end
23
+
24
+ # Place to hold any stubs which should be active for this example.
25
+ let(:_chefspec_stubs_for_registry) do
26
+ # Auto-vivify for things like _chefspec_stubs_for_registry[:resource]['my_resource'] == [].
27
+ Hash.new do |hash, key|
28
+ hash[key] = Hash.new do |inner_hash, inner_key|
29
+ inner_hash[inner_key] = []
30
+ end
31
+ end
32
+ end
33
+
34
+ # Take over from the default, no-op implementation of {.setup_stubs_for}.
35
+ before do
36
+ allow(StubsFor).to receive(:setup_stubs_for) do |object, type|
37
+ type_stubs = _chefspec_stubs_for_registry[type]
38
+ resource_object = object.respond_to?(:new_resource) ? object.new_resource : object
39
+ stubs = type_stubs[nil] + type_stubs[resource_object.resource_name.to_s] + type_stubs[resource_object.to_s]
40
+ stubs.each do |stub|
41
+ instance_exec(object, &stub)
42
+ end
43
+ end
44
+ end
45
+
46
+ # Register stubs for resource objects.
47
+ #
48
+ # The `target` parameter can select either a resource string like `'package[foo]'`,
49
+ # a resource name like `'package'`, or `nil` for all resources.
50
+ #
51
+ # @example Setting method stub on a single resource
52
+ # it "does a thing" do
53
+ # stubs_for_resource("my_resource[foo]") do |res|
54
+ # expect(res).to receive_shell_out.with("my_command").and_return(stdout: "asdf")
55
+ # end
56
+ # expect(subject.some_method).to eq "asdf"
57
+ # end
58
+ # @param target [String, nil] Resource name to inject, or nil for all resources.
59
+ # @param current_value [Boolean] If true, also register stubs for current_value objects on the same target.
60
+ # @param block [Proc] A block taking the resource object as a parameter.
61
+ # @return [void]
62
+ def stubs_for_resource(target = nil, current_value: true, current_resource: true, &block)
63
+ current_value = false unless current_resource
64
+ _chefspec_stubs_for_registry[:resource][target] << block
65
+ stubs_for_current_value(target, &block) if current_value
66
+ end
67
+
68
+ # Register stubs for current_value objects.
69
+ #
70
+ # @see #stubs_for_resource
71
+ # @param target [String, nil] Resource name to inject, or nil for all resources.
72
+ # @param block [Proc] A block taking the resource object as a parameter.
73
+ # @return [void]
74
+ def stubs_for_current_value(target = nil, &block)
75
+ _chefspec_stubs_for_registry[:current_value][target] << block
76
+ end
77
+ alias_method :stubs_for_current_resource, :stubs_for_current_value
78
+
79
+ # Register stubs for provider objects.
80
+ #
81
+ # @see #stubs_for_resource
82
+ # @param target [String, nil] Resource name to inject, or nil for all providers.
83
+ # @param block [Proc] A block taking the resource object as a parameter.
84
+ # @return [void]
85
+ def stubs_for_provider(target = nil, &block)
86
+ _chefspec_stubs_for_registry[:provider][target] << block
87
+ end
88
+
89
+ def receive_shell_out(*cmd, stdout: "", stderr: "", exitstatus: 0, **opts)
90
+ # Ruby does not allow constructing an actual exitstatus object from Ruby code. Really.
91
+ fake_exitstatus = double(exitstatus: exitstatus)
92
+ fake_cmd = Mixlib::ShellOut.new(*cmd)
93
+ fake_cmd.define_singleton_method(:run_command) {} # Do nothing, just in case.
94
+ # Inject our canned data.
95
+ fake_cmd.instance_exec do
96
+ @stdout = stdout
97
+ @stderr = stderr
98
+ @status = fake_exitstatus
99
+ end
100
+ # On newer Chef, we can intercept using the new, better shell_out_compact hook point.
101
+ shell_out_method ||= if HAS_SHELLOUT_COMPACTED.satisfied_by?(Gem::Version.create(Chef::VERSION))
102
+ :shell_out_compacted
103
+ else
104
+ :shell_out
105
+ end
106
+ with_args = cmd + (opts.empty? ? [any_args] : [hash_including(opts)])
107
+ receive(shell_out_method).with(*with_args).and_return(fake_cmd)
108
+ end
109
+
110
+ module ClassMethods
111
+ # (see StubsFor#stubs_for_resource)
112
+ def stubs_for_resource(*args, **kwargs, &block)
113
+ before { stubs_for_resource(*args, **kwargs, &block) }
114
+ end
115
+
116
+ # (see StubsFor#stubs_for_current_value)
117
+ def stubs_for_current_value(*args, &block)
118
+ before { stubs_for_current_value(*args, &block) }
119
+ end
120
+ alias_method :stubs_for_current_resource, :stubs_for_current_value
121
+
122
+ # (see StubsFor#stubs_for_provider)
123
+ def stubs_for_provider(*args, &block)
124
+ before { stubs_for_provider(*args, &block) }
125
+ end
126
+
127
+ # @api private
128
+ def included(klass)
129
+ super
130
+ # Inject classmethods into the group.
131
+ klass.extend(ClassMethods)
132
+ end
133
+ end
134
+
135
+ extend ClassMethods
136
+
137
+ end
138
+ end
139
+ end