chef 18.7.10 → 18.8.46

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 (1159) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -22
  3. data/Rakefile +1 -0
  4. data/chef.gemspec +13 -6
  5. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +4 -0
  6. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +1 -5
  7. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +12 -0
  8. data/lib/chef/chef_fs/file_system.rb +18 -0
  9. data/lib/chef/cookbook_version.rb +34 -0
  10. data/lib/chef/http/basic_client.rb +1 -0
  11. data/lib/chef/http.rb +1 -0
  12. data/lib/chef/provider/package/apt.rb +1 -1
  13. data/lib/chef/provider/package/bff.rb +5 -0
  14. data/lib/chef/provider/package/cab.rb +9 -0
  15. data/lib/chef/provider/package/chocolatey.rb +6 -1
  16. data/lib/chef/provider/package/deb.rb +1 -1
  17. data/lib/chef/provider/package/dnf.rb +3 -3
  18. data/lib/chef/provider/package/habitat.rb +9 -0
  19. data/lib/chef/provider/package/homebrew.rb +9 -0
  20. data/lib/chef/provider/package/ips.rb +5 -0
  21. data/lib/chef/provider/package/macports.rb +9 -0
  22. data/lib/chef/provider/package/msu.rb +9 -0
  23. data/lib/chef/provider/package/openbsd.rb +7 -2
  24. data/lib/chef/provider/package/pacman.rb +9 -0
  25. data/lib/chef/provider/package/paludis.rb +9 -0
  26. data/lib/chef/provider/package/portage.rb +9 -0
  27. data/lib/chef/provider/package/powershell.rb +6 -1
  28. data/lib/chef/provider/package/rpm.rb +3 -3
  29. data/lib/chef/provider/package/rubygems.rb +9 -0
  30. data/lib/chef/provider/package/smartos.rb +9 -0
  31. data/lib/chef/provider/package/snap.rb +6 -1
  32. data/lib/chef/provider/package/solaris.rb +5 -0
  33. data/lib/chef/provider/package/windows.rb +5 -0
  34. data/lib/chef/provider/package/yum.rb +3 -3
  35. data/lib/chef/provider/package/zypper.rb +5 -0
  36. data/lib/chef/pwsh.rb +2 -5
  37. data/lib/chef/recipe.rb +20 -0
  38. data/lib/chef/resource/apt_package.rb +5 -0
  39. data/lib/chef/resource/apt_repository.rb +53 -27
  40. data/lib/chef/resource/archive_file.rb +49 -2
  41. data/lib/chef/resource/chocolatey_installer.rb +19 -4
  42. data/lib/chef/resource/dnf_package.rb +5 -0
  43. data/lib/chef/resource/dpkg_package.rb +5 -0
  44. data/lib/chef/resource/ohai.rb +11 -0
  45. data/lib/chef/resource/package.rb +5 -0
  46. data/lib/chef/resource/rpm_package.rb +5 -0
  47. data/lib/chef/resource/yum_package.rb +5 -0
  48. data/lib/chef/resource_reporter.rb +1 -1
  49. data/lib/chef/shell.rb +21 -7
  50. data/lib/chef/version.rb +1 -1
  51. data/lib/chef/win32/version.rb +2 -1
  52. metadata +50 -1123
  53. data/spec/data/apt/chef-integration-test-1.0/debian/changelog +0 -5
  54. data/spec/data/apt/chef-integration-test-1.0/debian/compat +0 -1
  55. data/spec/data/apt/chef-integration-test-1.0/debian/control +0 -13
  56. data/spec/data/apt/chef-integration-test-1.0/debian/copyright +0 -34
  57. data/spec/data/apt/chef-integration-test-1.0/debian/files +0 -1
  58. data/spec/data/apt/chef-integration-test-1.0/debian/rules +0 -13
  59. data/spec/data/apt/chef-integration-test-1.0/debian/source/format +0 -1
  60. data/spec/data/apt/chef-integration-test-1.1/debian/changelog +0 -11
  61. data/spec/data/apt/chef-integration-test-1.1/debian/compat +0 -1
  62. data/spec/data/apt/chef-integration-test-1.1/debian/control +0 -13
  63. data/spec/data/apt/chef-integration-test-1.1/debian/copyright +0 -34
  64. data/spec/data/apt/chef-integration-test-1.1/debian/files +0 -1
  65. data/spec/data/apt/chef-integration-test-1.1/debian/rules +0 -13
  66. data/spec/data/apt/chef-integration-test-1.1/debian/source/format +0 -1
  67. data/spec/data/apt/chef-integration-test2-1.0/debian/changelog +0 -5
  68. data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/conffiles +0 -1
  69. data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/control +0 -10
  70. data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/md5sums +0 -1
  71. data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.debhelper.log +0 -45
  72. data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.substvars +0 -1
  73. data/spec/data/apt/chef-integration-test2-1.0/debian/compat +0 -1
  74. data/spec/data/apt/chef-integration-test2-1.0/debian/conffiles +0 -1
  75. data/spec/data/apt/chef-integration-test2-1.0/debian/control +0 -13
  76. data/spec/data/apt/chef-integration-test2-1.0/debian/copyright +0 -34
  77. data/spec/data/apt/chef-integration-test2-1.0/debian/files +0 -1
  78. data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -13
  79. data/spec/data/apt/chef-integration-test2-1.0/debian/source/format +0 -1
  80. data/spec/data/apt/chef-integration-test2_1.0-1.debian.tar.gz +0 -0
  81. data/spec/data/apt/chef-integration-test2_1.0-1.dsc +0 -18
  82. data/spec/data/apt/chef-integration-test2_1.0-1_amd64.build +0 -91
  83. data/spec/data/apt/chef-integration-test2_1.0-1_amd64.changes +0 -31
  84. data/spec/data/apt/chef-integration-test2_1.0-1_amd64.deb +0 -0
  85. data/spec/data/apt/chef-integration-test2_1.0.orig.tar.gz +0 -0
  86. data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +0 -22
  87. data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
  88. data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
  89. data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +0 -22
  90. data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
  91. data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
  92. data/spec/data/apt/var/www/apt/conf/distributions +0 -7
  93. data/spec/data/apt/var/www/apt/conf/incoming +0 -4
  94. data/spec/data/apt/var/www/apt/conf/pulls +0 -3
  95. data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
  96. data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
  97. data/spec/data/apt/var/www/apt/db/packages.db +0 -0
  98. data/spec/data/apt/var/www/apt/db/references.db +0 -0
  99. data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
  100. data/spec/data/apt/var/www/apt/db/version +0 -4
  101. data/spec/data/apt/var/www/apt/dists/sid/Release +0 -19
  102. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +0 -16
  103. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
  104. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +0 -5
  105. data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
  106. data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
  107. data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
  108. data/spec/data/archive_file/test_archive.tar.gz +0 -0
  109. data/spec/data/bad-config.rb +0 -1
  110. data/spec/data/bootstrap/encrypted_data_bag_secret +0 -1
  111. data/spec/data/bootstrap/no_proxy.erb +0 -2
  112. data/spec/data/bootstrap/secret.erb +0 -9
  113. data/spec/data/bootstrap/test-hints.erb +0 -12
  114. data/spec/data/bootstrap/test.erb +0 -1
  115. data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
  116. data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
  117. data/spec/data/cb_version_cookbooks/tatft/README.rdoc +0 -3
  118. data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +0 -1
  119. data/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb +0 -1
  120. data/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz +0 -1
  121. data/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb +0 -1
  122. data/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb +0 -1
  123. data/spec/data/cb_version_cookbooks/tatft/recipes/default.rb +0 -1
  124. data/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb +0 -1
  125. data/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb +0 -0
  126. data/spec/data/checksum/random.txt +0 -1
  127. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +0 -1
  128. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0 +0 -0
  129. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +0 -1
  130. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +0 -1
  131. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +0 -1
  132. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +0 -1
  133. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +0 -1
  134. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +0 -1
  135. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +0 -1
  136. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +0 -1
  137. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +0 -1
  138. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +0 -1
  139. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +0 -1
  140. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +0 -1
  141. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +0 -1
  142. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +0 -1
  143. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +0 -1
  144. data/spec/data/client.d_00/00-foo.rb +0 -2
  145. data/spec/data/client.d_00/01-bar.rb +0 -1
  146. data/spec/data/client.d_00/02-strings.rb +0 -2
  147. data/spec/data/client.d_00/bar +0 -1
  148. data/spec/data/client.d_01/foo/bar.rb +0 -1
  149. data/spec/data/client.d_02/foo.rb/foo.txt +0 -1
  150. data/spec/data/config.rb +0 -6
  151. data/spec/data/cookbooks/angrybash/metadata.rb +0 -2
  152. data/spec/data/cookbooks/angrybash/recipes/default.rb +0 -8
  153. data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +0 -2
  154. data/spec/data/cookbooks/apache2/metadata.json +0 -33
  155. data/spec/data/cookbooks/apache2/metadata.rb +0 -2
  156. data/spec/data/cookbooks/apache2/recipes/default.rb +0 -3
  157. data/spec/data/cookbooks/borken/metadata.rb +0 -2
  158. data/spec/data/cookbooks/borken/recipes/default.rb +0 -2
  159. data/spec/data/cookbooks/borken/templates/default/borken.erb +0 -2
  160. data/spec/data/cookbooks/chefignore +0 -8
  161. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +0 -2
  162. data/spec/data/cookbooks/ignorken/metadata.rb +0 -2
  163. data/spec/data/cookbooks/ignorken/recipes/default.rb +0 -1
  164. data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +0 -2
  165. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +0 -2
  166. data/spec/data/cookbooks/irssi/files/default/irssi.response +0 -2
  167. data/spec/data/cookbooks/java/files/default/java.response +0 -2
  168. data/spec/data/cookbooks/java/metadata.json +0 -33
  169. data/spec/data/cookbooks/java/metadata.rb +0 -2
  170. data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +0 -4
  171. data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +0 -8
  172. data/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb +0 -8
  173. data/spec/data/cookbooks/openldap/.root_dotfile +0 -0
  174. data/spec/data/cookbooks/openldap/attributes/default.rb +0 -16
  175. data/spec/data/cookbooks/openldap/attributes/smokey.rb +0 -1
  176. data/spec/data/cookbooks/openldap/definitions/client.rb +0 -5
  177. data/spec/data/cookbooks/openldap/definitions/server.rb +0 -5
  178. data/spec/data/cookbooks/openldap/files/default/.dotfile +0 -1
  179. data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +0 -1
  180. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +0 -1
  181. data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +0 -2
  182. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +0 -3
  183. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +0 -3
  184. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +0 -1
  185. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +0 -3
  186. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +0 -3
  187. data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +0 -3
  188. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +0 -3
  189. data/spec/data/cookbooks/openldap/libraries/openldap.rb +0 -4
  190. data/spec/data/cookbooks/openldap/metadata.rb +0 -8
  191. data/spec/data/cookbooks/openldap/recipes/default.rb +0 -4
  192. data/spec/data/cookbooks/openldap/recipes/gigantor.rb +0 -3
  193. data/spec/data/cookbooks/openldap/recipes/one.rb +0 -15
  194. data/spec/data/cookbooks/openldap/recipes/return.rb +0 -2
  195. data/spec/data/cookbooks/openldap/spec/spec_helper.rb +0 -0
  196. data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +0 -4
  197. data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +0 -1
  198. data/spec/data/cookbooks/openldap/templates/default/helpers.erb +0 -14
  199. data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +0 -1
  200. data/spec/data/cookbooks/openldap/templates/default/nested_openldap_partials.erb +0 -1
  201. data/spec/data/cookbooks/openldap/templates/default/nested_partial.erb +0 -1
  202. data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +0 -4
  203. data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +0 -1
  204. data/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb +0 -1
  205. data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +0 -1
  206. data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +0 -4
  207. data/spec/data/cookbooks/openldap/templates/default/test.erb +0 -1
  208. data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +0 -1
  209. data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +0 -4
  210. data/spec/data/cookbooks/preseed/metadata.rb +0 -2
  211. data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +0 -1
  212. data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +0 -1
  213. data/spec/data/cookbooks/starter/chefignore +0 -8
  214. data/spec/data/cookbooks/starter/files/sample.txt +0 -1
  215. data/spec/data/cookbooks/starter/metadata.rb +0 -2
  216. data/spec/data/cookbooks/starter/recipes/default.rb +0 -4
  217. data/spec/data/cookbooks/supports-platform-constraints/metadata.rb +0 -5
  218. data/spec/data/cookbooks/wget/files/default/wget.response +0 -2
  219. data/spec/data/definitions/test.rb +0 -5
  220. data/spec/data/dsc_lcm.pfx +0 -0
  221. data/spec/data/environment-config.rb +0 -5
  222. data/spec/data/file-providers-method-snapshot-chef-11-4.json +0 -127
  223. data/spec/data/fileedit/blank +0 -0
  224. data/spec/data/fileedit/hosts +0 -4
  225. data/spec/data/gems/chef-integration-test-0.1.0.gem +0 -0
  226. data/spec/data/git_bundles/example-repo.gitbundle +0 -0
  227. data/spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle +0 -0
  228. data/spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle +0 -0
  229. data/spec/data/git_bundles/sinatra-test-app.gitbundle +0 -0
  230. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +0 -4
  231. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +0 -13
  232. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb +0 -8
  233. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +0 -4
  234. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb +0 -9
  235. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb +0 -8
  236. data/spec/data/kitchen/chefignore +0 -6
  237. data/spec/data/kitchen/openldap/attributes/default.rb +0 -3
  238. data/spec/data/kitchen/openldap/attributes/robinson.rb +0 -3
  239. data/spec/data/kitchen/openldap/definitions/client.rb +0 -3
  240. data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +0 -3
  241. data/spec/data/kitchen/openldap/recipes/gigantor.rb +0 -3
  242. data/spec/data/kitchen/openldap/recipes/ignoreme.rb +0 -3
  243. data/spec/data/kitchen/openldap/recipes/woot.rb +0 -3
  244. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  245. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  246. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  247. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  248. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  249. data/spec/data/lwrp/providers/buck_passer.rb +0 -28
  250. data/spec/data/lwrp/providers/buck_passer_2.rb +0 -26
  251. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +0 -28
  252. data/spec/data/lwrp/providers/inline_compiler.rb +0 -24
  253. data/spec/data/lwrp/providers/monkey_name_printer.rb +0 -5
  254. data/spec/data/lwrp/providers/paint_drying_watcher.rb +0 -7
  255. data/spec/data/lwrp/providers/thumb_twiddler.rb +0 -7
  256. data/spec/data/lwrp/resources/bar.rb +0 -4
  257. data/spec/data/lwrp/resources/buck_passer.rb +0 -6
  258. data/spec/data/lwrp/resources/buck_passer_2.rb +0 -4
  259. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +0 -4
  260. data/spec/data/lwrp/resources/foo.rb +0 -6
  261. data/spec/data/lwrp/resources/inline_compiler.rb +0 -4
  262. data/spec/data/lwrp/resources/monkey_name_printer.rb +0 -6
  263. data/spec/data/lwrp/resources/paint_drying_watcher.rb +0 -4
  264. data/spec/data/lwrp/resources/thumb_twiddler.rb +0 -4
  265. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +0 -3
  266. data/spec/data/lwrp_const_scoping/resources/conflict.rb +0 -1
  267. data/spec/data/lwrp_override/providers/buck_passer.rb +0 -5
  268. data/spec/data/lwrp_override/resources/foo.rb +0 -11
  269. data/spec/data/mac_users/10.9.plist.xml +0 -560
  270. data/spec/data/mac_users/10.9.shadow.xml +0 -21
  271. data/spec/data/metadata/quick_start/metadata.rb +0 -14
  272. data/spec/data/mixin/invalid_data.rb +0 -3
  273. data/spec/data/mixin/real_data.rb +0 -2
  274. data/spec/data/nested.json +0 -2
  275. data/spec/data/nodes/default.rb +0 -15
  276. data/spec/data/nodes/test.example.com.rb +0 -17
  277. data/spec/data/nodes/test.rb +0 -15
  278. data/spec/data/null_config.rb +0 -1
  279. data/spec/data/object_loader/environments/test.json +0 -7
  280. data/spec/data/object_loader/environments/test.rb +0 -2
  281. data/spec/data/object_loader/environments/test_json_class.json +0 -8
  282. data/spec/data/object_loader/nodes/test.json +0 -7
  283. data/spec/data/object_loader/nodes/test.rb +0 -2
  284. data/spec/data/object_loader/nodes/test_json_class.json +0 -8
  285. data/spec/data/object_loader/roles/test.json +0 -7
  286. data/spec/data/object_loader/roles/test.rb +0 -2
  287. data/spec/data/object_loader/roles/test_json_class.json +0 -8
  288. data/spec/data/old_home_dir/my-dot-emacs +0 -0
  289. data/spec/data/old_home_dir/my-dot-vim +0 -0
  290. data/spec/data/partial_one.erb +0 -1
  291. data/spec/data/prefer_metadata_json/metadata.json +0 -51
  292. data/spec/data/prefer_metadata_json/metadata.rb +0 -6
  293. data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
  294. data/spec/data/recipes/test.rb +0 -7
  295. data/spec/data/recipes.tgz +0 -0
  296. data/spec/data/remote_directory_data/remote_dir_file.txt +0 -1
  297. data/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt +0 -1
  298. data/spec/data/remote_file/nyan_cat.png +0 -0
  299. data/spec/data/remote_file/nyan_cat.png.gz +0 -0
  300. data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +0 -1
  301. data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +0 -1
  302. data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +0 -2
  303. data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +0 -3
  304. data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +0 -1
  305. data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +0 -2
  306. data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +0 -3
  307. data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +0 -3
  308. data/spec/data/root_alias_cookbooks/simple/attributes.rb +0 -1
  309. data/spec/data/root_alias_cookbooks/simple/metadata.rb +0 -2
  310. data/spec/data/root_alias_cookbooks/simple/recipe.rb +0 -3
  311. data/spec/data/rubygems.org/latest_specs.4.8.gz +0 -0
  312. data/spec/data/rubygems.org/nonexistent_gem +0 -0
  313. data/spec/data/rubygems.org/nonexistent_gem-info +0 -1
  314. data/spec/data/rubygems.org/sexp_processor +0 -0
  315. data/spec/data/rubygems.org/sexp_processor-4.15.1.gemspec.rz +0 -0
  316. data/spec/data/rubygems.org/sexp_processor-info +0 -50
  317. data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +0 -2
  318. data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +0 -1
  319. data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +0 -2
  320. data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +0 -2
  321. data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +0 -1
  322. data/spec/data/run_context/cookbooks/circular-dep1/recipes/default.rb +0 -0
  323. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +0 -2
  324. data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +0 -2
  325. data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +0 -1
  326. data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +0 -2
  327. data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +0 -2
  328. data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +0 -1
  329. data/spec/data/run_context/cookbooks/circular-dep2/recipes/default.rb +0 -0
  330. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +0 -2
  331. data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +0 -2
  332. data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +0 -2
  333. data/spec/data/run_context/cookbooks/dependency1/attributes/unparsed_file +0 -1
  334. data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +0 -2
  335. data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +0 -1
  336. data/spec/data/run_context/cookbooks/dependency1/definitions/unparsed_file +0 -1
  337. data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +0 -2
  338. data/spec/data/run_context/cookbooks/dependency1/libraries/unparsed_file +0 -1
  339. data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +0 -1
  340. data/spec/data/run_context/cookbooks/dependency1/providers/unparsed_file +0 -1
  341. data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
  342. data/spec/data/run_context/cookbooks/dependency1/recipes/unparsed_file +0 -1
  343. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +0 -2
  344. data/spec/data/run_context/cookbooks/dependency1/resources/unparsed_file +0 -1
  345. data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +0 -2
  346. data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +0 -1
  347. data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +0 -2
  348. data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +0 -1
  349. data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
  350. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +0 -2
  351. data/spec/data/run_context/cookbooks/include/recipes/default.rb +0 -24
  352. data/spec/data/run_context/cookbooks/include/recipes/includee.rb +0 -3
  353. data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +0 -2
  354. data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +0 -1
  355. data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +0 -1
  356. data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
  357. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +0 -2
  358. data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
  359. data/spec/data/run_context/cookbooks/test/attributes/george.rb +0 -1
  360. data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +0 -9
  361. data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +0 -5
  362. data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +0 -1
  363. data/spec/data/run_context/cookbooks/test/providers/provider.rb +0 -1
  364. data/spec/data/run_context/cookbooks/test/recipes/default.rb +0 -5
  365. data/spec/data/run_context/cookbooks/test/recipes/one.rb +0 -7
  366. data/spec/data/run_context/cookbooks/test/recipes/two.rb +0 -7
  367. data/spec/data/run_context/cookbooks/test/resources/resource.rb +0 -3
  368. data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +0 -2
  369. data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +0 -1
  370. data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +0 -2
  371. data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +0 -2
  372. data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +0 -1
  373. data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
  374. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +0 -3
  375. data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +0 -2
  376. data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +0 -1
  377. data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +0 -1
  378. data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +0 -3
  379. data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +0 -1
  380. data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
  381. data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
  382. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +0 -2
  383. data/spec/data/run_context/nodes/run_context.rb +0 -5
  384. data/spec/data/sample_msu1.xml +0 -10
  385. data/spec/data/sample_msu2.xml +0 -14
  386. data/spec/data/sample_msu3.xml +0 -16
  387. data/spec/data/search_queries_to_transform.txt +0 -98
  388. data/spec/data/shef-config.rb +0 -11
  389. data/spec/data/snap_package/async_result_success.json +0 -6
  390. data/spec/data/snap_package/change_id_result.json +0 -175
  391. data/spec/data/snap_package/find_result_failure.json +0 -10
  392. data/spec/data/snap_package/find_result_success.json +0 -70
  393. data/spec/data/snap_package/get_by_name_result_failure.json +0 -10
  394. data/spec/data/snap_package/get_by_name_result_success.json +0 -38
  395. data/spec/data/snap_package/get_conf_success.json +0 -10
  396. data/spec/data/snap_package/result_failure.json +0 -9
  397. data/spec/data/ssl/5e707473.0 +0 -18
  398. data/spec/data/ssl/binary/chef-rspec-der.cert +0 -0
  399. data/spec/data/ssl/binary/chef-rspec-der.key +0 -0
  400. data/spec/data/ssl/chef-rspec.cert +0 -27
  401. data/spec/data/ssl/chef-rspec.key +0 -27
  402. data/spec/data/ssl/key.pem +0 -15
  403. data/spec/data/ssl/private_key.pem +0 -27
  404. data/spec/data/ssl/private_key_with_whitespace.pem +0 -32
  405. data/spec/data/standalone_cookbook/Gemfile +0 -1
  406. data/spec/data/standalone_cookbook/chefignore +0 -9
  407. data/spec/data/standalone_cookbook/recipes/default.rb +0 -3
  408. data/spec/data/standalone_cookbook/vendor/bundle/ruby/2.0.0/gems/multi_json-1.9.0/lib/multi_json.rb +0 -1
  409. data/spec/data/templates/chef-seattle20160930-4388-1crv7ef.txt +0 -1
  410. data/spec/data/templates/chef-seattle20160930-4388-jjfoae.txt +0 -1
  411. data/spec/data/templates/chef-seattle20160930-4388-umeq2c.txt +0 -1
  412. data/spec/data/templates/failed.erb +0 -5
  413. data/spec/data/templates/seattle.txt +0 -1
  414. data/spec/data/trusted_certs/example.crt +0 -31
  415. data/spec/data/trusted_certs/example_no_cn.crt +0 -32
  416. data/spec/data/trusted_certs/intermediate.pem +0 -38
  417. data/spec/data/trusted_certs/opscode.pem +0 -36
  418. data/spec/data/trusted_certs/root.pem +0 -22
  419. data/spec/data/windows_certificates/base64_test.cer +0 -20
  420. data/spec/data/windows_certificates/othertest.cer +0 -20
  421. data/spec/data/windows_certificates/test.cer +0 -20
  422. data/spec/data/windows_certificates/test.p7b +0 -0
  423. data/spec/data/windows_certificates/test.pem +0 -20
  424. data/spec/data/windows_certificates/test.pfx +0 -0
  425. data/spec/functional/application_spec.rb +0 -58
  426. data/spec/functional/assets/PkgA.1.0.0.0.bff +0 -0
  427. data/spec/functional/assets/PkgA.2.0.0.0.bff +0 -0
  428. data/spec/functional/assets/chefinittest +0 -36
  429. data/spec/functional/assets/chocolatey_feed/test-A.1.0.0.nupkg +0 -0
  430. data/spec/functional/assets/chocolatey_feed/test-A.1.5.0.nupkg +0 -0
  431. data/spec/functional/assets/chocolatey_feed/test-A.2.0.0.nupkg +0 -0
  432. data/spec/functional/assets/chocolatey_feed/test-B.1.0.0.nupkg +0 -0
  433. data/spec/functional/assets/dummy-1-0.aix6.1.noarch.rpm +0 -0
  434. data/spec/functional/assets/dummy-2-0.aix6.1.noarch.rpm +0 -0
  435. data/spec/functional/assets/inittest +0 -37
  436. data/spec/functional/assets/mytest-1.0-1.noarch.rpm +0 -0
  437. data/spec/functional/assets/mytest-2.0-1.noarch.rpm +0 -0
  438. data/spec/functional/assets/testchefsubsys +0 -10
  439. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
  440. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.i686.rpm +0 -0
  441. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
  442. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
  443. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.s390x.rpm +0 -0
  444. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.src.rpm +0 -0
  445. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
  446. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
  447. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.i686.rpm +0 -0
  448. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
  449. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
  450. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.s390x.rpm +0 -0
  451. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.src.rpm +0 -0
  452. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
  453. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  454. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  455. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  456. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  457. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  458. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  459. data/spec/functional/assets/yumrepo/repodata/filelists.xml.gz +0 -0
  460. data/spec/functional/assets/yumrepo/repodata/other.xml.gz +0 -0
  461. data/spec/functional/assets/yumrepo/repodata/primary.xml.gz +0 -0
  462. data/spec/functional/assets/yumrepo/repodata/repomd.xml +0 -21
  463. data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  464. data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
  465. data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  466. data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
  467. data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
  468. data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
  469. data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +0 -55
  470. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
  471. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.i686.rpm +0 -0
  472. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
  473. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
  474. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.s390x.rpm +0 -0
  475. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.src.rpm +0 -0
  476. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
  477. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
  478. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.i686.rpm +0 -0
  479. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
  480. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
  481. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.s390x.rpm +0 -0
  482. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.src.rpm +0 -0
  483. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
  484. data/spec/functional/dsl/reboot_pending_spec.rb +0 -88
  485. data/spec/functional/dsl/registry_helper_spec.rb +0 -61
  486. data/spec/functional/event_loggers/windows_eventlog_spec.rb +0 -107
  487. data/spec/functional/file_content_management/deploy_strategies_spec.rb +0 -229
  488. data/spec/functional/http/simple_spec.rb +0 -146
  489. data/spec/functional/mixin/from_file_spec.rb +0 -93
  490. data/spec/functional/mixin/powershell_out_spec.rb +0 -51
  491. data/spec/functional/mixin/shell_out_spec.rb +0 -48
  492. data/spec/functional/mixin/user_context_spec.rb +0 -119
  493. data/spec/functional/notifications_spec.rb +0 -238
  494. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -100
  495. data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +0 -51
  496. data/spec/functional/rebooter_spec.rb +0 -117
  497. data/spec/functional/resource/aix_service_spec.rb +0 -145
  498. data/spec/functional/resource/aixinit_service_spec.rb +0 -210
  499. data/spec/functional/resource/apt_package_spec.rb +0 -383
  500. data/spec/functional/resource/archive_file_spec.rb +0 -88
  501. data/spec/functional/resource/bash_spec.rb +0 -55
  502. data/spec/functional/resource/batch_spec.rb +0 -34
  503. data/spec/functional/resource/bff_spec.rb +0 -120
  504. data/spec/functional/resource/chocolatey_package_spec.rb +0 -194
  505. data/spec/functional/resource/cookbook_file_spec.rb +0 -79
  506. data/spec/functional/resource/cron_spec.rb +0 -179
  507. data/spec/functional/resource/directory_spec.rb +0 -43
  508. data/spec/functional/resource/dnf_package_spec.rb +0 -1629
  509. data/spec/functional/resource/dpkg_package_spec.rb +0 -355
  510. data/spec/functional/resource/dsc_resource_spec.rb +0 -91
  511. data/spec/functional/resource/dsc_script_spec.rb +0 -476
  512. data/spec/functional/resource/execute_spec.rb +0 -171
  513. data/spec/functional/resource/file_spec.rb +0 -167
  514. data/spec/functional/resource/git_spec.rb +0 -329
  515. data/spec/functional/resource/group_spec.rb +0 -486
  516. data/spec/functional/resource/ifconfig_spec.rb +0 -178
  517. data/spec/functional/resource/insserv_spec.rb +0 -206
  518. data/spec/functional/resource/launchd_spec.rb +0 -232
  519. data/spec/functional/resource/link_spec.rb +0 -704
  520. data/spec/functional/resource/locale_spec.rb +0 -108
  521. data/spec/functional/resource/macos_userdefaults_spec.rb +0 -139
  522. data/spec/functional/resource/mount_spec.rb +0 -219
  523. data/spec/functional/resource/msu_package_spec.rb +0 -107
  524. data/spec/functional/resource/ohai_spec.rb +0 -54
  525. data/spec/functional/resource/plist_spec.rb +0 -25
  526. data/spec/functional/resource/powershell_package_source_spec.rb +0 -106
  527. data/spec/functional/resource/powershell_script_spec.rb +0 -588
  528. data/spec/functional/resource/reboot_spec.rb +0 -103
  529. data/spec/functional/resource/registry_spec.rb +0 -300
  530. data/spec/functional/resource/remote_directory_spec.rb +0 -220
  531. data/spec/functional/resource/remote_file_spec.rb +0 -418
  532. data/spec/functional/resource/rpm_spec.rb +0 -120
  533. data/spec/functional/resource/template_spec.rb +0 -245
  534. data/spec/functional/resource/timezone_spec.rb +0 -41
  535. data/spec/functional/resource/user/linux_user_spec.rb +0 -127
  536. data/spec/functional/resource/user/mac_user_spec.rb +0 -207
  537. data/spec/functional/resource/user/windows_spec.rb +0 -245
  538. data/spec/functional/resource/windows_certificate_spec.rb +0 -401
  539. data/spec/functional/resource/windows_env_spec.rb +0 -285
  540. data/spec/functional/resource/windows_firewall_rule_spec.rb +0 -93
  541. data/spec/functional/resource/windows_font_spec.rb +0 -52
  542. data/spec/functional/resource/windows_hostname_spec.rb +0 -91
  543. data/spec/functional/resource/windows_package_spec.rb +0 -193
  544. data/spec/functional/resource/windows_pagefile_spec.rb +0 -125
  545. data/spec/functional/resource/windows_path_spec.rb +0 -68
  546. data/spec/functional/resource/windows_security_policy_spec.rb +0 -86
  547. data/spec/functional/resource/windows_share_spec.rb +0 -103
  548. data/spec/functional/resource/windows_task_spec.rb +0 -1969
  549. data/spec/functional/resource/windows_user_privilege_spec.rb +0 -192
  550. data/spec/functional/resource/yum_package_spec.rb +0 -1739
  551. data/spec/functional/resource/zypper_package_spec.rb +0 -276
  552. data/spec/functional/root_alias_spec.rb +0 -78
  553. data/spec/functional/run_lock_spec.rb +0 -481
  554. data/spec/functional/shell_spec.rb +0 -149
  555. data/spec/functional/tiny_server_spec.rb +0 -79
  556. data/spec/functional/util/path_helper_spec.rb +0 -37
  557. data/spec/functional/version_spec.rb +0 -36
  558. data/spec/functional/win32/crypto_spec.rb +0 -54
  559. data/spec/functional/win32/registry_spec.rb +0 -618
  560. data/spec/functional/win32/security_spec.rb +0 -233
  561. data/spec/functional/win32/sid_spec.rb +0 -55
  562. data/spec/functional/win32/version_info_spec.rb +0 -50
  563. data/spec/functional/win32/versions_spec.rb +0 -115
  564. data/spec/integration/client/client_spec.rb +0 -963
  565. data/spec/integration/client/exit_code_spec.rb +0 -116
  566. data/spec/integration/client/fips_spec.rb +0 -29
  567. data/spec/integration/client/ipv6_spec.rb +0 -135
  568. data/spec/integration/client/open_ssl_spec.rb +0 -20
  569. data/spec/integration/compliance/compliance_spec.rb +0 -143
  570. data/spec/integration/ohai/ohai_spec.rb +0 -62
  571. data/spec/integration/recipes/accumulator_spec.rb +0 -245
  572. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +0 -176
  573. data/spec/integration/recipes/lwrp_spec.rb +0 -56
  574. data/spec/integration/recipes/noop_resource_spec.rb +0 -24
  575. data/spec/integration/recipes/notifies_spec.rb +0 -438
  576. data/spec/integration/recipes/notifying_block_spec.rb +0 -116
  577. data/spec/integration/recipes/provider_choice.rb +0 -38
  578. data/spec/integration/recipes/recipe_dsl_spec.rb +0 -1281
  579. data/spec/integration/recipes/remote_directory.rb +0 -74
  580. data/spec/integration/recipes/resource_action_spec.rb +0 -524
  581. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +0 -554
  582. data/spec/integration/recipes/resource_load_spec.rb +0 -315
  583. data/spec/integration/recipes/unified_mode_spec.rb +0 -947
  584. data/spec/integration/recipes/use_partial_spec.rb +0 -116
  585. data/spec/integration/solo/solo_spec.rb +0 -219
  586. data/spec/rcov.opts +0 -2
  587. data/spec/spec_helper.rb +0 -349
  588. data/spec/stress/win32/file_spec.rb +0 -37
  589. data/spec/stress/win32/memory_spec.rb +0 -22
  590. data/spec/stress/win32/security_spec.rb +0 -69
  591. data/spec/support/chef_helpers.rb +0 -79
  592. data/spec/support/key_helpers.rb +0 -102
  593. data/spec/support/lib/chef/provider/easy.rb +0 -35
  594. data/spec/support/lib/chef/provider/openldap_includer.rb +0 -29
  595. data/spec/support/lib/chef/provider/snakeoil.rb +0 -42
  596. data/spec/support/lib/chef/resource/cat.rb +0 -39
  597. data/spec/support/lib/chef/resource/one_two_three_four.rb +0 -36
  598. data/spec/support/lib/chef/resource/openldap_includer.rb +0 -28
  599. data/spec/support/lib/chef/resource/with_state.rb +0 -29
  600. data/spec/support/lib/chef/resource/zen_follower.rb +0 -36
  601. data/spec/support/lib/chef/resource/zen_master.rb +0 -39
  602. data/spec/support/lib/library_load_order.rb +0 -20
  603. data/spec/support/matchers/leak.rb +0 -96
  604. data/spec/support/mock/platform.rb +0 -33
  605. data/spec/support/platform_helpers.rb +0 -284
  606. data/spec/support/platforms/prof/gc.rb +0 -51
  607. data/spec/support/platforms/prof/win32.rb +0 -45
  608. data/spec/support/platforms/win32/spec_service.rb +0 -57
  609. data/spec/support/recipe_dsl_helper.rb +0 -83
  610. data/spec/support/ruby_installer.rb +0 -51
  611. data/spec/support/shared/context/config.rb +0 -18
  612. data/spec/support/shared/context/win32.rb +0 -34
  613. data/spec/support/shared/functional/diff_disabled.rb +0 -10
  614. data/spec/support/shared/functional/directory_resource.rb +0 -178
  615. data/spec/support/shared/functional/execute_resource.rb +0 -150
  616. data/spec/support/shared/functional/file_resource.rb +0 -1047
  617. data/spec/support/shared/functional/http.rb +0 -224
  618. data/spec/support/shared/functional/knife.rb +0 -37
  619. data/spec/support/shared/functional/securable_resource.rb +0 -654
  620. data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -393
  621. data/spec/support/shared/functional/windows_script.rb +0 -260
  622. data/spec/support/shared/integration/integration_helper.rb +0 -122
  623. data/spec/support/shared/integration/knife_support.rb +0 -192
  624. data/spec/support/shared/matchers/exit_with_code.rb +0 -32
  625. data/spec/support/shared/matchers/match_environment_variable.rb +0 -17
  626. data/spec/support/shared/shared_examples.rb +0 -14
  627. data/spec/support/shared/unit/api_error_inspector.rb +0 -190
  628. data/spec/support/shared/unit/api_versioning.rb +0 -77
  629. data/spec/support/shared/unit/application_dot_d.rb +0 -82
  630. data/spec/support/shared/unit/execute_resource.rb +0 -166
  631. data/spec/support/shared/unit/file_system_support.rb +0 -70
  632. data/spec/support/shared/unit/knife_shared.rb +0 -39
  633. data/spec/support/shared/unit/mock_shellout.rb +0 -49
  634. data/spec/support/shared/unit/platform_introspector.rb +0 -189
  635. data/spec/support/shared/unit/provider/file.rb +0 -877
  636. data/spec/support/shared/unit/provider/package/package_shared.rb +0 -95
  637. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +0 -410
  638. data/spec/support/shared/unit/resource/static_provider_resolution.rb +0 -63
  639. data/spec/support/shared/unit/script_resource.rb +0 -74
  640. data/spec/support/shared/unit/user_and_client_shared.rb +0 -114
  641. data/spec/support/shared/unit/windows_script_resource.rb +0 -65
  642. data/spec/tiny_server.rb +0 -193
  643. data/spec/unit/action_collection_spec.rb +0 -19
  644. data/spec/unit/api_client/registration_spec.rb +0 -278
  645. data/spec/unit/api_client_spec.rb +0 -341
  646. data/spec/unit/api_client_v1_spec.rb +0 -455
  647. data/spec/unit/application/agent_spec.rb +0 -0
  648. data/spec/unit/application/apply_spec.rb +0 -116
  649. data/spec/unit/application/base_spec.rb +0 -40
  650. data/spec/unit/application/client_spec.rb +0 -588
  651. data/spec/unit/application/exit_code_spec.rb +0 -145
  652. data/spec/unit/application/server_spec.rb +0 -0
  653. data/spec/unit/application/solo_spec.rb +0 -218
  654. data/spec/unit/application_spec.rb +0 -587
  655. data/spec/unit/chef_class_spec.rb +0 -240
  656. data/spec/unit/chef_fs/config_spec.rb +0 -235
  657. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +0 -82
  658. data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +0 -65
  659. data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +0 -63
  660. data/spec/unit/chef_fs/diff_spec.rb +0 -328
  661. data/spec/unit/chef_fs/file_pattern_spec.rb +0 -512
  662. data/spec/unit/chef_fs/file_system/cookbook_subdir_spec.rb +0 -34
  663. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +0 -45
  664. data/spec/unit/chef_fs/file_system/repository/base_file_spec.rb +0 -126
  665. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +0 -175
  666. data/spec/unit/chef_fs/file_system_spec.rb +0 -150
  667. data/spec/unit/chef_fs/path_util_spec.rb +0 -108
  668. data/spec/unit/chef_spec.rb +0 -25
  669. data/spec/unit/client_spec.rb +0 -881
  670. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -126
  671. data/spec/unit/compliance/fetcher/chef_server_spec.rb +0 -93
  672. data/spec/unit/compliance/input_spec.rb +0 -104
  673. data/spec/unit/compliance/profile_spec.rb +0 -120
  674. data/spec/unit/compliance/reporter/automate_spec.rb +0 -451
  675. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +0 -197
  676. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +0 -49
  677. data/spec/unit/compliance/runner_spec.rb +0 -354
  678. data/spec/unit/compliance/waiver_spec.rb +0 -104
  679. data/spec/unit/config_fetcher_spec.rb +0 -125
  680. data/spec/unit/config_spec.rb +0 -31
  681. data/spec/unit/cookbook/chefignore_spec.rb +0 -69
  682. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +0 -213
  683. data/spec/unit/cookbook/file_vendor_spec.rb +0 -123
  684. data/spec/unit/cookbook/gem_installer_spec.rb +0 -114
  685. data/spec/unit/cookbook/manifest_v0_spec.rb +0 -133
  686. data/spec/unit/cookbook/manifest_v2_spec.rb +0 -70
  687. data/spec/unit/cookbook/metadata_spec.rb +0 -610
  688. data/spec/unit/cookbook/synchronizer_spec.rb +0 -560
  689. data/spec/unit/cookbook/syntax_check_spec.rb +0 -229
  690. data/spec/unit/cookbook_loader_spec.rb +0 -265
  691. data/spec/unit/cookbook_manifest_spec.rb +0 -228
  692. data/spec/unit/cookbook_spec.rb +0 -62
  693. data/spec/unit/cookbook_uploader_spec.rb +0 -205
  694. data/spec/unit/cookbook_version_file_specificity_spec.rb +0 -623
  695. data/spec/unit/cookbook_version_spec.rb +0 -302
  696. data/spec/unit/daemon_spec.rb +0 -179
  697. data/spec/unit/data_bag_item_spec.rb +0 -387
  698. data/spec/unit/data_bag_spec.rb +0 -263
  699. data/spec/unit/data_collector/config_validation_spec.rb +0 -208
  700. data/spec/unit/data_collector_spec.rb +0 -1076
  701. data/spec/unit/decorator/lazy_array_spec.rb +0 -58
  702. data/spec/unit/decorator/lazy_spec.rb +0 -39
  703. data/spec/unit/decorator_spec.rb +0 -142
  704. data/spec/unit/delayed_evaluator_spec.rb +0 -35
  705. data/spec/unit/deprecated_spec.rb +0 -65
  706. data/spec/unit/deprecation_spec.rb +0 -129
  707. data/spec/unit/digester_spec.rb +0 -49
  708. data/spec/unit/dsl/data_query_spec.rb +0 -108
  709. data/spec/unit/dsl/declare_resource_spec.rb +0 -374
  710. data/spec/unit/dsl/platform_introspection_spec.rb +0 -160
  711. data/spec/unit/dsl/reboot_pending_spec.rb +0 -87
  712. data/spec/unit/dsl/recipe_spec.rb +0 -76
  713. data/spec/unit/dsl/registry_helper_spec.rb +0 -52
  714. data/spec/unit/dsl/render_helpers_spec.rb +0 -102
  715. data/spec/unit/dsl/resources_spec.rb +0 -85
  716. data/spec/unit/dsl/secret_spec.rb +0 -175
  717. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +0 -97
  718. data/spec/unit/encrypted_data_bag_item_spec.rb +0 -439
  719. data/spec/unit/environment_spec.rb +0 -476
  720. data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -172
  721. data/spec/unit/event_dispatch/dsl_spec.rb +0 -83
  722. data/spec/unit/exceptions_spec.rb +0 -132
  723. data/spec/unit/file_access_control_spec.rb +0 -308
  724. data/spec/unit/file_cache_spec.rb +0 -178
  725. data/spec/unit/file_content_management/deploy/cp_spec.rb +0 -44
  726. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +0 -113
  727. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +0 -232
  728. data/spec/unit/file_content_management/tempfile_spec.rb +0 -115
  729. data/spec/unit/formatters/base_spec.rb +0 -100
  730. data/spec/unit/formatters/doc_spec.rb +0 -110
  731. data/spec/unit/formatters/error_description_spec.rb +0 -141
  732. data/spec/unit/formatters/error_inspectors/api_error_formatting_spec.rb +0 -76
  733. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +0 -265
  734. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +0 -126
  735. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +0 -43
  736. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +0 -26
  737. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +0 -26
  738. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +0 -191
  739. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +0 -91
  740. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +0 -155
  741. data/spec/unit/guard_interpreter_spec.rb +0 -41
  742. data/spec/unit/handler/json_file_spec.rb +0 -63
  743. data/spec/unit/handler_spec.rb +0 -308
  744. data/spec/unit/http/api_versions_spec.rb +0 -100
  745. data/spec/unit/http/authenticator_spec.rb +0 -247
  746. data/spec/unit/http/basic_client_spec.rb +0 -102
  747. data/spec/unit/http/http_request_spec.rb +0 -97
  748. data/spec/unit/http/json_input_spec.rb +0 -128
  749. data/spec/unit/http/simple_spec.rb +0 -32
  750. data/spec/unit/http/socketless_chef_zero_client_spec.rb +0 -174
  751. data/spec/unit/http/ssl_policies_spec.rb +0 -228
  752. data/spec/unit/http/validate_content_length_spec.rb +0 -207
  753. data/spec/unit/http_spec.rb +0 -235
  754. data/spec/unit/json_compat_spec.rb +0 -73
  755. data/spec/unit/key_spec.rb +0 -631
  756. data/spec/unit/log/syslog_spec.rb +0 -47
  757. data/spec/unit/log/winevt_spec.rb +0 -62
  758. data/spec/unit/lwrp_spec.rb +0 -693
  759. data/spec/unit/mixin/api_version_request_handling_spec.rb +0 -126
  760. data/spec/unit/mixin/checksum_spec.rb +0 -82
  761. data/spec/unit/mixin/convert_to_class_name_spec.rb +0 -54
  762. data/spec/unit/mixin/deep_merge_spec.rb +0 -357
  763. data/spec/unit/mixin/default_paths_spec.rb +0 -92
  764. data/spec/unit/mixin/deprecation_spec.rb +0 -57
  765. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +0 -96
  766. data/spec/unit/mixin/homebrew_spec.rb +0 -118
  767. data/spec/unit/mixin/lazy_module_include.rb +0 -71
  768. data/spec/unit/mixin/openssl_helper_spec.rb +0 -897
  769. data/spec/unit/mixin/params_validate_spec.rb +0 -422
  770. data/spec/unit/mixin/powershell_exec_spec.rb +0 -90
  771. data/spec/unit/mixin/powershell_out_spec.rb +0 -106
  772. data/spec/unit/mixin/powershell_type_coercions_spec.rb +0 -84
  773. data/spec/unit/mixin/properties_spec.rb +0 -107
  774. data/spec/unit/mixin/proxified_socket_spec.rb +0 -97
  775. data/spec/unit/mixin/securable_spec.rb +0 -313
  776. data/spec/unit/mixin/shell_out_spec.rb +0 -308
  777. data/spec/unit/mixin/subclass_directive_spec.rb +0 -45
  778. data/spec/unit/mixin/template_spec.rb +0 -317
  779. data/spec/unit/mixin/unformatter_spec.rb +0 -60
  780. data/spec/unit/mixin/uris_spec.rb +0 -57
  781. data/spec/unit/mixin/user_context_spec.rb +0 -99
  782. data/spec/unit/mixin/versioned_api_spec.rb +0 -128
  783. data/spec/unit/mixin/which.rb +0 -170
  784. data/spec/unit/mixin/why_run_spec.rb +0 -53
  785. data/spec/unit/mixin/windows_architecture_helper_spec.rb +0 -85
  786. data/spec/unit/mixin/xml_escape_spec.rb +0 -54
  787. data/spec/unit/monologger_spec.rb +0 -45
  788. data/spec/unit/node/attribute_spec.rb +0 -1322
  789. data/spec/unit/node/immutable_collections_spec.rb +0 -258
  790. data/spec/unit/node/vivid_mash_spec.rb +0 -500
  791. data/spec/unit/node_map_spec.rb +0 -276
  792. data/spec/unit/node_spec.rb +0 -2038
  793. data/spec/unit/org_group_spec.rb +0 -45
  794. data/spec/unit/org_spec.rb +0 -196
  795. data/spec/unit/platform/query_helpers_spec.rb +0 -48
  796. data/spec/unit/policy_builder/dynamic_spec.rb +0 -256
  797. data/spec/unit/policy_builder/expand_node_object_spec.rb +0 -311
  798. data/spec/unit/policy_builder/policyfile_spec.rb +0 -960
  799. data/spec/unit/policy_builder_spec.rb +0 -26
  800. data/spec/unit/property/state_spec.rb +0 -514
  801. data/spec/unit/property/validation_spec.rb +0 -813
  802. data/spec/unit/property_spec.rb +0 -1329
  803. data/spec/unit/provider/apt_preference_spec.rb +0 -91
  804. data/spec/unit/provider/apt_repository_spec.rb +0 -293
  805. data/spec/unit/provider/apt_update_spec.rb +0 -119
  806. data/spec/unit/provider/batch_spec.rb +0 -130
  807. data/spec/unit/provider/cookbook_file/content_spec.rb +0 -39
  808. data/spec/unit/provider/cookbook_file_spec.rb +0 -59
  809. data/spec/unit/provider/cron/unix_spec.rb +0 -144
  810. data/spec/unit/provider/cron_spec.rb +0 -1252
  811. data/spec/unit/provider/directory_spec.rb +0 -289
  812. data/spec/unit/provider/dsc_resource_spec.rb +0 -313
  813. data/spec/unit/provider/dsc_script_spec.rb +0 -173
  814. data/spec/unit/provider/execute_spec.rb +0 -244
  815. data/spec/unit/provider/file/content_spec.rb +0 -114
  816. data/spec/unit/provider/file_spec.rb +0 -58
  817. data/spec/unit/provider/git_spec.rb +0 -822
  818. data/spec/unit/provider/group/dscl_spec.rb +0 -339
  819. data/spec/unit/provider/group/gpasswd_spec.rb +0 -119
  820. data/spec/unit/provider/group/groupadd_spec.rb +0 -195
  821. data/spec/unit/provider/group/groupmod_spec.rb +0 -136
  822. data/spec/unit/provider/group/pw_spec.rb +0 -141
  823. data/spec/unit/provider/group/solaris_spec.rb +0 -106
  824. data/spec/unit/provider/group/usermod_spec.rb +0 -112
  825. data/spec/unit/provider/group/windows_spec.rb +0 -130
  826. data/spec/unit/provider/group_spec.rb +0 -285
  827. data/spec/unit/provider/http_request_spec.rb +0 -147
  828. data/spec/unit/provider/ifconfig/aix_spec.rb +0 -180
  829. data/spec/unit/provider/ifconfig/debian_spec.rb +0 -332
  830. data/spec/unit/provider/ifconfig/redhat_spec.rb +0 -83
  831. data/spec/unit/provider/ifconfig_spec.rb +0 -247
  832. data/spec/unit/provider/launchd_spec.rb +0 -234
  833. data/spec/unit/provider/link_spec.rb +0 -425
  834. data/spec/unit/provider/log_spec.rb +0 -94
  835. data/spec/unit/provider/mdadm_spec.rb +0 -138
  836. data/spec/unit/provider/mount/aix_spec.rb +0 -277
  837. data/spec/unit/provider/mount/linux_spec.rb +0 -131
  838. data/spec/unit/provider/mount/mount_spec.rb +0 -590
  839. data/spec/unit/provider/mount/solaris_spec.rb +0 -822
  840. data/spec/unit/provider/mount/windows_spec.rb +0 -150
  841. data/spec/unit/provider/mount_spec.rb +0 -222
  842. data/spec/unit/provider/package/apt_spec.rb +0 -703
  843. data/spec/unit/provider/package/bff_spec.rb +0 -188
  844. data/spec/unit/provider/package/cab_spec.rb +0 -272
  845. data/spec/unit/provider/package/chocolatey_spec.rb +0 -574
  846. data/spec/unit/provider/package/deb_spec.rb +0 -135
  847. data/spec/unit/provider/package/dnf/python_helper_spec.rb +0 -36
  848. data/spec/unit/provider/package/dpkg_spec.rb +0 -314
  849. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +0 -147
  850. data/spec/unit/provider/package/freebsd/port_spec.rb +0 -151
  851. data/spec/unit/provider/package/homebrew_spec.rb +0 -402
  852. data/spec/unit/provider/package/ips_spec.rb +0 -233
  853. data/spec/unit/provider/package/macports_spec.rb +0 -203
  854. data/spec/unit/provider/package/msu_spec.rb +0 -283
  855. data/spec/unit/provider/package/openbsd_spec.rb +0 -136
  856. data/spec/unit/provider/package/pacman_spec.rb +0 -109
  857. data/spec/unit/provider/package/paludis_spec.rb +0 -134
  858. data/spec/unit/provider/package/portage_spec.rb +0 -179
  859. data/spec/unit/provider/package/powershell_spec.rb +0 -565
  860. data/spec/unit/provider/package/rpm_spec.rb +0 -440
  861. data/spec/unit/provider/package/rubygems_spec.rb +0 -1187
  862. data/spec/unit/provider/package/smartos_spec.rb +0 -110
  863. data/spec/unit/provider/package/snap_spec.rb +0 -208
  864. data/spec/unit/provider/package/solaris_spec.rb +0 -168
  865. data/spec/unit/provider/package/windows/exe_spec.rb +0 -201
  866. data/spec/unit/provider/package/windows/msi_spec.rb +0 -168
  867. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +0 -78
  868. data/spec/unit/provider/package/windows_spec.rb +0 -441
  869. data/spec/unit/provider/package/yum/python_helper_spec.rb +0 -30
  870. data/spec/unit/provider/package/yum/yum_cache_spec.rb +0 -109
  871. data/spec/unit/provider/package/zypper_spec.rb +0 -494
  872. data/spec/unit/provider/package_spec.rb +0 -791
  873. data/spec/unit/provider/powershell_script_spec.rb +0 -157
  874. data/spec/unit/provider/registry_key_spec.rb +0 -487
  875. data/spec/unit/provider/remote_directory_spec.rb +0 -236
  876. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +0 -245
  877. data/spec/unit/provider/remote_file/content_spec.rb +0 -253
  878. data/spec/unit/provider/remote_file/fetcher_spec.rb +0 -95
  879. data/spec/unit/provider/remote_file/ftp_spec.rb +0 -217
  880. data/spec/unit/provider/remote_file/http_spec.rb +0 -334
  881. data/spec/unit/provider/remote_file/local_file_spec.rb +0 -105
  882. data/spec/unit/provider/remote_file/network_file_spec.rb +0 -50
  883. data/spec/unit/provider/remote_file/sftp_spec.rb +0 -150
  884. data/spec/unit/provider/remote_file_spec.rb +0 -61
  885. data/spec/unit/provider/route_spec.rb +0 -268
  886. data/spec/unit/provider/ruby_block_spec.rb +0 -45
  887. data/spec/unit/provider/script_spec.rb +0 -67
  888. data/spec/unit/provider/service/aix_service_spec.rb +0 -195
  889. data/spec/unit/provider/service/aixinit_service_spec.rb +0 -272
  890. data/spec/unit/provider/service/arch_service_spec.rb +0 -326
  891. data/spec/unit/provider/service/debian_service_spec.rb +0 -273
  892. data/spec/unit/provider/service/freebsd_service_spec.rb +0 -621
  893. data/spec/unit/provider/service/gentoo_service_spec.rb +0 -145
  894. data/spec/unit/provider/service/init_service_spec.rb +0 -235
  895. data/spec/unit/provider/service/insserv_service_spec.rb +0 -75
  896. data/spec/unit/provider/service/invokercd_service_spec.rb +0 -211
  897. data/spec/unit/provider/service/macosx_spec.rb +0 -337
  898. data/spec/unit/provider/service/openbsd_service_spec.rb +0 -553
  899. data/spec/unit/provider/service/redhat_spec.rb +0 -253
  900. data/spec/unit/provider/service/simple_service_spec.rb +0 -171
  901. data/spec/unit/provider/service/solaris_smf_service_spec.rb +0 -292
  902. data/spec/unit/provider/service/systemd_service_spec.rb +0 -504
  903. data/spec/unit/provider/service/upstart_service_spec.rb +0 -322
  904. data/spec/unit/provider/service/windows_spec.rb +0 -986
  905. data/spec/unit/provider/service_spec.rb +0 -168
  906. data/spec/unit/provider/subversion_spec.rb +0 -364
  907. data/spec/unit/provider/systemd_unit_spec.rb +0 -1039
  908. data/spec/unit/provider/template/content_spec.rb +0 -169
  909. data/spec/unit/provider/template_spec.rb +0 -86
  910. data/spec/unit/provider/user/aix_spec.rb +0 -96
  911. data/spec/unit/provider/user/linux_spec.rb +0 -178
  912. data/spec/unit/provider/user/mac_spec.rb +0 -38
  913. data/spec/unit/provider/user/pw_spec.rb +0 -235
  914. data/spec/unit/provider/user/solaris_spec.rb +0 -177
  915. data/spec/unit/provider/user/windows_spec.rb +0 -198
  916. data/spec/unit/provider/user_spec.rb +0 -520
  917. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -46
  918. data/spec/unit/provider/windows_env_spec.rb +0 -385
  919. data/spec/unit/provider/windows_path_spec.rb +0 -60
  920. data/spec/unit/provider/windows_task_spec.rb +0 -436
  921. data/spec/unit/provider/yum_repository_spec.rb +0 -35
  922. data/spec/unit/provider/zypper_repository_spec.rb +0 -169
  923. data/spec/unit/provider_spec.rb +0 -215
  924. data/spec/unit/pure_application_spec.rb +0 -32
  925. data/spec/unit/recipe_spec.rb +0 -652
  926. data/spec/unit/resource/alternatives_spec.rb +0 -120
  927. data/spec/unit/resource/apt_package_spec.rb +0 -66
  928. data/spec/unit/resource/apt_preference_spec.rb +0 -39
  929. data/spec/unit/resource/apt_repository_spec.rb +0 -79
  930. data/spec/unit/resource/apt_update_spec.rb +0 -44
  931. data/spec/unit/resource/archive_file_spec.rb +0 -466
  932. data/spec/unit/resource/bash_spec.rb +0 -45
  933. data/spec/unit/resource/batch_spec.rb +0 -46
  934. data/spec/unit/resource/bff_package_spec.rb +0 -51
  935. data/spec/unit/resource/breakpoint_spec.rb +0 -64
  936. data/spec/unit/resource/build_essential_spec.rb +0 -77
  937. data/spec/unit/resource/cab_package_spec.rb +0 -64
  938. data/spec/unit/resource/chef_client_config_spec.rb +0 -145
  939. data/spec/unit/resource/chef_client_cron_spec.rb +0 -161
  940. data/spec/unit/resource/chef_client_launchd_spec.rb +0 -132
  941. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +0 -186
  942. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +0 -108
  943. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -68
  944. data/spec/unit/resource/chef_gem_spec.rb +0 -122
  945. data/spec/unit/resource/chef_handler_spec.rb +0 -40
  946. data/spec/unit/resource/chef_sleep_spec.rb +0 -30
  947. data/spec/unit/resource/chef_vault_secret_spec.rb +0 -40
  948. data/spec/unit/resource/chocolatey_config_spec.rb +0 -93
  949. data/spec/unit/resource/chocolatey_feature_spec.rb +0 -89
  950. data/spec/unit/resource/chocolatey_installer_spec.rb +0 -151
  951. data/spec/unit/resource/chocolatey_package_spec.rb +0 -106
  952. data/spec/unit/resource/chocolatey_source_spec.rb +0 -151
  953. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +0 -45
  954. data/spec/unit/resource/conditional_spec.rb +0 -254
  955. data/spec/unit/resource/cookbook_file_spec.rb +0 -93
  956. data/spec/unit/resource/cron_access_spec.rb +0 -36
  957. data/spec/unit/resource/cron_d_spec.rb +0 -84
  958. data/spec/unit/resource/cron_spec.rb +0 -167
  959. data/spec/unit/resource/csh_spec.rb +0 -45
  960. data/spec/unit/resource/directory_spec.rb +0 -69
  961. data/spec/unit/resource/dmg_package_spec.rb +0 -39
  962. data/spec/unit/resource/dnf_package_spec.rb +0 -108
  963. data/spec/unit/resource/dpkg_package_spec.rb +0 -72
  964. data/spec/unit/resource/dsc_resource_spec.rb +0 -102
  965. data/spec/unit/resource/dsc_script_spec.rb +0 -134
  966. data/spec/unit/resource/execute_spec.rb +0 -282
  967. data/spec/unit/resource/file/verification/json_spec.rb +0 -72
  968. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +0 -103
  969. data/spec/unit/resource/file/verification/yaml_spec.rb +0 -67
  970. data/spec/unit/resource/file/verification_spec.rb +0 -147
  971. data/spec/unit/resource/file_spec.rb +0 -127
  972. data/spec/unit/resource/freebsd_package_spec.rb +0 -77
  973. data/spec/unit/resource/gem_package_spec.rb +0 -67
  974. data/spec/unit/resource/group_spec.rb +0 -165
  975. data/spec/unit/resource/helpers/cron_validations_spec.rb +0 -81
  976. data/spec/unit/resource/homebrew_cask_spec.rb +0 -58
  977. data/spec/unit/resource/homebrew_package_spec.rb +0 -68
  978. data/spec/unit/resource/homebrew_tap_spec.rb +0 -44
  979. data/spec/unit/resource/homebrew_update_spec.rb +0 -30
  980. data/spec/unit/resource/hostname_spec.rb +0 -47
  981. data/spec/unit/resource/http_request_spec.rb +0 -65
  982. data/spec/unit/resource/ifconfig_spec.rb +0 -101
  983. data/spec/unit/resource/inspec_input_spec.rb +0 -300
  984. data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +0 -80
  985. data/spec/unit/resource/inspec_waiver_spec.rb +0 -312
  986. data/spec/unit/resource/ips_package_spec.rb +0 -54
  987. data/spec/unit/resource/kernel_module_spec.rb +0 -45
  988. data/spec/unit/resource/ksh_spec.rb +0 -45
  989. data/spec/unit/resource/launchd_spec.rb +0 -48
  990. data/spec/unit/resource/link_spec.rb +0 -120
  991. data/spec/unit/resource/locale_spec.rb +0 -189
  992. data/spec/unit/resource/log_spec.rb +0 -64
  993. data/spec/unit/resource/macos_pkg_spec.rb +0 -38
  994. data/spec/unit/resource/macos_user_defaults_spec.rb +0 -76
  995. data/spec/unit/resource/macosx_service.rb +0 -37
  996. data/spec/unit/resource/macports_package_spec.rb +0 -51
  997. data/spec/unit/resource/mdadm_spec.rb +0 -104
  998. data/spec/unit/resource/mount_spec.rb +0 -201
  999. data/spec/unit/resource/msu_package_spec.rb +0 -67
  1000. data/spec/unit/resource/notify_group_spec.rb +0 -34
  1001. data/spec/unit/resource/ohai_hint_spec.rb +0 -44
  1002. data/spec/unit/resource/ohai_spec.rb +0 -112
  1003. data/spec/unit/resource/openbsd_package_spec.rb +0 -58
  1004. data/spec/unit/resource/openssl_dhparam_spec.rb +0 -61
  1005. data/spec/unit/resource/openssl_ec_private_key_spec.rb +0 -64
  1006. data/spec/unit/resource/openssl_ec_public_key_spec.rb +0 -43
  1007. data/spec/unit/resource/openssl_rsa_private_key_spec.rb +0 -64
  1008. data/spec/unit/resource/openssl_rsa_public_key_spec.rb +0 -43
  1009. data/spec/unit/resource/openssl_x509_certificate_spec.rb +0 -72
  1010. data/spec/unit/resource/openssl_x509_crl_spec.rb +0 -61
  1011. data/spec/unit/resource/openssl_x509_request.rb +0 -68
  1012. data/spec/unit/resource/osx_profile_spec.rb +0 -360
  1013. data/spec/unit/resource/package_spec.rb +0 -98
  1014. data/spec/unit/resource/pacman_package_spec.rb +0 -46
  1015. data/spec/unit/resource/paludis_package_spec.rb +0 -36
  1016. data/spec/unit/resource/perl_spec.rb +0 -44
  1017. data/spec/unit/resource/plist_spec.rb +0 -130
  1018. data/spec/unit/resource/portage_package_spec.rb +0 -46
  1019. data/spec/unit/resource/powershell_package_source_spec.rb +0 -220
  1020. data/spec/unit/resource/powershell_package_spec.rb +0 -98
  1021. data/spec/unit/resource/powershell_script_spec.rb +0 -65
  1022. data/spec/unit/resource/python_spec.rb +0 -40
  1023. data/spec/unit/resource/reboot_spec.rb +0 -47
  1024. data/spec/unit/resource/registry_key_spec.rb +0 -215
  1025. data/spec/unit/resource/remote_directory_spec.rb +0 -118
  1026. data/spec/unit/resource/remote_file_spec.rb +0 -220
  1027. data/spec/unit/resource/resource_notification_spec.rb +0 -169
  1028. data/spec/unit/resource/rest_resource_spec.rb +0 -381
  1029. data/spec/unit/resource/rhsm_errata_level_spec.rb +0 -50
  1030. data/spec/unit/resource/rhsm_errata_spec.rb +0 -39
  1031. data/spec/unit/resource/rhsm_register_spec.rb +0 -308
  1032. data/spec/unit/resource/rhsm_repo_spec.rb +0 -70
  1033. data/spec/unit/resource/rhsm_subscription_spec.rb +0 -145
  1034. data/spec/unit/resource/route_spec.rb +0 -100
  1035. data/spec/unit/resource/rpm_package_spec.rb +0 -62
  1036. data/spec/unit/resource/ruby_block_spec.rb +0 -58
  1037. data/spec/unit/resource/ruby_spec.rb +0 -39
  1038. data/spec/unit/resource/scm/git_spec.rb +0 -110
  1039. data/spec/unit/resource/scm/scm.rb +0 -122
  1040. data/spec/unit/resource/scm/subversion_spec.rb +0 -90
  1041. data/spec/unit/resource/script_spec.rb +0 -57
  1042. data/spec/unit/resource/selinux_boolean_spec.rb +0 -92
  1043. data/spec/unit/resource/selinux_fcontext_spec.rb +0 -65
  1044. data/spec/unit/resource/selinux_install_spec.rb +0 -60
  1045. data/spec/unit/resource/selinux_login_spec.rb +0 -73
  1046. data/spec/unit/resource/selinux_module_spec.rb +0 -55
  1047. data/spec/unit/resource/selinux_permissive_spec.rb +0 -39
  1048. data/spec/unit/resource/selinux_port_spec.rb +0 -42
  1049. data/spec/unit/resource/selinux_state_spec.rb +0 -46
  1050. data/spec/unit/resource/selinux_user_spec.rb +0 -92
  1051. data/spec/unit/resource/service_spec.rb +0 -203
  1052. data/spec/unit/resource/smartos_package_spec.rb +0 -52
  1053. data/spec/unit/resource/snap_package_spec.rb +0 -60
  1054. data/spec/unit/resource/solaris_package_spec.rb +0 -52
  1055. data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +0 -50
  1056. data/spec/unit/resource/sudo_spec.rb +0 -99
  1057. data/spec/unit/resource/swap_file_spec.rb +0 -39
  1058. data/spec/unit/resource/sysctl_spec.rb +0 -76
  1059. data/spec/unit/resource/systemd_unit_spec.rb +0 -130
  1060. data/spec/unit/resource/template_spec.rb +0 -222
  1061. data/spec/unit/resource/timezone_spec.rb +0 -102
  1062. data/spec/unit/resource/user/linux_user_spec.rb +0 -42
  1063. data/spec/unit/resource/user/windows_user_spec.rb +0 -36
  1064. data/spec/unit/resource/user_spec.rb +0 -121
  1065. data/spec/unit/resource/user_ulimit_spec.rb +0 -66
  1066. data/spec/unit/resource/windows_ad_join_spec.rb +0 -55
  1067. data/spec/unit/resource/windows_audit_policy_spec.rb +0 -64
  1068. data/spec/unit/resource/windows_auto_run_spec.rb +0 -50
  1069. data/spec/unit/resource/windows_certificate_spec.rb +0 -95
  1070. data/spec/unit/resource/windows_defender_exclusion_spec.rb +0 -62
  1071. data/spec/unit/resource/windows_defender_spec.rb +0 -71
  1072. data/spec/unit/resource/windows_dfs_folder_spec.rb +0 -39
  1073. data/spec/unit/resource/windows_dfs_namespace_spec.rb +0 -39
  1074. data/spec/unit/resource/windows_dfs_server_spec.rb +0 -34
  1075. data/spec/unit/resource/windows_dns_record_spec.rb +0 -55
  1076. data/spec/unit/resource/windows_dns_zone_spec.rb +0 -51
  1077. data/spec/unit/resource/windows_env_spec.rb +0 -75
  1078. data/spec/unit/resource/windows_feature_dism_spec.rb +0 -57
  1079. data/spec/unit/resource/windows_feature_powershell_spec.rb +0 -83
  1080. data/spec/unit/resource/windows_feature_spec.rb +0 -64
  1081. data/spec/unit/resource/windows_firewall_profile_spec.rb +0 -77
  1082. data/spec/unit/resource/windows_firewall_rule_spec.rb +0 -510
  1083. data/spec/unit/resource/windows_font_spec.rb +0 -43
  1084. data/spec/unit/resource/windows_package_spec.rb +0 -125
  1085. data/spec/unit/resource/windows_pagefile_spec.rb +0 -44
  1086. data/spec/unit/resource/windows_path_spec.rb +0 -40
  1087. data/spec/unit/resource/windows_printer_port_spec.rb +0 -62
  1088. data/spec/unit/resource/windows_printer_spec.rb +0 -52
  1089. data/spec/unit/resource/windows_service_spec.rb +0 -122
  1090. data/spec/unit/resource/windows_share_spec.rb +0 -48
  1091. data/spec/unit/resource/windows_shortcut_spec.rb +0 -38
  1092. data/spec/unit/resource/windows_task_spec.rb +0 -403
  1093. data/spec/unit/resource/windows_uac_spec.rb +0 -50
  1094. data/spec/unit/resource/windows_update_settings_spec.rb +0 -64
  1095. data/spec/unit/resource/windows_user_privilege_spec.rb +0 -55
  1096. data/spec/unit/resource/windows_workgroup_spec.rb +0 -74
  1097. data/spec/unit/resource/yum_package_spec.rb +0 -150
  1098. data/spec/unit/resource/yum_repository_spec.rb +0 -156
  1099. data/spec/unit/resource/zypper_package_spec.rb +0 -51
  1100. data/spec/unit/resource/zypper_repository_spec.rb +0 -115
  1101. data/spec/unit/resource_builder_spec.rb +0 -1
  1102. data/spec/unit/resource_collection/resource_list_spec.rb +0 -137
  1103. data/spec/unit/resource_collection/resource_set_spec.rb +0 -244
  1104. data/spec/unit/resource_collection/stepable_iterator_spec.rb +0 -144
  1105. data/spec/unit/resource_collection_spec.rb +0 -408
  1106. data/spec/unit/resource_definition_spec.rb +0 -117
  1107. data/spec/unit/resource_inspector_spec.rb +0 -101
  1108. data/spec/unit/resource_reporter_spec.rb +0 -860
  1109. data/spec/unit/resource_resolver_spec.rb +0 -52
  1110. data/spec/unit/resource_spec.rb +0 -1484
  1111. data/spec/unit/role_spec.rb +0 -363
  1112. data/spec/unit/run_context/child_run_context_spec.rb +0 -126
  1113. data/spec/unit/run_context/cookbook_compiler_spec.rb +0 -236
  1114. data/spec/unit/run_context_spec.rb +0 -257
  1115. data/spec/unit/run_list/run_list_expansion_spec.rb +0 -147
  1116. data/spec/unit/run_list/run_list_item_spec.rb +0 -117
  1117. data/spec/unit/run_list/versioned_recipe_list_spec.rb +0 -197
  1118. data/spec/unit/run_list_spec.rb +0 -312
  1119. data/spec/unit/run_lock_spec.rb +0 -144
  1120. data/spec/unit/run_status_spec.rb +0 -144
  1121. data/spec/unit/runner_spec.rb +0 -397
  1122. data/spec/unit/scan_access_control_spec.rb +0 -183
  1123. data/spec/unit/search/query_spec.rb +0 -291
  1124. data/spec/unit/secret_fetcher/akeyless_vault_spec.rb +0 -37
  1125. data/spec/unit/secret_fetcher/aws_secrets_manager_spec.rb +0 -70
  1126. data/spec/unit/secret_fetcher/azure_key_vault_spec.rb +0 -149
  1127. data/spec/unit/secret_fetcher/hashi_vault_spec.rb +0 -126
  1128. data/spec/unit/secret_fetcher_spec.rb +0 -82
  1129. data/spec/unit/server_api_spec.rb +0 -151
  1130. data/spec/unit/server_api_versions_spec.rb +0 -66
  1131. data/spec/unit/shell/model_wrapper_spec.rb +0 -96
  1132. data/spec/unit/shell/shell_ext_spec.rb +0 -196
  1133. data/spec/unit/shell/shell_session_spec.rb +0 -218
  1134. data/spec/unit/shell_spec.rb +0 -158
  1135. data/spec/unit/train_transport_spec.rb +0 -85
  1136. data/spec/unit/user_spec.rb +0 -275
  1137. data/spec/unit/user_v1_spec.rb +0 -585
  1138. data/spec/unit/util/backup_spec.rb +0 -141
  1139. data/spec/unit/util/diff_spec.rb +0 -562
  1140. data/spec/unit/util/dsc/configuration_generator_spec.rb +0 -272
  1141. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +0 -248
  1142. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +0 -192
  1143. data/spec/unit/util/dsc/resource_store.rb +0 -78
  1144. data/spec/unit/util/editor_spec.rb +0 -152
  1145. data/spec/unit/util/file_edit_spec.rb +0 -224
  1146. data/spec/unit/util/powershell/ps_credential_spec.rb +0 -51
  1147. data/spec/unit/util/selinux_spec.rb +0 -160
  1148. data/spec/unit/util/threaded_job_queue_spec.rb +0 -60
  1149. data/spec/unit/util/windows/logon_session_spec.rb +0 -285
  1150. data/spec/unit/version/platform_spec.rb +0 -60
  1151. data/spec/unit/version_class_spec.rb +0 -171
  1152. data/spec/unit/version_constraint/platform_spec.rb +0 -45
  1153. data/spec/unit/version_constraint_spec.rb +0 -179
  1154. data/spec/unit/version_string_spec.rb +0 -79
  1155. data/spec/unit/win32/error_spec.rb +0 -77
  1156. data/spec/unit/win32/link_spec.rb +0 -73
  1157. data/spec/unit/win32/registry_spec.rb +0 -394
  1158. data/spec/unit/win32/security_spec.rb +0 -136
  1159. data/tasks/rspec.rb +0 -87
@@ -1,1322 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@chef.io>)
3
- # Author:: AJ Christensen (<aj@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require "spec_helper"
21
- require "chef/node/attribute"
22
-
23
- describe Chef::Node::Attribute do
24
- let(:events) { instance_double(Chef::EventDispatch::Dispatcher) }
25
- let(:run_context) { instance_double(Chef::RunContext, events: events) }
26
- let(:node) { instance_double(Chef::Node, run_context: run_context) }
27
- before(:each) do
28
- allow(events).to receive(:attribute_changed)
29
- @attribute_hash =
30
- { "dmi" => {},
31
- "command" => { "ps" => "ps -ef" },
32
- "platform_version" => "10.5.7",
33
- "platform" => "mac_os_x",
34
- "ipaddress" => "192.168.0.117",
35
- "network" => { "default_interface" => "en1",
36
- "interfaces" => { "vmnet1" => { "flags" => %w{UP BROADCAST SMART RUNNING SIMPLEX MULTICAST},
37
- "number" => "1",
38
- "addresses" => { "00:50:56:c0:00:01" => { "family" => "lladdr" },
39
- "192.168.110.1" => { "broadcast" => "192.168.110.255",
40
- "netmask" => "255.255.255.0",
41
- "family" => "inet" } },
42
- "mtu" => "1500",
43
- "type" => "vmnet",
44
- "arp" => { "192.168.110.255" => "ff:ff:ff:ff:ff:ff" },
45
- "encapsulation" => "Ethernet" },
46
- "stf0" => { "flags" => [],
47
- "number" => "0",
48
- "addresses" => {},
49
- "mtu" => "1280",
50
- "type" => "stf",
51
- "encapsulation" => "6to4" },
52
- "lo0" => { "flags" => %w{UP LOOPBACK RUNNING MULTICAST},
53
- "number" => "0",
54
- "addresses" => { "::1" => { "scope" => "Node", "prefixlen" => "128", "family" => "inet6" },
55
- "127.0.0.1" => { "netmask" => "255.0.0.0", "family" => "inet" },
56
- "fe80::1" => { "scope" => "Link", "prefixlen" => "64", "family" => "inet6" } },
57
- "mtu" => "16384",
58
- "type" => "lo",
59
- "encapsulation" => "Loopback" },
60
- "gif0" => { "flags" => %w{POINTOPOINT MULTICAST},
61
- "number" => "0",
62
- "addresses" => {},
63
- "mtu" => "1280",
64
- "type" => "gif",
65
- "encapsulation" => "IPIP" },
66
- "vmnet8" => { "flags" => %w{UP BROADCAST SMART RUNNING SIMPLEX MULTICAST},
67
- "number" => "8",
68
- "addresses" => { "192.168.4.1" => { "broadcast" => "192.168.4.255",
69
- "netmask" => "255.255.255.0",
70
- "family" => "inet" },
71
- "00:50:56:c0:00:08" => { "family" => "lladdr" } },
72
- "mtu" => "1500",
73
- "type" => "vmnet",
74
- "arp" => { "192.168.4.255" => "ff:ff:ff:ff:ff:ff" },
75
- "encapsulation" => "Ethernet" },
76
- "en0" => { "status" => "inactive",
77
- "flags" => %w{UP BROADCAST SMART RUNNING SIMPLEX MULTICAST},
78
- "number" => "0",
79
- "addresses" => { "00:23:32:b0:32:f2" => { "family" => "lladdr" } },
80
- "mtu" => "1500",
81
- "media" => { "supported" => { "autoselect" => { "options" => [] },
82
- "none" => { "options" => [] },
83
- "1000baseT" => { "options" => %w{full-duplex flow-control hw-loopback} },
84
- "10baseT/UTP" => { "options" => %w{half-duplex full-duplex flow-control hw-loopback} },
85
- "100baseTX" => { "options" => %w{half-duplex full-duplex flow-control hw-loopback} } },
86
- "selected" => { "autoselect" => { "options" => [] } } },
87
- "type" => "en",
88
- "encapsulation" => "Ethernet" },
89
- "en1" => { "status" => "active",
90
- "flags" => %w{UP BROADCAST SMART RUNNING SIMPLEX MULTICAST},
91
- "number" => "1",
92
- "addresses" => { "fe80::223:6cff:fe7f:676c" => { "scope" => "Link", "prefixlen" => "64", "family" => "inet6" },
93
- "00:23:6c:7f:67:6c" => { "family" => "lladdr" },
94
- "192.168.0.117" => { "broadcast" => "192.168.0.255",
95
- "netmask" => "255.255.255.0",
96
- "family" => "inet" } },
97
- "mtu" => "1500",
98
- "media" => { "supported" => { "autoselect" => { "options" => [] } },
99
- "selected" => { "autoselect" => { "options" => [] } } },
100
- "type" => "en",
101
- "arp" => { "192.168.0.72" => "0:f:ea:39:fa:d5",
102
- "192.168.0.1" => "0:1c:fb:fc:6f:20",
103
- "192.168.0.255" => "ff:ff:ff:ff:ff:ff",
104
- "192.168.0.3" => "0:1f:33:ea:26:9b",
105
- "192.168.0.77" => "0:23:12:70:f8:cf",
106
- "192.168.0.152" => "0:26:8:7d:2:4c" },
107
- "encapsulation" => "Ethernet" },
108
- "en2" => { "status" => "active",
109
- "flags" => %w{UP BROADCAST SMART RUNNING SIMPLEX MULTICAST},
110
- "number" => "2",
111
- "addresses" => { "169.254.206.152" => { "broadcast" => "169.254.255.255",
112
- "netmask" => "255.255.0.0",
113
- "family" => "inet" },
114
- "00:1c:42:00:00:01" => { "family" => "lladdr" },
115
- "fe80::21c:42ff:fe00:1" => { "scope" => "Link", "prefixlen" => "64", "family" => "inet6" } },
116
- "mtu" => "1500",
117
- "media" => { "supported" => { "autoselect" => { "options" => [] } },
118
- "selected" => { "autoselect" => { "options" => [] } } },
119
- "type" => "en",
120
- "encapsulation" => "Ethernet" },
121
- "fw0" => { "status" => "inactive",
122
- "flags" => %w{BROADCAST SIMPLEX MULTICAST},
123
- "number" => "0",
124
- "addresses" => { "00:23:32:ff:fe:b0:32:f2" => { "family" => "lladdr" } },
125
- "mtu" => "4078",
126
- "media" => { "supported" => { "autoselect" => { "options" => ["full-duplex"] } },
127
- "selected" => { "autoselect" => { "options" => ["full-duplex"] } } },
128
- "type" => "fw",
129
- "encapsulation" => "1394" },
130
- "en3" => { "status" => "active",
131
- "flags" => %w{UP BROADCAST SMART RUNNING SIMPLEX MULTICAST},
132
- "number" => "3",
133
- "addresses" => { "169.254.206.152" => { "broadcast" => "169.254.255.255",
134
- "netmask" => "255.255.0.0",
135
- "family" => "inet" },
136
- "00:1c:42:00:00:00" => { "family" => "lladdr" },
137
- "fe80::21c:42ff:fe00:0" => { "scope" => "Link", "prefixlen" => "64", "family" => "inet6" } },
138
- "mtu" => "1500",
139
- "media" => { "supported" => { "autoselect" => { "options" => [] } },
140
- "selected" => { "autoselect" => { "options" => [] } } },
141
- "type" => "en",
142
- "encapsulation" => "Ethernet" } } },
143
- "fqdn" => "latte.local",
144
- "ohai_time" => 1249065590.90391,
145
- "domain" => "local",
146
- "os" => "darwin",
147
- "platform_build" => "9J61",
148
- "os_version" => "9.7.0",
149
- "hostname" => "latte",
150
- "macaddress" => "00:23:6c:7f:67:6c",
151
- "music" => { "jimmy_eat_world" => "nice", "apophis" => false },
152
- }
153
- @default_hash = {
154
- "domain" => "opscode.com",
155
- "hot" => { "day" => "saturday" },
156
- "music" => {
157
- "jimmy_eat_world" => "is fun!",
158
- "mastodon" => "rocks",
159
- "mars_volta" => "is loud and nutty",
160
- "deeper" => { "gates_of_ishtar" => nil },
161
- "this" => { "apparatus" => { "must" => "be unearthed" } },
162
- },
163
- }
164
- @override_hash = {
165
- "macaddress" => "00:00:00:00:00:00",
166
- "hot" => { "day" => "sunday" },
167
- "fire" => "still burn",
168
- "music" => {
169
- "mars_volta" => "cicatriz",
170
- },
171
- }
172
- @automatic_hash = { "week" => "friday" }
173
- @attributes = Chef::Node::Attribute.new(@attribute_hash, @default_hash, @override_hash, @automatic_hash, node)
174
- end
175
-
176
- describe "initialize" do
177
- it "should return a Chef::Node::Attribute" do
178
- expect(@attributes).to be_a_kind_of(Chef::Node::Attribute)
179
- end
180
-
181
- it "should take an Automatic, Normal, Default and Override hash" do
182
- expect { Chef::Node::Attribute.new({}, {}, {}, {}) }.not_to raise_error
183
- end
184
-
185
- %i{normal default override automatic}.each do |accessor|
186
- it "should set #{accessor}" do
187
- na = Chef::Node::Attribute.new({ normal: true }, { default: true }, { override: true }, { automatic: true })
188
- expect(na.send(accessor)).to eq({ accessor.to_s => true })
189
- end
190
- end
191
-
192
- it "should be enumerable" do
193
- expect(@attributes).to be_is_a(Enumerable)
194
- end
195
- end
196
-
197
- describe "when printing attribute components" do
198
-
199
- it "does not cause a type error" do
200
- # See CHEF-3799; IO#puts implicitly calls #to_ary on its argument. This
201
- # is expected to raise a NoMethodError or return an Array. `to_ary` is
202
- # the "strict" conversion method that should only be implemented by
203
- # things that are truly Array-like, so NoMethodError is the right choice.
204
- # (cf. there is no Hash#to_ary).
205
- expect { @attributes.default.to_ary }.to raise_error(NoMethodError)
206
- end
207
-
208
- end
209
-
210
- describe "when debugging attributes" do
211
- it "gives the value at each level of precedence for a path spec" do
212
- @attributes.default[:foo][:bar] = "default"
213
- @attributes.env_default[:foo][:bar] = "env_default"
214
- @attributes.role_default[:foo][:bar] = "role_default"
215
- @attributes.force_default[:foo][:bar] = "force_default"
216
- @attributes.normal[:foo][:bar] = "normal"
217
- @attributes.override[:foo][:bar] = "override"
218
- @attributes.role_override[:foo][:bar] = "role_override"
219
- @attributes.env_override[:foo][:bar] = "env_override"
220
- @attributes.force_override[:foo][:bar] = "force_override"
221
- @attributes.automatic[:foo][:bar] = "automatic"
222
-
223
- expected = [
224
- %w{default default},
225
- %w{env_default env_default},
226
- %w{role_default role_default},
227
- %w{force_default force_default},
228
- %w{normal normal},
229
- %w{override override},
230
- %w{role_override role_override},
231
- %w{env_override env_override},
232
- %w{force_override force_override},
233
- %w{automatic automatic},
234
- ]
235
- expect(@attributes.debug_value(:foo, :bar)).to eq(expected)
236
- end
237
-
238
- it "works through arrays" do
239
- @attributes.default["foo"] = [ { "bar" => "baz" } ]
240
-
241
- expect(@attributes.debug_value(:foo, 0)).to eq(
242
- [
243
- ["default", { "bar" => "baz" }],
244
- ["env_default", :not_present],
245
- ["role_default", :not_present],
246
- ["force_default", :not_present],
247
- ["normal", :not_present],
248
- ["override", :not_present],
249
- ["role_override", :not_present],
250
- ["env_override", :not_present],
251
- ["force_override", :not_present],
252
- ["automatic", :not_present],
253
- ]
254
- )
255
- end
256
- end
257
-
258
- describe "when fetching values based on precedence" do
259
- before do
260
- @attributes.default["default"] = "cookbook default"
261
- @attributes.override["override"] = "cookbook override"
262
- end
263
-
264
- it "prefers 'forced default' over any other default" do
265
- @attributes.force_default["default"] = "force default"
266
- @attributes.role_default["default"] = "role default"
267
- @attributes.env_default["default"] = "environment default"
268
- expect(@attributes["default"]).to eq("force default")
269
- end
270
-
271
- it "prefers role_default over environment or cookbook default" do
272
- @attributes.role_default["default"] = "role default"
273
- @attributes.env_default["default"] = "environment default"
274
- expect(@attributes["default"]).to eq("role default")
275
- end
276
-
277
- it "prefers environment default over cookbook default" do
278
- @attributes.env_default["default"] = "environment default"
279
- expect(@attributes["default"]).to eq("environment default")
280
- end
281
-
282
- it "returns the cookbook default when no other default values are present" do
283
- expect(@attributes["default"]).to eq("cookbook default")
284
- end
285
-
286
- it "prefers 'forced overrides' over role or cookbook overrides" do
287
- @attributes.force_override["override"] = "force override"
288
- @attributes.env_override["override"] = "environment override"
289
- @attributes.role_override["override"] = "role override"
290
- expect(@attributes["override"]).to eq("force override")
291
- end
292
-
293
- it "prefers environment overrides over role or cookbook overrides" do
294
- @attributes.env_override["override"] = "environment override"
295
- @attributes.role_override["override"] = "role override"
296
- expect(@attributes["override"]).to eq("environment override")
297
- end
298
-
299
- it "prefers role overrides over cookbook overrides" do
300
- @attributes.role_override["override"] = "role override"
301
- expect(@attributes["override"]).to eq("role override")
302
- end
303
-
304
- it "returns cookbook overrides when no other overrides are present" do
305
- expect(@attributes["override"]).to eq("cookbook override")
306
- end
307
-
308
- it "merges arrays within the default precedence" do
309
- @attributes.role_default["array"] = %w{role}
310
- @attributes.env_default["array"] = %w{env}
311
- expect(@attributes["array"]).to eq(%w{env role})
312
- end
313
-
314
- it "merges arrays within the override precedence" do
315
- @attributes.role_override["array"] = %w{role}
316
- @attributes.env_override["array"] = %w{env}
317
- expect(@attributes["array"]).to eq(%w{role env})
318
- end
319
-
320
- it "does not merge arrays between default and normal" do
321
- @attributes.role_default["array"] = %w{role}
322
- @attributes.normal["array"] = %w{normal}
323
- expect(@attributes["array"]).to eq(%w{normal})
324
- end
325
-
326
- it "does not merge arrays between normal and override" do
327
- @attributes.normal["array"] = %w{normal}
328
- @attributes.role_override["array"] = %w{role}
329
- expect(@attributes["array"]).to eq(%w{role})
330
- end
331
-
332
- it "merges nested hashes between precedence levels" do
333
- @attributes = Chef::Node::Attribute.new({}, {}, {}, {})
334
- @attributes.env_default = { "a" => { "b" => { "default" => "default" } } }
335
- @attributes.normal = { "a" => { "b" => { "normal" => "normal" } } }
336
- @attributes.override = { "a" => { "override" => "role" } }
337
- @attributes.automatic = { "a" => { "automatic" => "auto" } }
338
- expect(@attributes["a"]).to eq({ "b" => { "default" => "default", "normal" => "normal" },
339
- "override" => "role",
340
- "automatic" => "auto" })
341
- end
342
- end
343
-
344
- describe "when reading combined default or override values" do
345
- before do
346
- @attributes.default["cd"] = "cookbook default"
347
- @attributes.role_default["rd"] = "role default"
348
- @attributes.env_default["ed"] = "env default"
349
- @attributes.default!["fd"] = "force default"
350
- @attributes.override["co"] = "cookbook override"
351
- @attributes.role_override["ro"] = "role override"
352
- @attributes.env_override["eo"] = "env override"
353
- @attributes.override!["fo"] = "force override"
354
- end
355
-
356
- it "merges all types of overrides into a combined override" do
357
- expect(@attributes.combined_override["co"]).to eq("cookbook override")
358
- expect(@attributes.combined_override["ro"]).to eq("role override")
359
- expect(@attributes.combined_override["eo"]).to eq("env override")
360
- expect(@attributes.combined_override["fo"]).to eq("force override")
361
- end
362
-
363
- it "merges all types of defaults into a combined default" do
364
- expect(@attributes.combined_default["cd"]).to eq("cookbook default")
365
- expect(@attributes.combined_default["rd"]).to eq("role default")
366
- expect(@attributes.combined_default["ed"]).to eq("env default")
367
- expect(@attributes.combined_default["fd"]).to eq("force default")
368
- end
369
-
370
- end
371
-
372
- describe "[]" do
373
- it "should return override data if it exists" do
374
- expect(@attributes["macaddress"]).to eq("00:00:00:00:00:00")
375
- end
376
-
377
- it "should return attribute data if it is not overridden" do
378
- expect(@attributes["platform"]).to eq("mac_os_x")
379
- end
380
-
381
- it "should return data that doesn't have corresponding keys in every hash" do
382
- expect(@attributes["command"]["ps"]).to eq("ps -ef")
383
- end
384
-
385
- it "should return default data if it is not overridden or in attribute data" do
386
- expect(@attributes["music"]["mastodon"]).to eq("rocks")
387
- end
388
-
389
- it "should prefer the override data over an available default" do
390
- expect(@attributes["music"]["mars_volta"]).to eq("cicatriz")
391
- end
392
-
393
- it "should prefer the attribute data over an available default" do
394
- expect(@attributes["music"]["jimmy_eat_world"]).to eq("nice")
395
- end
396
-
397
- it "should prefer override data over default data if there is no attribute data" do
398
- expect(@attributes["hot"]["day"]).to eq("sunday")
399
- end
400
-
401
- it "should return the merged hash if all three have values" do
402
- result = @attributes["music"]
403
- expect(result["mars_volta"]).to eq("cicatriz")
404
- expect(result["jimmy_eat_world"]).to eq("nice")
405
- expect(result["mastodon"]).to eq("rocks")
406
- end
407
- end
408
-
409
- describe "[]=" do
410
- it "should error out when the type of attribute to set has not been specified" do
411
- @attributes.normal["the_ghost"] = {}
412
- expect { @attributes["the_ghost"]["exterminate"] = false }.to raise_error(Chef::Exceptions::ImmutableAttributeModification)
413
- end
414
-
415
- it "should let you set an attribute value when another hash has an intermediate value" do
416
- @attributes.normal["the_ghost"] = { "exterminate" => "the future" }
417
- expect { @attributes.normal["the_ghost"]["eviscerate"]["tomorrow"] = false }.not_to raise_error
418
- end
419
-
420
- it "should set the attribute value" do
421
- @attributes.normal["longboard"] = "surfing"
422
- expect(@attributes.normal["longboard"]).to eq("surfing")
423
- expect(@attributes.normal["longboard"]).to eq("surfing")
424
- end
425
-
426
- it "should set deeply nested attribute values when a precedence level is specified" do
427
- @attributes.normal["deftones"]["hunters"]["nap"] = "surfing"
428
- expect(@attributes.normal["deftones"]["hunters"]["nap"]).to eq("surfing")
429
- end
430
-
431
- it "should die if you try and do nested attributes that do not exist without read vivification" do
432
- expect { @attributes["foo"]["bar"] = :baz }.to raise_error(NoMethodError)
433
- end
434
-
435
- it "should let you set attributes manually without vivification" do
436
- @attributes.normal["foo"] = Mash.new
437
- @attributes.normal["foo"]["bar"] = :baz
438
- expect(@attributes.normal["foo"]["bar"]).to eq(:baz)
439
- end
440
-
441
- it "does not support ||= when setting" do
442
- # This is a limitation of auto-vivification.
443
- # Users who need this behavior can use set_unless and friends
444
- @attributes.normal["foo"] = Mash.new
445
- @attributes.normal["foo"]["bar"] ||= "stop the world"
446
- expect(@attributes.normal["foo"]["bar"]).to eq({})
447
- end
448
- end
449
-
450
- describe "to_hash" do
451
- it "should convert to a hash" do
452
- expect(@attributes.to_hash.class).to eq(Hash)
453
- end
454
-
455
- it "should convert to a hash based on current state" do
456
- hash = @attributes["hot"].to_hash
457
- expect(hash.class).to eq(Hash)
458
- expect(hash["day"]).to eq("sunday")
459
- end
460
-
461
- it "should create a deep copy of the node attribute" do
462
- @attributes.default["foo"]["bar"]["baz"] = "fizz"
463
- hash = @attributes["foo"].to_hash
464
- expect(hash).to eql({ "bar" => { "baz" => "fizz" } })
465
- hash["bar"]["baz"] = "buzz"
466
- expect(hash).to eql({ "bar" => { "baz" => "buzz" } })
467
- expect(@attributes.default["foo"]).to eql({ "bar" => { "baz" => "fizz" } })
468
- end
469
-
470
- it "should create a deep copy of arrays in the node attribute" do
471
- @attributes.default["foo"]["bar"] = ["fizz"]
472
- hash = @attributes["foo"].to_hash
473
- expect(hash).to eql({ "bar" => [ "fizz" ] })
474
- hash["bar"].push("buzz")
475
- expect(hash).to eql({ "bar" => %w{fizz buzz} })
476
- expect(@attributes.default["foo"]).to eql({ "bar" => [ "fizz" ] })
477
- end
478
-
479
- it "mutating strings should not mutate the attributes in a hash" do
480
- @attributes.default["foo"]["bar"]["baz"] = "fizz"
481
- hash = @attributes["foo"].to_hash
482
- expect(hash).to eql({ "bar" => { "baz" => "fizz" } })
483
- hash["bar"]["baz"] << "buzz"
484
- expect(hash).to eql({ "bar" => { "baz" => "fizzbuzz" } })
485
- expect(@attributes.default["foo"]).to eql({ "bar" => { "baz" => "fizz" } })
486
- end
487
-
488
- it "mutating array elements should not mutate the attributes" do
489
- @attributes.default["foo"]["bar"] = [ "fizz" ]
490
- hash = @attributes["foo"].to_hash
491
- expect(hash).to eql({ "bar" => [ "fizz" ] })
492
- hash["bar"][0] << "buzz"
493
- expect(hash).to eql({ "bar" => [ "fizzbuzz" ] })
494
- expect(@attributes.default["foo"]).to eql({ "bar" => [ "fizz" ] })
495
- end
496
- end
497
-
498
- describe "dup" do
499
- it "array can be duped even if some elements can't" do
500
- @attributes.default[:foo] = %w{foo bar baz} + Array(1..3) + [nil, true, false, [ "el", 0, nil ] ]
501
- @attributes.default[:foo].dup
502
- end
503
-
504
- it "mutating strings should not mutate the attributes in a hash" do
505
- @attributes.default["foo"]["bar"]["baz"] = "fizz"
506
- hash = @attributes["foo"].dup
507
- expect(hash).to eql({ "bar" => { "baz" => "fizz" } })
508
- hash["bar"]["baz"] << "buzz"
509
- expect(hash).to eql({ "bar" => { "baz" => "fizzbuzz" } })
510
- expect(@attributes.default["foo"]).to eql({ "bar" => { "baz" => "fizz" } })
511
- end
512
-
513
- it "mutating array elements should not mutate the attributes" do
514
- @attributes.default["foo"]["bar"] = [ "fizz" ]
515
- hash = @attributes["foo"].dup
516
- expect(hash).to eql({ "bar" => [ "fizz" ] })
517
- hash["bar"][0] << "buzz"
518
- expect(hash).to eql({ "bar" => [ "fizzbuzz" ] })
519
- expect(@attributes.default["foo"]).to eql({ "bar" => [ "fizz" ] })
520
- end
521
- end
522
-
523
- describe "has_key?" do
524
- it "should return true if an attribute exists" do
525
- expect(@attributes.key?("music")).to eq(true)
526
- end
527
-
528
- it "should return false if an attribute does not exist" do
529
- expect(@attributes.key?("ninja")).to eq(false)
530
- end
531
-
532
- it "should return false if an attribute does not exist using dot notation" do
533
- expect(@attributes.key?("does_not_exist_at_all")).to eq(false)
534
- end
535
-
536
- it "should return true if an attribute exists but is set to false" do
537
- @attributes.key?("music")
538
- expect(@attributes["music"].key?("apophis")).to eq(true)
539
- end
540
-
541
- it "does not find keys above the current nesting level" do
542
- expect(@attributes["music"]["this"]["apparatus"]).not_to have_key("this")
543
- end
544
-
545
- it "does not find keys below the current nesting level" do
546
- expect(@attributes["music"]["this"]).not_to have_key("must")
547
- end
548
-
549
- %i{include? key? member?}.each do |method|
550
- it "should alias the method #{method} to itself" do
551
- expect(@attributes).to respond_to(method)
552
- end
553
-
554
- it "#{method} should behave like has_key?" do
555
- expect(@attributes.send(method, "music")).to eq(true)
556
- end
557
- end
558
- end
559
-
560
- describe "attribute?" do
561
- it "should return true if an attribute exists" do
562
- expect(@attributes.attribute?("music")).to eq(true)
563
- end
564
-
565
- it "should return false if an attribute does not exist" do
566
- expect(@attributes.attribute?("ninja")).to eq(false)
567
- end
568
-
569
- end
570
-
571
- describe "keys" do
572
- before(:each) do
573
- @attributes = Chef::Node::Attribute.new(
574
- {
575
- "one" => { "two" => "three" },
576
- "hut" => { "two" => "three" },
577
- "place" => {},
578
- },
579
- {
580
- "one" => { "four" => "five" },
581
- "snakes" => "on a plane",
582
- },
583
- {
584
- "one" => { "six" => "seven" },
585
- "snack" => "cookies",
586
- },
587
- {}
588
- )
589
- end
590
-
591
- it "should yield each top level key" do
592
- collect = []
593
- @attributes.each_key do |k|
594
- collect << k
595
- end
596
- expect(collect.include?("one")).to eq(true)
597
- expect(collect.include?("hut")).to eq(true)
598
- expect(collect.include?("snakes")).to eq(true)
599
- expect(collect.include?("snack")).to eq(true)
600
- expect(collect.include?("place")).to eq(true)
601
- expect(collect.length).to eq(5)
602
- end
603
-
604
- it "should yield lower if we go deeper" do
605
- collect = []
606
- @attributes["one"].each_key do |k|
607
- collect << k
608
- end
609
- expect(collect.include?("two")).to eq(true)
610
- expect(collect.include?("four")).to eq(true)
611
- expect(collect.include?("six")).to eq(true)
612
- expect(collect.length).to eq(3)
613
- end
614
-
615
- it "should not raise an exception if one of the hashes has a nil value on a deep lookup" do
616
- expect { @attributes["place"].keys { |k| } }.not_to raise_error
617
- end
618
- end
619
-
620
- describe "each" do
621
- before(:each) do
622
- @attributes = Chef::Node::Attribute.new(
623
- {
624
- "one" => "two",
625
- "hut" => "three",
626
- },
627
- {
628
- "one" => "four",
629
- "snakes" => "on a plane",
630
- },
631
- {
632
- "one" => "six",
633
- "snack" => "cookies",
634
- },
635
- {}
636
- )
637
- end
638
-
639
- it "should yield each top level key and value, post merge rules" do
640
- collect = {}
641
- @attributes.each do |k, v|
642
- collect[k] = v
643
- end
644
-
645
- expect(collect["one"]).to eq("six")
646
- expect(collect["hut"]).to eq("three")
647
- expect(collect["snakes"]).to eq("on a plane")
648
- expect(collect["snack"]).to eq("cookies")
649
- end
650
-
651
- it "should yield as a two-element array" do
652
- @attributes.each do |a|
653
- expect(a).to be_an_instance_of(Array)
654
- end
655
- end
656
- end
657
-
658
- describe "each_key" do
659
- before do
660
- @attributes = Chef::Node::Attribute.new(
661
- {
662
- "one" => "two",
663
- "hut" => "three",
664
- },
665
- {
666
- "one" => "four",
667
- "snakes" => "on a plane",
668
- },
669
- {
670
- "one" => "six",
671
- "snack" => "cookies",
672
- },
673
- {}
674
- )
675
- end
676
-
677
- it "should respond to each_key" do
678
- expect(@attributes).to respond_to(:each_key)
679
- end
680
-
681
- it "should yield each top level key, post merge rules" do
682
- collect = []
683
- @attributes.each_key do |k|
684
- collect << k
685
- end
686
-
687
- expect(collect).to include("one")
688
- expect(collect).to include("snack")
689
- expect(collect).to include("hut")
690
- expect(collect).to include("snakes")
691
- end
692
- end
693
-
694
- describe "each_pair" do
695
- before do
696
- @attributes = Chef::Node::Attribute.new(
697
- {
698
- "one" => "two",
699
- "hut" => "three",
700
- },
701
- {
702
- "one" => "four",
703
- "snakes" => "on a plane",
704
- },
705
- {
706
- "one" => "six",
707
- "snack" => "cookies",
708
- },
709
- {}
710
- )
711
- end
712
-
713
- it "should respond to each_pair" do
714
- expect(@attributes).to respond_to(:each_pair)
715
- end
716
-
717
- it "should yield each top level key and value pair, post merge rules" do
718
- collect = {}
719
- @attributes.each_pair do |k, v|
720
- collect[k] = v
721
- end
722
-
723
- expect(collect["one"]).to eq("six")
724
- expect(collect["hut"]).to eq("three")
725
- expect(collect["snakes"]).to eq("on a plane")
726
- expect(collect["snack"]).to eq("cookies")
727
- end
728
- end
729
-
730
- describe "each_value" do
731
- before do
732
- @attributes = Chef::Node::Attribute.new(
733
- {
734
- "one" => "two",
735
- "hut" => "three",
736
- },
737
- {
738
- "one" => "four",
739
- "snakes" => "on a plane",
740
- },
741
- {
742
- "one" => "six",
743
- "snack" => "cookies",
744
- },
745
- {}
746
- )
747
- end
748
-
749
- it "should respond to each_value" do
750
- expect(@attributes).to respond_to(:each_value)
751
- end
752
-
753
- it "should yield each value, post merge rules" do
754
- collect = []
755
- @attributes.each_value do |v|
756
- collect << v
757
- end
758
-
759
- expect(collect).to include("cookies")
760
- expect(collect).to include("three")
761
- expect(collect).to include("on a plane")
762
- end
763
-
764
- it "should yield four elements" do
765
- collect = []
766
- @attributes.each_value do |v|
767
- collect << v
768
- end
769
-
770
- expect(collect.length).to eq(4)
771
- end
772
- end
773
-
774
- describe "empty?" do
775
- before do
776
- @attributes = Chef::Node::Attribute.new(
777
- {
778
- "one" => "two",
779
- "hut" => "three",
780
- },
781
- {
782
- "one" => "four",
783
- "snakes" => "on a plane",
784
- },
785
- {
786
- "one" => "six",
787
- "snack" => "cookies",
788
- },
789
- {}
790
- )
791
- @empty = Chef::Node::Attribute.new({}, {}, {}, {})
792
- end
793
-
794
- it "should respond to empty?" do
795
- expect(@attributes).to respond_to(:empty?)
796
- end
797
-
798
- it "should return true when there are no keys" do
799
- expect(@empty.empty?).to eq(true)
800
- end
801
-
802
- it "should return false when there are keys" do
803
- expect(@attributes.empty?).to eq(false)
804
- end
805
-
806
- end
807
-
808
- describe "fetch" do
809
- before do
810
- @attributes = Chef::Node::Attribute.new(
811
- {
812
- "one" => "two",
813
- "hut" => "three",
814
- },
815
- {
816
- "one" => "four",
817
- "snakes" => "on a plane",
818
- },
819
- {
820
- "one" => "six",
821
- "snack" => "cookies",
822
- },
823
- {}
824
- )
825
- end
826
-
827
- it "should respond to fetch" do
828
- expect(@attributes).to respond_to(:fetch)
829
- end
830
-
831
- describe "when the key exists" do
832
- it "should return the value of the key, post merge (same result as each)" do
833
- {
834
- "one" => "six",
835
- "hut" => "three",
836
- "snakes" => "on a plane",
837
- "snack" => "cookies",
838
- }.each do |k, v|
839
- expect(@attributes.fetch(k)).to eq(v)
840
- end
841
- end
842
- end
843
-
844
- describe "when the key does not exist" do
845
- describe "and no args are passed" do
846
- it "should raise an indexerror" do
847
- expect { @attributes.fetch("lololol") }.to raise_error(IndexError)
848
- end
849
- end
850
-
851
- describe "and a default arg is passed" do
852
- it "should return the value of the default arg" do
853
- expect(@attributes.fetch("lol", "blah")).to eq("blah")
854
- end
855
- end
856
-
857
- describe "and a block is passed" do
858
- it "should run the block and return its value" do
859
- expect(@attributes.fetch("lol") { |x| "#{x}, blah" }).to eq("lol, blah")
860
- end
861
- end
862
- end
863
- end
864
-
865
- describe "has_value?" do
866
- before do
867
- @attributes = Chef::Node::Attribute.new(
868
- {
869
- "one" => "two",
870
- "hut" => "three",
871
- },
872
- {
873
- "one" => "four",
874
- "snakes" => "on a plane",
875
- },
876
- {
877
- "one" => "six",
878
- "snack" => "cookies",
879
- },
880
- {}
881
- )
882
- end
883
-
884
- it "should respond to has_value?" do
885
- expect(@attributes).to respond_to(:has_value?)
886
- end
887
-
888
- it "should return true if any key has the value supplied" do
889
- expect(@attributes.value?("cookies")).to eq(true)
890
- end
891
-
892
- it "should return false no key has the value supplied" do
893
- expect(@attributes.value?("lololol")).to eq(false)
894
- end
895
-
896
- it "should alias value?" do
897
- expect(@attributes).to respond_to(:value?)
898
- end
899
- end
900
-
901
- describe "index", ruby: "< 3.0.0" do
902
- # Hash#index is deprecated and triggers warnings.
903
- def silence
904
- old_verbose = $VERBOSE
905
- $VERBOSE = nil
906
- yield
907
- ensure
908
- $VERBOSE = old_verbose
909
- end
910
-
911
- before do
912
- @attributes = Chef::Node::Attribute.new(
913
- {
914
- "one" => "two",
915
- "hut" => "three",
916
- },
917
- {
918
- "one" => "four",
919
- "snakes" => "on a plane",
920
- },
921
- {
922
- "one" => "six",
923
- "snack" => "cookies",
924
- },
925
- {}
926
- )
927
- end
928
-
929
- it "should respond to index" do
930
- expect(@attributes).to respond_to(:index)
931
- end
932
-
933
- describe "when the value is indexed" do
934
- it "should return the index" do
935
- silence do
936
- expect(@attributes.index("six")).to eq("one")
937
- end
938
- end
939
- end
940
-
941
- describe "when the value is not indexed" do
942
- it "should return nil" do
943
- silence do
944
- expect(@attributes.index("lolol")).to eq(nil)
945
- end
946
- end
947
- end
948
-
949
- end
950
-
951
- describe "values" do
952
- before do
953
- @attributes = Chef::Node::Attribute.new(
954
- {
955
- "one" => "two",
956
- "hut" => "three",
957
- },
958
- {
959
- "one" => "four",
960
- "snakes" => "on a plane",
961
- },
962
- {
963
- "one" => "six",
964
- "snack" => "cookies",
965
- },
966
- {}
967
- )
968
- end
969
-
970
- it "should respond to values" do
971
- expect(@attributes).to respond_to(:values)
972
- end
973
-
974
- it "should return an array of values" do
975
- expect(@attributes.values.length).to eq(4)
976
- end
977
-
978
- it "should match the values output from each" do
979
- expect(@attributes.values).to include("six")
980
- expect(@attributes.values).to include("cookies")
981
- expect(@attributes.values).to include("three")
982
- expect(@attributes.values).to include("on a plane")
983
- end
984
-
985
- end
986
-
987
- describe "select" do
988
- before do
989
- @attributes = Chef::Node::Attribute.new(
990
- {
991
- "one" => "two",
992
- "hut" => "three",
993
- },
994
- {
995
- "one" => "four",
996
- "snakes" => "on a plane",
997
- },
998
- {
999
- "one" => "six",
1000
- "snack" => "cookies",
1001
- },
1002
- {}
1003
- )
1004
- end
1005
-
1006
- it "should respond to select" do
1007
- expect(@attributes).to respond_to(:select)
1008
- end
1009
-
1010
- it "should not raise a LocalJumpError if no block is given" do
1011
- expect { @attributes.select }.not_to raise_error
1012
- end
1013
-
1014
- it "should return an empty hash/array (ruby-version-dependent) for a block containing nil" do
1015
- expect(@attributes.select { nil }).to eq({}.select { nil })
1016
- end
1017
-
1018
- # sorted for spec clarity
1019
- it "should return a new array of k,v pairs for which the block returns true" do
1020
- expect(@attributes.select { true }.sort).to eq(
1021
- [
1022
- %w{hut three},
1023
- %w{one six},
1024
- %w{snack cookies},
1025
- ["snakes", "on a plane"],
1026
- ]
1027
- )
1028
- end
1029
- end
1030
-
1031
- describe "size" do
1032
- before do
1033
- @attributes = Chef::Node::Attribute.new(
1034
- {
1035
- "one" => "two",
1036
- "hut" => "three",
1037
- },
1038
- {
1039
- "one" => "four",
1040
- "snakes" => "on a plane",
1041
- },
1042
- {
1043
- "one" => "six",
1044
- "snack" => "cookies",
1045
- },
1046
- {}
1047
- )
1048
-
1049
- @empty = Chef::Node::Attribute.new({}, {}, {}, {})
1050
- end
1051
-
1052
- it "should respond to size" do
1053
- expect(@attributes).to respond_to(:size)
1054
- end
1055
-
1056
- it "should alias length to size" do
1057
- expect(@attributes).to respond_to(:length)
1058
- end
1059
-
1060
- it "should return 0 for an empty attribute" do
1061
- expect(@empty.size).to eq(0)
1062
- end
1063
-
1064
- it "should return the number of pairs" do
1065
- expect(@attributes.size).to eq(4)
1066
- end
1067
- end
1068
-
1069
- describe "kind_of?" do
1070
- it "should falsely inform you that it is a Hash" do
1071
- expect(@attributes).to be_a_kind_of(Hash)
1072
- end
1073
-
1074
- it "should falsely inform you that it is a Mash" do
1075
- expect(@attributes).to be_a_kind_of(Mash)
1076
- end
1077
-
1078
- it "should inform you that it is a Chef::Node::Attribute" do
1079
- expect(@attributes).to be_a_kind_of(Chef::Node::Attribute)
1080
- end
1081
-
1082
- it "should inform you that it is anything else" do
1083
- expect(@attributes).not_to be_a_kind_of(Chef::Node)
1084
- end
1085
- end
1086
-
1087
- describe "to_s" do
1088
- it "should output simple attributes" do
1089
- attributes = Chef::Node::Attribute.new(nil, nil, nil, nil)
1090
- expect(attributes.to_s).to eq("{}")
1091
- end
1092
-
1093
- it "should output merged attributes" do
1094
- default_hash = {
1095
- "a" => 1,
1096
- "b" => 2,
1097
- }
1098
- override_hash = {
1099
- "b" => 3,
1100
- "c" => 4,
1101
- }
1102
- attributes = Chef::Node::Attribute.new(nil, default_hash, override_hash, nil)
1103
- expect(attributes.to_s).to eq('{"a"=>1, "b"=>3, "c"=>4}')
1104
- end
1105
- end
1106
-
1107
- describe "inspect" do
1108
- it "should be readable" do
1109
- # NOTE: previous implementation hid the values, showing @automatic={...}
1110
- # That is nice and compact, but hides a lot of info, which seems counter
1111
- # to the point of calling #inspect...
1112
- expect(@attributes.inspect).to match(/@automatic=\{.*\}/)
1113
- expect(@attributes.inspect).to match(/@normal=\{.*\}/)
1114
- end
1115
- end
1116
-
1117
- describe "when not mutated" do
1118
-
1119
- it "does not reset the cache when dup'd [CHEF-3680]" do
1120
- @attributes.default[:foo][:bar] = "set on original"
1121
- subtree = @attributes[:foo]
1122
- @attributes.default[:foo].dup[:bar] = "set on dup"
1123
- expect(subtree[:bar]).to eq("set on original")
1124
- end
1125
-
1126
- end
1127
-
1128
- describe "when setting a component attribute to a new value" do
1129
- it "converts the input in to a VividMash tree (default)" do
1130
- @attributes.default = {}
1131
- @attributes.default["foo"] = "bar"
1132
- expect(@attributes.merged_attributes[:foo]).to eq("bar")
1133
- end
1134
-
1135
- it "converts the input in to a VividMash tree (normal)" do
1136
- @attributes.normal = {}
1137
- @attributes.normal["foo"] = "bar"
1138
- expect(@attributes.merged_attributes[:foo]).to eq("bar")
1139
- end
1140
-
1141
- it "converts the input in to a VividMash tree (override)" do
1142
- @attributes.override = {}
1143
- @attributes.override["foo"] = "bar"
1144
- expect(@attributes.merged_attributes[:foo]).to eq("bar")
1145
- end
1146
-
1147
- it "converts the input in to a VividMash tree (automatic)" do
1148
- @attributes.automatic = {}
1149
- @attributes.automatic["foo"] = "bar"
1150
- expect(@attributes.merged_attributes[:foo]).to eq("bar")
1151
- end
1152
- end
1153
-
1154
- describe "when deep-merging between precedence levels" do
1155
- it "correctly deep merges hashes and preserves the original contents" do
1156
- @attributes.default = { "arglebargle" => { "foo" => "bar" } }
1157
- @attributes.override = { "arglebargle" => { "fizz" => "buzz" } }
1158
- expect(@attributes.merged_attributes[:arglebargle]).to eq({ "foo" => "bar", "fizz" => "buzz" })
1159
- expect(@attributes.default[:arglebargle]).to eq({ "foo" => "bar" })
1160
- expect(@attributes.override[:arglebargle]).to eq({ "fizz" => "buzz" })
1161
- end
1162
-
1163
- it "does not deep merge arrays, and preserves the original contents" do
1164
- @attributes.default = { "arglebargle" => [ 1, 2, 3 ] }
1165
- @attributes.override = { "arglebargle" => [ 4, 5, 6 ] }
1166
- expect(@attributes.merged_attributes[:arglebargle]).to eq([ 4, 5, 6 ])
1167
- expect(@attributes.default[:arglebargle]).to eq([ 1, 2, 3 ])
1168
- expect(@attributes.override[:arglebargle]).to eq([ 4, 5, 6 ])
1169
- end
1170
-
1171
- it "correctly deep merges hashes and preserves the original contents when merging default and role_default" do
1172
- @attributes.default = { "arglebargle" => { "foo" => "bar" } }
1173
- @attributes.role_default = { "arglebargle" => { "fizz" => "buzz" } }
1174
- expect(@attributes.merged_attributes[:arglebargle]).to eq({ "foo" => "bar", "fizz" => "buzz" })
1175
- expect(@attributes.default[:arglebargle]).to eq({ "foo" => "bar" })
1176
- expect(@attributes.role_default[:arglebargle]).to eq({ "fizz" => "buzz" })
1177
- end
1178
-
1179
- it "correctly deep merges arrays, and preserves the original contents when merging default and role_default" do
1180
- @attributes.default = { "arglebargle" => [ 1, 2, 3 ] }
1181
- @attributes.role_default = { "arglebargle" => [ 4, 5, 6 ] }
1182
- expect(@attributes.merged_attributes[:arglebargle]).to eq([ 1, 2, 3, 4, 5, 6 ])
1183
- expect(@attributes.default[:arglebargle]).to eq([ 1, 2, 3 ])
1184
- expect(@attributes.role_default[:arglebargle]).to eq([ 4, 5, 6 ])
1185
- end
1186
- end
1187
-
1188
- describe "when attemping to write without specifying precedence" do
1189
- it "raises an error when using []=" do
1190
- expect { @attributes[:new_key] = "new value" }.to raise_error(Chef::Exceptions::ImmutableAttributeModification)
1191
- end
1192
- end
1193
-
1194
- describe "deeply converting values" do
1195
- it "converts values through an array" do
1196
- @attributes.default[:foo] = [ { bar: true } ]
1197
- expect(@attributes["foo"].class).to eql(Chef::Node::ImmutableArray)
1198
- expect(@attributes["foo"][0].class).to eql(Chef::Node::ImmutableMash)
1199
- expect(@attributes["foo"][0]["bar"]).to be true
1200
- end
1201
-
1202
- it "converts values through nested arrays" do
1203
- @attributes.default[:foo] = [ [ { bar: true } ] ]
1204
- expect(@attributes["foo"].class).to eql(Chef::Node::ImmutableArray)
1205
- expect(@attributes["foo"][0].class).to eql(Chef::Node::ImmutableArray)
1206
- expect(@attributes["foo"][0][0].class).to eql(Chef::Node::ImmutableMash)
1207
- expect(@attributes["foo"][0][0]["bar"]).to be true
1208
- end
1209
-
1210
- it "converts values through nested hashes" do
1211
- @attributes.default[:foo] = { baz: { bar: true } }
1212
- expect(@attributes["foo"].class).to eql(Chef::Node::ImmutableMash)
1213
- expect(@attributes["foo"]["baz"].class).to eql(Chef::Node::ImmutableMash)
1214
- expect(@attributes["foo"]["baz"]["bar"]).to be true
1215
- end
1216
- end
1217
-
1218
- describe "node state" do
1219
- it "sets __root__ correctly" do
1220
- @attributes.default["foo"]["bar"]["baz"] = "quux"
1221
- expect(@attributes["foo"].__root__).to eql(@attributes)
1222
- expect(@attributes["foo"]["bar"].__root__).to eql(@attributes)
1223
- expect(@attributes.default["foo"].__root__).to eql(@attributes)
1224
- expect(@attributes.default["foo"]["bar"].__root__).to eql(@attributes)
1225
- end
1226
-
1227
- it "sets __node__ correctly" do
1228
- @attributes.default["foo"]["bar"]["baz"] = "quux"
1229
- expect(@attributes["foo"].__node__).to eql(node)
1230
- expect(@attributes["foo"]["bar"].__node__).to eql(node)
1231
- expect(@attributes.default["foo"].__node__).to eql(node)
1232
- expect(@attributes.default["foo"]["bar"].__node__).to eql(node)
1233
- end
1234
-
1235
- it "sets __path__ correctly" do
1236
- @attributes.default["foo"]["bar"]["baz"] = "quux"
1237
- expect(@attributes["foo"].__path__).to eql(["foo"])
1238
- expect(@attributes["foo"]["bar"].__path__).to eql(%w{foo bar})
1239
- expect(@attributes.default["foo"].__path__).to eql(["foo"])
1240
- expect(@attributes.default["foo"]["bar"].__path__).to eql(%w{foo bar})
1241
- end
1242
-
1243
- it "sets __precedence__ correctly" do
1244
- @attributes.default["foo"]["bar"]["baz"] = "quux"
1245
- expect(@attributes["foo"].__precedence__).to eql(:merged)
1246
- expect(@attributes["foo"]["bar"].__precedence__).to eql(:merged)
1247
- expect(@attributes.default["foo"].__precedence__).to eql(:default)
1248
- expect(@attributes.default["foo"]["bar"].__precedence__).to eql(:default)
1249
- end
1250
-
1251
- it "notifies on attribute changes" do
1252
- expect(events).to receive(:attribute_changed).with(:default, ["foo"], {})
1253
- expect(events).to receive(:attribute_changed).with(:default, %w{foo bar}, {})
1254
- expect(events).to receive(:attribute_changed).with(:default, %w{foo bar baz}, "quux")
1255
- @attributes.default["foo"]["bar"]["baz"] = "quux"
1256
- end
1257
- end
1258
-
1259
- describe "frozen immutable strings" do
1260
- it "strings in hashes should be frozen" do
1261
- @attributes.default["foo"]["bar"]["baz"] = "fizz"
1262
- expect { @attributes["foo"]["bar"]["baz"] << "buzz" }.to raise_error(FrozenError, /can't modify frozen String/)
1263
- end
1264
-
1265
- it "strings in arrays should be frozen" do
1266
- @attributes.default["foo"]["bar"] = [ "fizz" ]
1267
- expect { @attributes["foo"]["bar"][0] << "buzz" }.to raise_error(FrozenError, /can't modify frozen String/)
1268
- end
1269
- end
1270
-
1271
- describe "deep merging with nils" do
1272
- it "nils when deep merging between default levels knocks out values" do
1273
- @attributes.default["foo"] = "bar"
1274
- expect(@attributes["foo"]).to eql("bar")
1275
- @attributes.force_default["foo"] = nil
1276
- expect(@attributes["foo"]).to be nil
1277
- end
1278
-
1279
- it "nils when deep merging between override levels knocks out values" do
1280
- @attributes.override["foo"] = "bar"
1281
- expect(@attributes["foo"]).to eql("bar")
1282
- @attributes.force_override["foo"] = nil
1283
- expect(@attributes["foo"]).to be nil
1284
- end
1285
-
1286
- it "nils when deep merging between default+override levels knocks out values" do
1287
- @attributes.default["foo"] = "bar"
1288
- expect(@attributes["foo"]).to eql("bar")
1289
- @attributes.override["foo"] = nil
1290
- expect(@attributes["foo"]).to be nil
1291
- end
1292
-
1293
- it "nils when deep merging between normal+automatic levels knocks out values" do
1294
- @attributes.normal["foo"] = "bar"
1295
- expect(@attributes["foo"]).to eql("bar")
1296
- @attributes.automatic["foo"] = nil
1297
- expect(@attributes["foo"]).to be nil
1298
- end
1299
- end
1300
-
1301
- describe "to_json" do
1302
- it "should convert to a valid json string" do
1303
- json = @attributes["hot"].to_json
1304
- expect { JSON.parse(json) }.not_to raise_error
1305
- end
1306
-
1307
- it "should convert to a json based on current state" do
1308
- expect(@attributes["hot"].to_json).to eq("{\"day\":\"sunday\"}")
1309
- end
1310
- end
1311
-
1312
- describe "to_yaml" do
1313
- it "should convert to a valid yaml format" do
1314
- json = @attributes["hot"].to_yaml
1315
- expect { YAML.parse(json) }.not_to raise_error
1316
- end
1317
-
1318
- it "should convert to a yaml based on current state" do
1319
- expect(@attributes["hot"].to_yaml).to eq("---\nday: sunday\n")
1320
- end
1321
- end
1322
- end