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,285 +0,0 @@
1
- describe HttpStub::Configurer::Server::SessionFacade do
2
-
3
- let(:session_id) { "some session id" }
4
- let(:request_processor) { instance_double(HttpStub::Configurer::Server::RequestProcessor) }
5
-
6
- let(:session_facade) { described_class.new(session_id, request_processor) }
7
-
8
- describe "#stub_response" do
9
-
10
- let(:the_stub_description) { "some stub description" }
11
- let(:the_stub) { instance_double(HttpStub::Configurer::Request::Stub, to_s: the_stub_description) }
12
-
13
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Multipart) }
14
-
15
- subject { session_facade.stub_response(the_stub) }
16
-
17
- before(:example) do
18
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:multipart).and_return(request)
19
- allow(request_processor).to receive(:submit)
20
- end
21
-
22
- it "creates a multipart request to add a stub" do
23
- expect(HttpStub::Configurer::Request::Http::Factory).to(
24
- receive(:multipart).with("stubs", anything, anything)
25
- )
26
-
27
- subject
28
- end
29
-
30
- it "creates a multipart request with the provided stub" do
31
- expect(HttpStub::Configurer::Request::Http::Factory).to receive(:multipart).with(anything, the_stub, anything)
32
-
33
- subject
34
- end
35
-
36
- it "creates a multipart request identifying the session" do
37
- expect(HttpStub::Configurer::Request::Http::Factory).to(
38
- receive(:multipart).with(anything, anything, http_stub_session_id: session_id)
39
- )
40
-
41
- subject
42
- end
43
-
44
- it "submits the request via the request processor" do
45
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
46
-
47
- subject
48
- end
49
-
50
- it "describes the stub via its string representation" do
51
- expect(request_processor).to(
52
- receive(:submit).with(hash_including(description: a_string_including("stubbing '#{the_stub_description}'")))
53
- )
54
-
55
- subject
56
- end
57
-
58
- it "describes the request as scoped within the session" do
59
- expect(request_processor).to(
60
- receive(:submit).with(hash_including(description: a_string_including("session '#{session_id}'")))
61
- )
62
-
63
- subject
64
- end
65
-
66
- end
67
-
68
- describe "#activate" do
69
-
70
- let(:scenario_names) { (1..3).map { |i| "scenario name #{i}" } }
71
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
72
-
73
- subject { session_facade.activate(scenario_names) }
74
-
75
- before(:example) do
76
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:post).and_return(request)
77
- allow(request_processor).to receive(:submit)
78
- end
79
-
80
- it "creates an POST request to activate the scenarios" do
81
- expect(HttpStub::Configurer::Request::Http::Factory).to(
82
- receive(:post).with("scenarios/activate", anything).and_return(request)
83
- )
84
-
85
- subject
86
- end
87
-
88
- it "creates a POST request with the session id as a parameter" do
89
- expect(HttpStub::Configurer::Request::Http::Factory).to(
90
- receive(:post).with(anything, hash_including(http_stub_session_id: session_id)).and_return(request)
91
- )
92
-
93
- subject
94
- end
95
-
96
- it "creates a POST request with the scenario names as an array parameter" do
97
- expect(HttpStub::Configurer::Request::Http::Factory).to(
98
- receive(:post).with(anything, hash_including("names[]" => scenario_names)).and_return(request)
99
- )
100
-
101
- subject
102
- end
103
-
104
- it "submits the request via the request processor" do
105
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
106
-
107
- subject
108
- end
109
-
110
-
111
-
112
- it "describes the activation request including the scenario names" do
113
- quoted_scenario_names = scenario_names.map { |name| "'#{name}'" }
114
- description_expectation = Regexp.new("activating #{quoted_scenario_names.join(", ")}")
115
- expect(request_processor).to(
116
- receive(:submit).with(hash_including(description: a_string_matching(description_expectation)))
117
- )
118
-
119
- subject
120
- end
121
-
122
- it "describes the request as scoped within the session" do
123
- expect(request_processor).to(
124
- receive(:submit).with(hash_including(description: a_string_including("session '#{session_id}'")))
125
- )
126
-
127
- subject
128
- end
129
-
130
- end
131
-
132
- describe "#reset_stubs" do
133
-
134
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
135
-
136
- subject { session_facade.reset_stubs }
137
-
138
- before(:example) do
139
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:post).and_return(request)
140
- allow(request_processor).to receive(:submit)
141
- end
142
-
143
- it "creates a POST request to reset the stubs" do
144
- expect(HttpStub::Configurer::Request::Http::Factory).to(
145
- receive(:post).with("stubs/reset", anything).and_return(request)
146
- )
147
-
148
- subject
149
- end
150
-
151
- it "creates a POST request with the session id as a parameter" do
152
- expect(HttpStub::Configurer::Request::Http::Factory).to(
153
- receive(:post).with(anything, http_stub_session_id: session_id).and_return(request)
154
- )
155
-
156
- subject
157
- end
158
-
159
- it "submits the request via the request processor" do
160
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
161
-
162
- subject
163
- end
164
-
165
- it "describes the request as resetting the stubs in memory" do
166
- expect(request_processor).to(
167
- receive(:submit).with(hash_including(description: a_string_including("resetting stubs")))
168
- )
169
-
170
- subject
171
- end
172
-
173
- it "describes the request as scoped within the session" do
174
- expect(request_processor).to(
175
- receive(:submit).with(hash_including(description: a_string_including("session '#{session_id}'")))
176
- )
177
-
178
- subject
179
- end
180
-
181
- end
182
-
183
- describe "#clear_stubs" do
184
-
185
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
186
-
187
- subject { session_facade.clear_stubs }
188
-
189
- before(:example) do
190
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).and_return(request)
191
- allow(request_processor).to receive(:submit)
192
- end
193
-
194
- it "creates a DELETE request that deletes a stub" do
195
- expect(HttpStub::Configurer::Request::Http::Factory).to(
196
- receive(:delete).with("stubs", anything).and_return(request)
197
- )
198
-
199
- subject
200
- end
201
-
202
- it "creates a DELETE request with the session id as a parameter" do
203
- expect(HttpStub::Configurer::Request::Http::Factory).to(
204
- receive(:delete).with(anything, http_stub_session_id: session_id).and_return(request)
205
- )
206
-
207
- subject
208
- end
209
-
210
- it "submits the request via the request processor" do
211
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
212
-
213
- subject
214
- end
215
-
216
- it "describes the request as clearing the server stubs" do
217
- expect(request_processor).to(
218
- receive(:submit).with(hash_including(description: a_string_including("clearing stubs")))
219
- )
220
-
221
- subject
222
- end
223
-
224
- it "describes the request as scoped within the session" do
225
- expect(request_processor).to(
226
- receive(:submit).with(hash_including(description: a_string_including("session '#{session_id}'")))
227
- )
228
-
229
- subject
230
- end
231
-
232
- end
233
-
234
- describe "#delete" do
235
-
236
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
237
-
238
- subject { session_facade.delete }
239
-
240
- before(:example) do
241
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).and_return(request)
242
- allow(request_processor).to receive(:submit)
243
- end
244
-
245
- it "creates a DELETE request intended to delete a session" do
246
- expect(HttpStub::Configurer::Request::Http::Factory).to(
247
- receive(:delete).with("sessions", anything).and_return(request)
248
- )
249
-
250
- subject
251
- end
252
-
253
- it "creates a DELETE request with the session id as a parameter" do
254
- expect(HttpStub::Configurer::Request::Http::Factory).to(
255
- receive(:delete).with(anything, http_stub_session_id: session_id).and_return(request)
256
- )
257
-
258
- subject
259
- end
260
-
261
- it "submits the request via the request processor" do
262
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
263
-
264
- subject
265
- end
266
-
267
- it "describes the request as clearing the server stubs" do
268
- expect(request_processor).to(
269
- receive(:submit).with(hash_including(description: a_string_including("deleting session '#{session_id}'")))
270
- )
271
-
272
- subject
273
- end
274
-
275
- it "describes the request as scoped within the session" do
276
- expect(request_processor).to(
277
- receive(:submit).with(hash_including(description: a_string_including("session '#{session_id}'")))
278
- )
279
-
280
- subject
281
- end
282
-
283
- end
284
-
285
- end
@@ -1,105 +0,0 @@
1
- describe HttpStub::Configurer do
2
-
3
- class HttpStub::Configurer::TestableConfigurer
4
- include HttpStub::Configurer
5
- end
6
-
7
- let(:configurer_class) { HttpStub::Configurer::TestableConfigurer }
8
- let(:configurer) { configurer_class.new }
9
-
10
- describe "::stub_server" do
11
-
12
- subject { configurer_class.stub_server }
13
-
14
- it "creates a server DSL" do
15
- expect(HttpStub::Configurer::DSL::Server).to receive(:new)
16
-
17
- subject
18
- end
19
-
20
- it "returns the created server DSL" do
21
- server = instance_double(HttpStub::Configurer::DSL::Server)
22
- allow(HttpStub::Configurer::DSL::Server).to receive(:new).and_return(server)
23
-
24
- expect(subject).to eql(server)
25
- end
26
-
27
- it "reuses the stub server in subsequent requests" do
28
- server = configurer_class.stub_server
29
-
30
- expect(subject).to be(server)
31
- end
32
-
33
- end
34
-
35
- describe "::initialize!" do
36
-
37
- subject { configurer_class.initialize! }
38
-
39
- before(:example) { allow(configurer_class.stub_server).to receive(:initialize!) }
40
-
41
- context "when included in a class with an on_initialize class method" do
42
-
43
- let(:configurer_class) do
44
- Class.new do
45
- include HttpStub::Configurer
46
-
47
- def self.on_initialize
48
- # Intentionally blank
49
- end
50
- end
51
- end
52
-
53
- context "and the class has not been initialized previously" do
54
-
55
- it "invokes the on_initialize method" do
56
- expect(configurer_class).to receive(:on_initialize)
57
-
58
- subject
59
- end
60
-
61
- end
62
-
63
- context "and the class has been initialized previously" do
64
-
65
- before(:example) { configurer_class.initialize! }
66
-
67
- it "does not re-invoke the on_initialize method" do
68
- expect(configurer_class).to_not receive(:on_initialize)
69
-
70
- subject
71
- end
72
-
73
- end
74
-
75
- end
76
-
77
- context "when included in a class without an on_initialize method" do
78
-
79
- let(:configurer_class) { Class.new { include HttpStub::Configurer } }
80
-
81
- it "executes without error" do
82
- expect { subject }.to_not raise_error
83
- end
84
-
85
- end
86
-
87
- it "initializes the stub server" do
88
- expect(configurer_class.stub_server).to receive(:initialize!)
89
-
90
- subject
91
- end
92
-
93
- end
94
-
95
- describe "#stub_server" do
96
-
97
- subject { configurer.stub_server }
98
-
99
- it "returns the same server as the class method" do
100
- expect(subject).to be(configurer_class.stub_server)
101
- end
102
-
103
- end
104
-
105
- end
@@ -1,59 +0,0 @@
1
- describe HttpStub::Server::Application::Configuration do
2
-
3
- let(:configuration) { described_class.new(args) }
4
-
5
- describe "#settings" do
6
-
7
- subject { configuration.settings }
8
-
9
- context "when a configurer is provided" do
10
-
11
- let(:port) { 8888 }
12
- let(:session_identifier) { { parameters: :some_session_parameter } }
13
- let(:cross_origin_support_flag) { true }
14
- let(:stub_server) do
15
- instance_double(HttpStub::Configurer::DSL::Server, port: port, session_identifier: session_identifier)
16
- end
17
- let(:configurer) { double(HttpStub::Configurer, stub_server: stub_server) }
18
- let(:args) { { configurer: configurer } }
19
-
20
- before(:example) do
21
- allow(stub_server).to receive(:enabled?).with(:cross_origin_support).and_return(cross_origin_support_flag)
22
- end
23
-
24
- it "has the configurers port" do
25
- expect(subject).to include(port: port)
26
- end
27
-
28
- it "has the configurers session identifier" do
29
- expect(subject).to include(session_identifier: session_identifier)
30
- end
31
-
32
- it "has the configurers cross origin support flag" do
33
- expect(subject).to include(cross_origin_support: cross_origin_support_flag)
34
- end
35
-
36
- end
37
-
38
- context "when a configurer is not provided" do
39
-
40
- let(:port) { 8889 }
41
- let(:args) { { port: port } }
42
-
43
- it "has the provided port" do
44
- expect(subject).to include(port: port)
45
- end
46
-
47
- it "has a nil session identifier" do
48
- expect(subject).to include(session_identifier: nil)
49
- end
50
-
51
- it "has disabled cross origin support" do
52
- expect(subject).to include(cross_origin_support: false)
53
- end
54
-
55
- end
56
-
57
- end
58
-
59
- end