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,22 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
- module Server
4
-
5
- class Command
6
-
7
- attr_reader :description
8
-
9
- def initialize(args)
10
- @request = args[:request]
11
- @description = args[:description]
12
- end
13
-
14
- def http_request
15
- @request.to_http_request
16
- end
17
-
18
- end
19
-
20
- end
21
- end
22
- end
@@ -1,35 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
- module Server
4
-
5
- class CommandProcessor
6
-
7
- def initialize(configuration)
8
- @configuration = configuration
9
- end
10
-
11
- def process(command, http_options={})
12
- response = send_command(command, http_options)
13
- raise "#{error_message_prefix(command)}: #{response.code} #{response.message}" unless response.code == "200"
14
- response
15
- rescue StandardError => err
16
- raise "#{error_message_prefix(command)}: #{err}"
17
- end
18
-
19
- private
20
-
21
- def send_command(command, http_options)
22
- Net::HTTP.start(@configuration.host, @configuration.port, http_options) do |http|
23
- http.request(command.http_request)
24
- end
25
- end
26
-
27
- def error_message_prefix(command)
28
- "Error occurred #{command.description} whilst configuring #{@configuration.base_uri}: "
29
- end
30
-
31
- end
32
-
33
- end
34
- end
35
- end
@@ -1,33 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
- module Server
4
-
5
- class Configuration
6
-
7
- attr_accessor :host, :port, :session_identifier
8
-
9
- def initialize
10
- @enabled_features = []
11
- end
12
-
13
- def base_uri
14
- "http://#{host}:#{port}"
15
- end
16
-
17
- def external_base_uri
18
- ENV["STUB_EXTERNAL_BASE_URI"] || base_uri
19
- end
20
-
21
- def enable(*features)
22
- @enabled_features = features
23
- end
24
-
25
- def enabled?(feature)
26
- @enabled_features.include?(feature)
27
- end
28
-
29
- end
30
-
31
- end
32
- end
33
- end
@@ -1,61 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
- module Server
4
-
5
- class Facade
6
-
7
- attr_reader :default_session
8
-
9
- def initialize(configuration)
10
- @request_processor = HttpStub::Configurer::Server::RequestProcessor.new(configuration)
11
- end
12
-
13
- def initialize_server
14
- @request_processor.flush!
15
- @request_processor.submit(
16
- request: HttpStub::Configurer::Request::Http::Factory.post("status/initialized"),
17
- description: "marking server as initialized"
18
- )
19
- end
20
-
21
- def server_has_started
22
- @request_processor.disable_buffering!
23
- end
24
-
25
- def reset
26
- @request_processor.submit(
27
- request: HttpStub::Configurer::Request::Http::Factory.delete("memory"),
28
- description: "resetting server"
29
- )
30
- end
31
-
32
- def define_scenario(scenario)
33
- @request_processor.submit(
34
- request: HttpStub::Configurer::Request::Http::Factory.multipart("scenarios", scenario),
35
- description: "registering scenario '#{scenario}'"
36
- )
37
- end
38
-
39
- def clear_scenarios
40
- @request_processor.submit(
41
- request: HttpStub::Configurer::Request::Http::Factory.delete("scenarios"),
42
- description: "clearing scenarios"
43
- )
44
- end
45
-
46
- def create_session_facade(id)
47
- HttpStub::Configurer::Server::SessionFacade.new(id, @request_processor)
48
- end
49
-
50
- def clear_sessions
51
- @request_processor.submit(
52
- request: HttpStub::Configurer::Request::Http::Factory.delete("sessions"),
53
- description: "clearing sessions"
54
- )
55
- end
56
-
57
- end
58
-
59
- end
60
- end
61
- end
@@ -1,30 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
- module Server
4
-
5
- class RequestProcessor
6
-
7
- def initialize(configuration)
8
- @command_processor = HttpStub::Configurer::Server::CommandProcessor.new(configuration)
9
- @buffered_command_processor = @active_processor =
10
- HttpStub::Configurer::Server::BufferedCommandProcessor.new(@command_processor)
11
- end
12
-
13
- def submit(args)
14
- @active_processor.process(HttpStub::Configurer::Server::Command.new(args))
15
- end
16
-
17
- def flush!
18
- @buffered_command_processor.flush
19
- self.disable_buffering!
20
- end
21
-
22
- def disable_buffering!
23
- @active_processor = @command_processor
24
- end
25
-
26
- end
27
-
28
- end
29
- end
30
- end
@@ -1,57 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
- module Server
4
-
5
- class SessionFacade
6
-
7
- REQUEST_FACTORY = HttpStub::Configurer::Request::Http::Factory
8
-
9
- private_constant :REQUEST_FACTORY
10
-
11
- def initialize(session_id, request_processor)
12
- @session_id = session_id
13
- @request_processor = request_processor
14
- @session_description = "session '#{session_id}'"
15
- end
16
-
17
- def stub_response(stub)
18
- @request_processor.submit(
19
- request: REQUEST_FACTORY.multipart("stubs", stub, http_stub_session_id: @session_id),
20
- description: "stubbing '#{stub}' in #{@session_description}"
21
- )
22
- end
23
-
24
- def activate(scenario_names)
25
- parameters = { http_stub_session_id: @session_id, "names[]" => scenario_names }
26
- @request_processor.submit(
27
- request: REQUEST_FACTORY.post("scenarios/activate", parameters),
28
- description: "activating #{scenario_names.map { |name| "'#{name}'" }.join(", ")} in #{@session_description}"
29
- )
30
- end
31
-
32
- def reset_stubs
33
- @request_processor.submit(
34
- request: REQUEST_FACTORY.post("stubs/reset", http_stub_session_id: @session_id),
35
- description: "resetting stubs in #{@session_description}"
36
- )
37
- end
38
-
39
- def clear_stubs
40
- @request_processor.submit(
41
- request: REQUEST_FACTORY.delete("stubs", http_stub_session_id: @session_id),
42
- description: "clearing stubs in #{@session_description}"
43
- )
44
- end
45
-
46
- def delete
47
- @request_processor.submit(
48
- request: REQUEST_FACTORY.delete("sessions", http_stub_session_id: @session_id),
49
- description: "deleting #{@session_description}"
50
- )
51
- end
52
-
53
- end
54
-
55
- end
56
- end
57
- end
@@ -1,38 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Application
4
-
5
- class Configuration
6
-
7
- def initialize(args)
8
- @configurer = args[:configurer]
9
- @port = args[:port]
10
- end
11
-
12
- def settings
13
- @configurer ? configurer_settings : direct_settings
14
- end
15
-
16
- private
17
-
18
- def configurer_settings
19
- {
20
- port: @configurer.stub_server.port,
21
- session_identifier: @configurer.stub_server.session_identifier,
22
- cross_origin_support: @configurer.stub_server.enabled?(:cross_origin_support)
23
- }
24
- end
25
-
26
- def direct_settings
27
- {
28
- port: @port,
29
- session_identifier: nil,
30
- cross_origin_support: false
31
- }
32
- end
33
-
34
- end
35
-
36
- end
37
- end
38
- end
@@ -1,20 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Application
4
-
5
- class ResponsePipeline
6
-
7
- def initialize(application)
8
- @application = application
9
- end
10
-
11
- def process(response)
12
- sleep response.delay_in_seconds
13
- response.serve_on(@application)
14
- end
15
-
16
- end
17
-
18
- end
19
- end
20
- end
@@ -1,19 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Application
4
-
5
- module ResponseSupport
6
-
7
- def self.included(application)
8
- application.instance_eval do
9
-
10
- before { @response_pipeline = HttpStub::Server::Application::ResponsePipeline.new(self) }
11
-
12
- end
13
- end
14
-
15
- end
16
-
17
- end
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Scenario
4
-
5
- class Parser
6
-
7
- def self.parse(request)
8
- JSON.parse(request.parameters["payload"]).tap do |payload|
9
- payload["stubs"].each { |stub_payload| HttpStub::Server::Stub::Payload.modify!(stub_payload, request) }
10
- end
11
- end
12
-
13
- end
14
-
15
- end
16
- end
17
- end
@@ -1,32 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Session
4
-
5
- class Configuration
6
-
7
- DEFAULT_CONFIGURATION = [
8
- { parameter: HttpStub::Server::Session::ID_ATTRIBUTE_NAME },
9
- { header: HttpStub::Server::Session::ID_ATTRIBUTE_NAME }
10
- ].freeze
11
- DEFAULT_IDENTIFIER = HttpStub::Server::Session::MEMORY_SESSION_ID
12
-
13
- private_constant :DEFAULT_CONFIGURATION, :DEFAULT_IDENTIFIER
14
-
15
- attr_reader :identifier_configuration
16
-
17
- attr_accessor :default_identifier
18
-
19
- def initialize(identifier_setting)
20
- @identifier_configuration = DEFAULT_CONFIGURATION + (identifier_setting ? [ identifier_setting ] : [])
21
- @default_identifier = DEFAULT_IDENTIFIER
22
- end
23
-
24
- def reset
25
- @default_identifier = DEFAULT_IDENTIFIER
26
- end
27
-
28
- end
29
-
30
- end
31
- end
32
- end
@@ -1,25 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Status
4
-
5
- class Controller
6
-
7
- def initialize(session_configuration, server_memory)
8
- @session_configuration = session_configuration
9
- @server_memory = server_memory
10
- end
11
-
12
- def current
13
- @server_memory.status
14
- end
15
-
16
- def initialized
17
- @server_memory.initialized!
18
- @session_configuration.default_identifier = HttpStub::Server::Session::TRANSACTIONAL_SESSION_ID
19
- end
20
-
21
- end
22
-
23
- end
24
- end
25
- end
@@ -1,17 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Stub
4
-
5
- class Parser
6
-
7
- def self.parse(request)
8
- HttpStub::Server::Stub::Payload.modify!(
9
- JSON.parse(request.parameters["payload"] || request.body), request
10
- )
11
- end
12
-
13
- end
14
-
15
- end
16
- end
17
- end
@@ -1,20 +0,0 @@
1
- module HttpStub
2
- module Server
3
- module Stub
4
-
5
- module Payload
6
-
7
- MODIFIERS = [ HttpStub::Server::Stub::Payload::BaseUriModifier,
8
- HttpStub::Server::Stub::Payload::ResponseBodyModifier ].freeze
9
-
10
- private_constant :MODIFIERS
11
-
12
- def self.modify!(payload, request)
13
- payload.tap { MODIFIERS.each { |modifier| modifier.modify!(payload, request) } }
14
- end
15
-
16
- end
17
-
18
- end
19
- end
20
- end