http_stub 0.27.0 → 0.28.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. checksums.yaml +4 -4
  2. data/lib/http_stub/client.rb +18 -0
  3. data/lib/http_stub/client/client.rb +28 -0
  4. data/lib/http_stub/client/request.rb +38 -0
  5. data/lib/http_stub/client/server.rb +20 -0
  6. data/lib/http_stub/client/session.rb +43 -0
  7. data/lib/http_stub/configurator.rb +61 -0
  8. data/lib/http_stub/configurator/endpoint_template.rb +24 -0
  9. data/lib/http_stub/configurator/part.rb +23 -0
  10. data/lib/http_stub/configurator/scenario.rb +42 -0
  11. data/lib/http_stub/configurator/server.rb +53 -0
  12. data/lib/http_stub/configurator/state.rb +41 -0
  13. data/lib/http_stub/configurator/stub.rb +13 -0
  14. data/lib/http_stub/configurator/stub/stub.rb +75 -0
  15. data/lib/http_stub/{configurer/dsl/stub_builder_template.rb → configurator/stub/template.rb} +5 -5
  16. data/lib/http_stub/extensions/core/object.rb +17 -0
  17. data/lib/http_stub/rake/server_tasks.rb +2 -14
  18. data/lib/http_stub/rake/task_generators.rb +3 -3
  19. data/lib/http_stub/server.rb +110 -0
  20. data/lib/http_stub/server/application/application.rb +10 -6
  21. data/lib/http_stub/server/application/request_support.rb +2 -2
  22. data/lib/http_stub/server/application/routes/memory.rb +1 -6
  23. data/lib/http_stub/server/application/routes/scenario.rb +1 -11
  24. data/lib/http_stub/server/application/routes/session.rb +1 -1
  25. data/lib/http_stub/server/application/routes/status.rb +0 -10
  26. data/lib/http_stub/server/application/routes/stub.rb +2 -12
  27. data/lib/http_stub/server/daemon.rb +1 -10
  28. data/lib/http_stub/server/memory/controller.rb +2 -8
  29. data/lib/http_stub/server/memory/initial_state.rb +27 -0
  30. data/lib/http_stub/server/memory/memory.rb +6 -27
  31. data/lib/http_stub/server/registry.rb +3 -1
  32. data/lib/http_stub/server/request/factory.rb +3 -3
  33. data/lib/http_stub/server/response.rb +12 -6
  34. data/lib/http_stub/server/scenario.rb +2 -2
  35. data/lib/http_stub/server/scenario/controller.rb +3 -13
  36. data/lib/http_stub/server/scenario/registry.rb +25 -0
  37. data/lib/http_stub/server/scenario/scenario.rb +13 -8
  38. data/lib/http_stub/server/session.rb +0 -1
  39. data/lib/http_stub/server/session/controller.rb +7 -8
  40. data/lib/http_stub/server/session/identifier_strategy.rb +9 -2
  41. data/lib/http_stub/server/session/registry.rb +7 -13
  42. data/lib/http_stub/server/session/session.rb +4 -8
  43. data/lib/http_stub/server/stdout_logger.rb +13 -0
  44. data/lib/http_stub/server/stub.rb +3 -2
  45. data/lib/http_stub/server/stub/controller.rb +0 -10
  46. data/lib/http_stub/server/stub/empty.rb +2 -1
  47. data/lib/http_stub/server/stub/match/controller.rb +1 -1
  48. data/lib/http_stub/server/stub/match/exact_value_matcher.rb +2 -1
  49. data/lib/http_stub/server/stub/match/omitted_value_matcher.rb +1 -1
  50. data/lib/http_stub/server/stub/match/regexp_value_matcher.rb +1 -2
  51. data/lib/http_stub/server/stub/match/rule/body.rb +7 -29
  52. data/lib/http_stub/server/stub/match/rule/{json_body.rb → json_schema_body.rb} +1 -1
  53. data/lib/http_stub/server/stub/match/rule/method.rb +1 -1
  54. data/lib/http_stub/server/stub/match/rule/schema_body.rb +39 -0
  55. data/lib/http_stub/server/stub/match/rules.rb +6 -6
  56. data/lib/http_stub/server/stub/match/string_value_matcher.rb +1 -2
  57. data/lib/http_stub/server/stub/registry.rb +4 -4
  58. data/lib/http_stub/server/stub/response.rb +2 -6
  59. data/lib/http_stub/server/stub/response/blocks.rb +33 -0
  60. data/lib/http_stub/server/stub/response/body.rb +21 -0
  61. data/lib/http_stub/server/stub/response/file_body.rb +46 -0
  62. data/lib/http_stub/server/stub/response/headers.rb +24 -0
  63. data/lib/http_stub/server/stub/response/response.rb +52 -0
  64. data/lib/http_stub/server/stub/response/text_body.rb +32 -0
  65. data/lib/http_stub/server/stub/stub.rb +17 -11
  66. data/lib/http_stub/server/stub/triggers.rb +16 -5
  67. data/lib/http_stub/server/views/_file_body_response.haml +1 -0
  68. data/lib/http_stub/server/views/_response.haml +6 -1
  69. data/lib/http_stub/server/views/_text_body_response.haml +1 -0
  70. data/lib/http_stub/server/views/application.sass +31 -31
  71. data/lib/http_stub/version.rb +1 -1
  72. data/spec/acceptance/{configurer_part_spec.rb → configurator_part_spec.rb} +8 -8
  73. data/spec/acceptance/cross_origin_support_spec.rb +9 -11
  74. data/spec/acceptance/endpoint_template_spec.rb +5 -5
  75. data/spec/acceptance/scenario_spec.rb +8 -8
  76. data/spec/acceptance/server_defaults_spec.rb +3 -3
  77. data/spec/acceptance/server_memory_spec.rb +13 -5
  78. data/spec/acceptance/server_status_spec.rb +4 -21
  79. data/spec/acceptance/session_spec.rb +8 -11
  80. data/spec/acceptance/stub_body_request_matching_spec.rb +9 -9
  81. data/spec/acceptance/stub_control_values_spec.rb +74 -82
  82. data/spec/acceptance/stub_match_last_spec.rb +60 -80
  83. data/spec/acceptance/stub_match_list_spec.rb +30 -66
  84. data/spec/acceptance/stub_miss_list_spec.rb +19 -27
  85. data/spec/acceptance/stub_response_block_spec.rb +66 -0
  86. data/spec/acceptance/stub_spec.rb +109 -185
  87. data/spec/acceptance/stub_trigger_spec.rb +12 -89
  88. data/spec/helper.rb +32 -10
  89. data/spec/lib/http_stub/client/client_spec.rb +109 -0
  90. data/spec/lib/http_stub/client/request_integration_spec.rb +74 -0
  91. data/spec/lib/http_stub/client/request_spec.rb +32 -0
  92. data/spec/lib/http_stub/client/server_spec.rb +75 -0
  93. data/spec/lib/http_stub/client/session_spec.rb +117 -0
  94. data/spec/lib/http_stub/client_spec.rb +15 -0
  95. data/spec/lib/http_stub/{configurer/dsl/server_endpoint_template_spec.rb → configurator/endpoint_template_spec.rb} +49 -38
  96. data/spec/lib/http_stub/configurator/part_spec.rb +103 -0
  97. data/spec/lib/http_stub/configurator/scenario_spec.rb +162 -0
  98. data/spec/lib/http_stub/configurator/server_spec.rb +344 -0
  99. data/spec/lib/http_stub/configurator/state_spec.rb +113 -0
  100. data/spec/lib/http_stub/configurator/stub/stub_spec.rb +867 -0
  101. data/spec/lib/http_stub/{configurer/dsl/stub_builder_template_spec.rb → configurator/stub/template_spec.rb} +46 -44
  102. data/spec/lib/http_stub/configurator/stub_spec.rb +27 -0
  103. data/spec/lib/http_stub/configurator_spec.rb +113 -0
  104. data/spec/lib/http_stub/extensions/core/hash_spec.rb +3 -3
  105. data/spec/lib/http_stub/extensions/core/object_spec.rb +29 -0
  106. data/spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb +14 -9
  107. data/spec/lib/http_stub/rake/server_tasks_smoke_spec.rb +25 -53
  108. data/spec/lib/http_stub/rake/server_tasks_spec.rb +12 -55
  109. data/spec/lib/http_stub/server/application/application_spec.rb +4 -49
  110. data/spec/lib/http_stub/server/application/cross_origin_support_spec.rb +2 -5
  111. data/spec/lib/http_stub/server/application/request_support_integration_spec.rb +4 -4
  112. data/spec/lib/http_stub/server/application/request_support_spec.rb +16 -11
  113. data/spec/lib/http_stub/server/application/routes/memory_spec.rb +1 -21
  114. data/spec/lib/http_stub/server/application/routes/scenario_spec.rb +4 -56
  115. data/spec/lib/http_stub/server/application/routes/session_integration_spec.rb +1 -1
  116. data/spec/lib/http_stub/server/application/routes/status_spec.rb +2 -36
  117. data/spec/lib/http_stub/server/application/routes/stub_integration_spec.rb +3 -34
  118. data/spec/lib/http_stub/server/application/routes/stub_spec.rb +6 -55
  119. data/spec/lib/http_stub/server/daemon_integration_spec.rb +5 -1
  120. data/spec/lib/http_stub/server/daemon_spec.rb +8 -77
  121. data/spec/lib/http_stub/server/memory/controller_spec.rb +2 -28
  122. data/spec/lib/http_stub/server/memory/initial_state_spec.rb +57 -0
  123. data/spec/lib/http_stub/server/memory/memory_spec.rb +28 -116
  124. data/spec/lib/http_stub/server/registry_spec.rb +57 -2
  125. data/spec/lib/http_stub/server/request/factory_spec.rb +8 -6
  126. data/spec/lib/http_stub/server/response_spec.rb +32 -10
  127. data/spec/lib/http_stub/server/scenario/controller_spec.rb +14 -53
  128. data/spec/lib/http_stub/server/scenario/registry_spec.rb +147 -0
  129. data/spec/lib/http_stub/server/scenario/scenario_spec.rb +8 -10
  130. data/spec/lib/http_stub/server/scenario_spec.rb +1 -1
  131. data/spec/lib/http_stub/server/session/controller_spec.rb +4 -5
  132. data/spec/lib/http_stub/server/session/identifier_strategy_spec.rb +15 -48
  133. data/spec/lib/http_stub/server/session/registry_spec.rb +15 -28
  134. data/spec/lib/http_stub/server/session/session_spec.rb +13 -71
  135. data/spec/lib/http_stub/server/stdout_logger_spec.rb +17 -0
  136. data/spec/lib/http_stub/server/stub/controller_spec.rb +7 -65
  137. data/spec/lib/http_stub/server/stub/empty_spec.rb +8 -0
  138. data/spec/lib/http_stub/server/stub/match/controller_spec.rb +2 -2
  139. data/spec/lib/http_stub/server/stub/match/exact_value_matcher_spec.rb +49 -11
  140. data/spec/lib/http_stub/server/stub/match/hash_matcher_spec.rb +4 -4
  141. data/spec/lib/http_stub/server/stub/match/match_spec.rb +4 -4
  142. data/spec/lib/http_stub/server/stub/match/miss_spec.rb +2 -2
  143. data/spec/lib/http_stub/server/stub/match/omitted_value_matcher_spec.rb +31 -12
  144. data/spec/lib/http_stub/server/stub/match/regexp_value_matcher_spec.rb +20 -11
  145. data/spec/lib/http_stub/server/stub/match/rule/body_spec.rb +3 -3
  146. data/spec/lib/http_stub/server/stub/match/rule/{json_body_spec.rb → json_schema_body_spec.rb} +5 -5
  147. data/spec/lib/http_stub/server/stub/match/rule/method_spec.rb +42 -8
  148. data/spec/lib/http_stub/server/stub/match/rule/schema_body_spec.rb +64 -0
  149. data/spec/lib/http_stub/server/stub/match/rules_spec.rb +18 -18
  150. data/spec/lib/http_stub/server/stub/match/string_value_matcher_spec.rb +10 -63
  151. data/spec/lib/http_stub/server/stub/registry_integration_spec.rb +11 -28
  152. data/spec/lib/http_stub/server/stub/registry_spec.rb +6 -13
  153. data/spec/lib/http_stub/server/stub/response/blocks_spec.rb +64 -0
  154. data/spec/lib/http_stub/server/stub/response/body_spec.rb +52 -0
  155. data/spec/lib/http_stub/server/stub/response/file_body_spec.rb +117 -0
  156. data/spec/lib/http_stub/server/stub/response/headers_spec.rb +89 -0
  157. data/spec/lib/http_stub/server/stub/response/response_spec.rb +342 -0
  158. data/spec/lib/http_stub/server/stub/response/text_body_spec.rb +138 -0
  159. data/spec/lib/http_stub/server/stub/response_spec.rb +23 -32
  160. data/spec/lib/http_stub/server/stub/stub_spec.rb +33 -39
  161. data/spec/lib/http_stub/server/stub/triggers_spec.rb +47 -12
  162. data/spec/lib/http_stub/server/stub_spec.rb +1 -1
  163. data/spec/support/extensions/core/random.rb +23 -0
  164. data/spec/support/http_stub/configurator/scenario_builder.rb +35 -0
  165. data/spec/support/http_stub/configurator/scenario_fixture.rb +39 -0
  166. data/spec/support/http_stub/configurator/stub_builder.rb +112 -0
  167. data/spec/support/http_stub/configurator/stub_fixture.rb +58 -0
  168. data/spec/support/http_stub/configurator_fixture.rb +13 -0
  169. data/spec/support/http_stub/configurator_with_stub_builder_and_requester.rb +14 -0
  170. data/spec/support/http_stub/headers_fixture.rb +11 -0
  171. data/spec/support/http_stub/{html_view_excluding_request_details.rb → html_view_excluding_a_stub_request.rb} +2 -2
  172. data/spec/support/http_stub/{html_view_including_request_details.rb → html_view_including_a_stub_request.rb} +20 -12
  173. data/spec/support/http_stub/port.rb +12 -0
  174. data/spec/support/http_stub/server/application/http_stub_rack_application_test.rb +2 -3
  175. data/spec/support/http_stub/server/driver.rb +20 -15
  176. data/spec/support/http_stub/server/memory_fixture.rb +2 -2
  177. data/spec/support/http_stub/server/request/sinatra_request_fixture.rb +16 -0
  178. data/spec/support/http_stub/server/request_fixture.rb +11 -6
  179. data/spec/support/http_stub/server/scenario_fixture.rb +14 -2
  180. data/spec/support/http_stub/server/session_fixture.rb +2 -16
  181. data/spec/support/http_stub/server/silent_logger.rb +7 -0
  182. data/spec/support/http_stub/server/simple_request.rb +17 -0
  183. data/spec/support/http_stub/server/stub/match/match_fixture.rb +1 -1
  184. data/spec/support/http_stub/server/stub/response/blocks_fixture.rb +54 -0
  185. data/spec/support/http_stub/server/stub/response/file_body_fixture.rb +25 -0
  186. data/spec/support/http_stub/server/stub/response/text_body_fixture.rb +33 -0
  187. data/spec/support/http_stub/server/stub/response_builder.rb +24 -0
  188. data/spec/support/http_stub/server/stub/response_fixture.rb +15 -0
  189. data/spec/support/http_stub/server/stub_fixture.rb +21 -0
  190. data/spec/support/http_stub/server_integration.rb +9 -6
  191. data/spec/support/http_stub/stub_requester.rb +37 -0
  192. data/spec/support/object_convertable_to_json.rb +11 -0
  193. data/spec/support/rack/rack_application_test.rb +1 -1
  194. data/spec/support/rack/request_fixture.rb +22 -4
  195. metadata +166 -207
  196. data/lib/http_stub.rb +0 -131
  197. data/lib/http_stub/configurer.rb +0 -42
  198. data/lib/http_stub/configurer/dsl/request_attribute_referencer.rb +0 -19
  199. data/lib/http_stub/configurer/dsl/request_referencer.rb +0 -24
  200. data/lib/http_stub/configurer/dsl/scenario_builder.rb +0 -39
  201. data/lib/http_stub/configurer/dsl/server.rb +0 -80
  202. data/lib/http_stub/configurer/dsl/server_endpoint_template.rb +0 -23
  203. data/lib/http_stub/configurer/dsl/session.rb +0 -51
  204. data/lib/http_stub/configurer/dsl/session_endpoint_template.rb +0 -22
  205. data/lib/http_stub/configurer/dsl/session_factory.rb +0 -34
  206. data/lib/http_stub/configurer/dsl/stub_builder.rb +0 -65
  207. data/lib/http_stub/configurer/part.rb +0 -23
  208. data/lib/http_stub/configurer/request/controllable_value.rb +0 -19
  209. data/lib/http_stub/configurer/request/http/basic.rb +0 -27
  210. data/lib/http_stub/configurer/request/http/factory.rb +0 -33
  211. data/lib/http_stub/configurer/request/http/multipart.rb +0 -34
  212. data/lib/http_stub/configurer/request/omittable.rb +0 -26
  213. data/lib/http_stub/configurer/request/regexpable.rb +0 -33
  214. data/lib/http_stub/configurer/request/scenario.rb +0 -29
  215. data/lib/http_stub/configurer/request/stub.rb +0 -39
  216. data/lib/http_stub/configurer/request/stub_response.rb +0 -38
  217. data/lib/http_stub/configurer/request/stub_response_file.rb +0 -20
  218. data/lib/http_stub/configurer/request/triggers.rb +0 -25
  219. data/lib/http_stub/configurer/server/buffered_command_processor.rb +0 -24
  220. data/lib/http_stub/configurer/server/command.rb +0 -22
  221. data/lib/http_stub/configurer/server/command_processor.rb +0 -35
  222. data/lib/http_stub/configurer/server/configuration.rb +0 -33
  223. data/lib/http_stub/configurer/server/facade.rb +0 -61
  224. data/lib/http_stub/configurer/server/request_processor.rb +0 -30
  225. data/lib/http_stub/configurer/server/session_facade.rb +0 -57
  226. data/lib/http_stub/server/application/configuration.rb +0 -38
  227. data/lib/http_stub/server/application/response_pipeline.rb +0 -20
  228. data/lib/http_stub/server/application/response_support.rb +0 -19
  229. data/lib/http_stub/server/scenario/parser.rb +0 -17
  230. data/lib/http_stub/server/session/configuration.rb +0 -32
  231. data/lib/http_stub/server/status/controller.rb +0 -25
  232. data/lib/http_stub/server/stub/parser.rb +0 -17
  233. data/lib/http_stub/server/stub/payload.rb +0 -20
  234. data/lib/http_stub/server/stub/payload/base_uri_modifier.rb +0 -17
  235. data/lib/http_stub/server/stub/payload/response_body_modifier.rb +0 -21
  236. data/lib/http_stub/server/stub/response/attribute/body.rb +0 -32
  237. data/lib/http_stub/server/stub/response/attribute/headers.rb +0 -32
  238. data/lib/http_stub/server/stub/response/attribute/interpolator.rb +0 -26
  239. data/lib/http_stub/server/stub/response/attribute/interpolator/headers.rb +0 -27
  240. data/lib/http_stub/server/stub/response/attribute/interpolator/parameters.rb +0 -27
  241. data/lib/http_stub/server/stub/response/base.rb +0 -61
  242. data/lib/http_stub/server/stub/response/file.rb +0 -45
  243. data/lib/http_stub/server/stub/response/text.rb +0 -35
  244. data/lib/http_stub/server/views/_file_response.haml +0 -1
  245. data/lib/http_stub/server/views/_text_response.haml +0 -1
  246. data/spec/acceptance/configurer_initialization_spec.rb +0 -157
  247. data/spec/acceptance/request_reference_spec.rb +0 -42
  248. data/spec/lib/http_stub/configurer/dsl/request_attribute_referencer_spec.rb +0 -37
  249. data/spec/lib/http_stub/configurer/dsl/request_referencer_spec.rb +0 -37
  250. data/spec/lib/http_stub/configurer/dsl/scenario_builder_spec.rb +0 -201
  251. data/spec/lib/http_stub/configurer/dsl/server_spec.rb +0 -575
  252. data/spec/lib/http_stub/configurer/dsl/session_endpoint_template_spec.rb +0 -150
  253. data/spec/lib/http_stub/configurer/dsl/session_factory_spec.rb +0 -97
  254. data/spec/lib/http_stub/configurer/dsl/session_spec.rb +0 -210
  255. data/spec/lib/http_stub/configurer/dsl/stub_builder_spec.rb +0 -747
  256. data/spec/lib/http_stub/configurer/part_spec.rb +0 -103
  257. data/spec/lib/http_stub/configurer/request/controllable_value_spec.rb +0 -34
  258. data/spec/lib/http_stub/configurer/request/http/basic_spec.rb +0 -91
  259. data/spec/lib/http_stub/configurer/request/http/factory_spec.rb +0 -222
  260. data/spec/lib/http_stub/configurer/request/http/multipart_spec.rb +0 -118
  261. data/spec/lib/http_stub/configurer/request/omittable_spec.rb +0 -70
  262. data/spec/lib/http_stub/configurer/request/regexpable_spec.rb +0 -77
  263. data/spec/lib/http_stub/configurer/request/scenario_spec.rb +0 -69
  264. data/spec/lib/http_stub/configurer/request/stub_response_spec.rb +0 -195
  265. data/spec/lib/http_stub/configurer/request/stub_spec.rb +0 -231
  266. data/spec/lib/http_stub/configurer/request/triggers_spec.rb +0 -101
  267. data/spec/lib/http_stub/configurer/server/buffered_command_processor_spec.rb +0 -35
  268. data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +0 -75
  269. data/spec/lib/http_stub/configurer/server/command_spec.rb +0 -26
  270. data/spec/lib/http_stub/configurer/server/configuration_spec.rb +0 -139
  271. data/spec/lib/http_stub/configurer/server/facade_spec.rb +0 -235
  272. data/spec/lib/http_stub/configurer/server/request_processor_spec.rb +0 -100
  273. data/spec/lib/http_stub/configurer/server/session_facade_spec.rb +0 -285
  274. data/spec/lib/http_stub/configurer_spec.rb +0 -105
  275. data/spec/lib/http_stub/server/application/configuration_spec.rb +0 -59
  276. data/spec/lib/http_stub/server/application/response_pipeline_spec.rb +0 -29
  277. data/spec/lib/http_stub/server/application/response_support_spec.rb +0 -30
  278. data/spec/lib/http_stub/server/scenario/parser_spec.rb +0 -64
  279. data/spec/lib/http_stub/server/session/configuration_spec.rb +0 -94
  280. data/spec/lib/http_stub/server/status/controller_spec.rb +0 -47
  281. data/spec/lib/http_stub/server/stub/parser_spec.rb +0 -56
  282. data/spec/lib/http_stub/server/stub/payload/base_uri_modifier_spec.rb +0 -23
  283. data/spec/lib/http_stub/server/stub/payload/response_body_modifier_spec.rb +0 -84
  284. data/spec/lib/http_stub/server/stub/payload_spec.rb +0 -33
  285. data/spec/lib/http_stub/server/stub/response/attribute/body_spec.rb +0 -98
  286. data/spec/lib/http_stub/server/stub/response/attribute/headers_spec.rb +0 -73
  287. data/spec/lib/http_stub/server/stub/response/attribute/interpolator/headers_spec.rb +0 -53
  288. data/spec/lib/http_stub/server/stub/response/attribute/interpolator/parameters_spec.rb +0 -53
  289. data/spec/lib/http_stub/server/stub/response/attribute/interpolator_spec.rb +0 -41
  290. data/spec/lib/http_stub/server/stub/response/base_spec.rb +0 -217
  291. data/spec/lib/http_stub/server/stub/response/file_spec.rb +0 -197
  292. data/spec/lib/http_stub/server/stub/response/text_spec.rb +0 -182
  293. data/spec/resources/sample.pdf +0 -0
  294. data/spec/resources/sample.txt +0 -1
  295. data/spec/support/http_stub/configurer_integration.rb +0 -24
  296. data/spec/support/http_stub/empty_configurer.rb +0 -7
  297. data/spec/support/http_stub/scenario_fixture.rb +0 -33
  298. data/spec/support/http_stub/stub_fixture.rb +0 -125
  299. data/spec/support/http_stub/stub_registrator.rb +0 -83
@@ -1,42 +0,0 @@
1
- describe "Request references in response acceptance" do
2
- include_context "configurer integration"
3
-
4
- let(:configurer_specification) { { class: HttpStub::Examples::ConfigurerWithRequestReferences } }
5
-
6
- context "when a request is made matching a stub that references request attributes" do
7
-
8
- let(:header_value) { "some header value" }
9
- let(:parameter_value) { "some parameter value" }
10
-
11
- let(:response) do
12
- HTTParty.get("#{server_uri}/some_path", headers: { "header_name" => header_value },
13
- query: { "parameter_name" => parameter_value })
14
- end
15
-
16
- context "the response headers" do
17
-
18
- it "include request headers" do
19
- expect(response.headers["header_referencing_header"]).to eql(header_value)
20
- end
21
-
22
- it "include request parameters" do
23
- expect(response.headers["header_referencing_parameter"]).to eql(parameter_value)
24
- end
25
-
26
- end
27
-
28
- context "the response body" do
29
-
30
- it "include request headers" do
31
- expect(response.body).to include(header_value)
32
- end
33
-
34
- it "include request parameters" do
35
- expect(response.body).to include(parameter_value)
36
- end
37
-
38
- end
39
-
40
- end
41
-
42
- end
@@ -1,37 +0,0 @@
1
- describe HttpStub::Configurer::DSL::RequestAttributeReferencer do
2
-
3
- let(:attribute_type) { :some_attribute_type }
4
-
5
- let(:request_attribute_referencer) { described_class.new(attribute_type) }
6
-
7
- describe "#[]" do
8
-
9
- let(:name) { "some_name" }
10
-
11
- subject { request_attribute_referencer[name] }
12
-
13
- it "returns a control value" do
14
- expect(subject).to start_with("control:")
15
- end
16
-
17
- it "returns a string referring to the referencer request attribute type" do
18
- expect(subject).to include("request.some_attribute_type")
19
- end
20
-
21
- it "returns a string that will resolve the value for the provided name" do
22
- expect(subject).to end_with("[#{name}]")
23
- end
24
-
25
- context "when the name provided is a symbol" do
26
-
27
- let(:name) { :some_name }
28
-
29
- it "returns a string that resolves the value with the provided name" do
30
- expect(subject).to end_with("[#{name}]")
31
- end
32
-
33
- end
34
-
35
- end
36
-
37
- end
@@ -1,37 +0,0 @@
1
- describe HttpStub::Configurer::DSL::RequestReferencer do
2
-
3
- let(:request_referencer) { described_class.new }
4
-
5
- before(:example) { allow(HttpStub::Configurer::DSL::RequestAttributeReferencer).to receive(:new) }
6
-
7
- describe "#parameters" do
8
-
9
- subject { request_referencer.parameters }
10
-
11
- it "returns an attribute request referencer for parameters" do
12
- parameter_referencer = instance_double(HttpStub::Configurer::DSL::RequestAttributeReferencer)
13
- allow(HttpStub::Configurer::DSL::RequestAttributeReferencer).to(
14
- receive(:new).with(:parameters).and_return(parameter_referencer)
15
- )
16
-
17
- expect(subject).to eql(parameter_referencer)
18
- end
19
-
20
- end
21
-
22
- describe "#headers" do
23
-
24
- subject { request_referencer.headers }
25
-
26
- it "returns an attribute request referencer for headers" do
27
- header_referencer = instance_double(HttpStub::Configurer::DSL::RequestAttributeReferencer)
28
- allow(HttpStub::Configurer::DSL::RequestAttributeReferencer).to(
29
- receive(:new).with(:headers).and_return(header_referencer)
30
- )
31
-
32
- expect(subject).to eql(header_referencer)
33
- end
34
-
35
- end
36
-
37
- end
@@ -1,201 +0,0 @@
1
- describe HttpStub::Configurer::DSL::ScenarioBuilder do
2
-
3
- let(:stub_fixture) { HttpStub::StubFixture.new }
4
-
5
- let(:scenario_name) { "some scenario name" }
6
- let(:default_stub_template) { instance_double(HttpStub::Configurer::DSL::StubBuilderTemplate) }
7
-
8
- let(:scenario_builder) { HttpStub::Configurer::DSL::ScenarioBuilder.new(scenario_name, default_stub_template) }
9
-
10
- describe "#build_stub" do
11
-
12
- let(:response_overrides) { { status: 201 } }
13
- let(:block_verifier) { double("BlockVerifier") }
14
- let(:block) { lambda { block_verifier.verify } }
15
-
16
- subject { scenario_builder.build_stub(response_overrides, &block) }
17
-
18
- it "delegates to the provided default stub template" do
19
- expect(default_stub_template).to receive(:build_stub).with(response_overrides).and_yield
20
- expect(block_verifier).to receive(:verify)
21
-
22
- subject
23
- end
24
-
25
- it "returns the built stub" do
26
- built_stub = instance_double(HttpStub::Configurer::DSL::StubBuilder)
27
- allow(default_stub_template).to receive(:build_stub).and_return(built_stub)
28
-
29
- expect(subject).to eql(built_stub)
30
- end
31
-
32
- end
33
-
34
- describe "#add_stub!" do
35
-
36
- let(:stub_builder) { instance_double(HttpStub::Configurer::DSL::StubBuilder) }
37
-
38
- context "when a block is provided" do
39
-
40
- let(:block_verifier) { double("BlockVerifier") }
41
- let(:block) { lambda { block_verifier.verify } }
42
-
43
- subject { scenario_builder.add_stub!(&block) }
44
-
45
- before(:example) { allow(scenario_builder).to receive(:build_stub).and_return(stub_builder) }
46
-
47
- it "builds a stub whose values are initialized via the provided block" do
48
- expect(scenario_builder).to receive(:build_stub).with(no_args).and_yield
49
- expect(block_verifier).to receive(:verify)
50
-
51
- subject
52
- end
53
-
54
- it "results in the stub being built when the scenario is built" do
55
- subject
56
- expect(stub_builder).to receive(:build)
57
-
58
- scenario_builder.build
59
- end
60
-
61
- end
62
-
63
- context "when a builder is provided" do
64
-
65
- subject { scenario_builder.add_stub!(stub_builder) }
66
-
67
- it "results in the stub being built when the scenario is built" do
68
- subject
69
- expect(stub_builder).to receive(:build)
70
-
71
- scenario_builder.build
72
- end
73
-
74
- end
75
-
76
- end
77
-
78
- describe "#add_stubs!" do
79
-
80
- let(:stub_builders) { (1..3).map { instance_double(HttpStub::Configurer::DSL::StubBuilder) } }
81
-
82
- subject { scenario_builder.add_stubs!(stub_builders) }
83
-
84
- it "adds each stub to the scenario builders" do
85
- stub_builders.each { |stub_builder| expect(scenario_builder).to receive(:add_stub!).with(stub_builder) }
86
-
87
- subject
88
- end
89
-
90
- end
91
-
92
- describe "#build" do
93
-
94
- let(:scenario) { instance_double(HttpStub::Configurer::Request::Scenario) }
95
-
96
- subject { scenario_builder.build }
97
-
98
- before(:example) { allow(HttpStub::Configurer::Request::Scenario).to receive(:new).and_return(scenario) }
99
-
100
- it "creates a scenario that includes the name" do
101
- expect(HttpStub::Configurer::Request::Scenario).to receive(:new).with(hash_including(name: scenario_name))
102
-
103
- subject
104
- end
105
-
106
- context "when the scenario registers multiple stubs" do
107
-
108
- let(:stubs) { (1..3).map { instance_double(HttpStub::Configurer::Request::Stub) } }
109
- let(:stub_builders) do
110
- stubs.map { |stub| instance_double(HttpStub::Configurer::DSL::StubBuilder, build: stub) }
111
- end
112
-
113
- before(:example) { scenario_builder.add_stubs!(stub_builders) }
114
-
115
- it "builds the stubs" do
116
- stub_builders.each { |stub_builder| expect(stub_builder).to receive(:build) }
117
-
118
- subject
119
- end
120
-
121
- it "creates a scenario that includes the built stubs" do
122
- expect(HttpStub::Configurer::Request::Scenario).to receive(:new).with(hash_including(stubs: stubs))
123
-
124
- subject
125
- end
126
-
127
- end
128
-
129
- context "when the scenario registers no stubs" do
130
-
131
- it "creates a scenario that has empty stubs" do
132
- expect(HttpStub::Configurer::Request::Scenario).to receive(:new).with(hash_including(stubs: []))
133
-
134
- subject
135
- end
136
-
137
- end
138
-
139
- context "when the scenario activates an array scenarios" do
140
-
141
- let(:triggered_scenario_names) { (1..3).map { |i| "scenario #{i}" } }
142
-
143
- before(:example) { scenario_builder.activate!(triggered_scenario_names) }
144
-
145
- it "creates a scenario that includes the triggered scenario names" do
146
- expect(HttpStub::Configurer::Request::Scenario).to(
147
- receive(:new).with(hash_including(triggered_scenario_names: triggered_scenario_names))
148
- )
149
-
150
- subject
151
- end
152
-
153
- end
154
-
155
- context "when the scenario activates a list of scenarios" do
156
-
157
- let(:triggered_scenario_names) { (1..3).map { |i| "activator_#{i}" } }
158
-
159
- before(:example) { scenario_builder.activate!(*triggered_scenario_names) }
160
-
161
- it "creates a scenario that includes the triggered scenario names" do
162
- expect(HttpStub::Configurer::Request::Scenario).to(
163
- receive(:new).with(hash_including(triggered_scenario_names: triggered_scenario_names))
164
- )
165
-
166
- subject
167
- end
168
-
169
- end
170
-
171
- context "when the scenario activates one scenario" do
172
-
173
- let(:triggered_scenario_name) { "a scenario" }
174
-
175
- before(:example) { scenario_builder.activate!(triggered_scenario_name) }
176
-
177
- it "creates a scenario that includes the triggered scenario names" do
178
- expect(HttpStub::Configurer::Request::Scenario).to(
179
- receive(:new).with(hash_including(triggered_scenario_names: [ triggered_scenario_name ]))
180
- )
181
-
182
- subject
183
- end
184
-
185
- end
186
-
187
- context "when the scenario does not activate any scenarios" do
188
-
189
- it "creates a scenario that has empty triggered scenario names" do
190
- expect(HttpStub::Configurer::Request::Scenario).to(
191
- receive(:new).with(hash_including(triggered_scenario_names: []))
192
- )
193
-
194
- subject
195
- end
196
-
197
- end
198
-
199
- end
200
-
201
- end
@@ -1,575 +0,0 @@
1
- describe HttpStub::Configurer::DSL::Server do
2
-
3
- let(:configuration) { instance_double(HttpStub::Configurer::Server::Configuration) }
4
- let(:server_facade) { instance_double(HttpStub::Configurer::Server::Facade) }
5
- let(:default_stub_template) { instance_double(HttpStub::Configurer::DSL::StubBuilderTemplate) }
6
- let(:memory_session) { instance_double(HttpStub::Configurer::DSL::Session) }
7
- let(:transactional_session) { instance_double(HttpStub::Configurer::DSL::Session) }
8
- let(:session_factory) do
9
- instance_double(HttpStub::Configurer::DSL::SessionFactory, memory: memory_session,
10
- transactional: transactional_session)
11
- end
12
-
13
- let(:default_session) { memory_session }
14
- let(:block_verifier) { double("BlockVerifier") }
15
-
16
- let(:server) { described_class.new }
17
-
18
- before(:example) do
19
- allow(HttpStub::Configurer::Server::Configuration).to receive(:new).and_return(configuration)
20
- allow(HttpStub::Configurer::Server::Facade).to receive(:new).and_return(server_facade)
21
- allow(HttpStub::Configurer::DSL::StubBuilderTemplate).to receive(:new).and_return(default_stub_template)
22
- allow(HttpStub::Configurer::DSL::SessionFactory).to receive(:new).and_return(session_factory)
23
- end
24
-
25
- it "creates a server configuration" do
26
- expect(HttpStub::Configurer::Server::Configuration).to receive(:new)
27
-
28
- server
29
- end
30
-
31
- it "creates a facade to interact with the stub server based on the configuration" do
32
- expect(HttpStub::Configurer::Server::Facade).to receive(:new).with(configuration)
33
-
34
- server
35
- end
36
-
37
- it "creates a stub builder template to hold the default stub settings for the server" do
38
- expect(HttpStub::Configurer::DSL::StubBuilderTemplate).to receive(:new).with(no_args)
39
-
40
- server
41
- end
42
-
43
- it "creates a session factory that creates sessions interacting with the servers facade and stub template" do
44
- expect(HttpStub::Configurer::DSL::SessionFactory).to receive(:new).with(server_facade, default_stub_template)
45
-
46
- server
47
- end
48
-
49
- shared_context "a server with host and port configured" do
50
-
51
- before(:example) do
52
- server.host = "some_host"
53
- server.port = 8888
54
- end
55
-
56
- end
57
-
58
- describe "#host" do
59
-
60
- let(:host) { "some_host" }
61
-
62
- subject { server.host }
63
-
64
- it "delegates to the servers configuration" do
65
- allow(configuration).to receive(:host).and_return(host)
66
-
67
- expect(subject).to eql(host)
68
- end
69
-
70
- end
71
-
72
- describe "#host=" do
73
-
74
- let(:host) { "some_host" }
75
-
76
- subject { server.host = host }
77
-
78
- it "delegates to the servers configuration" do
79
- allow(configuration).to receive(:host=).with(host)
80
-
81
- subject
82
- end
83
-
84
- end
85
-
86
- describe "#port" do
87
-
88
- let(:port) { "8888" }
89
-
90
- subject { server.port }
91
-
92
- it "delegates to the servers configuration" do
93
- allow(configuration).to receive(:port).and_return(port)
94
-
95
- expect(subject).to eql(port)
96
- end
97
-
98
- end
99
-
100
- describe "#port=" do
101
-
102
- let(:port) { "8888" }
103
-
104
- subject { server.port = port }
105
-
106
- it "delegates to the servers configuration" do
107
- allow(configuration).to receive(:port=).with(port)
108
-
109
- subject
110
- end
111
-
112
- end
113
-
114
- describe "#base_uri" do
115
-
116
- let(:base_uri) { "some_host:8888" }
117
-
118
- subject { server.base_uri }
119
-
120
- it "delegates to the servers configuration" do
121
- allow(configuration).to receive(:base_uri).and_return(base_uri)
122
-
123
- expect(subject).to eql(base_uri)
124
- end
125
-
126
- end
127
-
128
- describe "#external_base_uri" do
129
-
130
- let(:external_base_uri) { "http://some/external/base/uri" }
131
-
132
- subject { server.external_base_uri }
133
-
134
- it "delegates to the servers configuration" do
135
- allow(configuration).to receive(:external_base_uri).and_return(external_base_uri)
136
-
137
- expect(subject).to eql(external_base_uri)
138
- end
139
-
140
- end
141
-
142
- describe "#session_identifier" do
143
-
144
- let(:session_identifier) { { headers: :some_session_identifier } }
145
-
146
- subject { server.session_identifier }
147
-
148
- it "delegates to the servers configuration" do
149
- allow(configuration).to receive(:session_identifier).and_return(session_identifier)
150
-
151
- expect(subject).to eql(session_identifier)
152
- end
153
-
154
- end
155
-
156
- describe "#session_identifer=" do
157
-
158
- let(:session_identifier) { { headers: :some_session_identifier } }
159
-
160
- subject { server.session_identifier = session_identifier }
161
-
162
- it "delegates to the servers configuration" do
163
- expect(configuration).to receive(:session_identifier=).with(session_identifier)
164
-
165
- subject
166
- end
167
-
168
- end
169
-
170
- describe "#enable" do
171
-
172
- let(:features) { (1..3).map { |i| "feature_#{i}".to_sym } }
173
-
174
- subject { server.enable(*features) }
175
-
176
- it "delegates to the sessions configuration" do
177
- expect(configuration).to receive(:enable).with(*features)
178
-
179
- subject
180
- end
181
-
182
- end
183
-
184
- describe "#enabled?" do
185
-
186
- let(:feature) { :some_feature }
187
-
188
- subject { server.enabled?(feature) }
189
-
190
- it "delegates to the servers configuration" do
191
- expect(configuration).to receive(:enabled?).and_return(true)
192
-
193
- expect(subject).to be(true)
194
- end
195
-
196
- end
197
-
198
- describe "#request_defaults=" do
199
-
200
- let(:args) { { request_rule_key: "request rule value" } }
201
-
202
- subject { server.request_defaults = args }
203
-
204
- it "establishes request matching rules on the default stub template" do
205
- expect(default_stub_template).to receive(:match_requests).with(args)
206
-
207
- subject
208
- end
209
-
210
- end
211
-
212
- describe "#response_defaults=" do
213
-
214
- let(:args) { { response_key: "response value" } }
215
-
216
- subject { server.response_defaults = args }
217
-
218
- it "establishes response values on the default stub template" do
219
- expect(default_stub_template).to receive(:respond_with).with(args)
220
-
221
- subject
222
- end
223
-
224
- end
225
-
226
- it "causes session operations to be performed against the memory session prior to initialization" do
227
- expect(memory_session).to receive(:activate!)
228
-
229
- server.activate!("some scenario name")
230
- end
231
-
232
- describe "#initialize!" do
233
-
234
- subject { server.initialize! }
235
-
236
- before(:example) { allow(server_facade).to receive(:initialize_server) }
237
-
238
- it "initializes the server via the facade" do
239
- expect(server_facade).to receive(:initialize_server)
240
-
241
- subject
242
- end
243
-
244
- it "causes subsequent session operations to be performed against the transactional session" do
245
- subject
246
- expect(transactional_session).to receive(:activate!)
247
-
248
- server.activate!("some scenario name")
249
- end
250
-
251
- end
252
-
253
- describe "#has_started!" do
254
-
255
- subject { server.has_started! }
256
-
257
- before(:example) { allow(server_facade).to receive(:server_has_started) }
258
-
259
- it "informs the facade that the server has started" do
260
- expect(server_facade).to receive(:server_has_started)
261
-
262
- subject
263
- end
264
-
265
- it "causes subsequent session operations to be performed against the transactional session" do
266
- subject
267
- expect(transactional_session).to receive(:activate!)
268
-
269
- server.activate!("some scenario name")
270
- end
271
-
272
- end
273
-
274
- describe "#reset!" do
275
-
276
- subject { server.reset! }
277
-
278
- it "delegates to the server facade" do
279
- expect(server_facade).to receive(:reset)
280
-
281
- subject
282
- end
283
-
284
- end
285
-
286
- describe "#add_scenario!" do
287
-
288
- let(:scenario_name) { "some/scenario/name" }
289
- let(:block) { lambda { |_scenario| "some block" } }
290
-
291
- let(:scenario) { instance_double(HttpStub::Configurer::Request::Scenario) }
292
- let(:scenario_builder) { instance_double(HttpStub::Configurer::DSL::ScenarioBuilder, build: scenario) }
293
-
294
- subject { server.add_scenario!(scenario_name, &block) }
295
-
296
- before(:example) do
297
- allow(HttpStub::Configurer::DSL::ScenarioBuilder).to receive(:new).and_return(scenario_builder)
298
- allow(server_facade).to receive(:define_scenario)
299
- end
300
-
301
- it "creates a scenario builder containing the provided scenario name" do
302
- expect(HttpStub::Configurer::DSL::ScenarioBuilder).to receive(:new).with(scenario_name, anything)
303
-
304
- subject
305
- end
306
-
307
- it "creates a scenario builder extending the servers default stub template" do
308
- expect(HttpStub::Configurer::DSL::ScenarioBuilder).to receive(:new).with(anything, default_stub_template)
309
-
310
- subject
311
- end
312
-
313
- it "yields the created builder to the provided block" do
314
- expect { |block| server.add_scenario!(scenario_name, &block) }.to yield_with_args(scenario_builder)
315
- end
316
-
317
- it "builds the scenario request" do
318
- expect(scenario_builder).to receive(:build).and_return(scenario)
319
-
320
- subject
321
- end
322
-
323
- it "informs the server facade to submit the scenario request" do
324
- expect(server_facade).to receive(:define_scenario).with(scenario)
325
-
326
- subject
327
- end
328
-
329
- end
330
-
331
- describe "#add_scenario_with_one_stub!" do
332
-
333
- let(:scenario_name) { "Some scenario name" }
334
- let(:block) { lambda { block_verifier.verify } }
335
-
336
- let(:scenario_builder) { instance_double(HttpStub::Configurer::DSL::ScenarioBuilder, add_stub!: nil) }
337
- let(:stub_builder) { instance_double(HttpStub::Configurer::DSL::StubBuilder, invoke: nil) }
338
-
339
- subject { server.add_scenario_with_one_stub!(scenario_name, stub_builder) }
340
-
341
- before(:each) { allow(server).to receive(:add_scenario!).and_yield(scenario_builder) }
342
-
343
- it "adds a scenario with the provided name" do
344
- expect(server).to receive(:add_scenario!).with(scenario_name)
345
-
346
- subject
347
- end
348
-
349
- it "adds a stub to the scenario" do
350
- expect(scenario_builder).to receive(:add_stub!)
351
-
352
- subject
353
- end
354
-
355
- context "when a builder is provided" do
356
-
357
- subject { server.add_scenario_with_one_stub!(scenario_name, stub_builder) }
358
-
359
- it "adds a stub to the scenario with the provided builder" do
360
- expect(scenario_builder).to receive(:add_stub!).with(stub_builder)
361
-
362
- subject
363
- end
364
-
365
- end
366
-
367
- context "when a block is provided" do
368
-
369
- let(:block) { lambda { block_verifier.verify } }
370
-
371
- subject { server.add_scenario_with_one_stub!(scenario_name, &block) }
372
-
373
- before(:example) { allow(scenario_builder).to receive(:add_stub!).and_yield(stub_builder) }
374
-
375
- it "requests the stub builder invoke the provided block" do
376
- expect(stub_builder).to receive(:invoke).and_yield
377
- expect(block_verifier).to receive(:verify)
378
-
379
- subject
380
- end
381
-
382
- end
383
-
384
- end
385
-
386
- describe "#endpoint_template" do
387
-
388
- let(:block) { lambda { block_verifier.verify } }
389
- let(:server_endpoint_template) { instance_double(HttpStub::Configurer::DSL::ServerEndpointTemplate) }
390
-
391
- subject { server.endpoint_template(&block) }
392
-
393
- before(:example) do
394
- allow(HttpStub::Configurer::DSL::ServerEndpointTemplate).to receive(:new).and_return(server_endpoint_template)
395
- end
396
-
397
- it "creates an endpoint template for the server" do
398
- expect(HttpStub::Configurer::DSL::ServerEndpointTemplate).to receive(:new).with(server, anything)
399
-
400
- subject
401
- end
402
-
403
- it "creates an endpoint template using the curently default session" do
404
- expect(HttpStub::Configurer::DSL::ServerEndpointTemplate).to receive(:new).with(anything, default_session)
405
-
406
- subject
407
- end
408
-
409
- it "creates an endpoint template using any provided block to initialize the template" do
410
- allow(HttpStub::Configurer::DSL::ServerEndpointTemplate).to receive(:new).and_yield
411
- expect(block_verifier).to receive(:verify)
412
-
413
- subject
414
- end
415
-
416
- it "returns the created endpoint template" do
417
- expect(subject).to eql(server_endpoint_template)
418
- end
419
-
420
- end
421
-
422
- describe "#session" do
423
-
424
- let(:session_id) { "some session id" }
425
-
426
- let(:session) { instance_double(HttpStub::Configurer::DSL::Session) }
427
-
428
- subject { server.session(session_id) }
429
-
430
- before(:example) { allow(session_factory).to receive(:create).and_return(session) }
431
-
432
- it "creates a DSL for interacting with a session for the provided ID via the session factory" do
433
- expect(session_factory).to receive(:create).with(session_id)
434
-
435
- subject
436
- end
437
-
438
- it "returns the created session" do
439
- expect(subject).to eql(session)
440
- end
441
-
442
- end
443
-
444
- describe "#activate!" do
445
-
446
- let(:scenario_name) { "Some scenario name" }
447
-
448
- subject { server.activate!(scenario_name) }
449
-
450
- it "delegates to the default session" do
451
- expect(default_session).to receive(:activate!).with(scenario_name)
452
-
453
- subject
454
- end
455
-
456
- end
457
-
458
- describe "#clear_sessions!" do
459
-
460
- subject { server.clear_sessions! }
461
-
462
- it "delegates to the server facade" do
463
- expect(server_facade).to receive(:clear_sessions)
464
-
465
- subject
466
- end
467
-
468
- end
469
-
470
- describe "#build_stub" do
471
-
472
- let(:block) { lambda { block_verifier.verify } }
473
-
474
- subject { server.build_stub(&block) }
475
-
476
- it "delegates to the default session" do
477
- expect(default_session).to receive(:build_stub)
478
-
479
- subject
480
- end
481
-
482
- it "initializes the built stub using the provided block" do
483
- allow(default_session).to receive(:build_stub).and_yield
484
- expect(block_verifier).to receive(:verify)
485
-
486
- subject
487
- end
488
-
489
- it "returns the built stub" do
490
- built_stub = instance_double(HttpStub::Configurer::DSL::StubBuilder)
491
- allow(default_session).to receive(:build_stub).and_return(built_stub)
492
-
493
- expect(subject).to eql(built_stub)
494
- end
495
-
496
- end
497
-
498
- describe "#add_stub!" do
499
-
500
- context "when a stub builder is provided" do
501
-
502
- let(:stub_builder) { instance_double(HttpStub::Configurer::DSL::StubBuilder) }
503
-
504
- subject { server.add_stub!(stub_builder) }
505
-
506
- it "delegates to the default session" do
507
- expect(default_session).to receive(:add_stub!).with(stub_builder)
508
-
509
- subject
510
- end
511
-
512
- end
513
-
514
- context "when a block is provided" do
515
-
516
- let(:block) { lambda { block_verifier.verify } }
517
-
518
- subject { server.add_stub!(&block) }
519
-
520
- it "delegates to the default session" do
521
- expect(default_session).to receive(:add_stub!)
522
-
523
- subject
524
- end
525
-
526
- it "supplies the provided block to the session" do
527
- allow(default_session).to receive(:add_stub!).and_yield
528
- expect(block_verifier).to receive(:verify)
529
-
530
- subject
531
- end
532
-
533
- end
534
-
535
- end
536
-
537
- describe "#add_stubs!" do
538
-
539
- let(:stub_builders) { (1..3).map { instance_double(HttpStub::Configurer::DSL::StubBuilder) } }
540
-
541
- subject { server.add_stubs!(stub_builders) }
542
-
543
- it "delegates to the default session" do
544
- expect(default_session).to receive(:add_stubs!).with(stub_builders)
545
-
546
- subject
547
- end
548
-
549
- end
550
-
551
- describe "#recall_stubs!" do
552
-
553
- subject { server.recall_stubs! }
554
-
555
- it "resets the default session" do
556
- expect(default_session).to receive(:reset!)
557
-
558
- subject
559
- end
560
-
561
- end
562
-
563
- describe "#clear_stubs!" do
564
-
565
- subject { server.clear_stubs! }
566
-
567
- it "delegates to the default session" do
568
- expect(default_session).to receive(:clear!)
569
-
570
- subject
571
- end
572
-
573
- end
574
-
575
- end