puppet 6.4.0-universal-darwin → 6.4.1-universal-darwin

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 (646) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -1
  3. data/Gemfile.lock +7 -11
  4. data/lib/puppet/application/device.rb +97 -82
  5. data/lib/puppet/application/filebucket.rb +4 -0
  6. data/lib/puppet/application/ssl.rb +2 -2
  7. data/lib/puppet/configurer.rb +5 -4
  8. data/lib/puppet/defaults.rb +33 -11
  9. data/lib/puppet/indirector/request.rb +28 -15
  10. data/lib/puppet/ssl.rb +1 -1
  11. data/lib/puppet/ssl/certificate.rb +1 -1
  12. data/lib/puppet/ssl/error.rb +1 -1
  13. data/lib/puppet/ssl/host.rb +0 -47
  14. data/lib/puppet/ssl/ssl_provider.rb +2 -2
  15. data/lib/puppet/ssl/state_machine.rb +16 -17
  16. data/lib/puppet/ssl/validator/default_validator.rb +4 -4
  17. data/lib/puppet/ssl/verifier.rb +1 -1
  18. data/lib/puppet/transaction/event_manager.rb +1 -5
  19. data/lib/puppet/util/connection.rb +15 -8
  20. data/lib/puppet/util/monkey_patches.rb +20 -1
  21. data/lib/puppet/version.rb +1 -1
  22. data/locales/puppet.pot +135 -68
  23. data/man/man5/puppet.conf.5 +9 -9
  24. data/man/man8/puppet-agent.8 +1 -1
  25. data/man/man8/puppet-apply.8 +1 -1
  26. data/man/man8/puppet-catalog.8 +1 -1
  27. data/man/man8/puppet-config.8 +1 -1
  28. data/man/man8/puppet-describe.8 +1 -1
  29. data/man/man8/puppet-device.8 +1 -1
  30. data/man/man8/puppet-doc.8 +1 -1
  31. data/man/man8/puppet-epp.8 +1 -1
  32. data/man/man8/puppet-facts.8 +1 -1
  33. data/man/man8/puppet-filebucket.8 +1 -1
  34. data/man/man8/puppet-generate.8 +1 -1
  35. data/man/man8/puppet-help.8 +1 -1
  36. data/man/man8/puppet-key.8 +1 -1
  37. data/man/man8/puppet-lookup.8 +1 -1
  38. data/man/man8/puppet-man.8 +1 -1
  39. data/man/man8/puppet-module.8 +1 -1
  40. data/man/man8/puppet-node.8 +1 -1
  41. data/man/man8/puppet-parser.8 +1 -1
  42. data/man/man8/puppet-plugin.8 +1 -1
  43. data/man/man8/puppet-report.8 +1 -1
  44. data/man/man8/puppet-resource.8 +1 -1
  45. data/man/man8/puppet-script.8 +1 -1
  46. data/man/man8/puppet-ssl.8 +1 -1
  47. data/man/man8/puppet-status.8 +1 -1
  48. data/man/man8/puppet.8 +2 -2
  49. data/spec/integration/agent/logging_spec.rb +5 -7
  50. data/spec/integration/application/apply_spec.rb +18 -16
  51. data/spec/integration/application/doc_spec.rb +1 -2
  52. data/spec/integration/application/lookup_spec.rb +5 -5
  53. data/spec/integration/configurer_spec.rb +5 -6
  54. data/spec/integration/defaults_spec.rb +5 -6
  55. data/spec/integration/directory_environments_spec.rb +1 -1
  56. data/spec/integration/faces/config_spec.rb +3 -4
  57. data/spec/integration/faces/documentation_spec.rb +0 -1
  58. data/spec/integration/faces/plugin_spec.rb +1 -1
  59. data/spec/integration/file_bucket/file_spec.rb +2 -4
  60. data/spec/integration/file_serving/content_spec.rb +0 -1
  61. data/spec/integration/file_serving/fileset_spec.rb +0 -1
  62. data/spec/integration/file_serving/metadata_spec.rb +0 -1
  63. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
  64. data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
  65. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  66. data/spec/integration/indirector/facts/facter_spec.rb +4 -5
  67. data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
  68. data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
  69. data/spec/integration/network/authconfig_spec.rb +23 -24
  70. data/spec/integration/network/formats_spec.rb +0 -1
  71. data/spec/integration/network/http_pool_spec.rb +3 -3
  72. data/spec/integration/node/environment_spec.rb +0 -1
  73. data/spec/integration/node/facts_spec.rb +9 -10
  74. data/spec/integration/node_spec.rb +6 -7
  75. data/spec/integration/parser/catalog_spec.rb +1 -5
  76. data/spec/integration/parser/collection_spec.rb +1 -2
  77. data/spec/integration/parser/compiler_spec.rb +6 -6
  78. data/spec/integration/parser/scope_spec.rb +1 -1
  79. data/spec/integration/parser/undef_param_spec.rb +1 -1
  80. data/spec/integration/provider/service/init_spec.rb +4 -5
  81. data/spec/integration/provider/service/systemd_spec.rb +0 -2
  82. data/spec/integration/provider/service/windows_spec.rb +1 -2
  83. data/spec/integration/reference/providers_spec.rb +1 -2
  84. data/spec/integration/reports_spec.rb +1 -2
  85. data/spec/integration/resource/catalog_spec.rb +14 -17
  86. data/spec/integration/resource/type_collection_spec.rb +4 -5
  87. data/spec/integration/rest/client_spec.rb +1 -1
  88. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  89. data/spec/integration/ssl/host_spec.rb +1 -2
  90. data/spec/integration/ssl/key_spec.rb +0 -1
  91. data/spec/integration/test/test_helper_spec.rb +0 -1
  92. data/spec/integration/transaction/report_spec.rb +6 -11
  93. data/spec/integration/transaction_spec.rb +18 -19
  94. data/spec/integration/type/exec_spec.rb +0 -1
  95. data/spec/integration/type/file_spec.rb +13 -14
  96. data/spec/integration/type/package_spec.rb +19 -23
  97. data/spec/integration/type/tidy_spec.rb +1 -2
  98. data/spec/integration/type_spec.rb +0 -1
  99. data/spec/integration/util/autoload_spec.rb +1 -2
  100. data/spec/integration/util/rdoc/parser_spec.rb +0 -1
  101. data/spec/integration/util/settings_spec.rb +0 -1
  102. data/spec/integration/util/windows/adsi_spec.rb +3 -5
  103. data/spec/integration/util/windows/principal_spec.rb +0 -1
  104. data/spec/integration/util/windows/process_spec.rb +4 -6
  105. data/spec/integration/util/windows/registry_spec.rb +41 -51
  106. data/spec/integration/util/windows/security_spec.rb +2 -4
  107. data/spec/integration/util/windows/user_spec.rb +18 -20
  108. data/spec/integration/util_spec.rb +4 -7
  109. data/spec/lib/puppet_spec/compiler.rb +1 -1
  110. data/spec/lib/puppet_spec/files.rb +0 -1
  111. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  112. data/spec/lib/puppet_spec/scope.rb +1 -2
  113. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  114. data/spec/shared_behaviours/file_server_terminus.rb +8 -9
  115. data/spec/shared_behaviours/file_serving.rb +6 -8
  116. data/spec/shared_behaviours/file_serving_model.rb +3 -5
  117. data/spec/shared_behaviours/hiera_indirections.rb +3 -4
  118. data/spec/shared_behaviours/iterative_functions.rb +0 -1
  119. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  120. data/spec/shared_examples/rhel_package_provider.rb +112 -70
  121. data/spec/spec_helper.rb +10 -1
  122. data/spec/unit/agent/disabler_spec.rb +4 -5
  123. data/spec/unit/agent/locker_spec.rb +12 -13
  124. data/spec/unit/agent_spec.rb +80 -85
  125. data/spec/unit/application/agent_spec.rb +88 -94
  126. data/spec/unit/application/apply_spec.rb +82 -83
  127. data/spec/unit/application/config_spec.rb +0 -1
  128. data/spec/unit/application/describe_spec.rb +6 -7
  129. data/spec/unit/application/device_spec.rb +379 -384
  130. data/spec/unit/application/doc_spec.rb +44 -46
  131. data/spec/unit/application/face_base_spec.rb +61 -62
  132. data/spec/unit/application/facts_spec.rb +3 -4
  133. data/spec/unit/application/filebucket_spec.rb +66 -74
  134. data/spec/unit/application/indirection_base_spec.rb +8 -6
  135. data/spec/unit/application/lookup_spec.rb +26 -26
  136. data/spec/unit/application/resource_spec.rb +42 -48
  137. data/spec/unit/application/ssl_spec.rb +9 -9
  138. data/spec/unit/application_spec.rb +82 -92
  139. data/spec/unit/capability_spec.rb +6 -6
  140. data/spec/unit/certificate_factory_spec.rb +3 -5
  141. data/spec/unit/configurer/downloader_spec.rb +20 -21
  142. data/spec/unit/configurer/fact_handler_spec.rb +2 -3
  143. data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
  144. data/spec/unit/configurer_spec.rb +189 -192
  145. data/spec/unit/confine/exists_spec.rb +17 -15
  146. data/spec/unit/confine/false_spec.rb +5 -6
  147. data/spec/unit/confine/feature_spec.rb +7 -5
  148. data/spec/unit/confine/true_spec.rb +5 -6
  149. data/spec/unit/confine/variable_spec.rb +14 -15
  150. data/spec/unit/confine_collection_spec.rb +28 -29
  151. data/spec/unit/confine_spec.rb +13 -14
  152. data/spec/unit/confiner_spec.rb +10 -11
  153. data/spec/unit/context/trusted_information_spec.rb +1 -1
  154. data/spec/unit/daemon_spec.rb +35 -36
  155. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
  156. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
  157. data/spec/unit/datatypes_spec.rb +3 -4
  158. data/spec/unit/defaults_spec.rb +18 -13
  159. data/spec/unit/environments_spec.rb +7 -7
  160. data/spec/unit/etc_spec.rb +30 -32
  161. data/spec/unit/external/pson_spec.rb +0 -1
  162. data/spec/unit/face/catalog_spec.rb +0 -1
  163. data/spec/unit/face/config_spec.rb +31 -35
  164. data/spec/unit/face/epp_face_spec.rb +3 -4
  165. data/spec/unit/face/facts_spec.rb +5 -6
  166. data/spec/unit/face/generate_spec.rb +4 -5
  167. data/spec/unit/face/help_spec.rb +7 -8
  168. data/spec/unit/face/key_spec.rb +0 -1
  169. data/spec/unit/face/man_spec.rb +1 -2
  170. data/spec/unit/face/module/install_spec.rb +3 -5
  171. data/spec/unit/face/module/list_spec.rb +2 -12
  172. data/spec/unit/face/module/search_spec.rb +11 -9
  173. data/spec/unit/face/module/uninstall_spec.rb +4 -8
  174. data/spec/unit/face/node_spec.rb +23 -24
  175. data/spec/unit/face/parser_spec.rb +3 -3
  176. data/spec/unit/face/plugin_spec.rb +36 -9
  177. data/spec/unit/face/status_spec.rb +0 -1
  178. data/spec/unit/file_bucket/dipper_spec.rb +24 -20
  179. data/spec/unit/file_bucket/file_spec.rb +0 -2
  180. data/spec/unit/file_serving/base_spec.rb +14 -15
  181. data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
  182. data/spec/unit/file_serving/configuration_spec.rb +63 -66
  183. data/spec/unit/file_serving/content_spec.rb +10 -11
  184. data/spec/unit/file_serving/fileset_spec.rb +63 -58
  185. data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
  186. data/spec/unit/file_serving/metadata_spec.rb +36 -36
  187. data/spec/unit/file_serving/mount/file_spec.rb +31 -32
  188. data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
  189. data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
  190. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
  191. data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
  192. data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
  193. data/spec/unit/file_serving/mount_spec.rb +0 -1
  194. data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
  195. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
  196. data/spec/unit/file_system/uniquefile_spec.rb +4 -4
  197. data/spec/unit/file_system_spec.rb +4 -4
  198. data/spec/unit/forge/errors_spec.rb +1 -1
  199. data/spec/unit/forge/forge_spec.rb +13 -14
  200. data/spec/unit/forge/module_release_spec.rb +18 -18
  201. data/spec/unit/forge/repository_spec.rb +29 -30
  202. data/spec/unit/forge_spec.rb +15 -11
  203. data/spec/unit/functions/binary_file_spec.rb +3 -3
  204. data/spec/unit/functions/contain_spec.rb +0 -2
  205. data/spec/unit/functions/defined_spec.rb +0 -1
  206. data/spec/unit/functions/epp_spec.rb +2 -2
  207. data/spec/unit/functions/find_file_spec.rb +7 -7
  208. data/spec/unit/functions/include_spec.rb +0 -4
  209. data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
  210. data/spec/unit/functions/lookup_spec.rb +1 -2
  211. data/spec/unit/functions/module_directory_spec.rb +12 -12
  212. data/spec/unit/functions/require_spec.rb +0 -3
  213. data/spec/unit/functions/shared.rb +5 -8
  214. data/spec/unit/functions/versioncmp_spec.rb +1 -2
  215. data/spec/unit/functions4_spec.rb +9 -10
  216. data/spec/unit/gettext/config_spec.rb +4 -4
  217. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  218. data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
  219. data/spec/unit/graph/relationship_graph_spec.rb +1 -2
  220. data/spec/unit/graph/simple_graph_spec.rb +9 -10
  221. data/spec/unit/hiera_puppet_spec.rb +20 -20
  222. data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
  223. data/spec/unit/indirector/catalog/json_spec.rb +1 -2
  224. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
  225. data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
  226. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
  227. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
  228. data/spec/unit/indirector/certificate/file_spec.rb +0 -1
  229. data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
  230. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
  231. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
  232. data/spec/unit/indirector/direct_file_server_spec.rb +17 -18
  233. data/spec/unit/indirector/envelope_spec.rb +1 -2
  234. data/spec/unit/indirector/exec_spec.rb +4 -5
  235. data/spec/unit/indirector/face_spec.rb +9 -9
  236. data/spec/unit/indirector/facts/facter_spec.rb +37 -43
  237. data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
  238. data/spec/unit/indirector/facts/rest_spec.rb +7 -8
  239. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
  240. data/spec/unit/indirector/facts/yaml_spec.rb +0 -1
  241. data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
  242. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
  243. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
  244. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
  245. data/spec/unit/indirector/file_content/file_spec.rb +0 -1
  246. data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
  247. data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
  248. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
  249. data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
  250. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
  251. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
  252. data/spec/unit/indirector/file_server_spec.rb +87 -87
  253. data/spec/unit/indirector/indirection_spec.rb +242 -226
  254. data/spec/unit/indirector/json_spec.rb +7 -9
  255. data/spec/unit/indirector/key/file_spec.rb +21 -22
  256. data/spec/unit/indirector/memory_spec.rb +6 -7
  257. data/spec/unit/indirector/msgpack_spec.rb +7 -9
  258. data/spec/unit/indirector/node/exec_spec.rb +2 -3
  259. data/spec/unit/indirector/node/memory_spec.rb +2 -4
  260. data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
  261. data/spec/unit/indirector/node/plain_spec.rb +2 -4
  262. data/spec/unit/indirector/node/rest_spec.rb +0 -1
  263. data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
  264. data/spec/unit/indirector/node/yaml_spec.rb +0 -1
  265. data/spec/unit/indirector/none_spec.rb +5 -5
  266. data/spec/unit/indirector/plain_spec.rb +7 -8
  267. data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
  268. data/spec/unit/indirector/report/processor_spec.rb +21 -22
  269. data/spec/unit/indirector/report/rest_spec.rb +11 -12
  270. data/spec/unit/indirector/report/yaml_spec.rb +0 -1
  271. data/spec/unit/indirector/request_spec.rb +11 -12
  272. data/spec/unit/indirector/resource/ral_spec.rb +47 -54
  273. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
  274. data/spec/unit/indirector/rest_spec.rb +113 -110
  275. data/spec/unit/indirector/ssl_file_spec.rb +64 -65
  276. data/spec/unit/indirector/status/local_spec.rb +0 -1
  277. data/spec/unit/indirector/status/rest_spec.rb +0 -1
  278. data/spec/unit/indirector/store_configs_spec.rb +0 -1
  279. data/spec/unit/indirector/terminus_spec.rb +27 -27
  280. data/spec/unit/indirector/yaml_spec.rb +5 -6
  281. data/spec/unit/indirector_spec.rb +1 -2
  282. data/spec/unit/info_service_spec.rb +1 -1
  283. data/spec/unit/interface/action_builder_spec.rb +0 -1
  284. data/spec/unit/interface/action_manager_spec.rb +0 -1
  285. data/spec/unit/interface/action_spec.rb +2 -3
  286. data/spec/unit/interface/documentation_spec.rb +0 -1
  287. data/spec/unit/interface/face_collection_spec.rb +19 -12
  288. data/spec/unit/interface_spec.rb +3 -3
  289. data/spec/unit/man_spec.rb +3 -4
  290. data/spec/unit/module_spec.rb +46 -51
  291. data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
  292. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  293. data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
  294. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  295. data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
  296. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  297. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  298. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  299. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  300. data/spec/unit/module_tool/tar_spec.rb +12 -13
  301. data/spec/unit/module_tool_spec.rb +7 -12
  302. data/spec/unit/network/auth_config_parser_spec.rb +11 -13
  303. data/spec/unit/network/authconfig_spec.rb +17 -18
  304. data/spec/unit/network/authorization_spec.rb +4 -5
  305. data/spec/unit/network/authstore_spec.rb +0 -1
  306. data/spec/unit/network/format_handler_spec.rb +0 -1
  307. data/spec/unit/network/format_spec.rb +9 -10
  308. data/spec/unit/network/format_support_spec.rb +28 -29
  309. data/spec/unit/network/formats_spec.rb +4 -5
  310. data/spec/unit/network/http/api/indirected_routes_spec.rb +24 -29
  311. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
  312. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
  313. data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
  314. data/spec/unit/network/http/api_spec.rb +0 -2
  315. data/spec/unit/network/http/compression_spec.rb +21 -22
  316. data/spec/unit/network/http/connection_spec.rb +35 -35
  317. data/spec/unit/network/http/factory_spec.rb +5 -6
  318. data/spec/unit/network/http/handler_spec.rb +9 -18
  319. data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
  320. data/spec/unit/network/http/pool_spec.rb +33 -34
  321. data/spec/unit/network/http/request_spec.rb +0 -2
  322. data/spec/unit/network/http/response_spec.rb +11 -13
  323. data/spec/unit/network/http/route_spec.rb +0 -1
  324. data/spec/unit/network/http/session_spec.rb +2 -3
  325. data/spec/unit/network/http/site_spec.rb +0 -1
  326. data/spec/unit/network/http_pool_spec.rb +19 -10
  327. data/spec/unit/network/http_spec.rb +0 -1
  328. data/spec/unit/network/resolver_spec.rb +25 -26
  329. data/spec/unit/network/rights_spec.rb +52 -53
  330. data/spec/unit/node/environment_spec.rb +14 -15
  331. data/spec/unit/node/facts_spec.rb +5 -7
  332. data/spec/unit/node_spec.rb +4 -10
  333. data/spec/unit/other/selinux_spec.rb +0 -1
  334. data/spec/unit/parameter/boolean_spec.rb +1 -2
  335. data/spec/unit/parameter/package_options_spec.rb +1 -2
  336. data/spec/unit/parameter/path_spec.rb +0 -1
  337. data/spec/unit/parameter/value_collection_spec.rb +0 -1
  338. data/spec/unit/parameter/value_spec.rb +0 -1
  339. data/spec/unit/parameter_spec.rb +9 -9
  340. data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
  341. data/spec/unit/parser/ast/leaf_spec.rb +20 -21
  342. data/spec/unit/parser/compiler_spec.rb +84 -96
  343. data/spec/unit/parser/environment_compiler_spec.rb +7 -8
  344. data/spec/unit/parser/files_spec.rb +0 -1
  345. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  346. data/spec/unit/parser/functions/digest_spec.rb +0 -1
  347. data/spec/unit/parser/functions/fail_spec.rb +1 -2
  348. data/spec/unit/parser/functions/file_spec.rb +13 -14
  349. data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
  350. data/spec/unit/parser/functions/generate_spec.rb +7 -8
  351. data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
  352. data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
  353. data/spec/unit/parser/functions/scanf_spec.rb +0 -1
  354. data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
  355. data/spec/unit/parser/functions/split_spec.rb +0 -1
  356. data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
  357. data/spec/unit/parser/functions/tag_spec.rb +1 -2
  358. data/spec/unit/parser/functions/tagged_spec.rb +2 -3
  359. data/spec/unit/parser/functions/template_spec.rb +13 -13
  360. data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
  361. data/spec/unit/parser/functions_spec.rb +6 -7
  362. data/spec/unit/parser/relationship_spec.rb +0 -1
  363. data/spec/unit/parser/resource_spec.rb +42 -42
  364. data/spec/unit/parser/scope_spec.rb +39 -35
  365. data/spec/unit/parser/templatewrapper_spec.rb +11 -12
  366. data/spec/unit/parser/type_loader_spec.rb +17 -19
  367. data/spec/unit/pops/adaptable_spec.rb +0 -1
  368. data/spec/unit/pops/benchmark_spec.rb +0 -1
  369. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
  370. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
  371. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
  372. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
  373. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
  374. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
  375. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +10 -11
  376. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
  377. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
  378. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
  379. data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
  380. data/spec/unit/pops/factory_spec.rb +3 -4
  381. data/spec/unit/pops/issues_spec.rb +19 -20
  382. data/spec/unit/pops/loaders/loader_spec.rb +9 -5
  383. data/spec/unit/pops/loaders/loaders_spec.rb +31 -28
  384. data/spec/unit/pops/lookup/context_spec.rb +0 -1
  385. data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
  386. data/spec/unit/pops/merge_strategy_spec.rb +0 -1
  387. data/spec/unit/pops/migration_spec.rb +3 -5
  388. data/spec/unit/pops/model/model_spec.rb +0 -1
  389. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
  390. data/spec/unit/pops/parser/locator_spec.rb +3 -6
  391. data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
  392. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  393. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
  394. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
  395. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
  396. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
  397. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
  398. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
  399. data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
  400. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
  401. data/spec/unit/pops/pn_spec.rb +0 -1
  402. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
  403. data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
  404. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  405. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  406. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  407. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  408. data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
  409. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  410. data/spec/unit/pops/validator/validator_spec.rb +1 -2
  411. data/spec/unit/pops/visitor_spec.rb +0 -1
  412. data/spec/unit/property/boolean_spec.rb +1 -1
  413. data/spec/unit/property/ensure_spec.rb +0 -1
  414. data/spec/unit/property/keyvalue_spec.rb +32 -34
  415. data/spec/unit/property/list_spec.rb +26 -27
  416. data/spec/unit/property/ordered_list_spec.rb +10 -14
  417. data/spec/unit/property_spec.rb +42 -43
  418. data/spec/unit/provider/aix_object_spec.rb +47 -45
  419. data/spec/unit/provider/command_spec.rb +9 -9
  420. data/spec/unit/provider/exec/posix_spec.rb +8 -9
  421. data/spec/unit/provider/exec/shell_spec.rb +0 -1
  422. data/spec/unit/provider/exec/windows_spec.rb +2 -4
  423. data/spec/unit/provider/exec_spec.rb +0 -1
  424. data/spec/unit/provider/file/posix_spec.rb +22 -24
  425. data/spec/unit/provider/file/windows_spec.rb +15 -17
  426. data/spec/unit/provider/group/aix_spec.rb +3 -2
  427. data/spec/unit/provider/group/groupadd_spec.rb +30 -26
  428. data/spec/unit/provider/group/ldap_spec.rb +18 -18
  429. data/spec/unit/provider/group/pw_spec.rb +11 -11
  430. data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
  431. data/spec/unit/provider/ldap_spec.rb +61 -62
  432. data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
  433. data/spec/unit/provider/nameservice_spec.rb +38 -40
  434. data/spec/unit/provider/package/aix_spec.rb +15 -15
  435. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  436. data/spec/unit/provider/package/apt_spec.rb +44 -27
  437. data/spec/unit/provider/package/aptitude_spec.rb +6 -7
  438. data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
  439. data/spec/unit/provider/package/base_spec.rb +4 -4
  440. data/spec/unit/provider/package/dnf_spec.rb +18 -20
  441. data/spec/unit/provider/package/dpkg_spec.rb +52 -52
  442. data/spec/unit/provider/package/freebsd_spec.rb +11 -11
  443. data/spec/unit/provider/package/gem_spec.rb +51 -43
  444. data/spec/unit/provider/package/hpux_spec.rb +8 -8
  445. data/spec/unit/provider/package/macports_spec.rb +46 -42
  446. data/spec/unit/provider/package/nim_spec.rb +30 -39
  447. data/spec/unit/provider/package/openbsd_spec.rb +36 -39
  448. data/spec/unit/provider/package/opkg_spec.rb +23 -26
  449. data/spec/unit/provider/package/pacman_spec.rb +97 -118
  450. data/spec/unit/provider/package/pip_spec.rb +71 -72
  451. data/spec/unit/provider/package/pkg_spec.rb +113 -114
  452. data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
  453. data/spec/unit/provider/package/pkgin_spec.rb +10 -8
  454. data/spec/unit/provider/package/pkgng_spec.rb +21 -22
  455. data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
  456. data/spec/unit/provider/package/portage_spec.rb +71 -75
  457. data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
  458. data/spec/unit/provider/package/rpm_spec.rb +53 -64
  459. data/spec/unit/provider/package/sun_spec.rb +16 -18
  460. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  461. data/spec/unit/provider/package/up2date_spec.rb +2 -4
  462. data/spec/unit/provider/package/urpmi_spec.rb +15 -17
  463. data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
  464. data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
  465. data/spec/unit/provider/package/windows/package_spec.rb +37 -42
  466. data/spec/unit/provider/package/windows_spec.rb +36 -32
  467. data/spec/unit/provider/package/yum_spec.rb +7 -7
  468. data/spec/unit/provider/package/zypper_spec.rb +87 -87
  469. data/spec/unit/provider/parsedfile_spec.rb +44 -45
  470. data/spec/unit/provider/service/base_spec.rb +4 -5
  471. data/spec/unit/provider/service/bsd_spec.rb +27 -29
  472. data/spec/unit/provider/service/daemontools_spec.rb +35 -35
  473. data/spec/unit/provider/service/debian_spec.rb +38 -38
  474. data/spec/unit/provider/service/freebsd_spec.rb +18 -18
  475. data/spec/unit/provider/service/gentoo_spec.rb +50 -55
  476. data/spec/unit/provider/service/init_spec.rb +53 -52
  477. data/spec/unit/provider/service/launchd_spec.rb +138 -116
  478. data/spec/unit/provider/service/openbsd_spec.rb +50 -50
  479. data/spec/unit/provider/service/openrc_spec.rb +43 -45
  480. data/spec/unit/provider/service/openwrt_spec.rb +26 -31
  481. data/spec/unit/provider/service/rcng_spec.rb +14 -14
  482. data/spec/unit/provider/service/redhat_spec.rb +45 -43
  483. data/spec/unit/provider/service/runit_spec.rb +29 -27
  484. data/spec/unit/provider/service/smf_spec.rb +74 -66
  485. data/spec/unit/provider/service/src_spec.rb +46 -47
  486. data/spec/unit/provider/service/systemd_spec.rb +113 -122
  487. data/spec/unit/provider/service/upstart_spec.rb +74 -71
  488. data/spec/unit/provider/service/windows_spec.rb +33 -41
  489. data/spec/unit/provider/user/aix_spec.rb +31 -31
  490. data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
  491. data/spec/unit/provider/user/hpux_spec.rb +16 -16
  492. data/spec/unit/provider/user/ldap_spec.rb +57 -57
  493. data/spec/unit/provider/user/openbsd_spec.rb +10 -12
  494. data/spec/unit/provider/user/pw_spec.rb +37 -35
  495. data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
  496. data/spec/unit/provider/user/useradd_spec.rb +93 -92
  497. data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
  498. data/spec/unit/provider_spec.rb +35 -35
  499. data/spec/unit/puppet_pal_2pec.rb +4 -5
  500. data/spec/unit/puppet_pal_spec.rb +0 -1
  501. data/spec/unit/puppet_spec.rb +6 -7
  502. data/spec/unit/relationship_spec.rb +0 -1
  503. data/spec/unit/reports/http_spec.rb +22 -24
  504. data/spec/unit/reports/store_spec.rb +3 -4
  505. data/spec/unit/reports_spec.rb +12 -14
  506. data/spec/unit/resource/capability_finder_spec.rb +15 -17
  507. data/spec/unit/resource/catalog_spec.rb +72 -68
  508. data/spec/unit/resource/status_spec.rb +6 -8
  509. data/spec/unit/resource/type_collection_spec.rb +17 -18
  510. data/spec/unit/resource/type_spec.rb +34 -35
  511. data/spec/unit/resource_spec.rb +36 -32
  512. data/spec/unit/rest/client_spec.rb +56 -25
  513. data/spec/unit/rest/route_spec.rb +5 -5
  514. data/spec/unit/scheduler/job_spec.rb +0 -1
  515. data/spec/unit/scheduler/scheduler_spec.rb +0 -1
  516. data/spec/unit/scheduler/splay_job_spec.rb +1 -2
  517. data/spec/unit/settings/array_setting_spec.rb +1 -1
  518. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  519. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  520. data/spec/unit/settings/config_file_spec.rb +0 -1
  521. data/spec/unit/settings/directory_setting_spec.rb +2 -7
  522. data/spec/unit/settings/duration_setting_spec.rb +1 -2
  523. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  524. data/spec/unit/settings/environment_conf_spec.rb +4 -6
  525. data/spec/unit/settings/file_setting_spec.rb +44 -46
  526. data/spec/unit/settings/path_setting_spec.rb +1 -2
  527. data/spec/unit/settings/priority_setting_spec.rb +1 -2
  528. data/spec/unit/settings/string_setting_spec.rb +14 -15
  529. data/spec/unit/settings/terminus_setting_spec.rb +1 -2
  530. data/spec/unit/settings/value_translator_spec.rb +0 -1
  531. data/spec/unit/settings_spec.rb +228 -235
  532. data/spec/unit/ssl/base_spec.rb +14 -15
  533. data/spec/unit/ssl/certificate_request_spec.rb +62 -58
  534. data/spec/unit/ssl/certificate_spec.rb +23 -25
  535. data/spec/unit/ssl/digest_spec.rb +0 -1
  536. data/spec/unit/ssl/host_spec.rb +147 -130
  537. data/spec/unit/ssl/key_spec.rb +30 -31
  538. data/spec/unit/ssl/ssl_provider_spec.rb +24 -24
  539. data/spec/unit/ssl/state_machine_spec.rb +50 -58
  540. data/spec/unit/ssl/validator_spec.rb +43 -54
  541. data/spec/unit/ssl/verifier_spec.rb +10 -10
  542. data/spec/unit/task_spec.rb +44 -45
  543. data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -5
  544. data/spec/unit/transaction/event_manager_spec.rb +87 -88
  545. data/spec/unit/transaction/event_spec.rb +16 -15
  546. data/spec/unit/transaction/persistence_spec.rb +16 -17
  547. data/spec/unit/transaction/report_spec.rb +11 -12
  548. data/spec/unit/transaction/resource_harness_spec.rb +28 -33
  549. data/spec/unit/transaction_spec.rb +100 -101
  550. data/spec/unit/type/component_spec.rb +0 -1
  551. data/spec/unit/type/exec_spec.rb +60 -56
  552. data/spec/unit/type/file/checksum_spec.rb +9 -10
  553. data/spec/unit/type/file/checksum_value_spec.rb +31 -32
  554. data/spec/unit/type/file/content_spec.rb +58 -61
  555. data/spec/unit/type/file/ctime_spec.rb +0 -1
  556. data/spec/unit/type/file/ensure_spec.rb +12 -13
  557. data/spec/unit/type/file/group_spec.rb +5 -7
  558. data/spec/unit/type/file/mode_spec.rb +4 -6
  559. data/spec/unit/type/file/mtime_spec.rb +0 -1
  560. data/spec/unit/type/file/owner_spec.rb +6 -8
  561. data/spec/unit/type/file/selinux_spec.rb +17 -19
  562. data/spec/unit/type/file/source_spec.rb +104 -101
  563. data/spec/unit/type/file/type_spec.rb +0 -1
  564. data/spec/unit/type/file_spec.rb +195 -185
  565. data/spec/unit/type/filebucket_spec.rb +4 -5
  566. data/spec/unit/type/group_spec.rb +6 -8
  567. data/spec/unit/type/noop_metaparam_spec.rb +1 -2
  568. data/spec/unit/type/package/package_settings_spec.rb +44 -23
  569. data/spec/unit/type/package_spec.rb +56 -57
  570. data/spec/unit/type/resources_spec.rb +72 -74
  571. data/spec/unit/type/schedule_spec.rb +24 -26
  572. data/spec/unit/type/service_spec.rb +49 -49
  573. data/spec/unit/type/stage_spec.rb +0 -1
  574. data/spec/unit/type/tidy_spec.rb +61 -62
  575. data/spec/unit/type/user_spec.rb +24 -25
  576. data/spec/unit/type/whit_spec.rb +0 -1
  577. data/spec/unit/type_spec.rb +55 -54
  578. data/spec/unit/util/at_fork_spec.rb +18 -19
  579. data/spec/unit/util/autoload_spec.rb +55 -56
  580. data/spec/unit/util/backups_spec.rb +34 -35
  581. data/spec/unit/util/character_encoding_spec.rb +5 -5
  582. data/spec/unit/util/checksums_spec.rb +38 -39
  583. data/spec/unit/util/colors_spec.rb +1 -2
  584. data/spec/unit/util/command_line_spec.rb +24 -25
  585. data/spec/unit/util/constant_inflector_spec.rb +0 -1
  586. data/spec/unit/util/diff_spec.rb +7 -8
  587. data/spec/unit/util/errors_spec.rb +0 -1
  588. data/spec/unit/util/execution_spec.rb +185 -161
  589. data/spec/unit/util/execution_stub_spec.rb +0 -1
  590. data/spec/unit/util/feature_spec.rb +23 -14
  591. data/spec/unit/util/filetype_spec.rb +49 -49
  592. data/spec/unit/util/http_proxy_spec.rb +12 -12
  593. data/spec/unit/util/inifile_spec.rb +26 -31
  594. data/spec/unit/util/json_lockfile_spec.rb +3 -5
  595. data/spec/unit/util/ldap/connection_spec.rb +26 -25
  596. data/spec/unit/util/ldap/generator_spec.rb +0 -1
  597. data/spec/unit/util/ldap/manager_spec.rb +102 -101
  598. data/spec/unit/util/lockfile_spec.rb +0 -1
  599. data/spec/unit/util/log/destinations_spec.rb +30 -33
  600. data/spec/unit/util/log_spec.rb +35 -36
  601. data/spec/unit/util/logging_spec.rb +58 -72
  602. data/spec/unit/util/metric_spec.rb +0 -1
  603. data/spec/unit/util/monkey_patches_spec.rb +7 -9
  604. data/spec/unit/util/multi_match_spec.rb +0 -1
  605. data/spec/unit/util/network_device/config_spec.rb +0 -1
  606. data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
  607. data/spec/unit/util/network_device_spec.rb +7 -9
  608. data/spec/unit/util/package_spec.rb +0 -1
  609. data/spec/unit/util/pidlock_spec.rb +21 -22
  610. data/spec/unit/util/plist_spec.rb +40 -33
  611. data/spec/unit/util/posix_spec.rb +54 -51
  612. data/spec/unit/util/rdoc_spec.rb +9 -10
  613. data/spec/unit/util/reference_spec.rb +0 -1
  614. data/spec/unit/util/resource_template_spec.rb +20 -20
  615. data/spec/unit/util/retry_action_spec.rb +7 -8
  616. data/spec/unit/util/rubygems_spec.rb +7 -8
  617. data/spec/unit/util/run_mode_spec.rb +3 -4
  618. data/spec/unit/util/selinux_spec.rb +79 -72
  619. data/spec/unit/util/splayer_spec.rb +8 -9
  620. data/spec/unit/util/ssl_spec.rb +0 -1
  621. data/spec/unit/util/storage_spec.rb +3 -4
  622. data/spec/unit/util/suidmanager_spec.rb +45 -54
  623. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
  624. data/spec/unit/util/tag_set_spec.rb +0 -1
  625. data/spec/unit/util/tagging_spec.rb +0 -1
  626. data/spec/unit/util/terminal_spec.rb +9 -10
  627. data/spec/unit/util/user_attr_spec.rb +1 -2
  628. data/spec/unit/util/warnings_spec.rb +3 -4
  629. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  630. data/spec/unit/util/watcher_spec.rb +51 -21
  631. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
  632. data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
  633. data/spec/unit/util/windows/adsi_spec.rb +136 -138
  634. data/spec/unit/util/windows/api_types_spec.rb +0 -1
  635. data/spec/unit/util/windows/eventlog_spec.rb +9 -12
  636. data/spec/unit/util/windows/file_spec.rb +0 -1
  637. data/spec/unit/util/windows/root_certs_spec.rb +1 -2
  638. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
  639. data/spec/unit/util/windows/service_spec.rb +66 -68
  640. data/spec/unit/util/windows/sid_spec.rb +11 -13
  641. data/spec/unit/util/windows/string_spec.rb +0 -1
  642. data/spec/unit/util_spec.rb +55 -57
  643. data/spec/unit/version_spec.rb +6 -6
  644. data/spec/unit/x509/cert_provider_spec.rb +14 -14
  645. data/spec/unit/x509/pem_store_spec.rb +5 -5
  646. metadata +2 -2
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/ssl/certificate'
@@ -15,23 +14,23 @@ describe Puppet::SSL::Certificate do
15
14
 
16
15
  describe "when creating new instances" do
17
16
  it "should fail if given an object that is not an instance of the wrapped class" do
18
- obj = stub 'obj', :is_a? => false
17
+ obj = double('obj', :is_a? => false)
19
18
  expect { @class.from_instance(obj) }.to raise_error(ArgumentError)
20
19
  end
21
20
 
22
21
  it "should fail if a name is not supplied and can't be determined from the object" do
23
- obj = stub 'obj', :is_a? => true
22
+ obj = double('obj', :is_a? => true)
24
23
  expect { @class.from_instance(obj) }.to raise_error(ArgumentError)
25
24
  end
26
25
 
27
26
  it "should determine the name from the object if it has a subject" do
28
- obj = stub 'obj', :is_a? => true, :subject => '/CN=foo'
27
+ obj = double('obj', :is_a? => true, :subject => '/CN=foo')
29
28
 
30
- inst = stub 'base'
31
- inst.expects(:content=).with(obj)
29
+ inst = double('base')
30
+ expect(inst).to receive(:content=).with(obj)
32
31
 
33
- @class.expects(:new).with('foo').returns inst
34
- @class.expects(:name_from_subject).with('/CN=foo').returns('foo')
32
+ expect(@class).to receive(:new).with('foo').and_return(inst)
33
+ expect(@class).to receive(:name_from_subject).with('/CN=foo').and_return('foo')
35
34
 
36
35
  expect(@class.from_instance(obj)).to eq(inst)
37
36
  end
@@ -39,8 +38,8 @@ describe Puppet::SSL::Certificate do
39
38
 
40
39
  describe "when determining a name from a certificate subject" do
41
40
  it "should extract only the CN and not any other components" do
42
- subject = stub 'sub'
43
- Puppet::Util::SSL.expects(:cn_from_subject).with(subject).returns 'host.domain.com'
41
+ subject = double('sub')
42
+ expect(Puppet::Util::SSL).to receive(:cn_from_subject).with(subject).and_return('host.domain.com')
44
43
  expect(@class.name_from_subject(subject)).to eq('host.domain.com')
45
44
  end
46
45
  end
@@ -48,14 +47,14 @@ describe Puppet::SSL::Certificate do
48
47
  describe "when initializing wrapped class from a file with #read" do
49
48
  it "should open the file with ASCII encoding" do
50
49
  path = '/foo/bar/cert'
51
- Puppet::SSL::Base.stubs(:valid_certname).returns(true)
52
- Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("bar")
50
+ allow(Puppet::SSL::Base).to receive(:valid_certname).and_return(true)
51
+ expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("bar")
53
52
  @base.read(path)
54
53
  end
55
54
  end
56
55
 
57
56
  describe "#digest_algorithm" do
58
- let(:content) { stub 'content' }
57
+ let(:content) { double('content') }
59
58
  let(:base) {
60
59
  b = Puppet::SSL::Base.new('base')
61
60
  b.content = content
@@ -79,13 +78,13 @@ describe Puppet::SSL::Certificate do
79
78
  'dsaWithSHA1' => 'sha1',
80
79
  }.each do |signature, digest|
81
80
  it "returns '#{digest}' for signature algorithm '#{signature}'" do
82
- content.stubs(:signature_algorithm).returns(signature)
81
+ allow(content).to receive(:signature_algorithm).and_return(signature)
83
82
  expect(base.digest_algorithm).to eq(digest)
84
83
  end
85
84
  end
86
85
 
87
86
  it "raises an error on an unknown signature algorithm" do
88
- content.stubs(:signature_algorithm).returns("nonsense")
87
+ allow(content).to receive(:signature_algorithm).and_return("nonsense")
89
88
  expect {
90
89
  base.digest_algorithm
91
90
  }.to raise_error(Puppet::Error, "Unknown signature algorithm 'nonsense'")
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/ssl/certificate_request'
@@ -12,7 +11,6 @@ describe Puppet::SSL::CertificateRequest do
12
11
  k
13
12
  }
14
13
 
15
-
16
14
  it "should be extended with the Indirector module" do
17
15
  expect(described_class.singleton_class).to be_include(Puppet::Indirector)
18
16
  end
@@ -31,15 +29,15 @@ describe Puppet::SSL::CertificateRequest do
31
29
 
32
30
  describe "when converting from a string" do
33
31
  it "should create a CSR instance with its name set to the CSR subject and its content set to the extracted CSR" do
34
- csr = stub 'csr',
32
+ csr = double('csr',
35
33
  :subject => OpenSSL::X509::Name.parse("/CN=Foo.madstop.com"),
36
- :is_a? => true
37
- OpenSSL::X509::Request.expects(:new).with("my csr").returns(csr)
34
+ :is_a? => true)
35
+ expect(OpenSSL::X509::Request).to receive(:new).with("my csr").and_return(csr)
38
36
 
39
- mycsr = stub 'sslcsr'
40
- mycsr.expects(:content=).with(csr)
37
+ mycsr = double('sslcsr')
38
+ expect(mycsr).to receive(:content=).with(csr)
41
39
 
42
- described_class.expects(:new).with("Foo.madstop.com").returns mycsr
40
+ expect(described_class).to receive(:new).with("Foo.madstop.com").and_return(mycsr)
43
41
 
44
42
  described_class.from_s("my csr")
45
43
  end
@@ -60,9 +58,9 @@ describe Puppet::SSL::CertificateRequest do
60
58
 
61
59
  it "should be able to read requests from disk" do
62
60
  path = "/my/path"
63
- Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("my request")
64
- my_req = mock 'request'
65
- OpenSSL::X509::Request.expects(:new).with("my request").returns(my_req)
61
+ expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my request")
62
+ my_req = double('request')
63
+ expect(OpenSSL::X509::Request).to receive(:new).with("my request").and_return(my_req)
66
64
  expect(request.read(path)).to equal(my_req)
67
65
  expect(request.content).to equal(my_req)
68
66
  end
@@ -77,8 +75,8 @@ describe Puppet::SSL::CertificateRequest do
77
75
  end
78
76
 
79
77
  it "should have a :to_text method that it delegates to the actual key" do
80
- real_request = mock 'request'
81
- real_request.expects(:to_text).returns "requesttext"
78
+ real_request = double('request')
79
+ expect(real_request).to receive(:to_text).and_return("requesttext")
82
80
  request.content = real_request
83
81
  expect(request.to_text).to eq("requesttext")
84
82
  end
@@ -302,26 +300,26 @@ describe Puppet::SSL::CertificateRequest do
302
300
 
303
301
  it "should verify the generated request using the public key" do
304
302
  # Stupid keys don't have a competent == method.
305
- OpenSSL::X509::Request.any_instance.expects(:verify).with { |public_key|
303
+ expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
306
304
  public_key.to_s == key.content.public_key.to_s
307
- }.returns true
305
+ end.and_return(true)
308
306
  request.generate(key)
309
307
  end
310
308
 
311
309
  it "should fail if verification fails" do
312
- OpenSSL::X509::Request.any_instance.expects(:verify).with { |public_key|
310
+ expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
313
311
  public_key.to_s == key.content.public_key.to_s
314
- }.returns false
312
+ end.and_return(false)
315
313
 
316
- expect {
314
+ expect do
317
315
  request.generate(key)
318
- }.to raise_error(Puppet::Error, /CSR sign verification failed/)
316
+ end.to raise_error(Puppet::Error, /CSR sign verification failed/)
319
317
  end
320
318
 
321
319
  it "should log the fingerprint" do
322
- Puppet::SSL::Digest.any_instance.stubs(:to_hex).returns("FINGERPRINT")
323
- Puppet.stubs(:info)
324
- Puppet.expects(:info).with { |s| s =~ /FINGERPRINT/ }
320
+ allow_any_instance_of(Puppet::SSL::Digest).to receive(:to_hex).and_return("FINGERPRINT")
321
+ allow(Puppet).to receive(:info)
322
+ expect(Puppet).to receive(:info).with(/FINGERPRINT/)
325
323
  request.generate(key)
326
324
  end
327
325
 
@@ -333,8 +331,8 @@ describe Puppet::SSL::CertificateRequest do
333
331
 
334
332
  it "should use SHA1 to sign the csr when SHA256 isn't available" do
335
333
  csr = OpenSSL::X509::Request.new
336
- OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
337
- OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(true)
334
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
335
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(true)
338
336
  signer = Puppet::SSL::CertificateSigner.new
339
337
  signer.sign(csr, key.content)
340
338
  expect(csr.verify(key.content)).to be_truthy
@@ -344,46 +342,49 @@ describe Puppet::SSL::CertificateRequest do
344
342
  # So commenting it out till it is sorted out
345
343
  # The problem seems to be with the ability to sign a CSR when using either of
346
344
  # these hash algorithms
345
+ pending "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
346
+ csr = OpenSSL::X509::Request.new
347
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
348
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
349
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(true)
350
+ signer = Puppet::SSL::CertificateSigner.new
351
+ signer.sign(csr, key.content)
352
+ expect(csr.verify(key.content)).to be_truthy
353
+ end
347
354
 
348
- # it "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
349
- # csr = OpenSSL::X509::Request.new
350
- # OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
351
- # OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
352
- # OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(true)
353
- # signer = Puppet::SSL::CertificateSigner.new
354
- # signer.sign(csr, key.content)
355
- # expect(csr.verify(key.content)).to be_truthy
356
- # end
357
-
358
- # it "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
359
- # csr = OpenSSL::X509::Request.new
360
- # OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
361
- # OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
362
- # OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(false)
363
- # OpenSSL::Digest.expects(:const_defined?).with("SHA384").returns(true)
364
- # signer = Puppet::SSL::CertificateSigner.new
365
- # signer.sign(csr, key.content)
366
- # expect(csr.verify(key.content)).to be_truthy
367
- # end
355
+ # Attempts to use SHA512 and SHA384 for signing certificates don't seem to work
356
+ # So commenting it out till it is sorted out
357
+ # The problem seems to be with the ability to sign a CSR when using either of
358
+ # these hash algorithms
359
+ pending "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
360
+ csr = OpenSSL::X509::Request.new
361
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
362
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
363
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
364
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(true)
365
+ signer = Puppet::SSL::CertificateSigner.new
366
+ signer.sign(csr, key.content)
367
+ expect(csr.verify(key.content)).to be_truthy
368
+ end
368
369
 
369
370
  it "should use SHA224 to sign the csr when SHA256/SHA1/SHA512/SHA384 aren't available" do
370
371
  csr = OpenSSL::X509::Request.new
371
- OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
372
- OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
373
- OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(false)
374
- OpenSSL::Digest.expects(:const_defined?).with("SHA384").returns(false)
375
- OpenSSL::Digest.expects(:const_defined?).with("SHA224").returns(true)
372
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
373
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
374
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
375
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(false)
376
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA224").and_return(true)
376
377
  signer = Puppet::SSL::CertificateSigner.new
377
378
  signer.sign(csr, key.content)
378
379
  expect(csr.verify(key.content)).to be_truthy
379
380
  end
380
381
 
381
382
  it "should raise an error if neither SHA256/SHA1/SHA512/SHA384/SHA224 are available" do
382
- OpenSSL::Digest.expects(:const_defined?).with("SHA256").returns(false)
383
- OpenSSL::Digest.expects(:const_defined?).with("SHA1").returns(false)
384
- OpenSSL::Digest.expects(:const_defined?).with("SHA512").returns(false)
385
- OpenSSL::Digest.expects(:const_defined?).with("SHA384").returns(false)
386
- OpenSSL::Digest.expects(:const_defined?).with("SHA224").returns(false)
383
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
384
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
385
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
386
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(false)
387
+ expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA224").and_return(false)
387
388
  expect {
388
389
  Puppet::SSL::CertificateSigner.new
389
390
  }.to raise_error(Puppet::Error)
@@ -392,10 +393,13 @@ describe Puppet::SSL::CertificateRequest do
392
393
 
393
394
  it "should save the CSR" do
394
395
  csr = Puppet::SSL::CertificateRequest.new("me")
395
- terminus = mock 'terminus'
396
- terminus.stubs(:validate)
397
- Puppet::SSL::CertificateRequest.indirection.expects(:prepare).returns(terminus)
398
- terminus.expects(:save).with { |request| request.instance == csr && request.key == "me" }
396
+ terminus = double('terminus')
397
+ allow(terminus).to receive(:validate)
398
+ expect(Puppet::SSL::CertificateRequest.indirection).to receive(:prepare).and_return(terminus)
399
+ expect(terminus).to receive(:save) do |request|
400
+ expect(request.instance).to eq(csr)
401
+ expect(request.key).to eq("me")
402
+ end
399
403
  Puppet::SSL::CertificateRequest.indirection.save(csr)
400
404
  end
401
405
  end
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
  require 'puppet/certificate_factory'
4
3
 
@@ -31,24 +30,26 @@ describe Puppet::SSL::Certificate do
31
30
 
32
31
  describe "when converting from a string" do
33
32
  it "should create a certificate instance with its name set to the certificate subject and its content set to the extracted certificate" do
34
- cert = stub 'certificate',
33
+ cert = double(
34
+ 'certificate',
35
35
  :subject => OpenSSL::X509::Name.parse("/CN=Foo.madstop.com"),
36
36
  :is_a? => true
37
- OpenSSL::X509::Certificate.expects(:new).with("my certificate").returns(cert)
37
+ )
38
+ expect(OpenSSL::X509::Certificate).to receive(:new).with("my certificate").and_return(cert)
38
39
 
39
- mycert = stub 'sslcert'
40
- mycert.expects(:content=).with(cert)
40
+ mycert = double('sslcert')
41
+ expect(mycert).to receive(:content=).with(cert)
41
42
 
42
- @class.expects(:new).with("Foo.madstop.com").returns mycert
43
+ expect(@class).to receive(:new).with("Foo.madstop.com").and_return(mycert)
43
44
 
44
45
  @class.from_s("my certificate")
45
46
  end
46
47
 
47
48
  it "should create multiple certificate instances when asked" do
48
- cert1 = stub 'cert1'
49
- @class.expects(:from_s).with("cert1").returns cert1
50
- cert2 = stub 'cert2'
51
- @class.expects(:from_s).with("cert2").returns cert2
49
+ cert1 = double('cert1')
50
+ expect(@class).to receive(:from_s).with("cert1").and_return(cert1)
51
+ cert2 = double('cert2')
52
+ expect(@class).to receive(:from_s).with("cert2").and_return(cert2)
52
53
 
53
54
  expect(@class.from_multiple_s("cert1\n---\ncert2")).to eq([cert1, cert2])
54
55
  end
@@ -64,15 +65,15 @@ describe Puppet::SSL::Certificate do
64
65
  end
65
66
 
66
67
  it "should convert the certificate to pem format" do
67
- certificate = mock 'certificate', :to_pem => "pem"
68
+ certificate = double('certificate', :to_pem => "pem")
68
69
  @certificate.content = certificate
69
70
  expect(@certificate.to_s).to eq("pem")
70
71
  end
71
72
 
72
73
  it "should be able to convert multiple instances to a string" do
73
74
  cert2 = @class.new("foo")
74
- @certificate.expects(:to_s).returns "cert1"
75
- cert2.expects(:to_s).returns "cert2"
75
+ expect(@certificate).to receive(:to_s).and_return("cert1")
76
+ expect(cert2).to receive(:to_s).and_return("cert2")
76
77
 
77
78
  expect(@class.to_multiple_s([@certificate, cert2])).to eq("cert1\n---\ncert2")
78
79
 
@@ -80,7 +81,6 @@ describe Puppet::SSL::Certificate do
80
81
  end
81
82
 
82
83
  describe "when managing instances" do
83
-
84
84
  def build_cert(opts)
85
85
  key = Puppet::SSL::Key.new('quux')
86
86
  key.generate
@@ -139,36 +139,35 @@ describe Puppet::SSL::Certificate do
139
139
  cert = build_cert(:dns_alt_names => 'foo')
140
140
  expect(cert.custom_extensions).to be_empty
141
141
  end
142
-
143
142
  end
144
143
 
145
144
  it "should return a nil expiration if there is no actual certificate" do
146
- @certificate.stubs(:content).returns nil
145
+ allow(@certificate).to receive(:content).and_return(nil)
147
146
 
148
147
  expect(@certificate.expiration).to be_nil
149
148
  end
150
149
 
151
150
  it "should use the expiration of the certificate as its expiration date" do
152
- cert = stub 'cert'
153
- @certificate.stubs(:content).returns cert
151
+ cert = double('cert')
152
+ allow(@certificate).to receive(:content).and_return(cert)
154
153
 
155
- cert.expects(:not_after).returns "sometime"
154
+ expect(cert).to receive(:not_after).and_return("sometime")
156
155
 
157
156
  expect(@certificate.expiration).to eq("sometime")
158
157
  end
159
158
 
160
159
  it "should be able to read certificates from disk" do
161
160
  path = "/my/path"
162
- Puppet::FileSystem.expects(:read).with(path, :encoding => Encoding::ASCII).returns("my certificate")
163
- certificate = mock 'certificate'
164
- OpenSSL::X509::Certificate.expects(:new).with("my certificate").returns(certificate)
161
+ expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("my certificate")
162
+ certificate = double('certificate')
163
+ expect(OpenSSL::X509::Certificate).to receive(:new).with("my certificate").and_return(certificate)
165
164
  expect(@certificate.read(path)).to equal(certificate)
166
165
  expect(@certificate.content).to equal(certificate)
167
166
  end
168
167
 
169
168
  it "should have a :to_text method that it delegates to the actual key" do
170
- real_certificate = mock 'certificate'
171
- real_certificate.expects(:to_text).returns "certificatetext"
169
+ real_certificate = double('certificate')
170
+ expect(real_certificate).to receive(:to_text).and_return("certificatetext")
172
171
  @certificate.content = real_certificate
173
172
  expect(@certificate.to_text).to eq("certificatetext")
174
173
  end
@@ -182,6 +181,5 @@ describe Puppet::SSL::Certificate do
182
181
  expect(exts.find { |ext| ext['oid'] == 'pp_instance_id'}['value']).to eq('i_am_an_id')
183
182
  expect(exts.find { |ext| ext['oid'] == 'pp_image_name'}['value']).to eq('i_am_an_image_name')
184
183
  end
185
-
186
184
  end
187
185
  end
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
 
4
3
  require 'puppet/ssl/digest'
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require 'spec_helper'
3
2
  require 'webmock/rspec'
4
3
  require 'puppet/test_ca'
@@ -38,19 +37,19 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
38
37
  end
39
38
 
40
39
  it "should retrieve its public key from its private key" do
41
- realkey = mock 'realkey'
42
- key = stub 'key', :content => realkey
43
- Puppet::SSL::Key.indirection.stubs(:find).returns(key)
44
- pubkey = mock 'public_key'
45
- realkey.expects(:public_key).returns pubkey
40
+ realkey = double('realkey')
41
+ key = double('key', :content => realkey)
42
+ allow(Puppet::SSL::Key.indirection).to receive(:find).and_return(key)
43
+ pubkey = double('public_key')
44
+ expect(realkey).to receive(:public_key).and_return(pubkey)
46
45
 
47
46
  expect(@host.public_key).to equal(pubkey)
48
47
  end
49
48
 
50
49
  describe 'localhost' do
51
50
  before(:each) do
52
- Puppet::SSL::Host.any_instance.stubs(:certificate).returns nil
53
- Puppet::SSL::Host.any_instance.stubs(:generate)
51
+ allow_any_instance_of(Puppet::SSL::Host).to receive(:certificate).and_return(nil)
52
+ allow_any_instance_of(Puppet::SSL::Host).to receive(:generate)
54
53
  end
55
54
 
56
55
  it "should have a method for producing an instance to manage the local host's keys" do
@@ -64,40 +63,40 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
64
63
  end
65
64
 
66
65
  it "should generate the certificate for the localhost instance if no certificate is available" do
67
- host = stub 'host', :key => nil
68
- Puppet::SSL::Host.expects(:new).returns host
66
+ host = double('host', :key => nil)
67
+ expect(Puppet::SSL::Host).to receive(:new).and_return(host)
69
68
 
70
- host.expects(:certificate).returns nil
71
- host.expects(:generate)
69
+ expect(host).to receive(:certificate).and_return(nil)
70
+ expect(host).to receive(:generate)
72
71
 
73
72
  expect(Puppet::SSL::Host.localhost).to equal(host)
74
73
  end
75
74
 
76
75
  it "should always read the key for the localhost instance in from disk" do
77
- host = stub 'host', :certificate => "eh"
78
- host.expects(:key)
79
- Puppet::SSL::Host.expects(:new).returns host
76
+ host = double('host', :certificate => "eh")
77
+ expect(host).to receive(:key)
78
+ expect(Puppet::SSL::Host).to receive(:new).and_return(host)
80
79
 
81
80
  Puppet::SSL::Host.localhost
82
81
  end
83
82
 
84
83
  it "should cache the localhost instance" do
85
- host = stub 'host', :certificate => "eh", :key => 'foo'
86
- Puppet::SSL::Host.expects(:new).once.returns host
84
+ host = double('host', :certificate => "eh", :key => 'foo')
85
+ expect(Puppet::SSL::Host).to receive(:new).once.and_return(host)
87
86
  expect(Puppet::SSL::Host.localhost).to eq(Puppet::SSL::Host.localhost)
88
87
  end
89
88
  end
90
89
 
91
90
  context "with dns_alt_names" do
92
91
  before :each do
93
- @key = stub('key content')
94
- key = stub('key', :generate => true, :content => @key)
95
- Puppet::SSL::Key.stubs(:new).returns key
96
- Puppet::SSL::Key.indirection.stubs(:save).with(key)
92
+ @key = double('key content')
93
+ key = double('key', :generate => true, :content => @key)
94
+ allow(Puppet::SSL::Key).to receive(:new).and_return(key)
95
+ allow(Puppet::SSL::Key.indirection).to receive(:save).with(key)
97
96
 
98
- @cr = stub('certificate request', :render => "csr pem")
99
- Puppet::SSL::CertificateRequest.stubs(:new).returns @cr
100
- Puppet::SSL::Host.any_instance.stubs(:submit_certificate_request)
97
+ @cr = double('certificate request', :render => "csr pem")
98
+ allow(Puppet::SSL::CertificateRequest).to receive(:new).and_return(@cr)
99
+ allow_any_instance_of(Puppet::SSL::Host).to receive(:submit_certificate_request)
101
100
  end
102
101
 
103
102
  describe "explicitly specified" do
@@ -106,13 +105,13 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
106
105
  end
107
106
 
108
107
  it "should not include subjectAltName if not the local node" do
109
- @cr.expects(:generate).with(@key, {})
108
+ expect(@cr).to receive(:generate).with(@key, {})
110
109
 
111
110
  Puppet::SSL::Host.new('not-the-' + Puppet[:certname]).generate_certificate_request
112
111
  end
113
112
 
114
113
  it "should include subjectAltName if the local node" do
115
- @cr.expects(:generate).with(@key, { :dns_alt_names => 'one, two' })
114
+ expect(@cr).to receive(:generate).with(@key, { :dns_alt_names => 'one, two' })
116
115
 
117
116
  Puppet::SSL::Host.new(Puppet[:certname]).generate_certificate_request
118
117
  end
@@ -125,55 +124,55 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
125
124
 
126
125
  it "should consider the certificate invalid if it cannot find a key" do
127
126
  host = Puppet::SSL::Host.new("foo")
128
- certificate = mock('cert', :fingerprint => 'DEADBEEF')
129
- host.expects(:key).returns nil
127
+ certificate = double('cert', :fingerprint => 'DEADBEEF')
128
+ expect(host).to receive(:key).and_return(nil)
130
129
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, "No private key with which to validate certificate with fingerprint: DEADBEEF")
131
130
  end
132
131
 
133
132
  it "should consider the certificate invalid if it cannot find a certificate" do
134
133
  host = Puppet::SSL::Host.new("foo")
135
- host.expects(:key).never
134
+ expect(host).not_to receive(:key)
136
135
  expect { host.validate_certificate_with_key(nil) }.to raise_error(Puppet::Error, "No certificate to validate.")
137
136
  end
138
137
 
139
138
  it "should consider the certificate invalid if the SSL certificate's key verification fails" do
140
139
  host = Puppet::SSL::Host.new("foo")
141
- key = mock 'key', :content => "private_key"
142
- sslcert = mock 'sslcert'
143
- certificate = mock 'cert', {:content => sslcert, :fingerprint => 'DEADBEEF'}
144
- host.stubs(:key).returns key
145
- sslcert.expects(:check_private_key).with("private_key").returns false
140
+ key = double('key', :content => "private_key")
141
+ sslcert = double('sslcert')
142
+ certificate = double('cert', {:content => sslcert, :fingerprint => 'DEADBEEF'})
143
+ allow(host).to receive(:key).and_return(key)
144
+ expect(sslcert).to receive(:check_private_key).with("private_key").and_return(false)
146
145
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, /DEADBEEF/)
147
146
  end
148
147
 
149
148
  it "should consider the certificate valid if the SSL certificate's key verification succeeds" do
150
149
  host = Puppet::SSL::Host.new("foo")
151
- key = mock 'key', :content => "private_key"
152
- sslcert = mock 'sslcert'
153
- certificate = mock 'cert', :content => sslcert
154
- host.stubs(:key).returns key
155
- sslcert.expects(:check_private_key).with("private_key").returns true
150
+ key = double('key', :content => "private_key")
151
+ sslcert = double('sslcert')
152
+ certificate = double('cert', :content => sslcert)
153
+ allow(host).to receive(:key).and_return(key)
154
+ expect(sslcert).to receive(:check_private_key).with("private_key").and_return(true)
156
155
  expect{ host.validate_certificate_with_key(certificate) }.not_to raise_error
157
156
  end
158
157
 
159
158
  it "should output agent-specific commands when validation fails" do
160
159
  host = Puppet::SSL::Host.new("foo")
161
- key = mock 'key', :content => "private_key"
162
- sslcert = mock 'sslcert'
163
- certificate = mock 'cert', {:content => sslcert, :fingerprint => 'DEADBEEF'}
164
- host.stubs(:key).returns key
165
- sslcert.expects(:check_private_key).with("private_key").returns false
160
+ key = double('key', :content => "private_key")
161
+ sslcert = double('sslcert')
162
+ certificate = double('cert', {:content => sslcert, :fingerprint => 'DEADBEEF'})
163
+ allow(host).to receive(:key).and_return(key)
164
+ expect(sslcert).to receive(:check_private_key).with("private_key").and_return(false)
166
165
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, /puppet ssl clean \n/)
167
166
  end
168
167
 
169
168
  it "should output device-specific commands when validation fails" do
170
169
  Puppet[:certname] = "device.example.com"
171
170
  host = Puppet::SSL::Host.new("device.example.com", true)
172
- key = mock 'key', :content => "private_key"
173
- sslcert = mock 'sslcert'
174
- certificate = mock 'cert', {:content => sslcert, :fingerprint => 'DEADBEEF'}
175
- host.stubs(:key).returns key
176
- sslcert.expects(:check_private_key).with("private_key").returns false
171
+ key = double('key', :content => "private_key")
172
+ sslcert = double('sslcert')
173
+ certificate = double('cert', {:content => sslcert, :fingerprint => 'DEADBEEF'})
174
+ allow(host).to receive(:key).and_return(key)
175
+ expect(sslcert).to receive(:check_private_key).with("private_key").and_return(false)
177
176
  expect { host.validate_certificate_with_key(certificate) }.to raise_error(Puppet::Error, /puppet ssl clean --target device.example.com/)
178
177
  end
179
178
 
@@ -197,37 +196,37 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
197
196
  end
198
197
 
199
198
  it "should return nil if the key is not set and cannot be found" do
200
- Puppet::SSL::Key.indirection.expects(:find).with("myname").returns(nil)
199
+ expect(Puppet::SSL::Key.indirection).to receive(:find).with("myname").and_return(nil)
201
200
  expect(@host.key).to be_nil
202
201
  end
203
202
 
204
203
  it "should find the key in the Key class and return the Puppet instance" do
205
- Puppet::SSL::Key.indirection.expects(:find).with("myname").returns(@key)
204
+ expect(Puppet::SSL::Key.indirection).to receive(:find).with("myname").and_return(@key)
206
205
  expect(@host.key).to equal(@key)
207
206
  end
208
207
 
209
208
  it "should be able to generate and save a new key" do
210
- Puppet::SSL::Key.expects(:new).with("myname").returns(@key)
209
+ expect(Puppet::SSL::Key).to receive(:new).with("myname").and_return(@key)
211
210
 
212
- @key.expects(:generate)
213
- Puppet::SSL::Key.indirection.expects(:save)
211
+ expect(@key).to receive(:generate)
212
+ expect(Puppet::SSL::Key.indirection).to receive(:save)
214
213
 
215
214
  expect(@host.generate_key).to be_truthy
216
215
  expect(@host.key).to equal(@key)
217
216
  end
218
217
 
219
218
  it "should not retain keys that could not be saved" do
220
- Puppet::SSL::Key.expects(:new).with("myname").returns(@key)
219
+ expect(Puppet::SSL::Key).to receive(:new).with("myname").and_return(@key)
221
220
 
222
- @key.stubs(:generate)
223
- Puppet::SSL::Key.indirection.expects(:save).raises "eh"
221
+ expect(@key).to receive(:generate)
222
+ expect(Puppet::SSL::Key.indirection).to receive(:save).and_raise("eh")
224
223
 
225
224
  expect { @host.generate_key }.to raise_error(RuntimeError)
226
225
  expect(@host.key).to be_nil
227
226
  end
228
227
 
229
228
  it "should return any previously found key without requerying" do
230
- Puppet::SSL::Key.indirection.expects(:find).with("myname").returns(@key).once
229
+ expect(Puppet::SSL::Key.indirection).to receive(:find).with("myname").and_return(@key).once
231
230
  expect(@host.key).to equal(@key)
232
231
  expect(@host.key).to equal(@key)
233
232
  end
@@ -245,52 +244,52 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
245
244
  let(:key) { Puppet::SSL::Key.from_s(@pki[:leaf_key].to_s, @host.name) }
246
245
 
247
246
  it "should generate a new key when generating the cert request if no key exists" do
248
- @host.expects(:key).times(2).returns(nil).then.returns(key)
249
- @host.expects(:generate_key).returns(key)
247
+ expect(@host).to receive(:key).exactly(2).times.and_return(nil, key)
248
+ expect(@host).to receive(:generate_key).and_return(key)
250
249
 
251
- @host.stubs(:submit_certificate_request)
250
+ allow(@host).to receive(:submit_certificate_request)
252
251
 
253
252
  @host.generate_certificate_request
254
253
  expect(Puppet::FileSystem.exist?(File.join(Puppet[:requestdir], "#{@host.name}.pem"))).to be true
255
254
  end
256
255
 
257
256
  it "should be able to generate and save a new request using the private key" do
258
- @host.stubs(:key).returns(key)
259
- @host.stubs(:submit_certificate_request)
257
+ allow(@host).to receive(:key).and_return(key)
258
+ allow(@host).to receive(:submit_certificate_request)
260
259
 
261
260
  expect(@host.generate_certificate_request).to be_truthy
262
261
  expect(Puppet::FileSystem.exist?(File.join(Puppet[:requestdir], "#{@host.name}.pem"))).to be true
263
262
  end
264
263
 
265
264
  it "should send a new request to the CA for signing" do
266
- @http = mock("http")
267
- @host.stubs(:http_client).returns(@http)
268
- @host.stubs(:ssl_store).returns(mock("ssl store"))
269
- @host.stubs(:key).returns(key)
270
- request = mock("request")
271
- request.stubs(:generate)
272
- request.expects(:render).returns("my request").twice
273
- Puppet::SSL::CertificateRequest.expects(:new).returns(request)
274
-
275
- Puppet::Rest::Routes.expects(:put_certificate_request)
265
+ @http = double("http")
266
+ allow(@host).to receive(:http_client).and_return(@http)
267
+ allow(@host).to receive(:ssl_store).and_return(double("ssl store"))
268
+ allow(@host).to receive(:key).and_return(key)
269
+ request = double("request")
270
+ allow(request).to receive(:generate)
271
+ expect(request).to receive(:render).and_return("my request").twice
272
+ expect(Puppet::SSL::CertificateRequest).to receive(:new).and_return(request)
273
+
274
+ expect(Puppet::Rest::Routes).to receive(:put_certificate_request)
276
275
  .with("my request", @host.name, anything)
277
- .returns(nil)
276
+ .and_return(nil)
278
277
 
279
278
  expect(@host.generate_certificate_request).to be true
280
279
  end
281
280
 
282
281
  it "should return any previously found request without requerying" do
283
- request = mock("request")
284
- @host.expects(:load_certificate_request_from_file).returns(request).once
282
+ request = double("request")
283
+ expect(@host).to receive(:load_certificate_request_from_file).and_return(request).once
285
284
 
286
285
  expect(@host.certificate_request).to equal(request)
287
286
  expect(@host.certificate_request).to equal(request)
288
287
  end
289
288
 
290
289
  it "should not keep its certificate request in memory if the request cannot be saved" do
291
- @host.stubs(:key).returns(key)
292
- @host.stubs(:submit_certificate_request)
293
- Puppet::Util.expects(:replace_file).raises(RuntimeError)
290
+ allow(@host).to receive(:key).and_return(key)
291
+ allow(@host).to receive(:submit_certificate_request)
292
+ expect(Puppet::Util).to receive(:replace_file).and_raise(RuntimeError)
294
293
 
295
294
  expect { @host.generate_certificate_request }.to raise_error(RuntimeError)
296
295
 
@@ -305,14 +304,14 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
305
304
 
306
305
  before(:each) do
307
306
  Puppet[:certdir] = tmpdir('certs')
308
- @host.stubs(:key).returns mock("key")
309
- @host.stubs(:validate_certificate_with_key)
310
- @host.stubs(:http_client).returns(@http)
311
- @host.stubs(:ssl_store).returns(mock("ssl store"))
307
+ allow(@host).to receive(:key).and_return(double("key"))
308
+ allow(@host).to receive(:validate_certificate_with_key)
309
+ allow(@host).to receive(:http_client).and_return(@http)
310
+ allow(@host).to receive(:ssl_store).and_return(double("ssl store"))
312
311
 
313
312
  WebMock.disable_net_connect!
314
- Net::HTTP.any_instance.stubs(:start)
315
- Net::HTTP.any_instance.stubs(:finish)
313
+ allow_any_instance_of(Net::HTTP).to receive(:start)
314
+ allow_any_instance_of(Net::HTTP).to receive(:finish)
316
315
  end
317
316
 
318
317
  let(:ca_cert_response) { @pki[:ca_bundle] }
@@ -332,7 +331,7 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
332
331
  it "should raise if it cannot find a CA certificate" do
333
332
  stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 404)
334
333
 
335
- @host.expects(:get_host_certificate).never
334
+ expect(@host).not_to receive(:get_host_certificate)
336
335
 
337
336
  expect {
338
337
  @host.certificate
@@ -343,8 +342,8 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
343
342
  stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: ca_cert_response)
344
343
  stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: crl_response)
345
344
 
346
- @host.expects(:get_host_certificate).returns(nil)
347
- @host.expects(:key).returns mock("key")
345
+ expect(@host).to receive(:get_host_certificate).and_return(nil)
346
+ expect(@host).to receive(:key).and_return(double("key"))
348
347
  @host.certificate
349
348
  end
350
349
 
@@ -352,9 +351,9 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
352
351
  stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: ca_cert_response)
353
352
  stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: crl_response)
354
353
 
355
- @host.expects(:get_host_certificate).returns(nil)
356
- @host.expects(:key).returns nil
357
- @host.expects(:generate_key)
354
+ expect(@host).to receive(:get_host_certificate).and_return(nil)
355
+ expect(@host).to receive(:key).and_return(nil)
356
+ expect(@host).to receive(:generate_key)
358
357
  @host.certificate
359
358
  end
360
359
 
@@ -372,10 +371,10 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
372
371
  end
373
372
 
374
373
  it "should return any previously found certificate" do
375
- cert = mock 'cert'
374
+ cert = double('cert')
376
375
  stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: ca_cert_response)
377
376
  stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: crl_response)
378
- @host.expects(:get_host_certificate).returns(cert).once
377
+ expect(@host).to receive(:get_host_certificate).and_return(cert).once
379
378
 
380
379
  expect(@host.certificate).to equal(cert)
381
380
  expect(@host.certificate).to equal(cert)
@@ -422,22 +421,22 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
422
421
  describe "when generating files" do
423
422
  before do
424
423
  @host = Puppet::SSL::Host.new("me")
425
- @host.stubs(:generate_key)
426
- @host.stubs(:generate_certificate_request)
427
- @host.stubs(:certificate_request)
428
- @host.stubs(:certificate)
424
+ allow(@host).to receive(:generate_key)
425
+ allow(@host).to receive(:generate_certificate_request)
426
+ allow(@host).to receive(:certificate_request)
427
+ allow(@host).to receive(:certificate)
429
428
  end
430
429
 
431
430
  it "should generate a key if one is not present" do
432
- @host.stubs(:key).returns nil
433
- @host.expects(:generate_key)
431
+ allow(@host).to receive(:key).and_return nil
432
+ expect(@host).to receive(:generate_key)
434
433
 
435
434
  @host.generate
436
435
  end
437
436
 
438
437
  it "should generate a certificate request if one is not present" do
439
- @host.expects(:certificate_request).returns nil
440
- @host.expects(:generate_certificate_request)
438
+ expect(@host).to receive(:certificate_request).and_return nil
439
+ expect(@host).to receive(:generate_certificate_request)
441
440
 
442
441
  @host.generate
443
442
  end
@@ -453,10 +452,9 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
453
452
  end
454
453
 
455
454
  it "should accept a purpose" do
456
- store = mock 'store'
457
- store.stub_everything
458
- OpenSSL::X509::Store.expects(:new).returns store
459
- store.expects(:purpose=).with(OpenSSL::X509::PURPOSE_SSL_SERVER)
455
+ store = double('store', :add_file => nil)
456
+ expect(OpenSSL::X509::Store).to receive(:new).and_return(store)
457
+ expect(store).to receive(:purpose=).with(OpenSSL::X509::PURPOSE_SSL_SERVER)
460
458
  host = Puppet::SSL::Host.new("me")
461
459
  host.crl_usage = false
462
460
 
@@ -469,8 +467,8 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
469
467
  @revoked_cert = @pki[:revoked_root_node_cert]
470
468
  localcacert = Puppet.settings[:localcacert]
471
469
  Puppet::Util.replace_file(localcacert, 0644) {|f| f.write @pki[:ca_bundle] }
472
- @http = mock 'http'
473
- @host.stubs(:http_client).returns(@http)
470
+ @http = double('http')
471
+ allow(@host).to receive(:http_client).and_return(@http)
474
472
  end
475
473
 
476
474
  after do
@@ -479,9 +477,9 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
479
477
  end
480
478
 
481
479
  it "retrieves it from the server" do
482
- Puppet::Rest::Routes.expects(:get_crls)
480
+ expect(Puppet::Rest::Routes).to receive(:get_crls)
483
481
  .with(Puppet::SSL::CA_NAME, anything)
484
- .returns(@pki[:crl_chain])
482
+ .and_return(@pki[:crl_chain])
485
483
 
486
484
  @host.ssl_store
487
485
  expect(Puppet::FileSystem.read(Puppet.settings[:hostcrl], :encoding => Encoding::UTF_8)).to eq(@pki[:crl_chain])
@@ -581,54 +579,73 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
581
579
  end
582
580
 
583
581
  it "should generate its certificate request and attempt to read the certificate again if no certificate is found" do
584
- @host.expects(:certificate).times(2).returns(nil).then.returns "foo"
585
- @host.expects(:generate)
582
+ expect(@host).to receive(:certificate).twice.and_return(nil, "foo")
583
+ expect(@host).to receive(:generate)
586
584
  @host.wait_for_cert(1)
587
585
  end
588
586
 
589
587
  it "should catch and log errors during CSR saving" do
590
- @host.expects(:certificate).times(2).returns(nil).then.returns "foo"
591
- @host.expects(:generate).raises(RuntimeError).then.returns nil
592
- @host.stubs(:sleep)
588
+ expect(@host).to receive(:certificate).twice.and_return(nil, "foo")
589
+ times_generate_called = 0
590
+ expect(@host).to receive(:generate) do
591
+ times_generate_called += 1
592
+ raise RuntimeError if times_generate_called == 1
593
+ nil
594
+ end
595
+ allow(@host).to receive(:sleep)
593
596
  @host.wait_for_cert(1)
594
597
  end
595
598
 
596
599
  it "should sleep and retry after failures saving the CSR if waitforcert is enabled" do
597
- @host.expects(:certificate).times(2).returns(nil).then.returns "foo"
598
- @host.expects(:generate).raises(RuntimeError).then.returns nil
599
- @host.expects(:sleep).with(1)
600
+ expect(@host).to receive(:certificate).twice.and_return(nil, "foo")
601
+ times_generate_called = 0
602
+ expect(@host).to receive(:generate) do
603
+ times_generate_called += 1
604
+ raise RuntimeError if times_generate_called == 1
605
+ nil
606
+ end
607
+ expect(@host).to receive(:sleep).with(1)
600
608
  @host.wait_for_cert(1)
601
609
  end
602
610
 
603
611
  it "should exit after failures saving the CSR of waitforcert is disabled" do
604
- @host.expects(:certificate).returns(nil)
605
- @host.expects(:generate).raises(RuntimeError)
606
- @host.expects(:puts)
612
+ expect(@host).to receive(:certificate).and_return(nil)
613
+ expect(@host).to receive(:generate).and_raise(RuntimeError)
614
+ expect(@host).to receive(:puts)
607
615
  expect { @host.wait_for_cert(0) }.to exit_with 1
608
616
  end
609
617
 
610
618
  it "should exit if the wait time is 0 and it can neither find nor retrieve a certificate" do
611
- @host.stubs(:certificate).returns nil
612
- @host.expects(:generate)
613
- @host.expects(:puts)
619
+ allow(@host).to receive(:certificate).and_return(nil)
620
+ expect(@host).to receive(:generate)
621
+ expect(@host).to receive(:puts)
614
622
  expect { @host.wait_for_cert(0) }.to exit_with 1
615
623
  end
616
624
 
617
625
  it "should sleep for the specified amount of time if no certificate is found after generating its certificate request" do
618
- @host.expects(:certificate).times(3).returns(nil).then.returns(nil).then.returns "foo"
619
- @host.expects(:generate)
626
+ expect(@host).to receive(:certificate).exactly(3).times().and_return(nil, nil, "foo")
627
+ expect(@host).to receive(:generate)
620
628
 
621
- @host.expects(:sleep).with(1)
629
+ expect(@host).to receive(:sleep).with(1)
622
630
 
623
631
  @host.wait_for_cert(1)
624
632
  end
625
633
 
626
634
  it "should catch and log exceptions during certificate retrieval" do
627
- @host.expects(:certificate).times(3).returns(nil).then.raises(RuntimeError).then.returns("foo")
628
- @host.stubs(:generate)
629
- @host.stubs(:sleep)
635
+ times_certificate_called = 0
636
+ expect(@host).to receive(:certificate) do
637
+ times_certificate_called += 1
638
+ if times_certificate_called == 1
639
+ return nil
640
+ elsif times_certificate_called == 2
641
+ raise RuntimeError
642
+ end
643
+ "foo"
644
+ end.exactly(3).times()
645
+ allow(@host).to receive(:generate)
646
+ allow(@host).to receive(:sleep)
630
647
 
631
- Puppet.expects(:log_exception)
648
+ expect(Puppet).to receive(:log_exception).at_least(:once)
632
649
 
633
650
  @host.wait_for_cert(1)
634
651
  end