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,139 +0,0 @@
1
- describe HttpStub::Configurer::Server::Configuration do
2
-
3
- let(:configuration) { described_class.new }
4
-
5
- shared_context "a configuration with host and port configured" do
6
-
7
- before(:example) do
8
- configuration.host = "some_host"
9
- configuration.port = 8888
10
- end
11
-
12
- end
13
-
14
- describe "#session_identifier" do
15
-
16
- let(:session_identifier) { { headers: :some_session_identifier } }
17
-
18
- subject { configuration.session_identifier }
19
-
20
- before(:example) { configuration.session_identifier = session_identifier }
21
-
22
- it "returns any configured value" do
23
- expect(subject).to eql(session_identifier)
24
- end
25
-
26
- end
27
-
28
- describe "#base_uri" do
29
-
30
- subject { configuration.base_uri }
31
-
32
- include_context "a configuration with host and port configured"
33
-
34
- it "returns a uri that combines any established host and port" do
35
- expect(subject).to include("some_host:8888")
36
- end
37
-
38
- it "returns a uri accessed via http" do
39
- expect(subject).to match(/^http:\/\//)
40
- end
41
-
42
- end
43
-
44
- describe "#external_base_uri" do
45
-
46
- subject { configuration.external_base_uri }
47
-
48
- include_context "a configuration with host and port configured"
49
-
50
- context "when an external base URI environment variable is established" do
51
-
52
- let(:external_base_uri) { "http://some/external/base/uri" }
53
-
54
- before(:example) { ENV["STUB_EXTERNAL_BASE_URI"] = external_base_uri }
55
- after(:example) { ENV["STUB_EXTERNAL_BASE_URI"] = nil }
56
-
57
- it "returns the environment variable" do
58
- expect(subject).to eql(external_base_uri)
59
- end
60
-
61
- end
62
-
63
- context "when an external base URI environment variable is not established" do
64
-
65
- it "returns the base URI" do
66
- expect(subject).to eql(configuration.base_uri)
67
- end
68
-
69
- end
70
-
71
- it "returns a uri that combines any established host and port" do
72
- expect(subject).to include("some_host:8888")
73
- end
74
-
75
- it "returns a uri accessed via http" do
76
- expect(subject).to match(/^http:\/\//)
77
- end
78
-
79
- end
80
-
81
- describe "#enable" do
82
-
83
- context "when a feature is provided" do
84
-
85
- let(:feature) { :some_feature }
86
-
87
- subject { configuration.enable(feature) }
88
-
89
- it "enables the feature" do
90
- subject
91
-
92
- expect(configuration.enabled?(feature)).to be(true)
93
- end
94
-
95
- end
96
-
97
- context "when features are provided" do
98
-
99
- let(:features) { (1..3).map { |i| "feature_#{i}".to_sym } }
100
-
101
- subject { configuration.enable(*features) }
102
-
103
- it "enables the features" do
104
- subject
105
-
106
- features.each { |feature| expect(configuration.enabled?(feature)).to be(true) }
107
- end
108
-
109
- end
110
-
111
- end
112
-
113
- describe "#enabled?" do
114
-
115
- let(:feature) { :some_feature }
116
-
117
- subject { configuration.enabled?(feature) }
118
-
119
- context "when a feature is enabled" do
120
-
121
- before(:example) { configuration.enable(feature) }
122
-
123
- it "returns false" do
124
- expect(subject).to be(true)
125
- end
126
-
127
- end
128
-
129
- context "when a feature is not enabled" do
130
-
131
- it "returns false" do
132
- expect(subject).to be(false)
133
- end
134
-
135
- end
136
-
137
- end
138
-
139
- end
@@ -1,235 +0,0 @@
1
- describe HttpStub::Configurer::Server::Facade do
2
-
3
- let(:configuration) { double(HttpStub::Configurer::Server::Configuration) }
4
-
5
- let(:request_processor) { instance_double(HttpStub::Configurer::Server::RequestProcessor) }
6
-
7
- let(:facade) { HttpStub::Configurer::Server::Facade.new(configuration) }
8
-
9
- before(:example) do
10
- allow(HttpStub::Configurer::Server::RequestProcessor).to receive(:new).and_return(request_processor)
11
- end
12
-
13
- it "creates a request processor with the provided configuration" do
14
- expect(HttpStub::Configurer::Server::RequestProcessor).to receive(:new).with(configuration)
15
-
16
- facade
17
- end
18
-
19
- describe "#initialize_server" do
20
-
21
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
22
-
23
- subject { facade.initialize_server }
24
-
25
- before(:example) do
26
- allow(request_processor).to receive(:flush!)
27
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:post).and_return(request)
28
- allow(request_processor).to receive(:submit)
29
- end
30
-
31
- it "causes the request processor to flush its requests" do
32
- expect(request_processor).to receive(:flush!)
33
-
34
- subject
35
- end
36
-
37
- it "creates a POST request for the initialized status endpoint" do
38
- expect(HttpStub::Configurer::Request::Http::Factory).to(
39
- receive(:post).with("status/initialized").and_return(request)
40
- )
41
-
42
- subject
43
- end
44
-
45
- it "submits the HTTP Stub request via the request processor" do
46
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
47
-
48
- subject
49
- end
50
-
51
- it "describes the request as marking the server as initialized" do
52
- expect(request_processor).to receive(:submit).with(hash_including(description: "marking server as initialized"))
53
-
54
- subject
55
- end
56
-
57
- end
58
-
59
- describe "#server_has_started" do
60
-
61
- subject { facade.server_has_started }
62
-
63
- it "informs the request processor to disable buffering requests" do
64
- expect(request_processor).to receive(:disable_buffering!)
65
-
66
- subject
67
- end
68
-
69
- end
70
-
71
- describe "#reset" do
72
-
73
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
74
-
75
- subject { facade.reset }
76
-
77
- before(:example) do
78
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).and_return(request)
79
- allow(request_processor).to receive(:submit)
80
- end
81
-
82
- it "creates a DELETE request for the memory endpoint" do
83
- expect(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).with("memory").and_return(request)
84
-
85
- subject
86
- end
87
-
88
- it "submits the HTTP Stub request via the request processor" do
89
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
90
-
91
- subject
92
- end
93
-
94
- it "describes the request as resetting the server" do
95
- expect(request_processor).to receive(:submit).with(hash_including(description: "resetting server"))
96
-
97
- subject
98
- end
99
-
100
- end
101
-
102
- describe "#define_scenario" do
103
-
104
- let(:scenario_description) { "some scenario description" }
105
- let(:scenario) { instance_double(HttpStub::Configurer::Request::Scenario, to_s: scenario_description) }
106
-
107
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Multipart) }
108
-
109
- subject { facade.define_scenario(scenario) }
110
-
111
- before(:example) do
112
- allow(request_processor).to receive(:submit)
113
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:multipart).and_return(request)
114
- end
115
-
116
- it "creates a multipart request to the scenarios endpoint" do
117
- expect(HttpStub::Configurer::Request::Http::Factory).to receive(:multipart).with("scenarios", anything)
118
-
119
- subject
120
- end
121
-
122
- it "creates a multipart request with the provided scenario" do
123
- expect(HttpStub::Configurer::Request::Http::Factory).to receive(:multipart).with(anything, scenario)
124
-
125
- subject
126
- end
127
-
128
- it "submits the request via the request processor" do
129
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
130
-
131
- subject
132
- end
133
-
134
- it "describes the scenario via its string representation" do
135
- expect(request_processor).to(
136
- receive(:submit).with(hash_including(description: "registering scenario '#{scenario_description}'"))
137
- )
138
-
139
- subject
140
- end
141
-
142
- end
143
-
144
- describe "#clear_scenarios" do
145
-
146
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
147
-
148
- subject { facade.clear_scenarios }
149
-
150
- before(:example) do
151
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).and_return(request)
152
- allow(request_processor).to receive(:submit)
153
- end
154
-
155
- it "creates a DELETE request for the scenarios endpoint" do
156
- expect(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).with("scenarios").and_return(request)
157
-
158
- subject
159
- end
160
-
161
- it "submits the HTTP Stub request via the request processor" do
162
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
163
-
164
- subject
165
- end
166
-
167
- it "describes the request as clearing the servers scenarios" do
168
- expect(request_processor).to receive(:submit).with(hash_including(description: "clearing scenarios"))
169
-
170
- subject
171
- end
172
-
173
- end
174
-
175
- describe "#create_session_facade" do
176
-
177
- let(:session_id) { "some session id" }
178
-
179
- let(:session_facade) { instance_double(HttpStub::Configurer::Server::SessionFacade) }
180
-
181
- subject { facade.create_session_facade(session_id) }
182
-
183
- before(:example) { allow(HttpStub::Configurer::Server::SessionFacade).to receive(:new).and_return(session_facade) }
184
-
185
- it "creates a session facade for the provided session" do
186
- expect(HttpStub::Configurer::Server::SessionFacade).to receive(:new).with(session_id, anything)
187
-
188
- subject
189
-
190
- end
191
-
192
- it "creates a session facade that processes requests the server facades request processor" do
193
- expect(HttpStub::Configurer::Server::SessionFacade).to receive(:new).with(anything, request_processor)
194
-
195
- subject
196
- end
197
-
198
- it "returns the created session facade" do
199
- expect(subject).to eql(session_facade)
200
- end
201
-
202
- end
203
-
204
- describe "#clear_sessions" do
205
-
206
- let(:request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
207
-
208
- subject { facade.clear_sessions }
209
-
210
- before(:example) do
211
- allow(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).and_return(request)
212
- allow(request_processor).to receive(:submit)
213
- end
214
-
215
- it "creates a DELETE request for the sessions endpoint" do
216
- expect(HttpStub::Configurer::Request::Http::Factory).to receive(:delete).with("sessions").and_return(request)
217
-
218
- subject
219
- end
220
-
221
- it "submits the HTTP Stub request via the request processor" do
222
- expect(request_processor).to receive(:submit).with(hash_including(request: request))
223
-
224
- subject
225
- end
226
-
227
- it "describes the request as clearing the servers sessions" do
228
- expect(request_processor).to receive(:submit).with(hash_including(description: "clearing sessions"))
229
-
230
- subject
231
- end
232
-
233
- end
234
-
235
- end
@@ -1,100 +0,0 @@
1
- describe HttpStub::Configurer::Server::RequestProcessor do
2
-
3
- let(:configuration) { double(HttpStub::Server::Application::Configuration) }
4
-
5
- let(:command_processor) { instance_double(HttpStub::Configurer::Server::CommandProcessor) }
6
- let(:buffered_command_processor) { instance_double(HttpStub::Configurer::Server::BufferedCommandProcessor) }
7
-
8
- let(:request_processor) { described_class.new(configuration) }
9
-
10
- before(:example) do
11
- allow(HttpStub::Configurer::Server::CommandProcessor).to receive(:new).and_return(command_processor)
12
- allow(HttpStub::Configurer::Server::BufferedCommandProcessor).to(
13
- receive(:new).and_return(buffered_command_processor)
14
- )
15
- end
16
-
17
- describe "constructor" do
18
-
19
- it "creates a command processor based on the servers configuration" do
20
- expect(HttpStub::Configurer::Server::CommandProcessor).to receive(:new).with(configuration)
21
-
22
- request_processor
23
- end
24
-
25
- it "creates a buffered command processor that flushes via the command processor" do
26
- expect(HttpStub::Configurer::Server::BufferedCommandProcessor).to receive(:new).with(command_processor)
27
-
28
- request_processor
29
- end
30
-
31
- end
32
-
33
- describe "#submit" do
34
-
35
- let(:args) { { some_arg_key: "some arg value" } }
36
-
37
- subject { request_processor.submit(args) }
38
-
39
- shared_examples_for "submitting a request to the server" do |processor_description|
40
-
41
- let(:command) { instance_double(HttpStub::Configurer::Server::Command) }
42
-
43
- before(:each) { allow(active_command_processor).to receive(:process) }
44
-
45
- it "creates a command for the provided arguments" do
46
- expect(HttpStub::Configurer::Server::Command).to receive(:new).with(hash_including(args)).and_return(command)
47
-
48
- subject
49
- end
50
-
51
- it "processes the command via the #{processor_description}" do
52
- allow(HttpStub::Configurer::Server::Command).to receive(:new).and_return(command)
53
- expect(active_command_processor).to receive(:process).with(command)
54
-
55
- subject
56
- end
57
-
58
- end
59
-
60
- context "when request buffering is enabled" do
61
-
62
- let(:active_command_processor) { buffered_command_processor }
63
-
64
- it_behaves_like "submitting a request to the server", "buffered command processor"
65
-
66
- end
67
-
68
- context "when request buffering is disabled" do
69
-
70
- let(:active_command_processor) { command_processor }
71
-
72
- before(:example) { request_processor.disable_buffering! }
73
-
74
- it_behaves_like "submitting a request to the server", "command processor"
75
-
76
- end
77
-
78
- end
79
-
80
- describe "#flush!" do
81
-
82
- subject { request_processor.flush! }
83
-
84
- before(:example) { allow(buffered_command_processor).to receive(:flush) }
85
-
86
- it "delegates to the buffered command processor" do
87
- expect(buffered_command_processor).to receive(:flush)
88
-
89
- subject
90
- end
91
-
92
- it "disables request buffering" do
93
- expect(request_processor).to receive(:disable_buffering!)
94
-
95
- subject
96
- end
97
-
98
- end
99
-
100
- end