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,103 +0,0 @@
1
- describe HttpStub::Configurer::Part do
2
-
3
- let(:configurer) do
4
- Class.new.tap { |configurer| configurer.send(:include, HttpStub::Configurer) }
5
- end
6
-
7
- let(:part_class) do
8
- Class.new.tap { |part_class| part_class.send(:include, HttpStub::Configurer::Part) }
9
- end
10
-
11
- let(:part) { part_class.new }
12
-
13
- describe "#configure" do
14
-
15
- subject { part.configure(configurer) }
16
-
17
- shared_context "expect configure entity methods to be automatically invoke" do
18
-
19
- before(:example) do
20
- configure_method_names.each do |method_name|
21
- part_class.send(:define_method, method_name) do
22
- # Intentionally blank
23
- end
24
- end
25
- end
26
-
27
- it "invokes the configure methods" do
28
- configure_method_names.each { |method_name| expect(part).to receive(method_name) }
29
-
30
- subject
31
- end
32
-
33
- end
34
-
35
- context "when the part has configure stubs methods" do
36
-
37
- let(:configure_method_names) { (1..3).map { |i| "configure_resource_#{i}_stubs".to_sym } }
38
-
39
- include_context "expect configure entity methods to be automatically invoke"
40
-
41
- end
42
-
43
- context "when the part has configure stub methods" do
44
-
45
- let(:configure_method_names) { (1..3).map { |i| "configure_resource_#{i}_stub".to_sym } }
46
-
47
- include_context "expect configure entity methods to be automatically invoke"
48
-
49
- end
50
-
51
- context "when the part has configure scenarios methods" do
52
-
53
- let(:configure_method_names) { (1..3).map { |i| "configure_resource_#{i}_scenarios".to_sym } }
54
-
55
- include_context "expect configure entity methods to be automatically invoke"
56
-
57
- end
58
-
59
- context "when the part has configure scenario methods" do
60
-
61
- let(:configure_method_names) { (1..3).map { |i| "configure_resource_#{i}_scenario".to_sym } }
62
-
63
- include_context "expect configure entity methods to be automatically invoke"
64
-
65
- end
66
-
67
- end
68
-
69
- context "when configured" do
70
-
71
- before(:example) { part.configure(configurer) }
72
-
73
- describe "other methods on the part" do
74
-
75
- context "when defined in the configurer" do
76
-
77
- it "are defined on the part" do
78
- expect(part.respond_to?(:stub_server)).to be(true)
79
- end
80
-
81
- it "are delegated to the configurer" do
82
- expect(part.stub_server).to eql(configurer.stub_server)
83
- end
84
-
85
- end
86
-
87
- context "when not defined in the configurer" do
88
-
89
- it "are not defined on the part" do
90
- expect(part.respond_to?(:not_in_configurer)).to be(false)
91
- end
92
-
93
- it "raise an error on the part when invoked" do
94
- expect { part.not_in_configurer }.to raise_error(/#{part_class}/)
95
- end
96
-
97
- end
98
-
99
- end
100
-
101
- end
102
-
103
- end
@@ -1,34 +0,0 @@
1
- describe HttpStub::Configurer::Request::ControllableValue do
2
-
3
- describe "::format" do
4
-
5
- let(:value) { "some value" }
6
-
7
- it "formats the potential control value via the Regexpable formatter" do
8
- expect(HttpStub::Configurer::Request::Regexpable).to receive(:format).with(value)
9
-
10
- perform_format
11
- end
12
-
13
- it "chains formatting by formatting the Regexpable formatter result via the Omittable formatter" do
14
- regexp_formatted_value = "some regexp formatted value"
15
- allow(HttpStub::Configurer::Request::Regexpable).to receive(:format).and_return(regexp_formatted_value)
16
- expect(HttpStub::Configurer::Request::Omittable).to receive(:format).with(regexp_formatted_value)
17
-
18
- perform_format
19
- end
20
-
21
- it "returns the Omittable formatter result" do
22
- omit_formatted_value = "some omit formatted value"
23
- allow(HttpStub::Configurer::Request::Omittable).to receive(:format).and_return(omit_formatted_value)
24
-
25
- expect(perform_format).to eql(omit_formatted_value)
26
- end
27
-
28
- def perform_format
29
- HttpStub::Configurer::Request::ControllableValue.format(value)
30
- end
31
-
32
- end
33
-
34
- end
@@ -1,91 +0,0 @@
1
- describe HttpStub::Configurer::Request::Http::Basic do
2
-
3
- let(:request_method) { :get }
4
- let(:path) { "some/path" }
5
- let(:args) { { method: request_method, path: path } }
6
-
7
- let(:basic_request) { described_class.new(args) }
8
-
9
- describe "#to_http_request" do
10
-
11
- subject { basic_request.to_http_request }
12
-
13
- it "returns a HTTP request of the provided type" do
14
- expect(subject).to be_a(Net::HTTP::Get)
15
- end
16
-
17
- it "returns a request with the provided path prefixed with http_stub scoping" do
18
- expect(subject.path).to eql("/http_stub/#{path}")
19
- end
20
-
21
- context "when headers are provided" do
22
-
23
- let(:args) { { method: request_method, path: path, headers: headers } }
24
-
25
- context "whose names are symbols" do
26
-
27
- let(:headers) { (1..3).each_with_object({}) { |i, result| result["header#{i}".to_sym] = "value#{i}" } }
28
-
29
- it "returns a request with the provided headers with names converted to strings" do
30
- expect(request_headers).to include(headers.stringify_keys)
31
- end
32
-
33
- end
34
-
35
- context "whose names are strings" do
36
-
37
- let(:headers) { (1..3).each_with_object({}) { |i, result| result["header#{i}"] = "value#{i}" } }
38
-
39
- it "returns a request with the provided headers" do
40
- expect(request_headers).to include(headers)
41
- end
42
-
43
- end
44
-
45
- end
46
-
47
- context "when headers are not provided" do
48
-
49
- it "returns a request with default headers" do
50
- expect(request_headers).to_not be_empty
51
- end
52
-
53
- end
54
-
55
- context "when parameters are provided" do
56
-
57
- let(:parameters) { (1..3).each_with_object({}) { |i, result| result["parameter#{i}"] = "value#{i}" } }
58
-
59
- let(:args) { { method: request_method, path: path, parameters: parameters } }
60
-
61
- it "returns a request with the provided parameters" do
62
- expect(request_parameters).to eql(parameters)
63
- end
64
-
65
- end
66
-
67
- context "when parameters are not provided" do
68
-
69
- let(:args) { { method: request_method, path: path } }
70
-
71
- it "returns a request without parameters" do
72
- expect(subject.body).to eql(nil)
73
- end
74
-
75
- end
76
-
77
- it "returns a request with the provided path prefixed with http_stub scoping" do
78
- expect(subject.path).to eql("/http_stub/#{path}")
79
- end
80
-
81
- end
82
-
83
- def request_headers
84
- subject.to_hash.each_with_object({}) { |(key, value), result| result[key] = value.first }
85
- end
86
-
87
- def request_parameters
88
- URI.decode_www_form(subject.body).to_h
89
- end
90
-
91
- end
@@ -1,222 +0,0 @@
1
- describe HttpStub::Configurer::Request::Http::Factory do
2
-
3
- describe "::multipart" do
4
-
5
- let(:model) { double("HttpStub::Configurer::Request::SomeModel") }
6
- let(:path) { "some/model/path" }
7
-
8
- let(:multipart_request) { instance_double(HttpStub::Configurer::Request::Http::Multipart) }
9
-
10
- subject { described_class.multipart(path, model) }
11
-
12
- before(:example) do
13
- allow(HttpStub::Configurer::Request::Http::Multipart).to receive(:new).and_return(multipart_request)
14
- end
15
-
16
- it "creates a multipart request with the provided path" do
17
- expect(HttpStub::Configurer::Request::Http::Multipart).to receive(:new).with(hash_including(path: path))
18
-
19
- subject
20
- end
21
-
22
- it "creates a multipart request with the provided model" do
23
- expect(HttpStub::Configurer::Request::Http::Multipart).to receive(:new).with(hash_including(model: model))
24
-
25
- subject
26
- end
27
-
28
- context "when headers are provided" do
29
-
30
- let(:headers) { (1..3).each_with_object({}) { |i, result| result["header#{i}"] = "value#{i}" } }
31
-
32
- subject { described_class.multipart(path, model, headers) }
33
-
34
- it "creates a multipart request with the provided headers" do
35
- expect(HttpStub::Configurer::Request::Http::Multipart).to receive(:new).with(hash_including(headers: headers))
36
-
37
- subject
38
- end
39
-
40
- end
41
-
42
- context "when no headers are provided" do
43
-
44
- subject { described_class.multipart(path, model) }
45
-
46
- it "creates a multipart request with the empty headers" do
47
- expect(HttpStub::Configurer::Request::Http::Multipart).to receive(:new).with(hash_including(headers: {}))
48
-
49
- subject
50
- end
51
-
52
- end
53
-
54
- it "returns the created request" do
55
- expect(subject).to eql(multipart_request)
56
- end
57
-
58
- end
59
-
60
- describe "::get" do
61
-
62
- let(:path) { "/some/get/path" }
63
-
64
- let(:basic_request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
65
-
66
- subject { described_class.get(path) }
67
-
68
- before(:example) { allow(HttpStub::Configurer::Request::Http::Basic).to receive(:new).and_return(basic_request) }
69
-
70
- it "creates a basic GET request" do
71
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(method: :get))
72
-
73
- subject
74
- end
75
-
76
- it "creates a basic request with the provided path" do
77
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(path: path))
78
-
79
- subject
80
- end
81
-
82
- context "when headers are provided" do
83
-
84
- let(:headers) { (1..3).each_with_object({}) { |i, result| result["header#{i}"] = "value#{i}" } }
85
-
86
- subject { described_class.get(path, headers) }
87
-
88
- it "creates a basic request with the provided headers" do
89
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(headers: headers))
90
-
91
- subject
92
- end
93
-
94
- end
95
-
96
- context "when no headers are provided" do
97
-
98
- subject { described_class.get(path) }
99
-
100
- it "creates a basic request with empty headers" do
101
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(headers: {}))
102
-
103
- subject
104
- end
105
-
106
- end
107
-
108
- it "returns the created basic request" do
109
- expect(subject).to eql(basic_request)
110
- end
111
-
112
- end
113
-
114
- describe "::post" do
115
-
116
- let(:path) { "/some/post/path" }
117
-
118
- let(:basic_request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
119
-
120
- subject { described_class.post(path) }
121
-
122
- before(:example) { allow(HttpStub::Configurer::Request::Http::Basic).to receive(:new).and_return(basic_request) }
123
-
124
- it "creates a basic POST request" do
125
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(method: :post))
126
-
127
- subject
128
- end
129
-
130
- it "creates a basic request with the provided path" do
131
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(path: path))
132
-
133
- subject
134
- end
135
-
136
- context "when parameters are provided" do
137
-
138
- let(:parameters) { (1..3).each_with_object({}) { |i, result| result["parameter#{i}"] = "value#{i}" } }
139
-
140
- subject { described_class.post(path, parameters) }
141
-
142
- it "creates a basic request with the provided parameters" do
143
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(parameters: parameters))
144
-
145
- subject
146
- end
147
-
148
- end
149
-
150
- context "when no parameters are provided" do
151
-
152
- subject { described_class.post(path) }
153
-
154
- it "creates a basic POST request with empty parameters" do
155
- allow(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(parameters: {}))
156
-
157
- subject
158
- end
159
-
160
- end
161
-
162
- it "returns the created basic request" do
163
- expect(subject).to eql(basic_request)
164
- end
165
-
166
- end
167
-
168
- describe "::delete" do
169
-
170
- let(:path) { "/some/delete/path" }
171
-
172
- let(:basic_request) { instance_double(HttpStub::Configurer::Request::Http::Basic) }
173
-
174
- subject { described_class.delete(path) }
175
-
176
- before(:example) { allow(HttpStub::Configurer::Request::Http::Basic).to receive(:new).and_return(basic_request) }
177
-
178
- it "creates a basic DELETE request" do
179
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(method: :delete))
180
-
181
- subject
182
- end
183
-
184
- it "creates a basic request with the provided path" do
185
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(path: path))
186
-
187
- subject
188
- end
189
-
190
- context "when headers are provided" do
191
-
192
- let(:headers) { (1..3).each_with_object({}) { |i, result| result["header#{i}"] = "value#{i}" } }
193
-
194
- subject { described_class.delete(path, headers) }
195
-
196
- it "creates a basic request with the provided headers" do
197
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(headers: headers))
198
-
199
- subject
200
- end
201
-
202
- end
203
-
204
- context "when no headers are provided" do
205
-
206
- subject { described_class.delete(path) }
207
-
208
- it "creates a basic request with empty headers" do
209
- expect(HttpStub::Configurer::Request::Http::Basic).to receive(:new).with(hash_including(headers: {}))
210
-
211
- subject
212
- end
213
-
214
- end
215
-
216
- it "returns the created basic request" do
217
- expect(subject).to eql(basic_request)
218
- end
219
-
220
- end
221
-
222
- end