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,150 +0,0 @@
1
- describe HttpStub::Configurer::DSL::SessionEndpointTemplate do
2
-
3
- let(:session) { instance_double(HttpStub::Configurer::DSL::Session) }
4
- let(:default_stub_template) { instance_double(HttpStub::Configurer::DSL::StubBuilderTemplate) }
5
- let(:initial_block_verifier) { double("BlockVerifier") }
6
- let(:block) { lambda { initial_block_verifier.verify } }
7
-
8
- let(:session_stub_template) { instance_double(HttpStub::Configurer::DSL::StubBuilderTemplate) }
9
-
10
- let(:session_endpoint_template) { described_class.new(session, default_stub_template, &block) }
11
-
12
- before(:each) do
13
- allow(HttpStub::Configurer::DSL::StubBuilderTemplate).to receive(:new).and_return(session_stub_template)
14
- end
15
-
16
- it "creates a stub template that extends the default template and is initialized with the provided block" do
17
- expect(HttpStub::Configurer::DSL::StubBuilderTemplate).to receive(:new).with(default_stub_template).and_yield
18
- expect(initial_block_verifier).to receive(:verify)
19
-
20
- session_endpoint_template
21
- end
22
-
23
- describe "#match_requests" do
24
-
25
- let(:request_matching_rules) { { uri: "/some/stub/uri", method: :get } }
26
-
27
- subject { session_endpoint_template.match_requests(request_matching_rules) }
28
-
29
- it "delegates to the sessions stub template" do
30
- expect(session_stub_template).to receive(:match_requests).with(request_matching_rules)
31
-
32
- subject
33
- end
34
-
35
- end
36
-
37
- describe "#schema" do
38
-
39
- let(:type) { :some_schema_type }
40
- let(:definition) { "some schema definition" }
41
-
42
- subject { session_endpoint_template.schema(type, definition) }
43
-
44
- it "delegates to the sessions stub template" do
45
- expect(session_stub_template).to receive(:schema).with(type, definition)
46
-
47
- subject
48
- end
49
-
50
- it "returns the created schema" do
51
- schema = { schema: :some_schema }
52
- expect(session_stub_template).to receive(:schema).and_return(schema)
53
-
54
- expect(subject).to eql(schema)
55
- end
56
-
57
- end
58
-
59
- describe "#respond_with" do
60
-
61
- let(:response_settings) { { status: 204 } }
62
-
63
- subject { session_endpoint_template.respond_with(response_settings) }
64
-
65
- it "delegates to the sessions stub template" do
66
- expect(session_stub_template).to receive(:respond_with).with(response_settings)
67
-
68
- subject
69
- end
70
-
71
- end
72
-
73
- describe "#trigger" do
74
-
75
- let(:trigger_settings) { { scenario: "some scenario name" } }
76
-
77
- subject { session_endpoint_template.trigger(trigger_settings) }
78
-
79
- it "delegates to the sessions stub template" do
80
- expect(session_stub_template).to receive(:trigger).with(trigger_settings)
81
-
82
- subject
83
- end
84
-
85
- end
86
-
87
- describe "#invoke" do
88
-
89
- let(:block_verifier) { double("BlockVerifier") }
90
- let(:block) { lambda { block_verifier.verify } }
91
-
92
- subject { session_endpoint_template.invoke(&block) }
93
-
94
- it "delegates to the sessions stub template" do
95
- expect(session_stub_template).to receive(:invoke).and_yield
96
- expect(block_verifier).to receive(:verify)
97
-
98
- subject
99
- end
100
-
101
- end
102
-
103
- describe "#build_stub" do
104
-
105
- let(:response_overrides) { { status: 201 } }
106
- let(:block_verifier) { double("BlockVerifier") }
107
- let(:block) { lambda { block_verifier.verify } }
108
-
109
- subject { session_endpoint_template.build_stub(response_overrides, &block) }
110
-
111
- it "delegates to the sessions stub template" do
112
- expect(session_stub_template).to receive(:build_stub).with(response_overrides).and_yield
113
- expect(block_verifier).to receive(:verify)
114
-
115
- subject
116
- end
117
-
118
- end
119
-
120
- describe "#add_stub!" do
121
-
122
- let(:response_overrides) { { status: 201 } }
123
- let(:block_verifier) { double("BlockVerifier") }
124
- let(:block) { lambda { block_verifier.verify } }
125
-
126
- let(:stub_builder) { instance_double(HttpStub::Configurer::DSL::StubBuilder) }
127
-
128
- subject { session_endpoint_template.add_stub!(response_overrides, &block) }
129
-
130
- before(:example) do
131
- allow(session_stub_template).to receive(:build_stub).and_return(stub_builder)
132
- allow(session).to receive(:add_stub!)
133
- end
134
-
135
- it "builds a stub using any provided response overrides and block" do
136
- expect(session_stub_template).to receive(:build_stub).with(response_overrides).and_yield
137
- expect(block_verifier).to receive(:verify)
138
-
139
- subject
140
- end
141
-
142
- it "adds a stub to the session with the provided name and created stub builder" do
143
- expect(session).to receive(:add_stub!).with(stub_builder)
144
-
145
- subject
146
- end
147
-
148
- end
149
-
150
- end
@@ -1,97 +0,0 @@
1
- describe HttpStub::Configurer::DSL::SessionFactory do
2
-
3
- let(:server_facade) { instance_double(HttpStub::Configurer::Server::Facade) }
4
- let(:default_stub_template) { instance_double(HttpStub::Configurer::DSL::StubBuilderTemplate) }
5
-
6
- let(:session) { instance_double(HttpStub::Configurer::DSL::Session) }
7
-
8
- let(:session_factory) { described_class.new(server_facade, default_stub_template) }
9
-
10
- describe "#create" do
11
-
12
- let(:id) { "some_session_id" }
13
-
14
- subject { create_session }
15
-
16
- it "creates a session with the provided ID" do
17
- expect(HttpStub::Configurer::DSL::Session).to receive(:new).with(id, anything, anything)
18
-
19
- subject
20
- end
21
-
22
- it "creates a session uses the stubs server facade" do
23
- expect(HttpStub::Configurer::DSL::Session).to receive(:new).with(anything, server_facade, anything)
24
-
25
- subject
26
- end
27
-
28
- it "creates a session uses the stubs default stub template" do
29
- expect(HttpStub::Configurer::DSL::Session).to receive(:new).with(anything, anything, default_stub_template)
30
-
31
- subject
32
- end
33
-
34
- it "returns the created session" do
35
- allow(HttpStub::Configurer::DSL::Session).to receive(:new).and_return(session)
36
-
37
- expect(subject).to eql(session)
38
-
39
- end
40
-
41
- context "when a session has been created" do
42
-
43
- before(:example) do
44
- allow(HttpStub::Configurer::DSL::Session).to receive(:new).and_return(session).once
45
-
46
- create_session
47
- end
48
-
49
- it "returns the same session when a session with the same ID is created" do
50
- expect(subject).to be(session)
51
- end
52
-
53
- end
54
-
55
- def create_session
56
- session_factory.create(id)
57
- end
58
-
59
- end
60
-
61
- describe "#memory" do
62
-
63
- subject { session_factory.memory }
64
-
65
- it "creates a session whose ID is an internal memory identifier" do
66
- expect(session_factory).to receive(:create).with("http_stub_memory")
67
-
68
- subject
69
- end
70
-
71
- it "returns the created session" do
72
- allow(session_factory).to receive(:create).and_return(session)
73
-
74
- expect(subject).to eql(session)
75
- end
76
-
77
- end
78
-
79
- describe "#transactional" do
80
-
81
- subject { session_factory.transactional }
82
-
83
- it "creates a session whose ID is an internal transactional space identifier" do
84
- expect(session_factory).to receive(:create).with("http_stub_transactional")
85
-
86
- subject
87
- end
88
-
89
- it "returns the created session" do
90
- allow(session_factory).to receive(:create).and_return(session)
91
-
92
- expect(subject).to eql(session)
93
- end
94
-
95
- end
96
-
97
- end
@@ -1,210 +0,0 @@
1
- describe HttpStub::Configurer::DSL::Session do
2
-
3
- let(:id) { "some_session_id" }
4
- let(:session_facade) { instance_double(HttpStub::Configurer::Server::SessionFacade) }
5
- let(:server_facade) do
6
- instance_double(HttpStub::Configurer::Server::Facade, create_session_facade: session_facade)
7
- end
8
- let(:default_stub_template) { instance_double(HttpStub::Configurer::DSL::StubBuilderTemplate) }
9
-
10
- let(:block_verifier) { double("BlockVerifier") }
11
-
12
- let(:session) { described_class.new(id, server_facade, default_stub_template) }
13
-
14
- it "creates a facade the session uses to interact with the stub server" do
15
- expect(server_facade).to receive(:create_session_facade).with(id)
16
-
17
- session
18
- end
19
-
20
- describe "#endpoint_template" do
21
-
22
- let(:block) { lambda { block_verifier.verify } }
23
- let(:session_endpoint_template) { instance_double(HttpStub::Configurer::DSL::SessionEndpointTemplate) }
24
-
25
- subject { session.endpoint_template(&block) }
26
-
27
- before(:example) do
28
- allow(HttpStub::Configurer::DSL::SessionEndpointTemplate).to receive(:new).and_return(session_endpoint_template)
29
- end
30
-
31
- it "creates an endpoint template for the session" do
32
- expect(HttpStub::Configurer::DSL::SessionEndpointTemplate).to receive(:new).with(session, anything)
33
-
34
- subject
35
- end
36
-
37
- it "creates an endpoint template that extends the default stub template" do
38
- expect(HttpStub::Configurer::DSL::SessionEndpointTemplate).to receive(:new).with(anything, default_stub_template)
39
-
40
- subject
41
- end
42
-
43
- it "creates an endpoint template using any provided block to initialize the template" do
44
- allow(HttpStub::Configurer::DSL::SessionEndpointTemplate).to receive(:new).and_yield
45
- expect(block_verifier).to receive(:verify)
46
-
47
- subject
48
- end
49
-
50
- it "returns the created endpoint template" do
51
- expect(subject).to eql(session_endpoint_template)
52
- end
53
-
54
- end
55
-
56
- describe "#activate!" do
57
-
58
- let(:scenario_names) { (1..3).map { |i| "Scenario name #{i}" } }
59
-
60
- subject { session.activate!(*scenario_names) }
61
-
62
- it "delegates to the session facade in order to activate the scenarios" do
63
- expect(session_facade).to receive(:activate).with(scenario_names)
64
-
65
- subject
66
- end
67
-
68
- end
69
-
70
- describe "#build_stub" do
71
-
72
- let(:block) { lambda { block_verifier.verify } }
73
-
74
- subject { session.build_stub(&block) }
75
-
76
- it "delegates to the servers default stub template" do
77
- expect(default_stub_template).to receive(:build_stub)
78
-
79
- subject
80
- end
81
-
82
- it "initializes the built stub using the provided block" do
83
- allow(default_stub_template).to receive(:build_stub).and_yield
84
- expect(block_verifier).to receive(:verify)
85
-
86
- subject
87
- end
88
-
89
- it "returns the built stub" do
90
- built_stub = instance_double(HttpStub::Configurer::DSL::StubBuilder)
91
- allow(default_stub_template).to receive(:build_stub).and_return(built_stub)
92
-
93
- expect(subject).to eql(built_stub)
94
- end
95
-
96
- end
97
-
98
- describe "#add_stub!" do
99
-
100
- let(:built_stub) { instance_double(HttpStub::Configurer::Request::Stub) }
101
- let(:stub_builder) { instance_double(HttpStub::Configurer::DSL::StubBuilder, build: built_stub) }
102
-
103
- before(:example) { allow(session_facade).to receive(:stub_response) }
104
-
105
- context "when a stub builder is provided" do
106
-
107
- subject { session.add_stub!(stub_builder) }
108
-
109
- it "builds a stub from the provided builder" do
110
- expect(stub_builder).to receive(:build)
111
-
112
- subject
113
- end
114
-
115
- it "registers the built stub via the session facade" do
116
- expect(session_facade).to receive(:stub_response).with(built_stub)
117
-
118
- subject
119
- end
120
-
121
- end
122
-
123
- context "when a block is provided" do
124
-
125
- let(:block) { lambda { block_verifier.verify } }
126
-
127
- subject { session.add_stub!(&block) }
128
-
129
- before(:example) { allow(default_stub_template).to receive(:build_stub).and_return(stub_builder) }
130
-
131
- it "creates a stub builder via the servers default stub template" do
132
- expect(default_stub_template).to receive(:build_stub)
133
-
134
- subject
135
- end
136
-
137
- it "supplies the provided block when creating the stub builder" do
138
- allow(default_stub_template).to receive(:build_stub).and_return(stub_builder).and_yield
139
- expect(block_verifier).to receive(:verify)
140
-
141
- subject
142
- end
143
-
144
- it "builds a stub from the created builder" do
145
- expect(stub_builder).to receive(:build)
146
-
147
- subject
148
- end
149
-
150
- it "registers the built stub via the session facade" do
151
- expect(session_facade).to receive(:stub_response).with(built_stub)
152
-
153
- subject
154
- end
155
-
156
- end
157
-
158
- end
159
-
160
- describe "#add_stubs!" do
161
-
162
- let(:stub_builders) { (1..3).map { instance_double(HttpStub::Configurer::DSL::StubBuilder) } }
163
-
164
- subject { session.add_stubs!(stub_builders) }
165
-
166
- it "adds each provided stub" do
167
- stub_builders.each { |stub_builder| allow(session).to receive(:add_stub!).with(stub_builder) }
168
-
169
- subject
170
- end
171
-
172
- end
173
-
174
- describe "#reset!" do
175
-
176
- subject { session.reset! }
177
-
178
- it "resets the sessions stubs via the session facade" do
179
- expect(session_facade).to receive(:reset_stubs)
180
-
181
- subject
182
- end
183
-
184
- end
185
-
186
- describe "#clear!" do
187
-
188
- subject { session.clear! }
189
-
190
- it "clears the sessions stubs via the session facade" do
191
- expect(session_facade).to receive(:clear_stubs)
192
-
193
- subject
194
- end
195
-
196
- end
197
-
198
- describe "#delete!" do
199
-
200
- subject { session.delete! }
201
-
202
- it "deletes the session via the session facade" do
203
- expect(session_facade).to receive(:delete)
204
-
205
- subject
206
- end
207
-
208
- end
209
-
210
- end