puppet 5.5.12 → 5.5.13

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (733) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -5
  3. data/Gemfile.lock +11 -11
  4. data/lib/puppet/application/filebucket.rb +4 -0
  5. data/lib/puppet/configurer.rb +9 -3
  6. data/lib/puppet/indirector/request.rb +26 -15
  7. data/lib/puppet/indirector/rest.rb +16 -7
  8. data/lib/puppet/network/http/connection.rb +15 -7
  9. data/lib/puppet/transaction/event_manager.rb +1 -5
  10. data/lib/puppet/type/file/source.rb +0 -1
  11. data/lib/puppet/util/http_proxy.rb +3 -2
  12. data/lib/puppet/version.rb +1 -1
  13. data/locales/puppet.pot +108 -36
  14. data/man/man5/puppet.conf.5 +2 -2
  15. data/man/man8/puppet-agent.8 +1 -1
  16. data/man/man8/puppet-apply.8 +1 -1
  17. data/man/man8/puppet-ca.8 +1 -1
  18. data/man/man8/puppet-catalog.8 +1 -1
  19. data/man/man8/puppet-cert.8 +1 -1
  20. data/man/man8/puppet-certificate.8 +1 -1
  21. data/man/man8/puppet-certificate_request.8 +1 -1
  22. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  23. data/man/man8/puppet-config.8 +1 -1
  24. data/man/man8/puppet-describe.8 +1 -1
  25. data/man/man8/puppet-device.8 +1 -1
  26. data/man/man8/puppet-doc.8 +1 -1
  27. data/man/man8/puppet-epp.8 +1 -1
  28. data/man/man8/puppet-facts.8 +1 -1
  29. data/man/man8/puppet-filebucket.8 +1 -1
  30. data/man/man8/puppet-generate.8 +1 -1
  31. data/man/man8/puppet-help.8 +1 -1
  32. data/man/man8/puppet-key.8 +1 -1
  33. data/man/man8/puppet-lookup.8 +1 -1
  34. data/man/man8/puppet-man.8 +1 -1
  35. data/man/man8/puppet-master.8 +1 -1
  36. data/man/man8/puppet-module.8 +1 -1
  37. data/man/man8/puppet-node.8 +1 -1
  38. data/man/man8/puppet-parser.8 +1 -1
  39. data/man/man8/puppet-plugin.8 +1 -1
  40. data/man/man8/puppet-report.8 +1 -1
  41. data/man/man8/puppet-resource.8 +1 -1
  42. data/man/man8/puppet-script.8 +1 -1
  43. data/man/man8/puppet-status.8 +1 -1
  44. data/man/man8/puppet.8 +2 -2
  45. data/spec/integration/agent/logging_spec.rb +5 -7
  46. data/spec/integration/application/apply_spec.rb +28 -26
  47. data/spec/integration/application/doc_spec.rb +1 -2
  48. data/spec/integration/application/lookup_spec.rb +5 -5
  49. data/spec/integration/configurer_spec.rb +5 -6
  50. data/spec/integration/defaults_spec.rb +5 -6
  51. data/spec/integration/directory_environments_spec.rb +1 -1
  52. data/spec/integration/faces/ca_spec.rb +2 -3
  53. data/spec/integration/faces/config_spec.rb +3 -4
  54. data/spec/integration/faces/documentation_spec.rb +0 -1
  55. data/spec/integration/faces/plugin_spec.rb +1 -1
  56. data/spec/integration/file_bucket/file_spec.rb +3 -5
  57. data/spec/integration/file_serving/content_spec.rb +0 -1
  58. data/spec/integration/file_serving/fileset_spec.rb +0 -1
  59. data/spec/integration/file_serving/metadata_spec.rb +0 -1
  60. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
  61. data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
  62. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  63. data/spec/integration/indirector/facts/facter_spec.rb +5 -5
  64. data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
  65. data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
  66. data/spec/integration/indirector/node/ldap_spec.rb +2 -3
  67. data/spec/integration/network/authconfig_spec.rb +23 -24
  68. data/spec/integration/network/formats_spec.rb +0 -1
  69. data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -1
  70. data/spec/integration/node/environment_spec.rb +0 -1
  71. data/spec/integration/node/facts_spec.rb +9 -10
  72. data/spec/integration/node_spec.rb +6 -7
  73. data/spec/integration/parser/catalog_spec.rb +4 -2
  74. data/spec/integration/parser/collection_spec.rb +1 -2
  75. data/spec/integration/parser/compiler_spec.rb +6 -6
  76. data/spec/integration/parser/scope_spec.rb +1 -1
  77. data/spec/integration/parser/undef_param_spec.rb +1 -1
  78. data/spec/integration/provider/cron/crontab_spec.rb +8 -10
  79. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -1
  80. data/spec/integration/provider/mount_spec.rb +9 -9
  81. data/spec/integration/provider/service/init_spec.rb +4 -5
  82. data/spec/integration/provider/service/systemd_spec.rb +0 -2
  83. data/spec/integration/provider/service/windows_spec.rb +1 -2
  84. data/spec/integration/provider/ssh_authorized_key_spec.rb +6 -8
  85. data/spec/integration/provider/sshkey_spec.rb +6 -12
  86. data/spec/integration/provider/yumrepo_spec.rb +8 -12
  87. data/spec/integration/reference/providers_spec.rb +0 -1
  88. data/spec/integration/reports_spec.rb +1 -2
  89. data/spec/integration/resource/catalog_spec.rb +14 -17
  90. data/spec/integration/resource/type_collection_spec.rb +4 -5
  91. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  92. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  93. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  94. data/spec/integration/ssl/host_spec.rb +0 -1
  95. data/spec/integration/ssl/key_spec.rb +0 -1
  96. data/spec/integration/test/test_helper_spec.rb +1 -2
  97. data/spec/integration/transaction/report_spec.rb +6 -11
  98. data/spec/integration/transaction_spec.rb +18 -19
  99. data/spec/integration/type/exec_spec.rb +0 -1
  100. data/spec/integration/type/file_spec.rb +13 -14
  101. data/spec/integration/type/nagios_spec.rb +3 -5
  102. data/spec/integration/type/package_spec.rb +19 -23
  103. data/spec/integration/type/tidy_spec.rb +1 -2
  104. data/spec/integration/type/user_spec.rb +0 -1
  105. data/spec/integration/type_spec.rb +0 -1
  106. data/spec/integration/util/autoload_spec.rb +1 -2
  107. data/spec/integration/util/rdoc/parser_spec.rb +0 -1
  108. data/spec/integration/util/settings_spec.rb +0 -1
  109. data/spec/integration/util/windows/adsi_spec.rb +3 -5
  110. data/spec/integration/util/windows/principal_spec.rb +0 -1
  111. data/spec/integration/util/windows/process_spec.rb +4 -6
  112. data/spec/integration/util/windows/registry_spec.rb +41 -51
  113. data/spec/integration/util/windows/security_spec.rb +2 -4
  114. data/spec/integration/util/windows/user_spec.rb +18 -20
  115. data/spec/integration/util_spec.rb +4 -7
  116. data/spec/lib/puppet_spec/compiler.rb +1 -1
  117. data/spec/lib/puppet_spec/files.rb +0 -1
  118. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  119. data/spec/lib/puppet_spec/scope.rb +1 -2
  120. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  121. data/spec/shared_behaviours/file_server_terminus.rb +8 -9
  122. data/spec/shared_behaviours/file_serving.rb +6 -8
  123. data/spec/shared_behaviours/file_serving_model.rb +4 -6
  124. data/spec/shared_behaviours/hiera_indirections.rb +3 -4
  125. data/spec/shared_behaviours/iterative_functions.rb +0 -1
  126. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  127. data/spec/shared_examples/rhel_package_provider.rb +112 -70
  128. data/spec/spec_helper.rb +11 -2
  129. data/spec/unit/agent/disabler_spec.rb +4 -5
  130. data/spec/unit/agent/locker_spec.rb +12 -13
  131. data/spec/unit/agent_spec.rb +80 -85
  132. data/spec/unit/application/agent_spec.rb +88 -93
  133. data/spec/unit/application/apply_spec.rb +78 -79
  134. data/spec/unit/application/cert_spec.rb +42 -49
  135. data/spec/unit/application/certificate_spec.rb +2 -3
  136. data/spec/unit/application/config_spec.rb +0 -1
  137. data/spec/unit/application/describe_spec.rb +6 -7
  138. data/spec/unit/application/device_spec.rb +175 -184
  139. data/spec/unit/application/doc_spec.rb +44 -46
  140. data/spec/unit/application/face_base_spec.rb +61 -62
  141. data/spec/unit/application/facts_spec.rb +3 -4
  142. data/spec/unit/application/filebucket_spec.rb +66 -74
  143. data/spec/unit/application/indirection_base_spec.rb +8 -6
  144. data/spec/unit/application/lookup_spec.rb +26 -26
  145. data/spec/unit/application/master_spec.rb +95 -95
  146. data/spec/unit/application/resource_spec.rb +42 -48
  147. data/spec/unit/application_spec.rb +74 -84
  148. data/spec/unit/capability_spec.rb +9 -6
  149. data/spec/unit/configurer/downloader_spec.rb +20 -21
  150. data/spec/unit/configurer/fact_handler_spec.rb +2 -3
  151. data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
  152. data/spec/unit/configurer_spec.rb +190 -193
  153. data/spec/unit/confine/exists_spec.rb +17 -15
  154. data/spec/unit/confine/false_spec.rb +5 -6
  155. data/spec/unit/confine/feature_spec.rb +7 -5
  156. data/spec/unit/confine/true_spec.rb +5 -6
  157. data/spec/unit/confine/variable_spec.rb +14 -15
  158. data/spec/unit/confine_collection_spec.rb +28 -29
  159. data/spec/unit/confine_spec.rb +13 -14
  160. data/spec/unit/confiner_spec.rb +10 -11
  161. data/spec/unit/context/trusted_information_spec.rb +1 -1
  162. data/spec/unit/daemon_spec.rb +34 -35
  163. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
  164. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
  165. data/spec/unit/datatypes_spec.rb +3 -4
  166. data/spec/unit/defaults_spec.rb +17 -12
  167. data/spec/unit/environments_spec.rb +7 -7
  168. data/spec/unit/etc_spec.rb +30 -32
  169. data/spec/unit/external/pson_spec.rb +0 -1
  170. data/spec/unit/face/ca_spec.rb +0 -1
  171. data/spec/unit/face/catalog_spec.rb +0 -1
  172. data/spec/unit/face/certificate_request_spec.rb +0 -1
  173. data/spec/unit/face/certificate_revocation_list_spec.rb +0 -1
  174. data/spec/unit/face/certificate_spec.rb +7 -10
  175. data/spec/unit/face/config_spec.rb +31 -35
  176. data/spec/unit/face/epp_face_spec.rb +3 -4
  177. data/spec/unit/face/facts_spec.rb +5 -6
  178. data/spec/unit/face/generate_spec.rb +4 -5
  179. data/spec/unit/face/help_spec.rb +7 -8
  180. data/spec/unit/face/key_spec.rb +0 -1
  181. data/spec/unit/face/man_spec.rb +1 -2
  182. data/spec/unit/face/module/build_spec.rb +17 -17
  183. data/spec/unit/face/module/install_spec.rb +3 -5
  184. data/spec/unit/face/module/list_spec.rb +2 -12
  185. data/spec/unit/face/module/search_spec.rb +11 -9
  186. data/spec/unit/face/module/uninstall_spec.rb +4 -8
  187. data/spec/unit/face/node_spec.rb +33 -34
  188. data/spec/unit/face/parser_spec.rb +3 -3
  189. data/spec/unit/face/plugin_spec.rb +36 -9
  190. data/spec/unit/face/status_spec.rb +0 -1
  191. data/spec/unit/file_bucket/dipper_spec.rb +24 -20
  192. data/spec/unit/file_bucket/file_spec.rb +0 -2
  193. data/spec/unit/file_serving/base_spec.rb +16 -17
  194. data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
  195. data/spec/unit/file_serving/configuration_spec.rb +63 -66
  196. data/spec/unit/file_serving/content_spec.rb +10 -11
  197. data/spec/unit/file_serving/fileset_spec.rb +63 -58
  198. data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
  199. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  200. data/spec/unit/file_serving/mount/file_spec.rb +31 -32
  201. data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
  202. data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
  203. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
  204. data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
  205. data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
  206. data/spec/unit/file_serving/mount_spec.rb +0 -1
  207. data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
  208. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
  209. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  210. data/spec/unit/file_system_spec.rb +2 -2
  211. data/spec/unit/forge/errors_spec.rb +1 -1
  212. data/spec/unit/forge/forge_spec.rb +13 -14
  213. data/spec/unit/forge/module_release_spec.rb +18 -18
  214. data/spec/unit/forge/repository_spec.rb +29 -30
  215. data/spec/unit/forge_spec.rb +15 -11
  216. data/spec/unit/functions/binary_file_spec.rb +3 -3
  217. data/spec/unit/functions/contain_spec.rb +0 -2
  218. data/spec/unit/functions/defined_spec.rb +0 -1
  219. data/spec/unit/functions/epp_spec.rb +2 -2
  220. data/spec/unit/functions/find_file_spec.rb +7 -7
  221. data/spec/unit/functions/include_spec.rb +0 -4
  222. data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
  223. data/spec/unit/functions/lookup_spec.rb +1 -2
  224. data/spec/unit/functions/module_directory_spec.rb +12 -12
  225. data/spec/unit/functions/require_spec.rb +0 -3
  226. data/spec/unit/functions/shared.rb +5 -8
  227. data/spec/unit/functions/versioncmp_spec.rb +1 -2
  228. data/spec/unit/functions4_spec.rb +7 -8
  229. data/spec/unit/gettext/config_spec.rb +4 -4
  230. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  231. data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
  232. data/spec/unit/graph/relationship_graph_spec.rb +1 -2
  233. data/spec/unit/graph/simple_graph_spec.rb +8 -9
  234. data/spec/unit/hiera_puppet_spec.rb +20 -20
  235. data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
  236. data/spec/unit/indirector/catalog/json_spec.rb +1 -2
  237. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
  238. data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
  239. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
  240. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
  241. data/spec/unit/indirector/certificate/ca_spec.rb +2 -4
  242. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +1 -2
  243. data/spec/unit/indirector/certificate/file_spec.rb +2 -3
  244. data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
  245. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -1
  246. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +1 -2
  247. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
  248. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
  249. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +1 -2
  250. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +1 -2
  251. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +1 -2
  252. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +2 -3
  253. data/spec/unit/indirector/certificate_status/file_spec.rb +2 -3
  254. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -1
  255. data/spec/unit/indirector/code_spec.rb +5 -6
  256. data/spec/unit/indirector/direct_file_server_spec.rb +33 -27
  257. data/spec/unit/indirector/envelope_spec.rb +1 -2
  258. data/spec/unit/indirector/exec_spec.rb +15 -14
  259. data/spec/unit/indirector/face_spec.rb +9 -9
  260. data/spec/unit/indirector/facts/facter_spec.rb +37 -43
  261. data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
  262. data/spec/unit/indirector/facts/rest_spec.rb +7 -8
  263. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
  264. data/spec/unit/indirector/facts/yaml_spec.rb +2 -4
  265. data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
  266. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
  267. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
  268. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
  269. data/spec/unit/indirector/file_content/file_spec.rb +0 -1
  270. data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
  271. data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
  272. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
  273. data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
  274. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
  275. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
  276. data/spec/unit/indirector/file_server_spec.rb +99 -93
  277. data/spec/unit/indirector/indirection_spec.rb +242 -226
  278. data/spec/unit/indirector/json_spec.rb +7 -9
  279. data/spec/unit/indirector/key/ca_spec.rb +2 -3
  280. data/spec/unit/indirector/key/disabled_ca_spec.rb +1 -2
  281. data/spec/unit/indirector/key/file_spec.rb +25 -26
  282. data/spec/unit/indirector/ldap_spec.rb +34 -41
  283. data/spec/unit/indirector/memory_spec.rb +6 -7
  284. data/spec/unit/indirector/msgpack_spec.rb +7 -9
  285. data/spec/unit/indirector/node/exec_spec.rb +6 -6
  286. data/spec/unit/indirector/node/ldap_spec.rb +74 -76
  287. data/spec/unit/indirector/node/memory_spec.rb +2 -4
  288. data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
  289. data/spec/unit/indirector/node/plain_spec.rb +2 -4
  290. data/spec/unit/indirector/node/rest_spec.rb +0 -1
  291. data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
  292. data/spec/unit/indirector/node/write_only_yaml_spec.rb +1 -2
  293. data/spec/unit/indirector/node/yaml_spec.rb +0 -1
  294. data/spec/unit/indirector/none_spec.rb +5 -5
  295. data/spec/unit/indirector/plain_spec.rb +7 -8
  296. data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
  297. data/spec/unit/indirector/report/processor_spec.rb +21 -22
  298. data/spec/unit/indirector/report/rest_spec.rb +11 -12
  299. data/spec/unit/indirector/report/yaml_spec.rb +0 -1
  300. data/spec/unit/indirector/request_spec.rb +11 -12
  301. data/spec/unit/indirector/resource/ral_spec.rb +47 -54
  302. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
  303. data/spec/unit/indirector/rest_spec.rb +113 -110
  304. data/spec/unit/indirector/ssl_file_spec.rb +74 -77
  305. data/spec/unit/indirector/status/local_spec.rb +0 -1
  306. data/spec/unit/indirector/status/rest_spec.rb +0 -1
  307. data/spec/unit/indirector/store_configs_spec.rb +0 -1
  308. data/spec/unit/indirector/terminus_spec.rb +31 -29
  309. data/spec/unit/indirector/yaml_spec.rb +33 -32
  310. data/spec/unit/indirector_spec.rb +1 -2
  311. data/spec/unit/info_service_spec.rb +3 -1
  312. data/spec/unit/interface/action_builder_spec.rb +0 -1
  313. data/spec/unit/interface/action_manager_spec.rb +0 -1
  314. data/spec/unit/interface/action_spec.rb +2 -3
  315. data/spec/unit/interface/documentation_spec.rb +0 -1
  316. data/spec/unit/interface/face_collection_spec.rb +19 -12
  317. data/spec/unit/interface_spec.rb +3 -3
  318. data/spec/unit/man_spec.rb +3 -4
  319. data/spec/unit/module_spec.rb +46 -51
  320. data/spec/unit/module_tool/applications/builder_spec.rb +5 -5
  321. data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
  322. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  323. data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
  324. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  325. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  326. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  327. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  328. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  329. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  330. data/spec/unit/module_tool/tar_spec.rb +12 -13
  331. data/spec/unit/module_tool_spec.rb +7 -12
  332. data/spec/unit/network/auth_config_parser_spec.rb +11 -13
  333. data/spec/unit/network/authconfig_spec.rb +17 -18
  334. data/spec/unit/network/authorization_spec.rb +4 -5
  335. data/spec/unit/network/authstore_spec.rb +0 -1
  336. data/spec/unit/network/format_handler_spec.rb +0 -1
  337. data/spec/unit/network/format_spec.rb +9 -10
  338. data/spec/unit/network/format_support_spec.rb +28 -29
  339. data/spec/unit/network/formats_spec.rb +4 -5
  340. data/spec/unit/network/http/api/ca/v1_spec.rb +1 -1
  341. data/spec/unit/network/http/api/indirected_routes_spec.rb +22 -29
  342. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  343. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  344. data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
  345. data/spec/unit/network/http/api_spec.rb +1 -3
  346. data/spec/unit/network/http/compression_spec.rb +21 -22
  347. data/spec/unit/network/http/connection_spec.rb +39 -36
  348. data/spec/unit/network/http/factory_spec.rb +5 -6
  349. data/spec/unit/network/http/handler_spec.rb +9 -18
  350. data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
  351. data/spec/unit/network/http/pool_spec.rb +28 -29
  352. data/spec/unit/network/http/rack/rest_spec.rb +24 -27
  353. data/spec/unit/network/http/rack_spec.rb +5 -6
  354. data/spec/unit/network/http/request_spec.rb +0 -2
  355. data/spec/unit/network/http/response_spec.rb +11 -13
  356. data/spec/unit/network/http/route_spec.rb +0 -1
  357. data/spec/unit/network/http/session_spec.rb +1 -2
  358. data/spec/unit/network/http/site_spec.rb +0 -1
  359. data/spec/unit/network/http/webrick/rest_spec.rb +40 -41
  360. data/spec/unit/network/http/webrick_spec.rb +49 -52
  361. data/spec/unit/network/http_pool_spec.rb +18 -9
  362. data/spec/unit/network/http_spec.rb +0 -1
  363. data/spec/unit/network/resolver_spec.rb +16 -17
  364. data/spec/unit/network/rights_spec.rb +52 -53
  365. data/spec/unit/network/server_spec.rb +12 -13
  366. data/spec/unit/node/environment_spec.rb +16 -14
  367. data/spec/unit/node/facts_spec.rb +5 -7
  368. data/spec/unit/node_spec.rb +4 -10
  369. data/spec/unit/other/selinux_spec.rb +2 -3
  370. data/spec/unit/parameter/boolean_spec.rb +1 -2
  371. data/spec/unit/parameter/package_options_spec.rb +1 -2
  372. data/spec/unit/parameter/path_spec.rb +0 -1
  373. data/spec/unit/parameter/value_collection_spec.rb +0 -1
  374. data/spec/unit/parameter/value_spec.rb +0 -1
  375. data/spec/unit/parameter_spec.rb +9 -9
  376. data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
  377. data/spec/unit/parser/ast/leaf_spec.rb +20 -21
  378. data/spec/unit/parser/compiler_spec.rb +84 -96
  379. data/spec/unit/parser/environment_compiler_spec.rb +11 -9
  380. data/spec/unit/parser/files_spec.rb +0 -1
  381. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  382. data/spec/unit/parser/functions/digest_spec.rb +0 -1
  383. data/spec/unit/parser/functions/fail_spec.rb +1 -2
  384. data/spec/unit/parser/functions/file_spec.rb +13 -14
  385. data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
  386. data/spec/unit/parser/functions/generate_spec.rb +7 -8
  387. data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
  388. data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
  389. data/spec/unit/parser/functions/scanf_spec.rb +0 -1
  390. data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
  391. data/spec/unit/parser/functions/split_spec.rb +0 -1
  392. data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
  393. data/spec/unit/parser/functions/tag_spec.rb +1 -2
  394. data/spec/unit/parser/functions/tagged_spec.rb +2 -3
  395. data/spec/unit/parser/functions/template_spec.rb +13 -13
  396. data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
  397. data/spec/unit/parser/functions_spec.rb +3 -4
  398. data/spec/unit/parser/relationship_spec.rb +0 -1
  399. data/spec/unit/parser/resource_spec.rb +42 -42
  400. data/spec/unit/parser/scope_spec.rb +39 -35
  401. data/spec/unit/parser/templatewrapper_spec.rb +11 -12
  402. data/spec/unit/parser/type_loader_spec.rb +17 -19
  403. data/spec/unit/pops/adaptable_spec.rb +0 -1
  404. data/spec/unit/pops/benchmark_spec.rb +0 -1
  405. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
  406. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
  407. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
  408. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
  409. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
  410. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
  411. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +6 -6
  412. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
  413. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
  414. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
  415. data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
  416. data/spec/unit/pops/factory_spec.rb +3 -4
  417. data/spec/unit/pops/issues_spec.rb +19 -20
  418. data/spec/unit/pops/loaders/loader_spec.rb +8 -4
  419. data/spec/unit/pops/loaders/loaders_spec.rb +30 -27
  420. data/spec/unit/pops/lookup/context_spec.rb +0 -1
  421. data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
  422. data/spec/unit/pops/merge_strategy_spec.rb +0 -1
  423. data/spec/unit/pops/migration_spec.rb +3 -5
  424. data/spec/unit/pops/model/model_spec.rb +0 -1
  425. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
  426. data/spec/unit/pops/parser/locator_spec.rb +3 -6
  427. data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
  428. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  429. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
  430. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
  431. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
  432. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
  433. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
  434. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
  435. data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
  436. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
  437. data/spec/unit/pops/pn_spec.rb +0 -1
  438. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
  439. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  440. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  441. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  442. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  443. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  444. data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
  445. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  446. data/spec/unit/pops/validator/validator_spec.rb +1 -2
  447. data/spec/unit/pops/visitor_spec.rb +0 -1
  448. data/spec/unit/property/boolean_spec.rb +1 -1
  449. data/spec/unit/property/ensure_spec.rb +0 -1
  450. data/spec/unit/property/keyvalue_spec.rb +32 -34
  451. data/spec/unit/property/list_spec.rb +26 -27
  452. data/spec/unit/property/ordered_list_spec.rb +10 -14
  453. data/spec/unit/property_spec.rb +42 -43
  454. data/spec/unit/provider/aix_object_spec.rb +47 -45
  455. data/spec/unit/provider/augeas/augeas_spec.rb +192 -192
  456. data/spec/unit/provider/cisco_spec.rb +1 -2
  457. data/spec/unit/provider/command_spec.rb +9 -9
  458. data/spec/unit/provider/cron/crontab_spec.rb +10 -11
  459. data/spec/unit/provider/cron/parsed_spec.rb +22 -24
  460. data/spec/unit/provider/exec/posix_spec.rb +6 -7
  461. data/spec/unit/provider/exec/shell_spec.rb +0 -1
  462. data/spec/unit/provider/exec/windows_spec.rb +2 -4
  463. data/spec/unit/provider/exec_spec.rb +0 -1
  464. data/spec/unit/provider/file/posix_spec.rb +22 -24
  465. data/spec/unit/provider/file/windows_spec.rb +15 -17
  466. data/spec/unit/provider/group/aix_spec.rb +3 -2
  467. data/spec/unit/provider/group/groupadd_spec.rb +30 -26
  468. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  469. data/spec/unit/provider/group/pw_spec.rb +11 -11
  470. data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
  471. data/spec/unit/provider/host/parsed_spec.rb +6 -6
  472. data/spec/unit/provider/interface/cisco_spec.rb +20 -24
  473. data/spec/unit/provider/ldap_spec.rb +61 -62
  474. data/spec/unit/provider/macauthorization_spec.rb +26 -47
  475. data/spec/unit/provider/mcx/mcxcontent_spec.rb +45 -47
  476. data/spec/unit/provider/mount/parsed_spec.rb +18 -24
  477. data/spec/unit/provider/mount_spec.rb +57 -66
  478. data/spec/unit/provider/naginator_spec.rb +13 -14
  479. data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
  480. data/spec/unit/provider/nameservice_spec.rb +38 -40
  481. data/spec/unit/provider/network_device_spec.rb +28 -28
  482. data/spec/unit/provider/package/aix_spec.rb +15 -15
  483. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  484. data/spec/unit/provider/package/apt_spec.rb +44 -27
  485. data/spec/unit/provider/package/aptitude_spec.rb +6 -7
  486. data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
  487. data/spec/unit/provider/package/base_spec.rb +4 -4
  488. data/spec/unit/provider/package/dnf_spec.rb +14 -16
  489. data/spec/unit/provider/package/dpkg_spec.rb +52 -52
  490. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  491. data/spec/unit/provider/package/gem_spec.rb +51 -43
  492. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  493. data/spec/unit/provider/package/macports_spec.rb +46 -42
  494. data/spec/unit/provider/package/nim_spec.rb +30 -39
  495. data/spec/unit/provider/package/openbsd_spec.rb +36 -39
  496. data/spec/unit/provider/package/opkg_spec.rb +23 -26
  497. data/spec/unit/provider/package/pacman_spec.rb +97 -118
  498. data/spec/unit/provider/package/pip_spec.rb +69 -71
  499. data/spec/unit/provider/package/pkg_spec.rb +109 -109
  500. data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
  501. data/spec/unit/provider/package/pkgin_spec.rb +10 -8
  502. data/spec/unit/provider/package/pkgng_spec.rb +17 -18
  503. data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
  504. data/spec/unit/provider/package/portage_spec.rb +70 -74
  505. data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
  506. data/spec/unit/provider/package/rpm_spec.rb +53 -64
  507. data/spec/unit/provider/package/sun_spec.rb +16 -18
  508. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  509. data/spec/unit/provider/package/up2date_spec.rb +2 -4
  510. data/spec/unit/provider/package/urpmi_spec.rb +15 -17
  511. data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
  512. data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
  513. data/spec/unit/provider/package/windows/package_spec.rb +37 -42
  514. data/spec/unit/provider/package/windows_spec.rb +36 -32
  515. data/spec/unit/provider/package/yum_spec.rb +4 -4
  516. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  517. data/spec/unit/provider/parsedfile_spec.rb +44 -45
  518. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +120 -130
  519. data/spec/unit/provider/selboolean_spec.rb +9 -11
  520. data/spec/unit/provider/selmodule_spec.rb +20 -22
  521. data/spec/unit/provider/service/base_spec.rb +4 -5
  522. data/spec/unit/provider/service/bsd_spec.rb +27 -29
  523. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  524. data/spec/unit/provider/service/debian_spec.rb +37 -37
  525. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  526. data/spec/unit/provider/service/gentoo_spec.rb +50 -56
  527. data/spec/unit/provider/service/init_spec.rb +55 -55
  528. data/spec/unit/provider/service/launchd_spec.rb +138 -116
  529. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  530. data/spec/unit/provider/service/openrc_spec.rb +43 -46
  531. data/spec/unit/provider/service/openwrt_spec.rb +26 -32
  532. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  533. data/spec/unit/provider/service/redhat_spec.rb +45 -43
  534. data/spec/unit/provider/service/runit_spec.rb +29 -27
  535. data/spec/unit/provider/service/smf_spec.rb +74 -66
  536. data/spec/unit/provider/service/src_spec.rb +46 -47
  537. data/spec/unit/provider/service/systemd_spec.rb +93 -98
  538. data/spec/unit/provider/service/upstart_spec.rb +74 -72
  539. data/spec/unit/provider/service/windows_spec.rb +33 -41
  540. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +54 -68
  541. data/spec/unit/provider/sshkey/parsed_spec.rb +7 -8
  542. data/spec/unit/provider/user/aix_spec.rb +31 -31
  543. data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
  544. data/spec/unit/provider/user/hpux_spec.rb +15 -15
  545. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  546. data/spec/unit/provider/user/openbsd_spec.rb +10 -12
  547. data/spec/unit/provider/user/pw_spec.rb +37 -35
  548. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  549. data/spec/unit/provider/user/useradd_spec.rb +93 -92
  550. data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
  551. data/spec/unit/provider/vlan/cisco_spec.rb +10 -12
  552. data/spec/unit/provider/yumrepo/inifile_spec.rb +75 -80
  553. data/spec/unit/provider/zfs/zfs_spec.rb +26 -21
  554. data/spec/unit/provider/zone/solaris_spec.rb +56 -42
  555. data/spec/unit/provider/zpool/zpool_spec.rb +19 -20
  556. data/spec/unit/provider_spec.rb +29 -29
  557. data/spec/unit/puppet_pal_2pec.rb +4 -5
  558. data/spec/unit/puppet_pal_spec.rb +0 -1
  559. data/spec/unit/puppet_spec.rb +7 -8
  560. data/spec/unit/relationship_spec.rb +0 -1
  561. data/spec/unit/reports/http_spec.rb +21 -23
  562. data/spec/unit/reports/store_spec.rb +3 -4
  563. data/spec/unit/reports_spec.rb +12 -14
  564. data/spec/unit/resource/capability_finder_spec.rb +18 -16
  565. data/spec/unit/resource/catalog_spec.rb +72 -68
  566. data/spec/unit/resource/status_spec.rb +6 -8
  567. data/spec/unit/resource/type_collection_spec.rb +17 -18
  568. data/spec/unit/resource/type_spec.rb +34 -35
  569. data/spec/unit/resource_spec.rb +36 -32
  570. data/spec/unit/scheduler/job_spec.rb +0 -1
  571. data/spec/unit/scheduler/scheduler_spec.rb +0 -1
  572. data/spec/unit/scheduler/splay_job_spec.rb +1 -2
  573. data/spec/unit/settings/array_setting_spec.rb +1 -1
  574. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  575. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  576. data/spec/unit/settings/config_file_spec.rb +0 -1
  577. data/spec/unit/settings/directory_setting_spec.rb +2 -7
  578. data/spec/unit/settings/duration_setting_spec.rb +1 -2
  579. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  580. data/spec/unit/settings/environment_conf_spec.rb +4 -6
  581. data/spec/unit/settings/file_setting_spec.rb +44 -46
  582. data/spec/unit/settings/path_setting_spec.rb +1 -2
  583. data/spec/unit/settings/priority_setting_spec.rb +1 -2
  584. data/spec/unit/settings/string_setting_spec.rb +14 -15
  585. data/spec/unit/settings/terminus_setting_spec.rb +1 -2
  586. data/spec/unit/settings/value_translator_spec.rb +0 -1
  587. data/spec/unit/settings_spec.rb +226 -233
  588. data/spec/unit/ssl/base_spec.rb +14 -15
  589. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +6 -7
  590. data/spec/unit/ssl/certificate_authority/interface_spec.rb +116 -113
  591. data/spec/unit/ssl/certificate_authority_spec.rb +258 -268
  592. data/spec/unit/ssl/certificate_factory_spec.rb +3 -5
  593. data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -3
  594. data/spec/unit/ssl/certificate_request_spec.rb +66 -67
  595. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -4
  596. data/spec/unit/ssl/certificate_spec.rb +23 -25
  597. data/spec/unit/ssl/configuration_spec.rb +1 -4
  598. data/spec/unit/ssl/digest_spec.rb +0 -1
  599. data/spec/unit/ssl/host_spec.rb +217 -188
  600. data/spec/unit/ssl/inventory_spec.rb +25 -21
  601. data/spec/unit/ssl/key_spec.rb +30 -31
  602. data/spec/unit/ssl/validator_spec.rb +40 -40
  603. data/spec/unit/task_spec.rb +6 -7
  604. data/spec/unit/transaction/additional_resource_generator_spec.rb +6 -5
  605. data/spec/unit/transaction/event_manager_spec.rb +88 -88
  606. data/spec/unit/transaction/event_spec.rb +16 -15
  607. data/spec/unit/transaction/persistence_spec.rb +16 -17
  608. data/spec/unit/transaction/report_spec.rb +11 -12
  609. data/spec/unit/transaction/resource_harness_spec.rb +28 -33
  610. data/spec/unit/transaction_spec.rb +98 -100
  611. data/spec/unit/type/augeas_spec.rb +11 -10
  612. data/spec/unit/type/component_spec.rb +0 -1
  613. data/spec/unit/type/computer_spec.rb +7 -10
  614. data/spec/unit/type/cron_spec.rb +3 -7
  615. data/spec/unit/type/exec_spec.rb +60 -56
  616. data/spec/unit/type/file/checksum_spec.rb +9 -10
  617. data/spec/unit/type/file/checksum_value_spec.rb +31 -32
  618. data/spec/unit/type/file/content_spec.rb +58 -61
  619. data/spec/unit/type/file/ctime_spec.rb +0 -1
  620. data/spec/unit/type/file/ensure_spec.rb +12 -13
  621. data/spec/unit/type/file/group_spec.rb +5 -7
  622. data/spec/unit/type/file/mode_spec.rb +4 -6
  623. data/spec/unit/type/file/mtime_spec.rb +0 -1
  624. data/spec/unit/type/file/owner_spec.rb +6 -8
  625. data/spec/unit/type/file/selinux_spec.rb +17 -19
  626. data/spec/unit/type/file/source_spec.rb +104 -101
  627. data/spec/unit/type/file/type_spec.rb +0 -1
  628. data/spec/unit/type/file_spec.rb +195 -185
  629. data/spec/unit/type/filebucket_spec.rb +4 -5
  630. data/spec/unit/type/group_spec.rb +6 -8
  631. data/spec/unit/type/host_spec.rb +2 -3
  632. data/spec/unit/type/interface_spec.rb +2 -3
  633. data/spec/unit/type/k5login_spec.rb +3 -4
  634. data/spec/unit/type/macauthorization_spec.rb +6 -8
  635. data/spec/unit/type/mailalias_spec.rb +2 -3
  636. data/spec/unit/type/maillist_spec.rb +6 -9
  637. data/spec/unit/type/mcx_spec.rb +4 -8
  638. data/spec/unit/type/mount_spec.rb +26 -38
  639. data/spec/unit/type/nagios_spec.rb +0 -1
  640. data/spec/unit/type/noop_metaparam_spec.rb +1 -2
  641. data/spec/unit/type/package/package_settings_spec.rb +44 -23
  642. data/spec/unit/type/package_spec.rb +53 -54
  643. data/spec/unit/type/resources_spec.rb +86 -88
  644. data/spec/unit/type/schedule_spec.rb +24 -26
  645. data/spec/unit/type/scheduled_task_spec.rb +1 -2
  646. data/spec/unit/type/selboolean_spec.rb +5 -6
  647. data/spec/unit/type/selmodule_spec.rb +0 -1
  648. data/spec/unit/type/service_spec.rb +47 -47
  649. data/spec/unit/type/ssh_authorized_key_spec.rb +5 -35
  650. data/spec/unit/type/sshkey_spec.rb +0 -2
  651. data/spec/unit/type/stage_spec.rb +0 -1
  652. data/spec/unit/type/tidy_spec.rb +61 -62
  653. data/spec/unit/type/user_spec.rb +41 -27
  654. data/spec/unit/type/vlan_spec.rb +2 -4
  655. data/spec/unit/type/whit_spec.rb +0 -1
  656. data/spec/unit/type/zfs_spec.rb +6 -7
  657. data/spec/unit/type/zone_spec.rb +14 -4
  658. data/spec/unit/type/zpool_spec.rb +4 -5
  659. data/spec/unit/type_spec.rb +54 -53
  660. data/spec/unit/util/at_fork_spec.rb +18 -19
  661. data/spec/unit/util/autoload_spec.rb +53 -54
  662. data/spec/unit/util/backups_spec.rb +34 -35
  663. data/spec/unit/util/character_encoding_spec.rb +8 -8
  664. data/spec/unit/util/checksums_spec.rb +38 -39
  665. data/spec/unit/util/colors_spec.rb +1 -2
  666. data/spec/unit/util/command_line_spec.rb +24 -25
  667. data/spec/unit/util/constant_inflector_spec.rb +0 -1
  668. data/spec/unit/util/diff_spec.rb +7 -8
  669. data/spec/unit/util/errors_spec.rb +0 -1
  670. data/spec/unit/util/execution_spec.rb +187 -162
  671. data/spec/unit/util/execution_stub_spec.rb +0 -1
  672. data/spec/unit/util/feature_spec.rb +13 -13
  673. data/spec/unit/util/filetype_spec.rb +49 -49
  674. data/spec/unit/util/http_proxy_spec.rb +12 -12
  675. data/spec/unit/util/inifile_spec.rb +26 -31
  676. data/spec/unit/util/json_lockfile_spec.rb +3 -5
  677. data/spec/unit/util/ldap/connection_spec.rb +26 -25
  678. data/spec/unit/util/ldap/generator_spec.rb +0 -1
  679. data/spec/unit/util/ldap/manager_spec.rb +102 -101
  680. data/spec/unit/util/lockfile_spec.rb +0 -1
  681. data/spec/unit/util/log/destinations_spec.rb +30 -33
  682. data/spec/unit/util/log_spec.rb +35 -36
  683. data/spec/unit/util/logging_spec.rb +58 -66
  684. data/spec/unit/util/metric_spec.rb +0 -1
  685. data/spec/unit/util/monkey_patches_spec.rb +7 -9
  686. data/spec/unit/util/multi_match_spec.rb +0 -1
  687. data/spec/unit/util/nagios_maker_spec.rb +35 -36
  688. data/spec/unit/util/network_device/cisco/device_spec.rb +59 -50
  689. data/spec/unit/util/network_device/cisco/facts_spec.rb +4 -5
  690. data/spec/unit/util/network_device/cisco/interface_spec.rb +29 -20
  691. data/spec/unit/util/network_device/config_spec.rb +0 -1
  692. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -1
  693. data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
  694. data/spec/unit/util/network_device/transport/ssh_spec.rb +94 -60
  695. data/spec/unit/util/network_device/transport/telnet_spec.rb +18 -14
  696. data/spec/unit/util/network_device_spec.rb +7 -9
  697. data/spec/unit/util/package_spec.rb +0 -1
  698. data/spec/unit/util/pidlock_spec.rb +13 -14
  699. data/spec/unit/util/plist_spec.rb +40 -33
  700. data/spec/unit/util/posix_spec.rb +54 -51
  701. data/spec/unit/util/rdoc_spec.rb +9 -10
  702. data/spec/unit/util/reference_spec.rb +0 -1
  703. data/spec/unit/util/resource_template_spec.rb +20 -20
  704. data/spec/unit/util/retry_action_spec.rb +7 -8
  705. data/spec/unit/util/rubygems_spec.rb +14 -14
  706. data/spec/unit/util/run_mode_spec.rb +3 -4
  707. data/spec/unit/util/selinux_spec.rb +79 -72
  708. data/spec/unit/util/splayer_spec.rb +8 -9
  709. data/spec/unit/util/ssl_spec.rb +0 -1
  710. data/spec/unit/util/storage_spec.rb +3 -4
  711. data/spec/unit/util/suidmanager_spec.rb +45 -54
  712. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
  713. data/spec/unit/util/tag_set_spec.rb +0 -1
  714. data/spec/unit/util/tagging_spec.rb +0 -1
  715. data/spec/unit/util/terminal_spec.rb +9 -10
  716. data/spec/unit/util/user_attr_spec.rb +1 -2
  717. data/spec/unit/util/warnings_spec.rb +3 -4
  718. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  719. data/spec/unit/util/watcher_spec.rb +51 -21
  720. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
  721. data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
  722. data/spec/unit/util/windows/adsi_spec.rb +136 -138
  723. data/spec/unit/util/windows/api_types_spec.rb +0 -1
  724. data/spec/unit/util/windows/eventlog_spec.rb +9 -12
  725. data/spec/unit/util/windows/file_spec.rb +0 -1
  726. data/spec/unit/util/windows/root_certs_spec.rb +0 -1
  727. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
  728. data/spec/unit/util/windows/service_spec.rb +66 -68
  729. data/spec/unit/util/windows/sid_spec.rb +11 -13
  730. data/spec/unit/util/windows/string_spec.rb +0 -1
  731. data/spec/unit/util_spec.rb +55 -59
  732. data/spec/unit/version_spec.rb +6 -6
  733. metadata +2 -2
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/indirector/file_metadata'
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/indirector/file_metadata/selector'
@@ -1,107 +1,111 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/indirector/file_server'
5
4
  require 'puppet/file_serving/configuration'
6
5
 
7
6
  describe Puppet::Indirector::FileServer do
8
-
9
- before :all do
10
- Puppet::Indirector::Terminus.stubs(:register_terminus_class)
11
- @model = mock 'model'
12
- @indirection = stub 'indirection', :name => :mystuff, :register_terminus_type => nil, :model => @model
13
- Puppet::Indirector::Indirection.stubs(:instance).returns(@indirection)
7
+ before(:each) do
8
+ allow(Puppet::Indirector::Terminus).to receive(:register_terminus_class)
9
+ @model = double('model')
10
+ @indirection = double('indirection', :name => :mystuff, :register_terminus_type => nil, :model => @model)
11
+ allow(Puppet::Indirector::Indirection).to receive(:instance).and_return(@indirection)
14
12
 
15
13
  module Testing; end
14
+
15
+ # The Indirector does a lot of class-level caching of things, and indirections register themselves
16
+ # whenever they're created (at include time), which makes working with them in tests _very_ annoying.
17
+ # We're effectively undefining the test class if it exists from a previous test so that we can
18
+ # re-register the new one as any mocks/stubs that existed on the old one from a previous test will no
19
+ # longer be valid, and will cause rspec-mocks to (rightfully) blow up.
20
+ Testing.send(:remove_const, :MyFileServer) if Testing.constants.include?(:MyFileServer)
21
+
16
22
  @file_server_class = class Testing::MyFileServer < Puppet::Indirector::FileServer
17
23
  self
18
24
  end
19
- end
20
25
 
21
- before :each do
22
26
  @file_server = @file_server_class.new
23
27
 
24
28
  @uri = "puppet://host/my/local/file"
25
- @configuration = mock 'configuration'
26
- Puppet::FileServing::Configuration.stubs(:configuration).returns(@configuration)
29
+ @configuration = double('configuration')
30
+ allow(Puppet::FileServing::Configuration).to receive(:configuration).and_return(@configuration)
27
31
 
28
32
  @request = Puppet::Indirector::Request.new(:myind, :mymethod, @uri, :environment => "myenv")
29
33
  end
30
34
 
31
35
  describe "when finding files" do
32
36
  before do
33
- @mount = stub 'mount', :find => nil
34
- @instance = stub('instance', :links= => nil, :collect => nil)
37
+ @mount = double('mount', :find => nil)
38
+ @instance = double('instance', :links= => nil, :collect => nil)
35
39
  end
36
40
 
37
41
  it "should use the configuration to find the mount and relative path" do
38
- @configuration.expects(:split_path).with(@request)
42
+ expect(@configuration).to receive(:split_path).with(@request)
39
43
 
40
44
  @file_server.find(@request)
41
45
  end
42
46
 
43
47
  it "should return nil if it cannot find the mount" do
44
- @configuration.expects(:split_path).with(@request).returns(nil, nil)
48
+ expect(@configuration).to receive(:split_path).with(@request).and_return([nil, nil])
45
49
 
46
50
  expect(@file_server.find(@request)).to be_nil
47
51
  end
48
52
 
49
53
  it "should use the mount to find the full path" do
50
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
54
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
51
55
 
52
- @mount.expects(:find).with { |key, request| key == "rel/path" }
56
+ expect(@mount).to receive(:find).with("rel/path", anything)
53
57
 
54
58
  @file_server.find(@request)
55
59
  end
56
60
 
57
61
  it "should pass the request when finding a file" do
58
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
62
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
59
63
 
60
- @mount.expects(:find).with { |key, request| request == @request }
64
+ expect(@mount).to receive(:find).with(anything, @request)
61
65
 
62
66
  @file_server.find(@request)
63
67
  end
64
68
 
65
69
  it "should return nil if it cannot find a full path" do
66
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
70
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
67
71
 
68
- @mount.expects(:find).with { |key, request| key == "rel/path" }.returns nil
72
+ expect(@mount).to receive(:find).with("rel/path", anything).and_return(nil)
69
73
 
70
74
  expect(@file_server.find(@request)).to be_nil
71
75
  end
72
76
 
73
77
  it "should create an instance with the found path" do
74
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
78
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
75
79
 
76
- @mount.expects(:find).with { |key, request| key == "rel/path" }.returns "/my/file"
80
+ expect(@mount).to receive(:find).with("rel/path", anything).and_return("/my/file")
77
81
 
78
- @model.expects(:new).with("/my/file", {:relative_path => nil}).returns @instance
82
+ expect(@model).to receive(:new).with("/my/file", {:relative_path => nil}).and_return(@instance)
79
83
 
80
84
  expect(@file_server.find(@request)).to equal(@instance)
81
85
  end
82
86
 
83
87
  it "should set 'links' on the instance if it is set in the request options" do
84
88
  @request.options[:links] = true
85
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
89
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
86
90
 
87
- @mount.expects(:find).with { |key, request| key == "rel/path" }.returns "/my/file"
91
+ expect(@mount).to receive(:find).with("rel/path", anything).and_return("/my/file")
88
92
 
89
- @model.expects(:new).with("/my/file", {:relative_path => nil}).returns @instance
93
+ expect(@model).to receive(:new).with("/my/file", {:relative_path => nil}).and_return(@instance)
90
94
 
91
- @instance.expects(:links=).with(true)
95
+ expect(@instance).to receive(:links=).with(true)
92
96
 
93
97
  expect(@file_server.find(@request)).to equal(@instance)
94
98
  end
95
99
 
96
100
  it "should collect the instance" do
97
101
  @request.options[:links] = true
98
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
102
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
99
103
 
100
- @mount.expects(:find).with { |key, request| key == "rel/path" }.returns "/my/file"
104
+ expect(@mount).to receive(:find).with("rel/path", anything).and_return("/my/file")
101
105
 
102
- @model.expects(:new).with("/my/file", {:relative_path => nil}).returns @instance
106
+ expect(@model).to receive(:new).with("/my/file", {:relative_path => nil}).and_return(@instance)
103
107
 
104
- @instance.expects(:collect)
108
+ expect(@instance).to receive(:collect)
105
109
 
106
110
  expect(@file_server.find(@request)).to equal(@instance)
107
111
  end
@@ -109,77 +113,77 @@ describe Puppet::Indirector::FileServer do
109
113
 
110
114
  describe "when searching for instances" do
111
115
  before do
112
- @mount = stub 'mount', :search => nil
113
- @instance = stub('instance', :links= => nil, :collect => nil)
116
+ @mount = double('mount', :search => nil)
117
+ @instance = double('instance', :links= => nil, :collect => nil)
114
118
  end
115
119
 
116
120
  it "should use the configuration to search the mount and relative path" do
117
- @configuration.expects(:split_path).with(@request)
121
+ expect(@configuration).to receive(:split_path).with(@request)
118
122
 
119
123
  @file_server.search(@request)
120
124
  end
121
125
 
122
126
  it "should return nil if it cannot search the mount" do
123
- @configuration.expects(:split_path).with(@request).returns(nil, nil)
127
+ expect(@configuration).to receive(:split_path).with(@request).and_return([nil, nil])
124
128
 
125
129
  expect(@file_server.search(@request)).to be_nil
126
130
  end
127
131
 
128
132
  it "should use the mount to search for the full paths" do
129
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
133
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
130
134
 
131
- @mount.expects(:search).with { |key, request| key == "rel/path" }
135
+ expect(@mount).to receive(:search).with("rel/path", anything)
132
136
 
133
137
  @file_server.search(@request)
134
138
  end
135
139
 
136
140
  it "should pass the request" do
137
- @configuration.stubs(:split_path).returns([@mount, "rel/path"])
141
+ allow(@configuration).to receive(:split_path).and_return([@mount, "rel/path"])
138
142
 
139
- @mount.expects(:search).with { |key, request| request == @request }
143
+ expect(@mount).to receive(:search).with(anything, @request)
140
144
 
141
145
  @file_server.search(@request)
142
146
  end
143
147
 
144
148
  it "should return nil if searching does not find any full paths" do
145
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
149
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
146
150
 
147
- @mount.expects(:search).with { |key, request| key == "rel/path" }.returns nil
151
+ expect(@mount).to receive(:search).with("rel/path", anything).and_return(nil)
148
152
 
149
153
  expect(@file_server.search(@request)).to be_nil
150
154
  end
151
155
 
152
156
  it "should create a fileset with each returned path and merge them" do
153
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
157
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
154
158
 
155
- @mount.expects(:search).with { |key, request| key == "rel/path" }.returns %w{/one /two}
159
+ expect(@mount).to receive(:search).with("rel/path", anything).and_return(%w{/one /two})
156
160
 
157
- Puppet::FileSystem.stubs(:exist?).returns true
161
+ allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
158
162
 
159
- one = mock 'fileset_one'
160
- Puppet::FileServing::Fileset.expects(:new).with("/one", @request).returns(one)
161
- two = mock 'fileset_two'
162
- Puppet::FileServing::Fileset.expects(:new).with("/two", @request).returns(two)
163
+ one = double('fileset_one')
164
+ expect(Puppet::FileServing::Fileset).to receive(:new).with("/one", @request).and_return(one)
165
+ two = double('fileset_two')
166
+ expect(Puppet::FileServing::Fileset).to receive(:new).with("/two", @request).and_return(two)
163
167
 
164
- Puppet::FileServing::Fileset.expects(:merge).with(one, two).returns []
168
+ expect(Puppet::FileServing::Fileset).to receive(:merge).with(one, two).and_return([])
165
169
 
166
170
  @file_server.search(@request)
167
171
  end
168
172
 
169
173
  it "should create an instance with each path resulting from the merger of the filesets" do
170
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
174
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
171
175
 
172
- @mount.expects(:search).with { |key, request| key == "rel/path" }.returns []
176
+ expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
173
177
 
174
- Puppet::FileSystem.stubs(:exist?).returns true
178
+ allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
175
179
 
176
- Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one", "two" => "/two")
180
+ expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one", "two" => "/two")
177
181
 
178
- one = stub 'one', :collect => nil
179
- @model.expects(:new).with("/one", :relative_path => "one").returns one
182
+ one = double('one', :collect => nil)
183
+ expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
180
184
 
181
- two = stub 'two', :collect => nil
182
- @model.expects(:new).with("/two", :relative_path => "two").returns two
185
+ two = double('two', :collect => nil)
186
+ expect(@model).to receive(:new).with("/two", :relative_path => "two").and_return(two)
183
187
 
184
188
  # order can't be guaranteed
185
189
  result = @file_server.search(@request)
@@ -189,17 +193,17 @@ describe Puppet::Indirector::FileServer do
189
193
  end
190
194
 
191
195
  it "should set 'links' on the instances if it is set in the request options" do
192
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
196
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
193
197
 
194
- @mount.expects(:search).with { |key, request| key == "rel/path" }.returns []
198
+ expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
195
199
 
196
- Puppet::FileSystem.stubs(:exist?).returns true
200
+ allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
197
201
 
198
- Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one")
202
+ expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one")
199
203
 
200
- one = stub 'one', :collect => nil
201
- @model.expects(:new).with("/one", :relative_path => "one").returns one
202
- one.expects(:links=).with true
204
+ one = double('one', :collect => nil)
205
+ expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
206
+ expect(one).to receive(:links=).with(true)
203
207
 
204
208
  @request.options[:links] = true
205
209
 
@@ -207,35 +211,35 @@ describe Puppet::Indirector::FileServer do
207
211
  end
208
212
 
209
213
  it "should set 'checksum_type' on the instances if it is set in the request options" do
210
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
214
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
211
215
 
212
- @mount.expects(:search).with { |key, request| key == "rel/path" }.returns []
216
+ expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
213
217
 
214
- Puppet::FileSystem.stubs(:exist?).returns true
218
+ allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
215
219
 
216
- Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one")
220
+ expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one")
217
221
 
218
- one = stub 'one', :collect => nil
219
- @model.expects(:new).with("/one", :relative_path => "one").returns one
222
+ one = double('one', :collect => nil)
223
+ expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
220
224
 
221
- one.expects(:checksum_type=).with :checksum
225
+ expect(one).to receive(:checksum_type=).with(:checksum)
222
226
  @request.options[:checksum_type] = :checksum
223
227
 
224
228
  @file_server.search(@request)
225
229
  end
226
230
 
227
231
  it "should collect the instances" do
228
- @configuration.expects(:split_path).with(@request).returns([@mount, "rel/path"])
232
+ expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
229
233
 
230
- @mount.expects(:search).with { |key, options| key == "rel/path" }.returns []
234
+ expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
231
235
 
232
- Puppet::FileSystem.stubs(:exist?).returns true
236
+ allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
233
237
 
234
- Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one")
238
+ expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one")
235
239
 
236
- one = mock 'one'
237
- @model.expects(:new).with("/one", :relative_path => "one").returns one
238
- one.expects(:collect)
240
+ one = double('one')
241
+ expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
242
+ expect(one).to receive(:collect)
239
243
 
240
244
  @file_server.search(@request)
241
245
  end
@@ -245,12 +249,14 @@ describe Puppet::Indirector::FileServer do
245
249
  before do
246
250
  @request.method = :find
247
251
 
248
- @mount = stub 'mount'
249
- @configuration.stubs(:split_path).with(@request).returns([@mount, "rel/path"])
250
- @request.stubs(:node).returns("mynode")
251
- @request.stubs(:ip).returns("myip")
252
- @mount.stubs(:name).returns "myname"
253
- @mount.stubs(:allowed?).with("mynode", "myip").returns "something"
252
+ @mount = double('mount')
253
+ allow(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
254
+ allow(@request).to receive(:node).and_return("mynode")
255
+ allow(@request).to receive(:ip).and_return("myip")
256
+ allow(@mount).to receive(:name).and_return("myname")
257
+ allow(@mount).to receive(:allowed?).with("mynode", "myip").and_return("something")
258
+ allow(@mount).to receive(:empty?)
259
+ allow(@mount).to receive(:globalallow?)
254
260
  end
255
261
 
256
262
  it "should return false when destroying" do
@@ -264,32 +270,32 @@ describe Puppet::Indirector::FileServer do
264
270
  end
265
271
 
266
272
  it "should use the configuration to find the mount and relative path" do
267
- @configuration.expects(:split_path).with(@request)
273
+ expect(@configuration).to receive(:split_path).with(@request)
268
274
 
269
275
  @file_server.authorized?(@request)
270
276
  end
271
277
 
272
278
  it "should return false if it cannot find the mount" do
273
- @configuration.expects(:split_path).with(@request).returns(nil, nil)
279
+ expect(@configuration).to receive(:split_path).with(@request).and_return([nil, nil])
274
280
 
275
281
  expect(@file_server).not_to be_authorized(@request)
276
282
  end
277
283
 
278
284
  it "should return true when no auth directives are defined for the mount point" do
279
- @mount.stubs(:empty?).returns true
280
- @mount.stubs(:globalallow?).returns nil
285
+ allow(@mount).to receive(:empty?).and_return(true)
286
+ allow(@mount).to receive(:globalallow?).and_return(nil)
281
287
  expect(@file_server).to be_authorized(@request)
282
288
  end
283
289
 
284
290
  it "should return true when a global allow directive is defined for the mount point" do
285
- @mount.stubs(:empty?).returns false
286
- @mount.stubs(:globalallow?).returns true
291
+ allow(@mount).to receive(:empty?).and_return(false)
292
+ allow(@mount).to receive(:globalallow?).and_return(true)
287
293
  expect(@file_server).to be_authorized(@request)
288
294
  end
289
295
 
290
296
  it "should return false when a non-global allow directive is defined for the mount point" do
291
- @mount.stubs(:empty?).returns false
292
- @mount.stubs(:globalallow?).returns false
297
+ allow(@mount).to receive(:empty?).and_return(false)
298
+ allow(@mount).to receive(:globalallow?).and_return(false)
293
299
  expect(@file_server).not_to be_authorized(@request)
294
300
  end
295
301
  end
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/indirector/indirection'
@@ -7,23 +6,23 @@ shared_examples_for "Indirection Delegator" do
7
6
  it "should create a request object with the appropriate method name and all of the passed arguments" do
8
7
  request = Puppet::Indirector::Request.new(:indirection, :find, "me", nil)
9
8
 
10
- @indirection.expects(:request).with(@method, "mystuff", nil, :one => :two).returns request
9
+ expect(@indirection).to receive(:request).with(@method, "mystuff", nil, :one => :two).and_return(request)
11
10
 
12
- @terminus.stubs(@method)
11
+ allow(@terminus).to receive(@method)
13
12
 
14
13
  @indirection.send(@method, "mystuff", :one => :two)
15
14
  end
16
15
 
17
16
  it "should choose the terminus returned by the :terminus_class" do
18
- @indirection.expects(:terminus_class).returns :test_terminus
17
+ expect(@indirection).to receive(:terminus_class).and_return(:test_terminus)
19
18
 
20
- @terminus.expects(@method)
19
+ expect(@terminus).to receive(@method)
21
20
 
22
21
  @indirection.send(@method, "me")
23
22
  end
24
23
 
25
24
  it "should let the appropriate terminus perform the lookup" do
26
- @terminus.expects(@method).with { |r| r.is_a?(Puppet::Indirector::Request) }
25
+ expect(@terminus).to receive(@method).with(be_a(Puppet::Indirector::Request))
27
26
  @indirection.send(@method, "me")
28
27
  end
29
28
  end
@@ -38,38 +37,38 @@ shared_examples_for "Delegation Authorizer" do
38
37
  end
39
38
 
40
39
  it "should not check authorization if a node name is not provided" do
41
- @terminus.expects(:authorized?).never
42
- @terminus.stubs(@method)
40
+ expect(@terminus).not_to receive(:authorized?)
41
+ allow(@terminus).to receive(@method)
43
42
 
44
- # The quotes are necessary here, else it looks like a block.
45
- @request.stubs(:options).returns({})
43
+ # The parenthesis are necessary here, else it looks like a block.
44
+ allow(@request).to receive(:options).and_return({})
46
45
  @indirection.send(@method, "/my/key")
47
46
  end
48
47
 
49
48
  it "should pass the request to the terminus's authorization method" do
50
- @terminus.expects(:authorized?).with { |r| r.is_a?(Puppet::Indirector::Request) }.returns(true)
51
- @terminus.stubs(@method)
49
+ expect(@terminus).to receive(:authorized?).with(be_a(Puppet::Indirector::Request)).and_return(true)
50
+ allow(@terminus).to receive(@method)
52
51
 
53
52
  @indirection.send(@method, "/my/key", :node => "mynode")
54
53
  end
55
54
 
56
55
  it "should fail if authorization returns false" do
57
- @terminus.expects(:authorized?).returns(false)
58
- @terminus.stubs(@method)
56
+ expect(@terminus).to receive(:authorized?).and_return(false)
57
+ allow(@terminus).to receive(@method)
59
58
  expect { @indirection.send(@method, "/my/key", :node => "mynode") }.to raise_error(ArgumentError)
60
59
  end
61
60
 
62
61
  it "should continue if authorization returns true" do
63
- @terminus.expects(:authorized?).returns(true)
64
- @terminus.stubs(@method)
62
+ expect(@terminus).to receive(:authorized?).and_return(true)
63
+ allow(@terminus).to receive(@method)
65
64
  @indirection.send(@method, "/my/key", :node => "mynode")
66
65
  end
67
66
  end
68
67
 
69
68
  shared_examples_for "Request validator" do
70
69
  it "asks the terminus to validate the request" do
71
- @terminus.expects(:validate).raises(Puppet::Indirector::ValidationError, "Invalid")
72
- @terminus.expects(@method).never
70
+ expect(@terminus).to receive(:validate).and_raise(Puppet::Indirector::ValidationError, "Invalid")
71
+ expect(@terminus).not_to receive(@method)
73
72
  expect {
74
73
  @indirection.send(@method, "key")
75
74
  }.to raise_error Puppet::Indirector::ValidationError
@@ -86,24 +85,24 @@ describe Puppet::Indirector::Indirection do
86
85
  end
87
86
 
88
87
  it "should keep a reference to the indirecting model" do
89
- model = mock 'model'
88
+ model = double('model')
90
89
  @indirection = Puppet::Indirector::Indirection.new(model, :myind)
91
90
  expect(@indirection.model).to equal(model)
92
91
  end
93
92
 
94
93
  it "should set the name" do
95
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :myind)
94
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :myind)
96
95
  expect(@indirection.name).to eq(:myind)
97
96
  end
98
97
 
99
98
  it "should require indirections to have unique names" do
100
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
99
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
101
100
  expect { Puppet::Indirector::Indirection.new(:test) }.to raise_error(ArgumentError)
102
101
  end
103
102
 
104
103
  it "should extend itself with any specified module" do
105
104
  mod = Module.new
106
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test, :extend => mod)
105
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test, :extend => mod)
107
106
  expect(@indirection.singleton_class.included_modules).to include(mod)
108
107
  end
109
108
 
@@ -114,23 +113,22 @@ describe Puppet::Indirector::Indirection do
114
113
 
115
114
  describe "when an instance" do
116
115
  before :each do
117
- @terminus_class = mock 'terminus_class'
118
- @terminus = mock 'terminus'
119
- @terminus.stubs(:validate)
120
- @terminus_class.stubs(:new).returns(@terminus)
121
- @cache = stub 'cache', :name => "mycache"
122
- @cache_class = mock 'cache_class'
123
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :cache_terminus).returns(@cache_class)
124
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :test_terminus).returns(@terminus_class)
125
-
126
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
116
+ @terminus_class = double('terminus_class')
117
+ @terminus = double('terminus')
118
+ allow(@terminus).to receive(:validate)
119
+ allow(@terminus_class).to receive(:new).and_return(@terminus)
120
+ @cache = double('cache', :name => "mycache")
121
+ @cache_class = double('cache_class')
122
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :cache_terminus).and_return(@cache_class)
123
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :test_terminus).and_return(@terminus_class)
124
+
125
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
127
126
  @indirection.terminus_class = :test_terminus
128
127
 
129
- @instance = stub 'instance', :expiration => nil, :expiration= => nil, :name => "whatever"
128
+ @instance = double('instance', :expiration => nil, :expiration= => nil, :name => "whatever")
130
129
  @name = :mything
131
130
 
132
- #@request = stub 'instance', :key => "/my/key", :instance => @instance, :options => {}
133
- @request = mock 'instance'
131
+ @request = double('instance')
134
132
  end
135
133
 
136
134
  it "should allow setting the ttl" do
@@ -144,9 +142,9 @@ describe Puppet::Indirector::Indirection do
144
142
  end
145
143
 
146
144
  it "should calculate the current expiration by adding the TTL to the current time" do
147
- @indirection.stubs(:ttl).returns(100)
145
+ allow(@indirection).to receive(:ttl).and_return(100)
148
146
  now = Time.now
149
- Time.stubs(:now).returns now
147
+ allow(Time).to receive(:now).and_return(now)
150
148
  expect(@indirection.expiration).to eq(Time.now + 100)
151
149
  end
152
150
 
@@ -156,28 +154,28 @@ describe Puppet::Indirector::Indirection do
156
154
 
157
155
  describe "creates a request" do
158
156
  it "should create it with its name as the request's indirection name" do
159
- Puppet::Indirector::Request.expects(:new).with { |name, *other| @indirection.name == name }
157
+ expect(Puppet::Indirector::Request).to receive(:new).with(@indirection.name, anything, anything)
160
158
  @indirection.request(:funtest, "yayness")
161
159
  end
162
160
 
163
161
  it "should require a method and key" do
164
- Puppet::Indirector::Request.expects(:new).with { |name, method, key, *other| method == :funtest and key == "yayness" }
162
+ expect(Puppet::Indirector::Request).to receive(:new).with(anything, :funtest, "yayness")
165
163
  @indirection.request(:funtest, "yayness")
166
164
  end
167
165
 
168
166
  it "should support optional arguments" do
169
- Puppet::Indirector::Request.expects(:new).with { |name, method, key, other| other == {:one => :two} }
167
+ expect(Puppet::Indirector::Request).to receive(:new).with(anything, anything, anything, {:one => :two})
170
168
  @indirection.request(:funtest, "yayness", :one => :two)
171
169
  end
172
170
 
173
171
  it "should not pass options if none are supplied" do
174
- Puppet::Indirector::Request.expects(:new).with { |*args| args.length < 4 }
172
+ expect(Puppet::Indirector::Request).to receive(:new).with(anything, anything, anything)
175
173
  @indirection.request(:funtest, "yayness")
176
174
  end
177
175
 
178
176
  it "should return the request" do
179
- request = mock 'request'
180
- Puppet::Indirector::Request.expects(:new).returns request
177
+ request = double('request')
178
+ expect(Puppet::Indirector::Request).to receive(:new).and_return(request)
181
179
  expect(@indirection.request(:funtest, "yayness")).to equal(request)
182
180
  end
183
181
  end
@@ -190,190 +188,204 @@ describe Puppet::Indirector::Indirection do
190
188
  it_should_behave_like "Request validator"
191
189
 
192
190
  it "should return the results of the delegation" do
193
- @terminus.expects(:find).returns(@instance)
191
+ expect(@terminus).to receive(:find).and_return(@instance)
194
192
  expect(@indirection.find("me")).to equal(@instance)
195
193
  end
196
194
 
197
195
  it "should return false if the instance is false" do
198
- @terminus.expects(:find).returns(false)
196
+ expect(@terminus).to receive(:find).and_return(false)
199
197
  expect(@indirection.find("me")).to equal(false)
200
198
  end
201
199
 
202
200
  it "should set the expiration date on any instances without one set" do
203
- @terminus.stubs(:find).returns(@instance)
201
+ allow(@terminus).to receive(:find).and_return(@instance)
204
202
 
205
- @indirection.expects(:expiration).returns :yay
203
+ expect(@indirection).to receive(:expiration).and_return(:yay)
206
204
 
207
- @instance.expects(:expiration).returns(nil)
208
- @instance.expects(:expiration=).with(:yay)
205
+ expect(@instance).to receive(:expiration).and_return(nil)
206
+ expect(@instance).to receive(:expiration=).with(:yay)
209
207
 
210
208
  @indirection.find("/my/key")
211
209
  end
212
210
 
213
211
  it "should not override an already-set expiration date on returned instances" do
214
- @terminus.stubs(:find).returns(@instance)
212
+ allow(@terminus).to receive(:find).and_return(@instance)
215
213
 
216
- @indirection.expects(:expiration).never
214
+ expect(@indirection).not_to receive(:expiration)
217
215
 
218
- @instance.expects(:expiration).returns(:yay)
219
- @instance.expects(:expiration=).never
216
+ expect(@instance).to receive(:expiration).and_return(:yay)
217
+ expect(@instance).not_to receive(:expiration=)
220
218
 
221
219
  @indirection.find("/my/key")
222
220
  end
223
221
 
224
222
  it "should filter the result instance if the terminus supports it" do
225
- @terminus.stubs(:find).returns(@instance)
226
- @terminus.stubs(:respond_to?).with(:filter).returns(true)
223
+ allow(@terminus).to receive(:find).and_return(@instance)
224
+ allow(@terminus).to receive(:respond_to?).with(:filter).and_return(true)
227
225
 
228
- @terminus.expects(:filter).with(@instance)
226
+ expect(@terminus).to receive(:filter).with(@instance)
229
227
 
230
228
  @indirection.find("/my/key")
231
229
  end
230
+
232
231
  describe "when caching is enabled" do
233
232
  before do
234
233
  @indirection.cache_class = :cache_terminus
235
- @cache_class.stubs(:new).returns(@cache)
234
+ allow(@cache_class).to receive(:new).and_return(@cache)
236
235
 
237
- @instance.stubs(:expired?).returns false
236
+ allow(@instance).to receive(:expired?).and_return(false)
238
237
  end
239
238
 
240
239
  it "should first look in the cache for an instance" do
241
- @terminus.stubs(:find).never
242
- @cache.expects(:find).returns @instance
240
+ expect(@terminus).not_to receive(:find)
241
+ expect(@cache).to receive(:find).and_return(@instance)
243
242
 
244
243
  @indirection.find("/my/key")
245
244
  end
246
245
 
247
246
  it "should not look in the cache if the request specifies not to use the cache" do
248
- @terminus.expects(:find).returns @instance
249
- @cache.expects(:find).never
250
- @cache.stubs(:save)
247
+ expect(@terminus).to receive(:find).and_return(@instance)
248
+ expect(@cache).not_to receive(:find)
249
+ allow(@cache).to receive(:save)
251
250
 
252
251
  @indirection.find("/my/key", :ignore_cache => true)
253
252
  end
254
253
 
255
254
  it "should still save to the cache even if the cache is being ignored during readin" do
256
- @terminus.expects(:find).returns @instance
257
- @cache.expects(:save)
255
+ expect(@terminus).to receive(:find).and_return(@instance)
256
+ expect(@cache).to receive(:save)
258
257
 
259
258
  @indirection.find("/my/key", :ignore_cache => true)
260
259
  end
261
260
 
262
261
  it "should not save to the cache if told to skip updating the cache" do
263
- @terminus.expects(:find).returns @instance
264
- @cache.expects(:find).returns nil
265
- @cache.expects(:save).never
262
+ expect(@terminus).to receive(:find).and_return(@instance)
263
+ expect(@cache).to receive(:find).and_return(nil)
264
+ expect(@cache).not_to receive(:save)
266
265
 
267
266
  @indirection.find("/my/key", :ignore_cache_save => true)
268
267
  end
269
268
 
270
269
  it "should only look in the cache if the request specifies not to use the terminus" do
271
- @terminus.expects(:find).never
272
- @cache.expects(:find)
270
+ expect(@terminus).not_to receive(:find)
271
+ expect(@cache).to receive(:find)
273
272
 
274
273
  @indirection.find("/my/key", :ignore_terminus => true)
275
274
  end
276
275
 
277
276
  it "should use a request to look in the cache for cached objects" do
278
- @cache.expects(:find).with { |r| r.method == :find and r.key == "/my/key" }.returns @instance
277
+ expect(@cache).to receive(:find) do |r|
278
+ expect(r.method).to eq(:find)
279
+ expect(r.key).to eq("/my/key")
280
+
281
+ @instance
282
+ end
279
283
 
280
- @cache.stubs(:save)
284
+ allow(@cache).to receive(:save)
281
285
 
282
286
  @indirection.find("/my/key")
283
287
  end
284
288
 
285
289
  it "should return the cached object if it is not expired" do
286
- @instance.stubs(:expired?).returns false
290
+ allow(@instance).to receive(:expired?).and_return(false)
287
291
 
288
- @cache.stubs(:find).returns @instance
292
+ allow(@cache).to receive(:find).and_return(@instance)
289
293
  expect(@indirection.find("/my/key")).to equal(@instance)
290
294
  end
291
295
 
292
296
  it "should not fail if the cache fails" do
293
- @terminus.stubs(:find).returns @instance
297
+ allow(@terminus).to receive(:find).and_return(@instance)
294
298
 
295
- @cache.expects(:find).raises ArgumentError
296
- @cache.stubs(:save)
299
+ expect(@cache).to receive(:find).and_raise(ArgumentError)
300
+ allow(@cache).to receive(:save)
297
301
  expect { @indirection.find("/my/key") }.not_to raise_error
298
302
  end
299
303
 
300
304
  it "should look in the main terminus if the cache fails" do
301
- @terminus.expects(:find).returns @instance
302
- @cache.expects(:find).raises ArgumentError
303
- @cache.stubs(:save)
305
+ expect(@terminus).to receive(:find).and_return(@instance)
306
+ expect(@cache).to receive(:find).and_raise(ArgumentError)
307
+ allow(@cache).to receive(:save)
304
308
  expect(@indirection.find("/my/key")).to equal(@instance)
305
309
  end
306
310
 
307
311
  it "should send a debug log if it is using the cached object" do
308
- Puppet.expects(:debug)
309
- @cache.stubs(:find).returns @instance
312
+ expect(Puppet).to receive(:debug)
313
+ allow(@cache).to receive(:find).and_return(@instance)
310
314
 
311
315
  @indirection.find("/my/key")
312
316
  end
313
317
 
314
318
  it "should not return the cached object if it is expired" do
315
- @instance.stubs(:expired?).returns true
319
+ allow(@instance).to receive(:expired?).and_return(true)
316
320
 
317
- @cache.stubs(:find).returns @instance
318
- @terminus.stubs(:find).returns nil
321
+ allow(@cache).to receive(:find).and_return(@instance)
322
+ allow(@terminus).to receive(:find).and_return(nil)
319
323
  expect(@indirection.find("/my/key")).to be_nil
320
324
  end
321
325
 
322
326
  it "should send an info log if it is using the cached object" do
323
- Puppet.expects(:info)
324
- @instance.stubs(:expired?).returns true
327
+ expect(Puppet).to receive(:info)
328
+ allow(@instance).to receive(:expired?).and_return(true)
325
329
 
326
- @cache.stubs(:find).returns @instance
327
- @terminus.stubs(:find).returns nil
330
+ allow(@cache).to receive(:find).and_return(@instance)
331
+ allow(@terminus).to receive(:find).and_return(nil)
328
332
  @indirection.find("/my/key")
329
333
  end
330
334
 
331
335
  it "should cache any objects not retrieved from the cache" do
332
- @cache.expects(:find).returns nil
336
+ expect(@cache).to receive(:find).and_return(nil)
333
337
 
334
- @terminus.expects(:find).returns(@instance)
335
- @cache.expects(:save)
338
+ expect(@terminus).to receive(:find).and_return(@instance)
339
+ expect(@cache).to receive(:save)
336
340
 
337
341
  @indirection.find("/my/key")
338
342
  end
339
343
 
340
344
  it "should use a request to look in the cache for cached objects" do
341
- @cache.expects(:find).with { |r| r.method == :find and r.key == "/my/key" }.returns nil
345
+ expect(@cache).to receive(:find) do |r|
346
+ expect(r.method).to eq(:find)
347
+ expect(r.key).to eq("/my/key")
342
348
 
343
- @terminus.stubs(:find).returns(@instance)
344
- @cache.stubs(:save)
349
+ nil
350
+ end
351
+
352
+ allow(@terminus).to receive(:find).and_return(@instance)
353
+ allow(@cache).to receive(:save)
345
354
 
346
355
  @indirection.find("/my/key")
347
356
  end
348
357
 
349
358
  it "should cache the instance using a request with the instance set to the cached object" do
350
- @cache.stubs(:find).returns nil
359
+ allow(@cache).to receive(:find).and_return(nil)
351
360
 
352
- @terminus.stubs(:find).returns(@instance)
361
+ allow(@terminus).to receive(:find).and_return(@instance)
353
362
 
354
- @cache.expects(:save).with { |r| r.method == :save and r.instance == @instance }
363
+ expect(@cache).to receive(:save) do |r|
364
+ expect(r.method).to eq(:save)
365
+ expect(r.instance).to eq(@instance)
366
+ end
355
367
 
356
368
  @indirection.find("/my/key")
357
369
  end
358
370
 
359
371
  it "should send an info log that the object is being cached" do
360
- @cache.stubs(:find).returns nil
372
+ allow(@cache).to receive(:find).and_return(nil)
361
373
 
362
- @terminus.stubs(:find).returns(@instance)
363
- @cache.stubs(:save)
374
+ allow(@terminus).to receive(:find).and_return(@instance)
375
+ allow(@cache).to receive(:save)
364
376
 
365
- Puppet.expects(:info)
377
+ expect(Puppet).to receive(:info)
366
378
 
367
379
  @indirection.find("/my/key")
368
380
  end
369
381
 
370
382
  it "should fail if saving to the cache fails but log the exception" do
371
- @cache.stubs(:find).returns nil
383
+ allow(@cache).to receive(:find).and_return(nil)
372
384
 
373
- @terminus.stubs(:find).returns(@instance)
374
- @cache.stubs(:save).raises RuntimeError
385
+ allow(@terminus).to receive(:find).and_return(@instance)
386
+ allow(@cache).to receive(:save).and_raise(RuntimeError)
375
387
 
376
- Puppet.expects(:log_exception)
388
+ expect(Puppet).to receive(:log_exception)
377
389
 
378
390
  expect { @indirection.find("/my/key") }.to raise_error RuntimeError
379
391
  end
@@ -388,63 +400,63 @@ describe Puppet::Indirector::Indirection do
388
400
  it_should_behave_like "Request validator"
389
401
 
390
402
  it "should return true if the head method returned true" do
391
- @terminus.expects(:head).returns(true)
403
+ expect(@terminus).to receive(:head).and_return(true)
392
404
  expect(@indirection.head("me")).to eq(true)
393
405
  end
394
406
 
395
407
  it "should return false if the head method returned false" do
396
- @terminus.expects(:head).returns(false)
408
+ expect(@terminus).to receive(:head).and_return(false)
397
409
  expect(@indirection.head("me")).to eq(false)
398
410
  end
399
411
 
400
412
  describe "when caching is enabled" do
401
413
  before do
402
414
  @indirection.cache_class = :cache_terminus
403
- @cache_class.stubs(:new).returns(@cache)
415
+ allow(@cache_class).to receive(:new).and_return(@cache)
404
416
 
405
- @instance.stubs(:expired?).returns false
417
+ allow(@instance).to receive(:expired?).and_return(false)
406
418
  end
407
419
 
408
420
  it "should first look in the cache for an instance" do
409
- @terminus.stubs(:find).never
410
- @terminus.stubs(:head).never
411
- @cache.expects(:find).returns @instance
421
+ expect(@terminus).not_to receive(:find)
422
+ expect(@terminus).not_to receive(:head)
423
+ expect(@cache).to receive(:find).and_return(@instance)
412
424
 
413
425
  expect(@indirection.head("/my/key")).to eq(true)
414
426
  end
415
427
 
416
428
  it "should not save to the cache" do
417
- @cache.expects(:find).returns nil
418
- @cache.expects(:save).never
419
- @terminus.expects(:head).returns true
429
+ expect(@cache).to receive(:find).and_return(nil)
430
+ expect(@cache).not_to receive(:save)
431
+ expect(@terminus).to receive(:head).and_return(true)
420
432
  expect(@indirection.head("/my/key")).to eq(true)
421
433
  end
422
434
 
423
435
  it "should not fail if the cache fails" do
424
- @terminus.stubs(:head).returns true
436
+ allow(@terminus).to receive(:head).and_return(true)
425
437
 
426
- @cache.expects(:find).raises ArgumentError
438
+ expect(@cache).to receive(:find).and_raise(ArgumentError)
427
439
  expect { @indirection.head("/my/key") }.not_to raise_error
428
440
  end
429
441
 
430
442
  it "should look in the main terminus if the cache fails" do
431
- @terminus.expects(:head).returns true
432
- @cache.expects(:find).raises ArgumentError
443
+ expect(@terminus).to receive(:head).and_return(true)
444
+ expect(@cache).to receive(:find).and_raise(ArgumentError)
433
445
  expect(@indirection.head("/my/key")).to eq(true)
434
446
  end
435
447
 
436
448
  it "should send a debug log if it is using the cached object" do
437
- Puppet.expects(:debug)
438
- @cache.stubs(:find).returns @instance
449
+ expect(Puppet).to receive(:debug)
450
+ allow(@cache).to receive(:find).and_return(@instance)
439
451
 
440
452
  @indirection.head("/my/key")
441
453
  end
442
454
 
443
455
  it "should not accept the cached object if it is expired" do
444
- @instance.stubs(:expired?).returns true
456
+ allow(@instance).to receive(:expired?).and_return(true)
445
457
 
446
- @cache.stubs(:find).returns @instance
447
- @terminus.stubs(:head).returns false
458
+ allow(@cache).to receive(:find).and_return(@instance)
459
+ allow(@terminus).to receive(:head).and_return(false)
448
460
  expect(@indirection.head("/my/key")).to eq(false)
449
461
  end
450
462
  end
@@ -454,51 +466,51 @@ describe Puppet::Indirector::Indirection do
454
466
  before { @method = :save }
455
467
 
456
468
  it "should return the result of the save" do
457
- @terminus.stubs(:save).returns "foo"
469
+ allow(@terminus).to receive(:save).and_return("foo")
458
470
  expect(@indirection.save(@instance)).to eq("foo")
459
471
  end
460
472
 
461
473
  describe "when caching is enabled" do
462
474
  before do
463
475
  @indirection.cache_class = :cache_terminus
464
- @cache_class.stubs(:new).returns(@cache)
476
+ allow(@cache_class).to receive(:new).and_return(@cache)
465
477
 
466
- @instance.stubs(:expired?).returns false
478
+ allow(@instance).to receive(:expired?).and_return(false)
467
479
  end
468
480
 
469
481
  it "should return the result of saving to the terminus" do
470
- request = stub 'request', :instance => @instance, :node => nil, :ignore_cache_save? => false
482
+ request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
471
483
 
472
- @indirection.expects(:request).returns request
484
+ expect(@indirection).to receive(:request).and_return(request)
473
485
 
474
- @cache.stubs(:save)
475
- @terminus.stubs(:save).returns @instance
486
+ allow(@cache).to receive(:save)
487
+ allow(@terminus).to receive(:save).and_return(@instance)
476
488
  expect(@indirection.save(@instance)).to equal(@instance)
477
489
  end
478
490
 
479
491
  it "should use a request to save the object to the cache" do
480
- request = stub 'request', :instance => @instance, :node => nil, :ignore_cache_save? => false
492
+ request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
481
493
 
482
- @indirection.expects(:request).returns request
494
+ expect(@indirection).to receive(:request).and_return(request)
483
495
 
484
- @cache.expects(:save).with(request)
485
- @terminus.stubs(:save)
496
+ expect(@cache).to receive(:save).with(request)
497
+ allow(@terminus).to receive(:save)
486
498
  @indirection.save(@instance)
487
499
  end
488
500
 
489
501
  it "should not save to the cache if the normal save fails" do
490
- request = stub 'request', :instance => @instance, :node => nil
502
+ request = double('request', :instance => @instance, :node => nil)
491
503
 
492
- @indirection.expects(:request).returns request
504
+ expect(@indirection).to receive(:request).and_return(request)
493
505
 
494
- @cache.expects(:save).never
495
- @terminus.expects(:save).raises "eh"
506
+ expect(@cache).not_to receive(:save)
507
+ expect(@terminus).to receive(:save).and_raise("eh")
496
508
  expect { @indirection.save(@instance) }.to raise_error(RuntimeError, /eh/)
497
509
  end
498
510
 
499
511
  it "should not save to the cache if told to ignore saving to the cache" do
500
- @terminus.expects(:save)
501
- @cache.expects(:save).never
512
+ expect(@terminus).to receive(:save)
513
+ expect(@cache).not_to receive(:save)
502
514
 
503
515
  @indirection.save(@instance, '/my/key', :ignore_cache_save => true)
504
516
  end
@@ -513,31 +525,31 @@ describe Puppet::Indirector::Indirection do
513
525
  it_should_behave_like "Request validator"
514
526
 
515
527
  it "should return the result of removing the instance" do
516
- @terminus.stubs(:destroy).returns "yayness"
528
+ allow(@terminus).to receive(:destroy).and_return("yayness")
517
529
  expect(@indirection.destroy("/my/key")).to eq("yayness")
518
530
  end
519
531
 
520
532
  describe "when caching is enabled" do
521
533
  before do
522
534
  @indirection.cache_class = :cache_terminus
523
- @cache_class.expects(:new).returns(@cache)
535
+ expect(@cache_class).to receive(:new).and_return(@cache)
524
536
 
525
- @instance.stubs(:expired?).returns false
537
+ allow(@instance).to receive(:expired?).and_return(false)
526
538
  end
527
539
 
528
540
  it "should use a request instance to search in and remove objects from the cache" do
529
- destroy = stub 'destroy_request', :key => "/my/key", :node => nil
530
- find = stub 'destroy_request', :key => "/my/key", :node => nil
541
+ destroy = double('destroy_request', :key => "/my/key", :node => nil)
542
+ find = double('destroy_request', :key => "/my/key", :node => nil)
531
543
 
532
- @indirection.expects(:request).with(:destroy, "/my/key", nil, optionally(instance_of(Hash))).returns destroy
533
- @indirection.expects(:request).with(:find, "/my/key", nil, optionally(instance_of(Hash))).returns find
544
+ expect(@indirection).to receive(:request).with(:destroy, "/my/key", nil, be_a(Hash).or(be_nil)).and_return(destroy)
545
+ expect(@indirection).to receive(:request).with(:find, "/my/key", nil, be_a(Hash).or(be_nil)).and_return(find)
534
546
 
535
- cached = mock 'cache'
547
+ cached = double('cache')
536
548
 
537
- @cache.expects(:find).with(find).returns cached
538
- @cache.expects(:destroy).with(destroy)
549
+ expect(@cache).to receive(:find).with(find).and_return(cached)
550
+ expect(@cache).to receive(:destroy).with(destroy)
539
551
 
540
- @terminus.stubs(:destroy)
552
+ allow(@terminus).to receive(:destroy)
541
553
 
542
554
  @indirection.destroy("/my/key")
543
555
  end
@@ -552,29 +564,29 @@ describe Puppet::Indirector::Indirection do
552
564
  it_should_behave_like "Request validator"
553
565
 
554
566
  it "should set the expiration date on any instances without one set" do
555
- @terminus.stubs(:search).returns([@instance])
567
+ allow(@terminus).to receive(:search).and_return([@instance])
556
568
 
557
- @indirection.expects(:expiration).returns :yay
569
+ expect(@indirection).to receive(:expiration).and_return(:yay)
558
570
 
559
- @instance.expects(:expiration).returns(nil)
560
- @instance.expects(:expiration=).with(:yay)
571
+ expect(@instance).to receive(:expiration).and_return(nil)
572
+ expect(@instance).to receive(:expiration=).with(:yay)
561
573
 
562
574
  @indirection.search("/my/key")
563
575
  end
564
576
 
565
577
  it "should not override an already-set expiration date on returned instances" do
566
- @terminus.stubs(:search).returns([@instance])
578
+ allow(@terminus).to receive(:search).and_return([@instance])
567
579
 
568
- @indirection.expects(:expiration).never
580
+ expect(@indirection).not_to receive(:expiration)
569
581
 
570
- @instance.expects(:expiration).returns(:yay)
571
- @instance.expects(:expiration=).never
582
+ expect(@instance).to receive(:expiration).and_return(:yay)
583
+ expect(@instance).not_to receive(:expiration=)
572
584
 
573
585
  @indirection.search("/my/key")
574
586
  end
575
587
 
576
588
  it "should return the results of searching in the terminus" do
577
- @terminus.expects(:search).returns([@instance])
589
+ expect(@terminus).to receive(:search).and_return([@instance])
578
590
  expect(@indirection.search("/my/key")).to eq([@instance])
579
591
  end
580
592
  end
@@ -582,7 +594,7 @@ describe Puppet::Indirector::Indirection do
582
594
  describe "and expiring a model instance" do
583
595
  describe "when caching is not enabled" do
584
596
  it "should do nothing" do
585
- @cache_class.expects(:new).never
597
+ expect(@cache_class).not_to receive(:new)
586
598
 
587
599
  @indirection.expire("/my/key")
588
600
  end
@@ -591,65 +603,75 @@ describe Puppet::Indirector::Indirection do
591
603
  describe "when caching is enabled" do
592
604
  before do
593
605
  @indirection.cache_class = :cache_terminus
594
- @cache_class.expects(:new).returns(@cache)
606
+ expect(@cache_class).to receive(:new).and_return(@cache)
595
607
 
596
- @instance.stubs(:expired?).returns false
608
+ allow(@instance).to receive(:expired?).and_return(false)
597
609
 
598
- @cached = stub 'cached', :expiration= => nil, :name => "/my/key"
610
+ @cached = double('cached', :expiration= => nil, :name => "/my/key")
599
611
  end
600
612
 
601
613
  it "should use a request to find within the cache" do
602
- @cache.expects(:find).with { |r| r.is_a?(Puppet::Indirector::Request) and r.method == :find }
614
+ expect(@cache).to receive(:find) do |r|
615
+ expect(r).to be_a(Puppet::Indirector::Request)
616
+ expect(r.method).to eq(:find)
617
+ nil
618
+ end
603
619
  @indirection.expire("/my/key")
604
620
  end
605
621
 
606
622
  it "should do nothing if no such instance is cached" do
607
- @cache.expects(:find).returns nil
623
+ expect(@cache).to receive(:find).and_return(nil)
608
624
 
609
625
  @indirection.expire("/my/key")
610
626
  end
611
627
 
612
628
  it "should log when expiring a found instance" do
613
- @cache.expects(:find).returns @cached
614
- @cache.stubs(:save)
629
+ expect(@cache).to receive(:find).and_return(@cached)
630
+ allow(@cache).to receive(:save)
615
631
 
616
- Puppet.expects(:info)
632
+ expect(Puppet).to receive(:info)
617
633
 
618
634
  @indirection.expire("/my/key")
619
635
  end
620
636
 
621
637
  it "should set the cached instance's expiration to a time in the past" do
622
- @cache.expects(:find).returns @cached
623
- @cache.stubs(:save)
638
+ expect(@cache).to receive(:find).and_return(@cached)
639
+ allow(@cache).to receive(:save)
624
640
 
625
- @cached.expects(:expiration=).with { |t| t < Time.now }
641
+ expect(@cached).to receive(:expiration=).with(be < Time.now)
626
642
 
627
643
  @indirection.expire("/my/key")
628
644
  end
629
645
 
630
646
  it "should save the now expired instance back into the cache" do
631
- @cache.expects(:find).returns @cached
647
+ expect(@cache).to receive(:find).and_return(@cached)
632
648
 
633
- @cached.expects(:expiration=).with { |t| t < Time.now }
649
+ expect(@cached).to receive(:expiration=).with(be < Time.now)
634
650
 
635
- @cache.expects(:save)
651
+ expect(@cache).to receive(:save)
636
652
 
637
653
  @indirection.expire("/my/key")
638
654
  end
639
655
 
640
656
  it "does not expire an instance if told to skip cache saving" do
641
- @indirection.cache.expects(:find).never
642
- @indirection.cache.expects(:save).never
657
+ expect(@indirection.cache).not_to receive(:find)
658
+ expect(@indirection.cache).not_to receive(:save)
643
659
 
644
660
  @indirection.expire("/my/key", :ignore_cache_save => true)
645
661
  end
646
662
 
647
663
  it "should use a request to save the expired resource to the cache" do
648
- @cache.expects(:find).returns @cached
664
+ expect(@cache).to receive(:find).and_return(@cached)
665
+
666
+ expect(@cached).to receive(:expiration=).with(be < Time.now)
649
667
 
650
- @cached.expects(:expiration=).with { |t| t < Time.now }
668
+ expect(@cache).to receive(:save) do |r|
669
+ expect(r).to be_a(Puppet::Indirector::Request)
670
+ expect(r.instance).to eq(@cached)
671
+ expect(r.method).to eq(:save)
651
672
 
652
- @cache.expects(:save).with { |r| r.is_a?(Puppet::Indirector::Request) and r.instance == @cached and r.method == :save }.returns(@cached)
673
+ @cached
674
+ end
653
675
 
654
676
  @indirection.expire("/my/key")
655
677
  end
@@ -664,7 +686,7 @@ describe Puppet::Indirector::Indirection do
664
686
 
665
687
  describe "when managing indirection instances" do
666
688
  it "should allow an indirection to be retrieved by name" do
667
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
689
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
668
690
  expect(Puppet::Indirector::Indirection.instance(:test)).to equal(@indirection)
669
691
  end
670
692
 
@@ -673,7 +695,7 @@ describe Puppet::Indirector::Indirection do
673
695
  end
674
696
 
675
697
  it "should allow an indirection's model to be retrieved by name" do
676
- mock_model = mock('model')
698
+ mock_model = double('model')
677
699
  @indirection = Puppet::Indirector::Indirection.new(mock_model, :test)
678
700
  expect(Puppet::Indirector::Indirection.model(:test)).to equal(mock_model)
679
701
  end
@@ -689,10 +711,10 @@ describe Puppet::Indirector::Indirection do
689
711
 
690
712
  describe "when routing to the correct the terminus class" do
691
713
  before do
692
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
693
- @terminus = mock 'terminus'
694
- @terminus_class = stub 'terminus class', :new => @terminus
695
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :default).returns(@terminus_class)
714
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
715
+ @terminus = double('terminus')
716
+ @terminus_class = double('terminus class', :new => @terminus)
717
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :default).and_return(@terminus_class)
696
718
  end
697
719
 
698
720
  it "should fail if no terminus class can be picked" do
@@ -705,14 +727,14 @@ describe Puppet::Indirector::Indirection do
705
727
  end
706
728
 
707
729
  it "should use the provided Puppet setting if told to do so" do
708
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :my_terminus).returns(mock("terminus_class2"))
730
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :my_terminus).and_return(double("terminus_class2"))
709
731
  Puppet[:node_terminus] = :my_terminus
710
732
  @indirection.terminus_setting = :node_terminus
711
733
  expect(@indirection.terminus_class).to equal(:my_terminus)
712
734
  end
713
735
 
714
736
  it "should fail if the provided terminus class is not valid" do
715
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :nosuchclass).returns(nil)
737
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :nosuchclass).and_return(nil)
716
738
  expect { @indirection.terminus_class = :nosuchclass }.to raise_error(ArgumentError)
717
739
  end
718
740
 
@@ -723,10 +745,10 @@ describe Puppet::Indirector::Indirection do
723
745
 
724
746
  describe "when specifying the terminus class to use" do
725
747
  before do
726
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
727
- @terminus = mock 'terminus'
728
- @terminus.stubs(:validate)
729
- @terminus_class = stub 'terminus class', :new => @terminus
748
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
749
+ @terminus = double('terminus')
750
+ allow(@terminus).to receive(:validate)
751
+ @terminus_class = double('terminus class', :new => @terminus)
730
752
  end
731
753
 
732
754
  it "should allow specification of a terminus type" do
@@ -746,17 +768,17 @@ describe Puppet::Indirector::Indirection do
746
768
  end
747
769
 
748
770
  it "should fail when the specified terminus class cannot be found" do
749
- Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(nil)
771
+ expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(nil)
750
772
  expect { @indirection.terminus_class = :foo }.to raise_error(ArgumentError)
751
773
  end
752
774
 
753
775
  it "should select the specified terminus class if a terminus class name is provided" do
754
- Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(@terminus_class)
776
+ expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
755
777
  expect(@indirection.terminus(:foo)).to equal(@terminus)
756
778
  end
757
779
 
758
780
  it "should use the configured terminus class if no terminus name is specified" do
759
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
781
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
760
782
  @indirection.terminus_class = :foo
761
783
  expect(@indirection.terminus).to equal(@terminus)
762
784
  end
@@ -768,27 +790,27 @@ describe Puppet::Indirector::Indirection do
768
790
 
769
791
  describe "when managing terminus instances" do
770
792
  before do
771
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
772
- @terminus = mock 'terminus'
773
- @terminus_class = mock 'terminus class'
774
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
793
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
794
+ @terminus = double('terminus')
795
+ @terminus_class = double('terminus class')
796
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
775
797
  end
776
798
 
777
799
  it "should create an instance of the chosen terminus class" do
778
- @terminus_class.stubs(:new).returns(@terminus)
800
+ allow(@terminus_class).to receive(:new).and_return(@terminus)
779
801
  expect(@indirection.terminus(:foo)).to equal(@terminus)
780
802
  end
781
803
 
782
804
  # Make sure it caches the terminus.
783
805
  it "should return the same terminus instance each time for a given name" do
784
- @terminus_class.stubs(:new).returns(@terminus)
806
+ allow(@terminus_class).to receive(:new).and_return(@terminus)
785
807
  expect(@indirection.terminus(:foo)).to equal(@terminus)
786
808
  expect(@indirection.terminus(:foo)).to equal(@terminus)
787
809
  end
788
810
 
789
811
  it "should not create a terminus instance until one is actually needed" do
790
- Puppet::Indirector.expects(:terminus).never
791
- Puppet::Indirector::Indirection.new(mock('model'), :lazytest)
812
+ expect(Puppet::Indirector).not_to receive(:terminus)
813
+ Puppet::Indirector::Indirection.new(double('model'), :lazytest)
792
814
  end
793
815
 
794
816
  after do
@@ -798,11 +820,11 @@ describe Puppet::Indirector::Indirection do
798
820
 
799
821
  describe "when deciding whether to cache" do
800
822
  before do
801
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
802
- @terminus = mock 'terminus'
803
- @terminus_class = mock 'terminus class'
804
- @terminus_class.stubs(:new).returns(@terminus)
805
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
823
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
824
+ @terminus = double('terminus')
825
+ @terminus_class = double('terminus class')
826
+ allow(@terminus_class).to receive(:new).and_return(@terminus)
827
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
806
828
  @indirection.terminus_class = :foo
807
829
  end
808
830
 
@@ -824,7 +846,7 @@ describe Puppet::Indirector::Indirection do
824
846
  end
825
847
 
826
848
  it "should fail to set the cache class when the specified cache class cannot be found" do
827
- Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(nil)
849
+ expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(nil)
828
850
  expect { @indirection.cache_class = :foo }.to raise_error(ArgumentError)
829
851
  end
830
852
 
@@ -835,14 +857,14 @@ describe Puppet::Indirector::Indirection do
835
857
 
836
858
  describe "when using a cache" do
837
859
  before :each do
838
- @terminus_class = mock 'terminus_class'
839
- @terminus = mock 'terminus'
840
- @terminus_class.stubs(:new).returns(@terminus)
841
- @cache = mock 'cache'
842
- @cache_class = mock 'cache_class'
843
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :cache_terminus).returns(@cache_class)
844
- Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :test_terminus).returns(@terminus_class)
845
- @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
860
+ @terminus_class = double('terminus_class')
861
+ @terminus = double('terminus')
862
+ allow(@terminus_class).to receive(:new).and_return(@terminus)
863
+ @cache = double('cache')
864
+ @cache_class = double('cache_class')
865
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :cache_terminus).and_return(@cache_class)
866
+ allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :test_terminus).and_return(@terminus_class)
867
+ @indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
846
868
  @indirection.terminus_class = :test_terminus
847
869
  end
848
870
 
@@ -853,19 +875,13 @@ describe Puppet::Indirector::Indirection do
853
875
  end
854
876
 
855
877
  it "should reuse the cache terminus" do
856
- @cache_class.expects(:new).returns(@cache)
878
+ expect(@cache_class).to receive(:new).and_return(@cache)
857
879
  @indirection.cache_class = :cache_terminus
858
880
  expect(@indirection.cache).to equal(@cache)
859
881
  expect(@indirection.cache).to equal(@cache)
860
882
  end
861
883
  end
862
884
 
863
- describe "and saving" do
864
- end
865
-
866
- describe "and finding" do
867
- end
868
-
869
885
  after :each do
870
886
  @indirection.delete
871
887
  end