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,1969 +0,0 @@
1
- #
2
- # Author:: Nimisha Sharad (<nimisha.sharad@msystechnologies.com>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require "spec_helper"
20
- require "chef-utils/dist"
21
-
22
- describe Chef::Resource::WindowsTask, :windows_only do
23
- # resource.task.application_name will default to task_name unless resource.command is set
24
- let(:task_name) { "chef-client-functional-test" }
25
- let(:new_resource) { Chef::Resource::WindowsTask.new(task_name, run_context) }
26
- let(:windows_task_provider) do
27
- new_resource.provider_for_action(:create)
28
- end
29
-
30
- let(:run_context) do
31
- Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
32
- end
33
-
34
- describe "action :create" do
35
- after { delete_task }
36
- context "when command is with arguments" do
37
- subject do
38
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
39
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
40
- # Make sure MM/DD/YYYY is accepted
41
-
42
- new_resource.start_day "09/20/2017"
43
- new_resource.frequency :hourly
44
- new_resource
45
- end
46
-
47
- context "With Arguments" do
48
- it "creates scheduled task and sets command arguments" do
49
- subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
50
- call_for_create_action
51
- # loading current resource again to check new task is creted and it matches task parameters
52
- current_resource = call_for_load_current_resource
53
- expect(current_resource.exists).to eq(true)
54
- expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
55
- expect(current_resource.task.parameters).to eq("-W")
56
- end
57
-
58
- it "does not converge the resource if it is already converged" do
59
- subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
60
- subject.run_action(:create)
61
- subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
62
- subject.run_action(:create)
63
- expect(subject).not_to be_updated_by_last_action
64
- end
65
-
66
- it "creates scheduled task and sets command arguments when arguments inclusive single quotes" do
67
- subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
68
- call_for_create_action
69
- # loading current resource again to check new task is creted and it matches task parameters
70
- current_resource = call_for_load_current_resource
71
- expect(current_resource.exists).to eq(true)
72
- expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
73
- expect(current_resource.task.parameters).to eq("-W -L 'C:\\chef\\chef-ad-join.log'")
74
- end
75
-
76
- it "does not converge the resource if it is already converged" do
77
- subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
78
- subject.run_action(:create)
79
- subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
80
- subject.run_action(:create)
81
- expect(subject).not_to be_updated_by_last_action
82
- end
83
-
84
- it "creates scheduled task and sets command arguments with spaces in command" do
85
- subject.command '"C:\\Program Files\\example\\program.exe" -arg1 --arg2'
86
- call_for_create_action
87
- current_resource = call_for_load_current_resource
88
- expect(current_resource.exists).to eq(true)
89
- expect(current_resource.task.application_name).to eq('"C:\\Program Files\\example\\program.exe"')
90
- expect(current_resource.task.parameters).to eq("-arg1 --arg2")
91
- end
92
-
93
- it "does not converge the resource if it is already converged" do
94
- subject.command '"C:\\Program Files\\example\\program.exe" -arg1 --arg2'
95
- subject.run_action(:create)
96
- subject.command '"C:\\Program Files\\example\\program.exe" -arg1 --arg2'
97
- subject.run_action(:create)
98
- expect(subject).not_to be_updated_by_last_action
99
- end
100
-
101
- it "creates scheduled task and sets command arguments with spaces in arguments" do
102
- subject.command 'powershell.exe -file "C:\\Program Files\\app\\script.ps1"'
103
- call_for_create_action
104
- current_resource = call_for_load_current_resource
105
- expect(current_resource.exists).to eq(true)
106
- expect(current_resource.task.application_name).to eq("powershell.exe")
107
- expect(current_resource.task.parameters).to eq('-file "C:\\Program Files\\app\\script.ps1"')
108
- end
109
-
110
- it "does not converge the resource if it is already converged" do
111
- subject.command 'powershell.exe -file "C:\\Program Files\\app\\script.ps1"'
112
- subject.run_action(:create)
113
- subject.command 'powershell.exe -file "C:\\Program Files\\app\\script.ps1"'
114
- subject.run_action(:create)
115
- expect(subject).not_to be_updated_by_last_action
116
- end
117
-
118
- it "creates scheduled task and sets command arguments" do
119
- subject.command "ping http://www.google.com"
120
- call_for_create_action
121
- # loading current resource again to check new task is creted and it matches task parameters
122
- current_resource = call_for_load_current_resource
123
- expect(current_resource.exists).to eq(true)
124
- expect(current_resource.task.application_name).to eq("ping")
125
- expect(current_resource.task.parameters).to eq("http://www.google.com")
126
- end
127
-
128
- it "does not converge the resource if it is already converged" do
129
- subject.command "ping http://www.google.com"
130
- subject.run_action(:create)
131
- subject.command "ping http://www.google.com"
132
- subject.run_action(:create)
133
- expect(subject).not_to be_updated_by_last_action
134
- end
135
- end
136
-
137
- context "Without Arguments" do
138
- it "creates scheduled task and sets command arguments" do
139
- subject.command ChefUtils::Dist::Infra::CLIENT
140
- call_for_create_action
141
- # loading current resource again to check new task is creted and it matches task parameters
142
- current_resource = call_for_load_current_resource
143
- expect(current_resource.exists).to eq(true)
144
- expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
145
- expect(current_resource.task.parameters).to be_empty
146
- end
147
-
148
- it "does not converge the resource if it is already converged" do
149
- subject.command ChefUtils::Dist::Infra::CLIENT
150
- subject.run_action(:create)
151
- subject.command ChefUtils::Dist::Infra::CLIENT
152
- subject.run_action(:create)
153
- expect(subject).not_to be_updated_by_last_action
154
- end
155
- end
156
-
157
- it "creates scheduled task and Re-sets command arguments" do
158
- subject.command 'powershell.exe -file "C:\\Program Files\\app\\script.ps1"'
159
- subject.run_action(:create)
160
- current_resource = call_for_load_current_resource
161
- expect(current_resource.task.application_name).to eq("powershell.exe")
162
- expect(current_resource.task.parameters).to eq('-file "C:\\Program Files\\app\\script.ps1"')
163
-
164
- subject.command "powershell.exe"
165
- subject.run_action(:create)
166
- current_resource = call_for_load_current_resource
167
- expect(current_resource.task.application_name).to eq("powershell.exe")
168
- expect(current_resource.task.parameters).to be_empty
169
- expect(subject).to be_updated_by_last_action
170
- end
171
- end
172
-
173
- context "when description is passed" do
174
- subject do
175
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
176
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
177
- new_resource.command task_name
178
- # Make sure MM/DD/YYYY is accepted
179
- new_resource.start_day "09/20/2017"
180
- new_resource.frequency :hourly
181
- new_resource
182
- end
183
-
184
- let(:some_description) { "this is test description" }
185
-
186
- it "create the task and sets its description" do
187
- subject.description some_description
188
- call_for_create_action
189
- # loading current resource again to check new task is creted and it matches task parameters
190
- current_resource = call_for_load_current_resource
191
- expect(current_resource.exists).to eq(true)
192
- expect(current_resource.task.description).to eq(some_description)
193
- end
194
-
195
- it "does not converge the resource if it is already converged" do
196
- subject.description some_description
197
- subject.run_action(:create)
198
- subject.description some_description
199
- subject.run_action(:create)
200
- expect(subject).not_to be_updated_by_last_action
201
- end
202
-
203
- it "updates task with new description if task already exist" do
204
- subject.description some_description
205
- subject.run_action(:create)
206
- subject.description "test description"
207
- subject.run_action(:create)
208
- expect(subject).to be_updated_by_last_action
209
- end
210
- end
211
-
212
- context "when frequency_modifier are not passed" do
213
- subject do
214
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
215
- new_resource.command task_name
216
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
217
- # Make sure MM/DD/YYYY is accepted
218
- new_resource.start_day "09/20/2017"
219
- new_resource.frequency :hourly
220
- new_resource
221
- end
222
-
223
- it "creates a scheduled task to run every 1 hr starting on 09/20/2017" do
224
- call_for_create_action
225
- # loading current resource again to check new task is creted and it matches task parameters
226
- current_resource = call_for_load_current_resource
227
- expect(current_resource.exists).to eq(true)
228
- expect(current_resource.task.application_name).to eq(task_name)
229
- trigger_details = current_resource.task.trigger(0)
230
- expect(trigger_details[:start_year]).to eq("2017")
231
- expect(trigger_details[:start_month]).to eq("09")
232
- expect(trigger_details[:start_day]).to eq("20")
233
- expect(trigger_details[:minutes_interval]).to eq(60)
234
- expect(trigger_details[:trigger_type]).to eq(1)
235
- end
236
-
237
- it "does not converge the resource if it is already converged" do
238
- subject.run_action(:create)
239
- subject.run_action(:create)
240
- expect(subject).not_to be_updated_by_last_action
241
- end
242
- end
243
-
244
- context "frequency :minute" do
245
- subject do
246
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
247
- new_resource.command task_name
248
- new_resource.run_level :highest
249
- new_resource.frequency :minute
250
- new_resource.frequency_modifier 15
251
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
252
- new_resource
253
- end
254
-
255
- it "creates a scheduled task that runs after every 15 minutes" do
256
- call_for_create_action
257
- # loading current resource again to check new task is creted and it matches task parameters
258
- current_resource = call_for_load_current_resource
259
- expect(current_resource.exists).to eq(true)
260
- trigger_details = current_resource.task.trigger(0)
261
- expect(current_resource.task.application_name).to eq(task_name)
262
- expect(trigger_details[:minutes_interval]).to eq(15)
263
- expect(trigger_details[:trigger_type]).to eq(1)
264
- expect(current_resource.task.principals[:run_level]).to eq(1)
265
- end
266
-
267
- it "does not converge the resource if it is already converged" do
268
- subject.run_action(:create)
269
- subject.run_action(:create)
270
- expect(subject).not_to be_updated_by_last_action
271
- end
272
-
273
- it "updates a scheduled task when frequency_modifier updated to 20" do
274
- subject.run_action(:create)
275
- current_resource = call_for_load_current_resource
276
- trigger_details = current_resource.task.trigger(0)
277
- expect(trigger_details[:minutes_interval]).to eq(15)
278
- subject.frequency_modifier 20
279
- subject.run_action(:create)
280
- expect(subject).to be_updated_by_last_action
281
- # #loading current resource again to check new task is creted and it matches task parameters
282
- current_resource = call_for_load_current_resource
283
- expect(current_resource.exists).to eq(true)
284
- trigger_details = current_resource.task.trigger(0)
285
- expect(current_resource.task.application_name).to eq(task_name)
286
- expect(trigger_details[:minutes_interval]).to eq(20)
287
- expect(trigger_details[:trigger_type]).to eq(1)
288
- expect(current_resource.task.principals[:run_level]).to eq(1)
289
- end
290
- end
291
-
292
- context "frequency :hourly" do
293
- subject do
294
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
295
- new_resource.command task_name
296
- new_resource.run_level :highest
297
- new_resource.frequency :hourly
298
- new_resource.frequency_modifier 3
299
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
300
- new_resource
301
- end
302
-
303
- it "creates a scheduled task that runs after every 3 hrs" do
304
- call_for_create_action
305
- # loading current resource again to check new task is creted and it matches task parameters
306
- current_resource = call_for_load_current_resource
307
- expect(current_resource.exists).to eq(true)
308
- trigger_details = current_resource.task.trigger(0)
309
- expect(current_resource.task.application_name).to eq(task_name)
310
- expect(trigger_details[:minutes_interval]).to eq(180)
311
- expect(trigger_details[:trigger_type]).to eq(1)
312
- end
313
-
314
- it "does not converge the resource if it is already converged" do
315
- subject.run_action(:create)
316
- subject.run_action(:create)
317
- expect(subject).not_to be_updated_by_last_action
318
- end
319
-
320
- it "updates a scheduled task to run every 5 hrs when frequency modifier updated to 5" do
321
- subject.run_action(:create)
322
- current_resource = call_for_load_current_resource
323
- trigger_details = current_resource.task.trigger(0)
324
- expect(trigger_details[:minutes_interval]).to eq(180)
325
- # updating frequency modifier to 5 from 3
326
- subject.frequency_modifier 5
327
- subject.run_action(:create)
328
- expect(subject).to be_updated_by_last_action
329
- current_resource = call_for_load_current_resource
330
- expect(current_resource.exists).to eq(true)
331
- trigger_details = current_resource.task.trigger(0)
332
- expect(current_resource.task.application_name).to eq(task_name)
333
- expect(trigger_details[:minutes_interval]).to eq(300)
334
- expect(trigger_details[:trigger_type]).to eq(1)
335
- end
336
- end
337
-
338
- context "frequency :daily" do
339
- subject do
340
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
341
- new_resource.command task_name
342
- new_resource.run_level :highest
343
- new_resource.frequency :daily
344
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
345
- new_resource
346
- end
347
-
348
- it "creates a scheduled task to run daily" do
349
- call_for_create_action
350
- # loading current resource again to check new task is creted and it matches task parameters
351
- current_resource = call_for_load_current_resource
352
- expect(current_resource.exists).to eq(true)
353
- trigger_details = current_resource.task.trigger(0)
354
- expect(current_resource.task.application_name).to eq(task_name)
355
- expect(trigger_details[:trigger_type]).to eq(2)
356
- expect(current_resource.task.principals[:run_level]).to eq(1)
357
- expect(trigger_details[:type][:days_interval]).to eq(1)
358
- end
359
-
360
- it "does not converge the resource if it is already converged" do
361
- subject.run_action(:create)
362
- subject.run_action(:create)
363
- expect(subject).not_to be_updated_by_last_action
364
- end
365
- end
366
-
367
- describe "frequency :monthly" do
368
- subject do
369
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
370
- new_resource.command task_name
371
- new_resource.run_level :highest
372
- new_resource.frequency :monthly
373
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
374
- new_resource
375
- end
376
-
377
- context "with start_day and start_time" do
378
- before do
379
- subject.start_day "02/12/2018"
380
- subject.start_time "05:15"
381
- end
382
-
383
- it "if day property is not set creates a scheduled task to run monthly on first day of the month" do
384
- call_for_create_action
385
- # loading current resource again to check new task is creted and it matches task parameters
386
- current_resource = call_for_load_current_resource
387
- expect(current_resource.exists).to eq(true)
388
- trigger_details = current_resource.task.trigger(0)
389
- expect(current_resource.task.application_name).to eq(task_name)
390
- expect(trigger_details[:trigger_type]).to eq(4)
391
- expect(current_resource.task.principals[:run_level]).to eq(1)
392
- expect(trigger_details[:type][:days]).to eq(1)
393
- expect(trigger_details[:type][:months]).to eq(4095)
394
- end
395
-
396
- it "does not converge the resource if it is already converged" do
397
- subject.run_action(:create)
398
- subject.run_action(:create)
399
- expect(subject).not_to be_updated_by_last_action
400
- end
401
-
402
- it "creates a scheduled task to run monthly on first, second and third day of the month" do
403
- subject.day "1, 2, 3"
404
- call_for_create_action
405
- # loading current resource again to check new task is created and it matches task parameters
406
- current_resource = call_for_load_current_resource
407
- expect(current_resource.exists).to eq(true)
408
- trigger_details = current_resource.task.trigger(0)
409
- expect(current_resource.task.application_name).to eq(task_name)
410
- expect(trigger_details[:trigger_type]).to eq(4)
411
- expect(current_resource.task.principals[:run_level]).to eq(1)
412
- expect(trigger_details[:type][:days]).to eq(7)
413
- expect(trigger_details[:type][:months]).to eq(4095)
414
- end
415
-
416
- it "does not converge the resource if it is already converged" do
417
- subject.day "1, 2, 3"
418
- subject.run_action(:create)
419
- subject.run_action(:create)
420
- expect(subject).not_to be_updated_by_last_action
421
- end
422
-
423
- it "creates a scheduled task to run monthly on 1, 2, 3, 4, 8, 20, 21, 15, 28, 31 day of the month" do
424
- subject.day "1, 2, 3, 4, 8, 20, 21, 15, 28, 31"
425
- call_for_create_action
426
- # loading current resource again to check new task is created and it matches task parameters
427
- current_resource = call_for_load_current_resource
428
- expect(current_resource.exists).to eq(true)
429
- trigger_details = current_resource.task.trigger(0)
430
- expect(current_resource.task.application_name).to eq(task_name)
431
- expect(trigger_details[:trigger_type]).to eq(4)
432
- expect(current_resource.task.principals[:run_level]).to eq(1)
433
- expect(trigger_details[:type][:days]).to eq(1209548943) # TODO:: windows_task_provider.send(:days_of_month)
434
- expect(trigger_details[:type][:months]).to eq(4095) # windows_task_provider.send(:months_of_year)
435
- end
436
-
437
- it "does not converge the resource if it is already converged" do
438
- subject.day "1, 2, 3, 4, 8, 20, 21, 15, 28, 31"
439
- subject.run_action(:create)
440
- subject.run_action(:create)
441
- expect(subject).not_to be_updated_by_last_action
442
- end
443
-
444
- it "creates a scheduled task to run monthly on Jan, Feb, Apr, Dec on 1st 2nd 3rd 4th 8th and 20th day of these months" do
445
- subject.day "1, 2, 3, 4, 8, 20, 21, 30"
446
- subject.months "Jan, Feb, May, Sep, Dec"
447
- call_for_create_action
448
- # loading current resource again to check new task is created and it matches task parameters
449
- current_resource = call_for_load_current_resource
450
- expect(current_resource.exists).to eq(true)
451
- trigger_details = current_resource.task.trigger(0)
452
- expect(current_resource.task.application_name).to eq(task_name)
453
- expect(trigger_details[:trigger_type]).to eq(4)
454
- expect(current_resource.task.principals[:run_level]).to eq(1)
455
- expect(trigger_details[:type][:days]).to eq(538443919) # TODO:windows_task_provider.send(:days_of_month)
456
- expect(trigger_details[:type][:months]).to eq(2323) # windows_task_provider.send(:months_of_year)
457
- end
458
-
459
- it "does not converge the resource if it is already converged" do
460
- subject.day "1, 2, 3, 4, 8, 20, 21, 30"
461
- subject.months "Jan, Feb, May, Sep, Dec"
462
- subject.run_action(:create)
463
- subject.run_action(:create)
464
- expect(subject).not_to be_updated_by_last_action
465
- end
466
-
467
- it "creates a scheduled task to run monthly by giving day option with frequency_modifier" do
468
- subject.frequency_modifier "First"
469
- subject.day "Mon, Fri, Sun"
470
- call_for_create_action
471
- # loading current resource again to check new task is created and it matches task parameters
472
- current_resource = call_for_load_current_resource
473
- expect(current_resource.exists).to eq(true)
474
- trigger_details = current_resource.task.trigger(0)
475
- expect(current_resource.task.application_name).to eq(task_name)
476
- expect(trigger_details[:trigger_type]).to eq(5)
477
- expect(current_resource.task.principals[:run_level]).to eq(1)
478
- expect(trigger_details[:type][:days_of_week]).to eq(35)
479
- expect(trigger_details[:type][:weeks_of_month]).to eq(1)
480
- expect(trigger_details[:type][:months]).to eq(4095) # windows_task_provider.send(:months_of_year)
481
- end
482
-
483
- it "does not converge the resource if it is already converged" do
484
- subject.frequency_modifier "First"
485
- subject.day "Mon, Fri, Sun"
486
- subject.run_action(:create)
487
- subject.run_action(:create)
488
- expect(subject).not_to be_updated_by_last_action
489
- end
490
- end
491
-
492
- context "with frequency_modifier" do
493
- subject do
494
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
495
- new_resource.command task_name
496
- new_resource.run_level :highest
497
- new_resource.frequency :monthly
498
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
499
- new_resource
500
- end
501
-
502
- it "raises argument error if frequency_modifier is 'first, second' and day is not provided." do
503
- subject.frequency_modifier "first, second"
504
- expect { subject.after_created }.to raise_error("Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be separated by comma.")
505
- end
506
-
507
- it "raises argument error if months is passed along with frequency_modifier" do
508
- subject.frequency_modifier 3
509
- subject.months "Jan, Mar"
510
- expect { subject.after_created }.to raise_error("For frequency :monthly either use property months or frequency_modifier to set months.")
511
- end
512
-
513
- it "not raises any Argument error if frequency_modifier set as 'first, second, third' and day is provided" do
514
- subject.frequency_modifier "first, second, third"
515
- subject.day "Mon, Fri"
516
- expect { subject.after_created }.not_to raise_error
517
- end
518
-
519
- it "not raises any Argument error if frequency_modifier 2 " do
520
- subject.frequency_modifier 2
521
- subject.day "Mon, Sun"
522
- expect { subject.after_created }.not_to raise_error
523
- end
524
-
525
- it "raises argument error if frequency_modifier > 12" do
526
- subject.frequency_modifier 13
527
- expect { subject.after_created }.to raise_error("frequency_modifier value 13 is invalid. Valid values for :monthly frequency are 1 - 12, 'FIRST', 'SECOND', 'THIRD', 'FOURTH', 'LAST'.")
528
- end
529
-
530
- it "raises argument error if frequency_modifier < 1" do
531
- subject.frequency_modifier 0
532
- expect { subject.after_created }.to raise_error("frequency_modifier value 0 is invalid. Valid values for :monthly frequency are 1 - 12, 'FIRST', 'SECOND', 'THIRD', 'FOURTH', 'LAST'.")
533
- end
534
-
535
- it "creates scheduled task to run task monthly on Monday and Friday of first, second and third week of month" do
536
- subject.frequency_modifier "first, second, third"
537
- subject.day "Mon, Fri"
538
- expect { subject.after_created }.not_to raise_error
539
- call_for_create_action
540
- current_resource = call_for_load_current_resource
541
- expect(current_resource.exists).to eq(true)
542
- trigger_details = current_resource.task.trigger(0)
543
- expect(current_resource.task.application_name).to eq(task_name)
544
- expect(trigger_details[:trigger_type]).to eq(5)
545
- expect(trigger_details[:type][:months]).to eq(4095)
546
- expect(trigger_details[:type][:weeks_of_month]).to eq(7)
547
- expect(trigger_details[:type][:days_of_week]).to eq(34)
548
- end
549
-
550
- it "does not converge the resource if it is already converged" do
551
- subject.frequency_modifier "first, second, third"
552
- subject.day "Mon, Fri"
553
- subject.run_action(:create)
554
- subject.run_action(:create)
555
- expect(subject).not_to be_updated_by_last_action
556
- end
557
-
558
- it "creates scheduled task to run task monthly on every 6 months when frequency_modifier is 6 and to run on 1st and 2nd day of month" do
559
- subject.frequency_modifier 6
560
- subject.day "1, 2"
561
- expect { subject.after_created }.not_to raise_error
562
- call_for_create_action
563
- current_resource = call_for_load_current_resource
564
- expect(current_resource.exists).to eq(true)
565
- trigger_details = current_resource.task.trigger(0)
566
- expect(current_resource.task.application_name).to eq(task_name)
567
- expect(trigger_details[:trigger_type]).to eq(4)
568
- expect(trigger_details[:type][:months]).to eq(2080)
569
- expect(trigger_details[:type][:days]).to eq(3)
570
- end
571
-
572
- it "does not converge the resource if it is already converged" do
573
- subject.frequency_modifier 6
574
- subject.day "1, 2"
575
- subject.run_action(:create)
576
- subject.run_action(:create)
577
- expect(subject).not_to be_updated_by_last_action
578
- end
579
- end
580
-
581
- context "when day is set as last or lastday for frequency :monthly" do
582
- subject do
583
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
584
- new_resource.command task_name
585
- new_resource.run_level :highest
586
- new_resource.frequency :monthly
587
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
588
- new_resource
589
- end
590
-
591
- it "creates scheduled task to run monthly to run last day of the month" do
592
- subject.day "last"
593
- expect { subject.after_created }.not_to raise_error
594
- call_for_create_action
595
- current_resource = call_for_load_current_resource
596
- expect(current_resource.exists).to eq(true)
597
- trigger_details = current_resource.task.trigger(0)
598
- expect(current_resource.task.application_name).to eq(task_name)
599
- expect(trigger_details[:trigger_type]).to eq(4)
600
- expect(trigger_details[:type][:months]).to eq(4095)
601
- expect(trigger_details[:type][:days]).to eq(0)
602
- expect(trigger_details[:run_on_last_day_of_month]).to eq(true)
603
- end
604
-
605
- it "does not converge the resource if it is already converged" do
606
- subject.day "last"
607
- subject.run_action(:create)
608
- subject.run_action(:create)
609
- expect(subject).not_to be_updated_by_last_action
610
- end
611
-
612
- it "day property set as 'lastday' creates scheduled task to run monthly to run last day of the month" do
613
- subject.day "lastday"
614
- expect { subject.after_created }.not_to raise_error
615
- call_for_create_action
616
- current_resource = call_for_load_current_resource
617
- expect(current_resource.exists).to eq(true)
618
- trigger_details = current_resource.task.trigger(0)
619
- expect(current_resource.task.application_name).to eq(task_name)
620
- expect(trigger_details[:trigger_type]).to eq(4)
621
- expect(trigger_details[:type][:months]).to eq(4095)
622
- expect(trigger_details[:type][:days]).to eq(0)
623
- expect(trigger_details[:run_on_last_day_of_month]).to eq(true)
624
- end
625
-
626
- it "does not converge the resource if it is already converged" do
627
- subject.day "lastday"
628
- subject.run_action(:create)
629
- subject.run_action(:create)
630
- expect(subject).not_to be_updated_by_last_action
631
- end
632
- end
633
-
634
- context "when frequency_modifier is set as last for frequency :monthly" do
635
- it "creates scheduled task to run monthly on last week of the month" do
636
- subject.frequency_modifier "last"
637
- subject.day "Mon, Fri"
638
- expect { subject.after_created }.not_to raise_error
639
- call_for_create_action
640
- current_resource = call_for_load_current_resource
641
- expect(current_resource.exists).to eq(true)
642
- trigger_details = current_resource.task.trigger(0)
643
- expect(current_resource.task.application_name).to eq(task_name)
644
- expect(trigger_details[:trigger_type]).to eq(5)
645
- expect(trigger_details[:type][:months]).to eq(4095)
646
- expect(trigger_details[:type][:days_of_week]).to eq(34)
647
- expect(trigger_details[:run_on_last_week_of_month]).to eq(true)
648
- end
649
-
650
- it "does not converge the resource if it is already converged" do
651
- subject.frequency_modifier "last"
652
- subject.day "Mon, Fri"
653
- subject.run_action(:create)
654
- subject.run_action(:create)
655
- expect(subject).not_to be_updated_by_last_action
656
- end
657
- end
658
-
659
- context "when wild card (*) set as months" do
660
- it "creates the scheduled task to run on 1st day of the all months" do
661
- subject.months "*"
662
- expect { subject.after_created }.not_to raise_error
663
- call_for_create_action
664
- current_resource = call_for_load_current_resource
665
- expect(current_resource.exists).to eq(true)
666
- trigger_details = current_resource.task.trigger(0)
667
- expect(current_resource.task.application_name).to eq(task_name)
668
- expect(trigger_details[:trigger_type]).to eq(4)
669
- expect(trigger_details[:type][:months]).to eq(4095)
670
- expect(trigger_details[:type][:days]).to eq(1)
671
- end
672
-
673
- it "does not converge the resource if it is already converged" do
674
- subject.months "*"
675
- subject.run_action(:create)
676
- subject.run_action(:create)
677
- expect(subject).not_to be_updated_by_last_action
678
- end
679
- end
680
-
681
- context "when wild card (*) set as day" do
682
- it "raises argument error" do
683
- subject.day "*"
684
- expect { subject.after_created }.to raise_error("day wild card (*) is only valid with frequency :weekly")
685
- end
686
- end
687
-
688
- context "Pass either start day or start time by passing day compulsory or only pass frequency_modifier" do
689
- subject do
690
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
691
- new_resource.command task_name
692
- new_resource.run_level :highest
693
- new_resource.frequency :monthly
694
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
695
- new_resource
696
- end
697
-
698
- it "creates a scheduled task to run monthly on second day of the month" do
699
- subject.day "2"
700
- subject.start_day "03/07/2018"
701
- call_for_create_action
702
- # loading current resource again to check new task is creted and it matches task parameters
703
- current_resource = call_for_load_current_resource
704
- expect(current_resource.exists).to eq(true)
705
- trigger_details = current_resource.task.trigger(0)
706
- expect(current_resource.task.application_name).to eq(task_name)
707
- expect(trigger_details[:trigger_type]).to eq(4)
708
- expect(current_resource.task.principals[:run_level]).to eq(1)
709
- expect(trigger_details[:type][:days]).to eq(2)
710
- expect(trigger_details[:type][:months]).to eq(4095)
711
- end
712
-
713
- it "does not converge the resource if it is already converged" do
714
- subject.day "2"
715
- subject.start_day "03/07/2018"
716
- subject.run_action(:create)
717
- subject.run_action(:create)
718
- expect(subject).not_to be_updated_by_last_action
719
- end
720
-
721
- it "creates a scheduled task to run monthly on first, second and third day of the month" do
722
- subject.day "1,2,3"
723
- call_for_create_action
724
- # loading current resource again to check new task is creted and it matches task parameters
725
- current_resource = call_for_load_current_resource
726
- expect(current_resource.exists).to eq(true)
727
- trigger_details = current_resource.task.trigger(0)
728
- expect(current_resource.task.application_name).to eq(task_name)
729
- expect(trigger_details[:trigger_type]).to eq(4)
730
- expect(current_resource.task.principals[:run_level]).to eq(1)
731
- expect(trigger_details[:type][:days]).to eq(7)
732
- expect(trigger_details[:type][:months]).to eq(4095)
733
- end
734
-
735
- it "does not converge the resource if it is already converged" do
736
- subject.day "1,2,3"
737
- subject.run_action(:create)
738
- subject.run_action(:create)
739
- expect(subject).not_to be_updated_by_last_action
740
- end
741
-
742
- it "creates a scheduled task to run monthly on each wednesday of the month" do
743
- subject.frequency_modifier "1"
744
- call_for_create_action
745
- # loading current resource again to check new task is creted and it matches task parameters
746
- current_resource = call_for_load_current_resource
747
- expect(current_resource.exists).to eq(true)
748
- trigger_details = current_resource.task.trigger(0)
749
- expect(current_resource.task.application_name).to eq(task_name)
750
- expect(trigger_details[:trigger_type]).to eq(4)
751
- expect(current_resource.task.principals[:run_level]).to eq(1)
752
- expect(trigger_details[:type][:days]).to eq(1)
753
- expect(trigger_details[:type][:months]).to eq(4095) # windows_task_provider.send(:months_of_year)
754
- end
755
-
756
- it "does not converge the resource if it is already converged" do
757
- subject.frequency_modifier "2"
758
- subject.run_action(:create)
759
- subject.run_action(:create)
760
- expect(subject).not_to be_updated_by_last_action
761
- end
762
-
763
- it "creates a scheduled task to run monthly on each wednesday of the month" do
764
- subject.frequency_modifier "2"
765
- subject.months = nil
766
- call_for_create_action
767
- # loading current resource again to check new task is creted and it matches task parameters
768
- current_resource = call_for_load_current_resource
769
- expect(current_resource.exists).to eq(true)
770
- trigger_details = current_resource.task.trigger(0)
771
- # loading current resource
772
- expect(current_resource.task.application_name).to eq(task_name)
773
- expect(trigger_details[:trigger_type]).to eq(4)
774
- expect(current_resource.task.principals[:run_level]).to eq(1)
775
- expect(trigger_details[:type][:days]).to eq(1)
776
- expect(trigger_details[:type][:months]).to eq(2730) # windows_task_provider.send(:months_of_year)
777
- end
778
-
779
- it "does not converge the resource if it is already converged" do
780
- subject.frequency_modifier "2"
781
- subject.months = nil
782
- subject.run_action(:create)
783
- subject.run_action(:create)
784
- expect(subject).not_to be_updated_by_last_action
785
- end
786
- end
787
- end
788
-
789
- ## ToDO: Add functional specs to handle frequency monthly with frequency modifier set as 1-12
790
- context "frequency :once" do
791
- subject do
792
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
793
- new_resource.command task_name
794
- new_resource.run_level :highest
795
- new_resource.frequency :once
796
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
797
- new_resource
798
- end
799
-
800
- context "when start_time is not provided" do
801
- it "raises argument error" do
802
- expect { subject.after_created }.to raise_error("`start_time` needs to be provided with `frequency :once`")
803
- end
804
- end
805
-
806
- context "when start_time is provided" do
807
- it "creates the scheduled task to run once at 5pm" do
808
- subject.start_time "17:00"
809
- call_for_create_action
810
- # loading current resource again to check new task is creted and it matches task parameters
811
- current_resource = call_for_load_current_resource
812
- expect(current_resource.exists).to eq(true)
813
- trigger_details = current_resource.task.trigger(0)
814
- expect(current_resource.task.application_name).to eq(task_name)
815
- expect(trigger_details[:trigger_type]).to eq(1)
816
- expect(current_resource.task.principals[:run_level]).to eq(1)
817
- expect("#{trigger_details[:start_hour]}:#{trigger_details[:start_minute]}" ).to eq(subject.start_time)
818
- end
819
-
820
- it "does not converge the resource if it is already converged" do
821
- subject.start_time "17:00"
822
- subject.run_action(:create)
823
- subject.run_action(:create)
824
- expect(subject).not_to be_updated_by_last_action
825
- end
826
- end
827
- end
828
-
829
- context "frequency :weekly" do
830
- subject do
831
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
832
- new_resource.command task_name
833
- new_resource.run_level :highest
834
- new_resource.frequency :weekly
835
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
836
- new_resource
837
- end
838
-
839
- it "creates the scheduled task to run weekly" do
840
- call_for_create_action
841
- # loading current resource again to check new task is creted and it matches task parameters
842
- current_resource = call_for_load_current_resource
843
- expect(current_resource.exists).to eq(true)
844
- trigger_details = current_resource.task.trigger(0)
845
- expect(current_resource.task.application_name).to eq(task_name)
846
- expect(current_resource.task.principals[:run_level]).to eq(1)
847
- expect(trigger_details[:trigger_type]).to eq(3)
848
- expect(trigger_details[:type][:weeks_interval]).to eq(1)
849
- end
850
-
851
- it "does not converge the resource if it is already converged" do
852
- subject.run_action(:create)
853
- subject.run_action(:create)
854
- expect(subject).not_to be_updated_by_last_action
855
- end
856
-
857
- context "when wild card (*) is set as day" do
858
- it "creates hte scheduled task for all days of week" do
859
- subject.day "*"
860
- call_for_create_action
861
- # loading current resource again to check new task is creted and it matches task parameters
862
- current_resource = call_for_load_current_resource
863
- expect(current_resource.exists).to eq(true)
864
- trigger_details = current_resource.task.trigger(0)
865
- expect(current_resource.task.application_name).to eq(task_name)
866
- expect(current_resource.task.principals[:run_level]).to eq(1)
867
- expect(trigger_details[:trigger_type]).to eq(3)
868
- expect(trigger_details[:type][:weeks_interval]).to eq(1)
869
- expect(trigger_details[:type][:days_of_week]).to eq(127)
870
- end
871
-
872
- it "does not converge the resource if it is already converged" do
873
- subject.day "*"
874
- subject.run_action(:create)
875
- subject.run_action(:create)
876
- expect(subject).not_to be_updated_by_last_action
877
- end
878
- end
879
-
880
- context "when days are provided" do
881
- it "creates the scheduled task to run on particular days" do
882
- subject.day "Mon, Fri"
883
- subject.frequency_modifier 2
884
- call_for_create_action
885
- # loading current resource again to check new task is creted and it matches task parameters
886
- current_resource = call_for_load_current_resource
887
- expect(current_resource.exists).to eq(true)
888
- trigger_details = current_resource.task.trigger(0)
889
- expect(current_resource.task.application_name).to eq(task_name)
890
- expect(current_resource.task.principals[:run_level]).to eq(1)
891
- expect(trigger_details[:trigger_type]).to eq(3)
892
- expect(trigger_details[:type][:weeks_interval]).to eq(2)
893
- expect(trigger_details[:type][:days_of_week]).to eq(34)
894
- end
895
-
896
- it "updates the scheduled task to run on if frequency_modifier is updated" do
897
- subject.day "sun"
898
- subject.frequency_modifier 2
899
- subject.run_action(:create)
900
- current_resource = call_for_load_current_resource
901
- trigger_details = current_resource.task.trigger(0)
902
- expect(trigger_details[:type][:weeks_interval]).to eq(2)
903
- expect(trigger_details[:type][:days_of_week]).to eq(1)
904
- subject.day "Mon, Sun"
905
- subject.frequency_modifier 3
906
- # call for update
907
- subject.run_action(:create)
908
- expect(subject).to be_updated_by_last_action
909
- current_resource = call_for_load_current_resource
910
- expect(current_resource.exists).to eq(true)
911
- trigger_details = current_resource.task.trigger(0)
912
- expect(current_resource.task.application_name).to eq(task_name)
913
- expect(current_resource.task.principals[:run_level]).to eq(1)
914
- expect(trigger_details[:trigger_type]).to eq(3)
915
- expect(trigger_details[:type][:weeks_interval]).to eq(3)
916
- expect(trigger_details[:type][:days_of_week]).to eq(3)
917
- end
918
-
919
- it "does not converge the resource if it is already converged" do
920
- subject.day "Mon, Fri"
921
- subject.frequency_modifier 3
922
- subject.run_action(:create)
923
- subject.run_action(:create)
924
- expect(subject).not_to be_updated_by_last_action
925
- end
926
- end
927
-
928
- context "when day property set as last" do
929
- it "raises argument error" do
930
- subject.day "last"
931
- expect { subject.after_created }.to raise_error("day values 1-31 or last is only valid with frequency :monthly")
932
- end
933
- end
934
-
935
- context "when invalid day is passed" do
936
- it "raises error" do
937
- subject.day "abc"
938
- expect { subject.after_created }.to raise_error("day property invalid. Only valid values are: MON, TUE, WED, THU, FRI, SAT, SUN, *. Multiple values must be separated by a comma.")
939
- end
940
- end
941
-
942
- context "when months are passed" do
943
- it "raises error that months are supported only when frequency=:monthly" do
944
- subject.months "Jan"
945
- expect { subject.after_created }.to raise_error("months property is only valid for tasks that run monthly")
946
- end
947
- end
948
-
949
- context "when start_day is not set" do
950
- it "does not converge the resource if it is already converged" do
951
- subject.run_action(:create)
952
- subject.run_action(:create)
953
- expect(subject).not_to be_updated_by_last_action
954
- end
955
-
956
- it "updates the day if start_day is not provided and user updates day property" do
957
- skip "Unable to run this test case since start_day is current system date which can be different each time so can't verify the dynamic values"
958
- subject.run_action(:create)
959
- current_resource = call_for_load_current_resource
960
- expect(current_resource.exists).to eq(true)
961
- trigger_details = current_resource.task.trigger(0)
962
- expect(trigger_details[:type][:days_of_week]).to eq(8)
963
- subject.day "Sat"
964
- subject.run_action(:create)
965
- # #loading current resource again to check new task is creted and it matches task parameters
966
- current_resource = call_for_load_current_resource
967
- expect(current_resource.exists).to eq(true)
968
- trigger_details = current_resource.task.trigger(0)
969
- expect(current_resource.task.application_name).to eq(task_name)
970
- expect(current_resource.task.principals[:run_level]).to eq(1)
971
- expect(trigger_details[:trigger_type]).to eq(3)
972
- expect(trigger_details[:type][:weeks_interval]).to eq(1)
973
- expect(trigger_details[:type][:days_of_week]).to eq(64)
974
- end
975
- end
976
- end
977
-
978
- context "frequency :onstart" do
979
- subject do
980
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
981
- new_resource.command task_name
982
- new_resource.run_level :highest
983
- new_resource.frequency :onstart
984
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
985
- new_resource
986
- end
987
-
988
- it "creates the scheduled task to run at system start up" do
989
- call_for_create_action
990
- # loading current resource again to check new task is creted and it matches task parameters
991
- current_resource = call_for_load_current_resource
992
- expect(current_resource.exists).to eq(true)
993
- trigger_details = current_resource.task.trigger(0)
994
- expect(current_resource.task.application_name).to eq(task_name)
995
- expect(current_resource.task.principals[:run_level]).to eq(1)
996
- expect(trigger_details[:trigger_type]).to eq(8)
997
- end
998
-
999
- it "does not converge the resource if it is already converged" do
1000
- subject.run_action(:create)
1001
- subject.run_action(:create)
1002
- expect(subject).not_to be_updated_by_last_action
1003
- end
1004
-
1005
- context "when start_day and start_time is set" do
1006
- it "creates task to activate on '09/10/2018' at '15:00' when start_day = '09/10/2018' and start_time = '15:00' provided" do
1007
- subject.start_day "09/10/2018"
1008
- subject.start_time "15:00"
1009
- call_for_create_action
1010
- # loading current resource again to check new task is creted and it matches task parameters
1011
- current_resource = call_for_load_current_resource
1012
- expect(current_resource.exists).to eq(true)
1013
- trigger_details = current_resource.task.trigger(0)
1014
- expect(current_resource.task.application_name).to eq(task_name)
1015
- expect(trigger_details[:trigger_type]).to eq(8)
1016
- expect(trigger_details[:start_year]).to eq("2018")
1017
- expect(trigger_details[:start_month]).to eq("09")
1018
- expect(trigger_details[:start_day]).to eq("10")
1019
- expect(trigger_details[:start_hour]).to eq("15")
1020
- expect(trigger_details[:start_minute]).to eq("00")
1021
- end
1022
- end
1023
- end
1024
-
1025
- context "frequency :on_logon" do
1026
- subject do
1027
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1028
- new_resource.command task_name
1029
- new_resource.run_level :highest
1030
- new_resource.frequency :on_logon
1031
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1032
- new_resource
1033
- end
1034
-
1035
- it "creates the scheduled task to on logon" do
1036
- call_for_create_action
1037
- # loading current resource again to check new task is creted and it matches task parameters
1038
- current_resource = call_for_load_current_resource
1039
- expect(current_resource.exists).to eq(true)
1040
- trigger_details = current_resource.task.trigger(0)
1041
- expect(current_resource.task.application_name).to eq(task_name)
1042
- expect(current_resource.task.principals[:run_level]).to eq(1)
1043
- expect(trigger_details[:trigger_type]).to eq(9)
1044
- end
1045
-
1046
- it "does not converge the resource if it is already converged" do
1047
- subject.run_action(:create)
1048
- subject.run_action(:create)
1049
- expect(subject).not_to be_updated_by_last_action
1050
- end
1051
-
1052
- context "when start_day and start_time is set" do
1053
- it "creates task to activate on '09/10/2018' at '15:00' when start_day = '09/10/2018' and start_time = '15:00' provided" do
1054
- subject.start_day "09/10/2018"
1055
- subject.start_time "15:00"
1056
- call_for_create_action
1057
- # loading current resource again to check new task is creted and it matches task parameters
1058
- current_resource = call_for_load_current_resource
1059
- expect(current_resource.exists).to eq(true)
1060
- trigger_details = current_resource.task.trigger(0)
1061
- expect(current_resource.task.application_name).to eq(task_name)
1062
- expect(trigger_details[:trigger_type]).to eq(9)
1063
- expect(trigger_details[:start_year]).to eq("2018")
1064
- expect(trigger_details[:start_month]).to eq("09")
1065
- expect(trigger_details[:start_day]).to eq("10")
1066
- expect(trigger_details[:start_hour]).to eq("15")
1067
- expect(trigger_details[:start_minute]).to eq("00")
1068
- end
1069
- end
1070
- end
1071
-
1072
- context "frequency :on_idle" do
1073
- subject do
1074
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1075
- new_resource.command task_name
1076
- new_resource.run_level :highest
1077
- new_resource.frequency :on_idle
1078
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1079
- new_resource
1080
- end
1081
-
1082
- context "when idle_time is not passed" do
1083
- it "raises error" do
1084
- expect { subject.after_created }.to raise_error("idle_time value should be set for :on_idle frequency.")
1085
- end
1086
- end
1087
-
1088
- context "when idle_time is passed" do
1089
- it "creates the scheduled task to run when system is idle" do
1090
- subject.idle_time 20
1091
- call_for_create_action
1092
- # loading current resource again to check new task is creted and it matches task parameters
1093
- current_resource = call_for_load_current_resource
1094
- expect(current_resource.exists).to eq(true)
1095
- trigger_details = current_resource.task.trigger(0)
1096
- expect(current_resource.task.application_name).to eq(task_name)
1097
- expect(current_resource.task.principals[:run_level]).to eq(1)
1098
- expect(trigger_details[:trigger_type]).to eq(6)
1099
- expect(current_resource.task.settings[:idle_settings][:idle_duration]).to eq("PT20M")
1100
- expect(current_resource.task.settings[:run_only_if_idle]).to eq(true)
1101
- end
1102
-
1103
- it "does not converge the resource if it is already converged" do
1104
- subject.idle_time 20
1105
- subject.run_action(:create)
1106
- subject.run_action(:create)
1107
- expect(subject).not_to be_updated_by_last_action
1108
- end
1109
- end
1110
-
1111
- context "when start_day and start_time is set" do
1112
- it "creates task to activate on '09/10/2018' at '15:00' when start_day = '09/10/2018' and start_time = '15:00' provided" do
1113
- subject.idle_time 20
1114
- subject.start_day "09/10/2018"
1115
- subject.start_time "15:00"
1116
- call_for_create_action
1117
- # loading current resource again to check new task is creted and it matches task parameters
1118
- current_resource = call_for_load_current_resource
1119
- expect(current_resource.exists).to eq(true)
1120
- trigger_details = current_resource.task.trigger(0)
1121
- expect(current_resource.task.application_name).to eq(task_name)
1122
- expect(trigger_details[:trigger_type]).to eq(6)
1123
- expect(trigger_details[:start_year]).to eq("2018")
1124
- expect(trigger_details[:start_month]).to eq("09")
1125
- expect(trigger_details[:start_day]).to eq("10")
1126
- expect(trigger_details[:start_hour]).to eq("15")
1127
- expect(trigger_details[:start_minute]).to eq("00")
1128
- end
1129
- end
1130
- end
1131
-
1132
- context "when random_delay is passed" do
1133
- subject do
1134
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1135
- new_resource.command task_name
1136
- new_resource.run_level :highest
1137
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1138
- new_resource
1139
- end
1140
-
1141
- it "sets the random_delay for frequency :minute" do
1142
- subject.frequency :minute
1143
- subject.random_delay "20"
1144
- call_for_create_action
1145
- # loading current resource again to check new task is creted and it matches task parameters
1146
- current_resource = call_for_load_current_resource
1147
- expect(current_resource.exists).to eq(true)
1148
- trigger_details = current_resource.task.trigger(0)
1149
- expect(current_resource.task.application_name).to eq(task_name)
1150
- expect(current_resource.task.principals[:run_level]).to eq(1)
1151
- expect(trigger_details[:trigger_type]).to eq(1)
1152
- expect(trigger_details[:random_minutes_interval]).to eq(20)
1153
- end
1154
-
1155
- it "does not converge the resource if it is already converged" do
1156
- subject.frequency :minute
1157
- subject.random_delay "20"
1158
- subject.run_action(:create)
1159
- subject.run_action(:create)
1160
- expect(subject).not_to be_updated_by_last_action
1161
- end
1162
-
1163
- it "raises error if invalid random_delay is passed" do
1164
- subject.frequency :minute
1165
- subject.random_delay "abc"
1166
- expect { subject.after_created }.to raise_error("Invalid value passed for `random_delay`. Please pass seconds as an Integer (e.g. 60) or a String with numeric values only (e.g. '60').")
1167
- end
1168
-
1169
- it "raises error if random_delay is passed with frequency on_idle" do
1170
- subject.frequency :on_idle
1171
- subject.random_delay "20"
1172
- expect { subject.after_created }.to raise_error("`random_delay` property is supported only for frequency :once, :minute, :hourly, :daily, :weekly and :monthly")
1173
- end
1174
- end
1175
-
1176
- context "when battery options are passed" do
1177
- subject do
1178
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1179
- new_resource.command task_name
1180
- new_resource.run_level :highest
1181
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1182
- new_resource
1183
- end
1184
-
1185
- it "sets the default if options are not provided" do
1186
- subject.frequency :minute
1187
- call_for_create_action
1188
- # loading current resource again to check new task is created and it matches task parameters
1189
- current_resource = call_for_load_current_resource
1190
- expect(current_resource.exists).to eq(true)
1191
- expect(current_resource.stop_if_going_on_batteries).to eql(false)
1192
- expect(current_resource.disallow_start_if_on_batteries).to eql(false)
1193
- end
1194
-
1195
- it "sets disallow_start_if_on_batteries to true" do
1196
- subject.frequency :minute
1197
- subject.disallow_start_if_on_batteries true
1198
- call_for_create_action
1199
- # loading current resource again to check new task is created and it matches task parameters
1200
- current_resource = call_for_load_current_resource
1201
- expect(current_resource.exists).to eq(true)
1202
- expect(current_resource.task.settings[:disallow_start_if_on_batteries]).to eql(true)
1203
- end
1204
-
1205
- it "sets disallow_start_if_on_batteries to false" do
1206
- subject.frequency :minute
1207
- subject.disallow_start_if_on_batteries false
1208
- call_for_create_action
1209
- # loading current resource again to check new task is created and it matches task parameters
1210
- current_resource = call_for_load_current_resource
1211
- expect(current_resource.exists).to eq(true)
1212
- expect(current_resource.task.settings[:disallow_start_if_on_batteries]).to eql(false)
1213
- end
1214
-
1215
- it "sets stop_if_going_on_batteries to true" do
1216
- subject.frequency :minute
1217
- subject.stop_if_going_on_batteries true
1218
- call_for_create_action
1219
- # loading current resource again to check new task is creted and it matches task parameters
1220
- current_resource = call_for_load_current_resource
1221
- expect(current_resource.exists).to eq(true)
1222
- expect(current_resource.task.settings[:stop_if_going_on_batteries]).to eql(true)
1223
- end
1224
-
1225
- it "sets stop_if_going_on_batteries to false" do
1226
- subject.frequency :minute
1227
- subject.stop_if_going_on_batteries false
1228
- call_for_create_action
1229
- # loading current resource again to check new task is created and it matches task parameters
1230
- current_resource = call_for_load_current_resource
1231
- expect(current_resource.exists).to eq(true)
1232
- expect(current_resource.task.settings[:stop_if_going_on_batteries]).to eql(false)
1233
- end
1234
-
1235
- it "sets the default if options are nil" do
1236
- subject.frequency :minute
1237
- subject.stop_if_going_on_batteries nil
1238
- subject.disallow_start_if_on_batteries nil
1239
- call_for_create_action
1240
- # loading current resource again to check new task is created and it matches task parameters
1241
- current_resource = call_for_load_current_resource
1242
- expect(current_resource.exists).to eq(true)
1243
- expect(current_resource.task.settings[:stop_if_going_on_batteries]).to eql(false)
1244
- expect(current_resource.task.settings[:disallow_start_if_on_batteries]).to eql(false)
1245
- end
1246
-
1247
- it "does not converge the resource if it is already converged" do
1248
- subject.frequency :minute
1249
- subject.stop_if_going_on_batteries true
1250
- subject.disallow_start_if_on_batteries false
1251
- subject.run_action(:create)
1252
- subject.frequency :minute
1253
- subject.stop_if_going_on_batteries true
1254
- subject.disallow_start_if_on_batteries false
1255
- subject.run_action(:create)
1256
- expect(subject).not_to be_updated_by_last_action
1257
- end
1258
- end
1259
-
1260
- context "frequency :none" do
1261
- subject do
1262
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1263
- new_resource.command task_name
1264
- new_resource.run_level :highest
1265
- new_resource.frequency :none
1266
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1267
- new_resource
1268
- end
1269
-
1270
- it "creates the scheduled task to run on demand only" do
1271
- call_for_create_action
1272
- # loading current resource again to check new task is creted and it matches task parameters
1273
- current_resource = call_for_load_current_resource
1274
- expect(current_resource.exists).to eq(true)
1275
-
1276
- expect(current_resource.task.application_name).to eq(task_name)
1277
- expect(current_resource.task.principals[:run_level]).to eq(1)
1278
- expect(current_resource.task.trigger_count).to eq(0)
1279
- end
1280
-
1281
- it "does not converge the resource if it is already converged" do
1282
- subject.run_action(:create)
1283
- subject.run_action(:create)
1284
- expect(subject).not_to be_updated_by_last_action
1285
- end
1286
- end
1287
-
1288
- context "when start_when_available is passed" do
1289
- subject do
1290
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1291
- new_resource.command task_name
1292
- new_resource.run_level :highest
1293
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1294
- new_resource
1295
- end
1296
-
1297
- it "sets start_when_available to true" do
1298
- subject.frequency :minute
1299
- subject.start_when_available true
1300
- call_for_create_action
1301
- # loading current resource again to check new task is creted and it matches task parameters
1302
- current_resource = call_for_load_current_resource
1303
- expect(current_resource.exists).to eq(true)
1304
- expect(current_resource.task.settings[:start_when_available]).to eql(true)
1305
- end
1306
-
1307
- it "sets start_when_available to false" do
1308
- subject.frequency :minute
1309
- subject.start_when_available false
1310
- call_for_create_action
1311
- # loading current resource again to check new task is created and it matches task parameters
1312
- current_resource = call_for_load_current_resource
1313
- expect(current_resource.exists).to eq(true)
1314
- expect(current_resource.task.settings[:start_when_available]).to eql(false)
1315
- end
1316
-
1317
- it "sets the default if start_when_available is nil" do
1318
- subject.frequency :minute
1319
- subject.start_when_available nil
1320
- call_for_create_action
1321
- # loading current resource again to check new task is created and it matches task parameters
1322
- current_resource = call_for_load_current_resource
1323
- expect(current_resource.exists).to eq(true)
1324
- expect(current_resource.task.settings[:start_when_available]).to eql(false)
1325
- end
1326
-
1327
- it "does not converge the resource if it is already converged" do
1328
- subject.frequency :minute
1329
- subject.start_when_available true
1330
- subject.run_action(:create)
1331
- subject.frequency :minute
1332
- subject.start_when_available true
1333
- subject.disallow_start_if_on_batteries false
1334
- subject.run_action(:create)
1335
- expect(subject).not_to be_updated_by_last_action
1336
- end
1337
- end
1338
- end
1339
-
1340
- context "task_name with parent folder" do
1341
- describe "task_name with path '\\foo\\chef-client-functional-test' " do
1342
- let(:task_name) { "\\foo\\chef-client-functional-test" }
1343
- after { delete_task }
1344
- subject do
1345
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1346
- new_resource.command task_name
1347
- new_resource.run_level :highest
1348
- new_resource.frequency :once
1349
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1350
- new_resource
1351
- end
1352
-
1353
- it "creates the scheduled task with task name 'chef-client-functional-test' inside path '\\foo'" do
1354
- call_for_create_action
1355
- current_resource = call_for_load_current_resource
1356
- expect(current_resource.exists).to eq(true)
1357
- expect(current_resource.task.application_name).to eq(task_name)
1358
- end
1359
-
1360
- it "does not converge the resource if it is already converged" do
1361
- subject.run_action(:create)
1362
- subject.run_action(:create)
1363
- expect(subject).not_to be_updated_by_last_action
1364
- end
1365
- end
1366
-
1367
- describe "task_name with path '\\foo\\bar\\chef-client-functional-test' " do
1368
- let(:task_name) { "\\foo\\bar\\chef-client-functional-test" }
1369
- after { delete_task }
1370
- subject do
1371
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1372
- new_resource.command task_name
1373
- new_resource.run_level :highest
1374
- new_resource.frequency :once
1375
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1376
- new_resource
1377
- end
1378
-
1379
- it "creates the scheduled task with task with name 'chef-client-functional-test' inside path '\\foo\\bar' " do
1380
- call_for_create_action
1381
- current_resource = call_for_load_current_resource
1382
- expect(current_resource.exists).to eq(true)
1383
- expect(current_resource.task.application_name).to eq(task_name)
1384
- end
1385
-
1386
- it "does not converge the resource if it is already converged" do
1387
- subject.run_action(:create)
1388
- subject.run_action(:create)
1389
- expect(subject).not_to be_updated_by_last_action
1390
- end
1391
- end
1392
- end
1393
-
1394
- describe "priority" do
1395
- after { delete_task }
1396
- subject do
1397
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1398
- new_resource.command task_name
1399
- new_resource.frequency :once
1400
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1401
- new_resource
1402
- end
1403
-
1404
- it "default sets to 7" do
1405
- call_for_create_action
1406
- current_resource = call_for_load_current_resource
1407
- expect(current_resource.task.priority).to eq("below_normal_7")
1408
- end
1409
-
1410
- it "0 sets priority level to critical" do
1411
- subject.priority = 0
1412
- call_for_create_action
1413
- current_resource = call_for_load_current_resource
1414
- expect(current_resource.task.priority).to eq("critical")
1415
- end
1416
-
1417
- it "2 sets priority level to highest" do
1418
- subject.priority = 1
1419
- call_for_create_action
1420
- current_resource = call_for_load_current_resource
1421
- expect(current_resource.task.priority).to eq("highest")
1422
- end
1423
-
1424
- it "2 sets priority level to above_normal" do
1425
- subject.priority = 2
1426
- call_for_create_action
1427
- current_resource = call_for_load_current_resource
1428
- expect(current_resource.task.priority).to eq("above_normal_2")
1429
- end
1430
-
1431
- it "3 sets priority level to above_normal" do
1432
- subject.priority = 3
1433
- call_for_create_action
1434
- current_resource = call_for_load_current_resource
1435
- expect(current_resource.task.priority).to eq("above_normal_3")
1436
- end
1437
-
1438
- it "4 sets priority level to normal" do
1439
- subject.priority = 4
1440
- call_for_create_action
1441
- current_resource = call_for_load_current_resource
1442
- expect(current_resource.task.priority).to eq("normal_4")
1443
- end
1444
-
1445
- it "5 sets priority level to normal" do
1446
- subject.priority = 5
1447
- call_for_create_action
1448
- current_resource = call_for_load_current_resource
1449
- expect(current_resource.task.priority).to eq("normal_5")
1450
- end
1451
-
1452
- it "6 sets priority level to normal" do
1453
- subject.priority = 6
1454
- call_for_create_action
1455
- current_resource = call_for_load_current_resource
1456
- expect(current_resource.task.priority).to eq("normal_6")
1457
- end
1458
-
1459
- it "7 sets priority level to below_normal" do
1460
- subject.priority = 7
1461
- call_for_create_action
1462
- current_resource = call_for_load_current_resource
1463
- expect(current_resource.task.priority).to eq("below_normal_7")
1464
- end
1465
-
1466
- it "8 sets priority level to below_normal" do
1467
- subject.priority = 8
1468
- call_for_create_action
1469
- current_resource = call_for_load_current_resource
1470
- expect(current_resource.task.priority).to eq("below_normal_8")
1471
- end
1472
-
1473
- it "9 sets priority level to lowest" do
1474
- subject.priority = 9
1475
- call_for_create_action
1476
- current_resource = call_for_load_current_resource
1477
- expect(current_resource.task.priority).to eq("lowest")
1478
- end
1479
-
1480
- it "10 sets priority level to idle" do
1481
- subject.priority = 10
1482
- call_for_create_action
1483
- current_resource = call_for_load_current_resource
1484
- expect(current_resource.task.priority).to eq("idle")
1485
- end
1486
-
1487
- it "is idempotent" do
1488
- subject.priority 8
1489
- subject.run_action(:create)
1490
- subject.run_action(:create)
1491
- expect(subject).not_to be_updated_by_last_action
1492
- end
1493
-
1494
- end
1495
-
1496
- describe "Examples of idempotent checks for each frequency" do
1497
- after { delete_task }
1498
- context "For frequency :once" do
1499
- subject do
1500
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1501
- new_resource.command task_name
1502
- new_resource.run_level :highest
1503
- new_resource.frequency :once
1504
- new_resource.start_time "17:00"
1505
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1506
- new_resource
1507
- end
1508
-
1509
- it "create task by adding frequency_modifier as 1" do
1510
- subject.frequency_modifier 1
1511
- subject.run_action(:create)
1512
- subject.run_action(:create)
1513
- expect(subject).not_to be_updated_by_last_action
1514
- end
1515
-
1516
- it "create task by adding frequency_modifier as 5" do
1517
- subject.frequency_modifier 5
1518
- subject.run_action(:create)
1519
- subject.run_action(:create)
1520
- expect(subject).not_to be_updated_by_last_action
1521
- end
1522
- end
1523
-
1524
- context "For frequency :none" do
1525
- subject do
1526
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1527
- new_resource.command task_name
1528
- new_resource.run_level :highest
1529
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1530
- new_resource.frequency :none
1531
- new_resource
1532
- end
1533
-
1534
- it "create task by adding frequency_modifier as 1" do
1535
- subject.frequency_modifier 1
1536
- subject.run_action(:create)
1537
- subject.run_action(:create)
1538
- expect(subject).not_to be_updated_by_last_action
1539
- end
1540
-
1541
- it "create task by adding frequency_modifier as 5" do
1542
- subject.frequency_modifier 5
1543
- subject.run_action(:create)
1544
- subject.run_action(:create)
1545
- expect(subject).not_to be_updated_by_last_action
1546
- end
1547
- end
1548
-
1549
- context "For frequency :weekly" do
1550
- subject do
1551
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1552
- new_resource.command task_name
1553
- new_resource.run_level :highest
1554
- new_resource.frequency :weekly
1555
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1556
- new_resource
1557
- end
1558
-
1559
- it "create task by adding start_day" do
1560
- subject.start_day "12/28/2018"
1561
- subject.run_action(:create)
1562
- subject.run_action(:create)
1563
- expect(subject).not_to be_updated_by_last_action
1564
- end
1565
-
1566
- it "create task by adding frequency_modifier and random_delay" do
1567
- subject.frequency_modifier 3
1568
- subject.random_delay "60"
1569
- subject.run_action(:create)
1570
- subject.run_action(:create)
1571
- expect(subject).not_to be_updated_by_last_action
1572
- end
1573
- end
1574
-
1575
- context "For frequency :monthly" do
1576
- subject do
1577
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1578
- new_resource.command task_name
1579
- new_resource.run_level :highest
1580
- new_resource.frequency :once
1581
- new_resource.start_time "17:00"
1582
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1583
- new_resource
1584
- end
1585
-
1586
- it "create task by adding frequency_modifier as 1" do
1587
- subject.frequency_modifier 1
1588
- subject.run_action(:create)
1589
- subject.run_action(:create)
1590
- expect(subject).not_to be_updated_by_last_action
1591
- end
1592
-
1593
- it "create task by adding frequency_modifier as 5" do
1594
- subject.frequency_modifier 5
1595
- subject.run_action(:create)
1596
- subject.run_action(:create)
1597
- expect(subject).not_to be_updated_by_last_action
1598
- end
1599
- end
1600
-
1601
- context "For frequency :hourly" do
1602
- subject do
1603
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1604
- new_resource.command task_name
1605
- new_resource.run_level :highest
1606
- new_resource.frequency :hourly
1607
- new_resource.frequency_modifier 5
1608
- new_resource.random_delay "2400"
1609
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1610
- new_resource
1611
- end
1612
-
1613
- it "create task by adding frequency_modifier and random_delay" do
1614
- subject.run_action(:create)
1615
- subject.run_action(:create)
1616
- expect(subject).not_to be_updated_by_last_action
1617
- end
1618
- end
1619
-
1620
- context "For frequency :daily" do
1621
- subject do
1622
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1623
- new_resource.command task_name
1624
- new_resource.run_level :highest
1625
- new_resource.frequency :daily
1626
- new_resource.frequency_modifier 2
1627
- new_resource.random_delay "2400"
1628
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1629
- new_resource
1630
- end
1631
-
1632
- it "create task by adding frequency_modifier and random_delay" do
1633
- subject.run_action(:create)
1634
- subject.run_action(:create)
1635
- expect(subject).not_to be_updated_by_last_action
1636
- end
1637
- end
1638
-
1639
- context "For frequency :on_logon" do
1640
- subject do
1641
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1642
- new_resource.command task_name
1643
- new_resource.frequency :on_logon
1644
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1645
- new_resource
1646
- end
1647
-
1648
- it "create task by adding frequency_modifier and random_delay" do
1649
- subject.run_action(:create)
1650
- subject.run_action(:create)
1651
- expect(subject).not_to be_updated_by_last_action
1652
- end
1653
-
1654
- it "create task by adding frequency_modifier as 5" do
1655
- subject.frequency_modifier 5
1656
- subject.run_action(:create)
1657
- subject.run_action(:create)
1658
- expect(subject).not_to be_updated_by_last_action
1659
- end
1660
- end
1661
-
1662
- context "For frequency :onstart" do
1663
- subject do
1664
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1665
- new_resource.command task_name
1666
- new_resource.run_level :highest
1667
- new_resource.frequency :onstart
1668
- new_resource.frequency_modifier 20
1669
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1670
- new_resource
1671
- end
1672
-
1673
- it "create task by adding frequency_modifier as 20" do
1674
- subject.run_action(:create)
1675
- subject.run_action(:create)
1676
- expect(subject).not_to be_updated_by_last_action
1677
- end
1678
- end
1679
- end
1680
-
1681
- describe "#after_created" do
1682
- subject do
1683
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1684
- new_resource.command task_name
1685
- new_resource.run_level :highest
1686
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1687
- new_resource
1688
- end
1689
-
1690
- context "when start_day is passed with frequency :onstart" do
1691
- it "does not raises error" do
1692
- subject.frequency :onstart
1693
- subject.start_day "09/20/2017"
1694
- expect { subject.after_created }.not_to raise_error
1695
- end
1696
- end
1697
-
1698
- context "when a non system user is passed without password" do
1699
- it "raises error" do
1700
- subject.user "USER"
1701
- subject.frequency :onstart
1702
- expect { subject.after_created }.to raise_error(%q{Please provide a password or check if this task needs to be interactive! Valid passwordless users are: 'SYSTEM', 'NT AUTHORITY\SYSTEM', 'LOCAL SERVICE', 'NT AUTHORITY\LOCAL SERVICE', 'NETWORK SERVICE', 'NT AUTHORITY\NETWORK SERVICE', 'ADMINISTRATORS', 'BUILTIN\ADMINISTRATORS', 'USERS', 'BUILTIN\USERS', 'GUESTS', 'BUILTIN\GUESTS'})
1703
- end
1704
- it "does not raises error when task is interactive" do
1705
- subject.user "USER"
1706
- subject.frequency :onstart
1707
- subject.interactive_enabled true
1708
- expect { subject.after_created }.not_to raise_error
1709
- end
1710
- end
1711
-
1712
- context "when a system user is passed without password" do
1713
- it "does not raises error" do
1714
- subject.user "ADMINISTRATORS"
1715
- subject.frequency :onstart
1716
- expect { subject.after_created }.not_to raise_error
1717
- end
1718
- it "does not raises error when task is interactive" do
1719
- subject.user "ADMINISTRATORS"
1720
- subject.frequency :onstart
1721
- subject.interactive_enabled true
1722
- expect { subject.after_created }.not_to raise_error
1723
- end
1724
- end
1725
-
1726
- context "when a non system user is passed with password" do
1727
- it "does not raises error" do
1728
- subject.user "USER"
1729
- subject.password "XXXX"
1730
- subject.frequency :onstart
1731
- expect { subject.after_created }.not_to raise_error
1732
- end
1733
- it "does not raises error when task is interactive" do
1734
- subject.user "USER"
1735
- subject.password "XXXX"
1736
- subject.frequency :onstart
1737
- subject.interactive_enabled true
1738
- expect { subject.after_created }.not_to raise_error
1739
- end
1740
- end
1741
-
1742
- context "when a system user is passed with password" do
1743
- it "raises error" do
1744
- subject.user "ADMINISTRATORS"
1745
- subject.password "XXXX"
1746
- subject.frequency :onstart
1747
- expect { subject.after_created }.to raise_error("Password is not required for system users.")
1748
- end
1749
- it "raises error when task is interactive" do
1750
- subject.user "ADMINISTRATORS"
1751
- subject.password "XXXX"
1752
- subject.frequency :onstart
1753
- subject.interactive_enabled true
1754
- expect { subject.after_created }.to raise_error("Password is not required for system users.")
1755
- end
1756
- end
1757
-
1758
- context "when frequency_modifier > 1439 is passed for frequency=:minute" do
1759
- it "raises error" do
1760
- subject.frequency_modifier 1450
1761
- subject.frequency :minute
1762
- expect { subject.after_created }.to raise_error("frequency_modifier value 1450 is invalid. Valid values for :minute frequency are 1 - 1439.")
1763
- end
1764
- end
1765
-
1766
- context "when frequency_modifier > 23 is passed for frequency=:minute" do
1767
- it "raises error" do
1768
- subject.frequency_modifier 24
1769
- subject.frequency :hourly
1770
- expect { subject.after_created }.to raise_error("frequency_modifier value 24 is invalid. Valid values for :hourly frequency are 1 - 23.")
1771
- end
1772
- end
1773
-
1774
- context "when frequency_modifier > 23 is passed for frequency=:minute" do
1775
- it "raises error" do
1776
- subject.frequency_modifier 366
1777
- subject.frequency :daily
1778
- expect { subject.after_created }.to raise_error("frequency_modifier value 366 is invalid. Valid values for :daily frequency are 1 - 365.")
1779
- end
1780
- end
1781
-
1782
- context "when frequency_modifier > 52 is passed for frequency=:minute" do
1783
- it "raises error" do
1784
- subject.frequency_modifier 53
1785
- subject.frequency :weekly
1786
- expect { subject.after_created }.to raise_error("frequency_modifier value 53 is invalid. Valid values for :weekly frequency are 1 - 52.")
1787
- end
1788
- end
1789
-
1790
- context "when invalid frequency_modifier is passed for :monthly frequency" do
1791
- it "raises error" do
1792
- subject.frequency :monthly
1793
- subject.frequency_modifier "13"
1794
- expect { subject.after_created }.to raise_error("frequency_modifier value 13 is invalid. Valid values for :monthly frequency are 1 - 12, 'FIRST', 'SECOND', 'THIRD', 'FOURTH', 'LAST'.")
1795
- end
1796
- end
1797
-
1798
- context "when invalid frequency_modifier is passed for :monthly frequency" do
1799
- it "raises error" do
1800
- subject.frequency :monthly
1801
- subject.frequency_modifier "xyz"
1802
- expect { subject.after_created }.to raise_error("frequency_modifier value xyz is invalid. Valid values for :monthly frequency are 1 - 12, 'FIRST', 'SECOND', 'THIRD', 'FOURTH', 'LAST'.")
1803
- end
1804
- end
1805
-
1806
- context "when invalid months are passed" do
1807
- it "raises error" do
1808
- subject.months "xyz"
1809
- subject.frequency :monthly
1810
- expect { subject.after_created }.to raise_error("months property invalid. Only valid values are: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, *. Multiple values must be separated by a comma.")
1811
- end
1812
- end
1813
-
1814
- context "when idle_time > 999 is passed" do
1815
- it "raises error" do
1816
- subject.idle_time 1000
1817
- subject.frequency :on_idle
1818
- expect { subject.after_created }.to raise_error("idle_time value 1000 is invalid. Valid values for :on_idle frequency are 1 - 999.")
1819
- end
1820
- end
1821
-
1822
- context "when idle_time is passed for frequency=:monthly" do
1823
- it "raises error" do
1824
- subject.idle_time 300
1825
- subject.frequency :monthly
1826
- expect { subject.after_created }.to raise_error("idle_time property is only valid for tasks that run on_idle")
1827
- end
1828
- end
1829
- end
1830
-
1831
- describe "action :delete" do
1832
- subject do
1833
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1834
- new_resource.command task_name
1835
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since win32-taskscheduler accepts this
1836
- new_resource.frequency :hourly
1837
- new_resource
1838
- end
1839
-
1840
- it "does not converge the resource if it is already converged" do
1841
- subject.run_action(:create)
1842
- subject.run_action(:delete)
1843
- subject.run_action(:delete)
1844
- expect(subject).not_to be_updated_by_last_action
1845
- end
1846
-
1847
- it "does not converge the resource if it is already converged" do
1848
- subject.run_action(:create)
1849
- subject.run_action(:delete)
1850
- subject.run_action(:delete)
1851
- expect(subject).not_to be_updated_by_last_action
1852
- end
1853
- end
1854
-
1855
- describe "action :run" do
1856
- after { delete_task }
1857
-
1858
- subject do
1859
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1860
- new_resource.command "dir"
1861
- new_resource.run_level :highest
1862
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since
1863
- new_resource.frequency :hourly
1864
- new_resource
1865
- end
1866
-
1867
- it "runs the existing task" do
1868
- subject.run_action(:create)
1869
- subject.run_action(:run)
1870
- current_resource = call_for_load_current_resource
1871
- expect(current_resource.task.status).to eq("queued").or eq("running").or eq("ready") # queued or can be running
1872
- end
1873
- end
1874
-
1875
- describe "action :end", :volatile do
1876
- after { delete_task }
1877
-
1878
- subject do
1879
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1880
- new_resource.command "dir"
1881
- new_resource.run_level :highest
1882
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since
1883
- new_resource
1884
- end
1885
-
1886
- it "ends the running task" do
1887
- subject.run_action(:create)
1888
- subject.run_action(:run)
1889
- subject.run_action(:end)
1890
- current_resource = call_for_load_current_resource
1891
- expect(current_resource.task.status).to eq("queued").or eq("ready") # queued or can be ready
1892
- end
1893
- end
1894
-
1895
- describe "action :enable" do
1896
- let(:task_name) { "chef-client-functional-test-enable" }
1897
- after { delete_task }
1898
-
1899
- subject do
1900
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1901
- new_resource.command task_name
1902
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since
1903
- new_resource.frequency :hourly
1904
- new_resource
1905
- end
1906
-
1907
- it "enables the disabled task" do
1908
- subject.run_action(:create)
1909
- subject.run_action(:disable)
1910
- current_resource = call_for_load_current_resource
1911
- expect(current_resource.task.status).to eq("not scheduled")
1912
- subject.run_action(:enable)
1913
- current_resource = call_for_load_current_resource
1914
- expect(current_resource.task.status).to eq("ready")
1915
- end
1916
- end
1917
-
1918
- describe "action :disable" do
1919
- let(:task_name) { "chef-client-functional-test-disable" }
1920
- after { delete_task }
1921
-
1922
- subject do
1923
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1924
- new_resource.command task_name
1925
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since
1926
- new_resource.frequency :hourly
1927
- new_resource
1928
- end
1929
-
1930
- it "disables the task" do
1931
- subject.run_action(:create)
1932
- subject.run_action(:disable)
1933
- current_resource = call_for_load_current_resource
1934
- expect(current_resource.task.status).to eq("not scheduled")
1935
- end
1936
- end
1937
-
1938
- describe "action :change" do
1939
- after { delete_task }
1940
- subject do
1941
- new_resource = Chef::Resource::WindowsTask.new(task_name, run_context)
1942
- new_resource.command task_name
1943
- new_resource.execution_time_limit = 259200 / 60 # converting "PT72H" into minutes and passing here since
1944
- new_resource.frequency :hourly
1945
- new_resource
1946
- end
1947
-
1948
- it "call action_create since change action is alias for create" do
1949
- subject.run_action(:change)
1950
- expect(subject).to be_updated_by_last_action
1951
- end
1952
- end
1953
-
1954
- def delete_task
1955
- task_to_delete = Chef::Resource::WindowsTask.new(task_name, run_context)
1956
- task_to_delete.run_action(:delete)
1957
- end
1958
-
1959
- def call_for_create_action
1960
- current_resource = call_for_load_current_resource
1961
- expect(current_resource.exists).to eq(false)
1962
- subject.run_action(:create)
1963
- expect(subject).to be_updated_by_last_action
1964
- end
1965
-
1966
- def call_for_load_current_resource
1967
- windows_task_provider.send(:load_current_resource)
1968
- end
1969
- end