http_stub 0.22.4 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/lib/http_stub.rb +15 -5
  3. data/lib/http_stub/configurer/dsl/request_attribute_referencer.rb +19 -0
  4. data/lib/http_stub/configurer/dsl/request_referencer.rb +24 -0
  5. data/lib/http_stub/configurer/dsl/scenario_activator.rb +2 -2
  6. data/lib/http_stub/configurer/dsl/scenario_builder.rb +2 -2
  7. data/lib/http_stub/configurer/dsl/server.rb +4 -4
  8. data/lib/http_stub/configurer/dsl/stub_builder.rb +5 -3
  9. data/lib/http_stub/configurer/request/controllable_value.rb +1 -3
  10. data/lib/http_stub/configurer/request/http/factory.rb +2 -2
  11. data/lib/http_stub/configurer/request/omittable.rb +2 -4
  12. data/lib/http_stub/configurer/request/regexpable.rb +3 -8
  13. data/lib/http_stub/configurer/server/command_processor.rb +5 -7
  14. data/lib/http_stub/configurer/server/facade.rb +2 -4
  15. data/lib/http_stub/extensions/core/hash.rb +4 -11
  16. data/lib/http_stub/extensions/core/hash/formatted.rb +23 -0
  17. data/lib/http_stub/extensions/core/hash/indifferent_and_insensitive_access.rb +24 -0
  18. data/lib/http_stub/extensions/core/hash/with_indifferent_and_insensitive_access.rb +18 -0
  19. data/lib/http_stub/extensions/rack/handler.rb +1 -1
  20. data/lib/http_stub/rake/task_generators.rb +1 -1
  21. data/lib/http_stub/server/application.rb +10 -11
  22. data/lib/http_stub/server/application_helpers.rb +3 -5
  23. data/lib/http_stub/server/daemon.rb +5 -6
  24. data/lib/http_stub/server/request.rb +3 -10
  25. data/lib/http_stub/server/request/headers.rb +25 -0
  26. data/lib/http_stub/server/request/parameters.rb +21 -0
  27. data/lib/http_stub/server/request/request.rb +21 -0
  28. data/lib/http_stub/server/scenario/links.rb +1 -1
  29. data/lib/http_stub/server/stub/controller.rb +1 -1
  30. data/lib/http_stub/server/stub/empty.rb +4 -0
  31. data/lib/http_stub/server/stub/match/hash_matcher.rb +19 -0
  32. data/lib/http_stub/server/stub/match/omitted_value_matcher.rb +1 -3
  33. data/lib/http_stub/server/stub/match/rule/body.rb +2 -4
  34. data/lib/http_stub/server/stub/match/rule/headers.rb +5 -11
  35. data/lib/http_stub/server/stub/match/rule/json_body.rb +3 -5
  36. data/lib/http_stub/server/stub/match/rule/method.rb +1 -1
  37. data/lib/http_stub/server/stub/match/rule/parameters.rb +4 -7
  38. data/lib/http_stub/server/stub/match/rule/simple_body.rb +3 -3
  39. data/lib/http_stub/server/stub/match/rule/truthy.rb +27 -0
  40. data/lib/http_stub/server/stub/match/rule/uri.rb +3 -3
  41. data/lib/http_stub/server/stub/match/string_value_matcher.rb +4 -13
  42. data/lib/http_stub/server/stub/response.rb +5 -2
  43. data/lib/http_stub/server/stub/response/attribute/body.rb +32 -0
  44. data/lib/http_stub/server/stub/response/attribute/headers.rb +26 -0
  45. data/lib/http_stub/server/stub/response/attribute/interpolator.rb +26 -0
  46. data/lib/http_stub/server/stub/response/attribute/interpolator/headers.rb +27 -0
  47. data/lib/http_stub/server/stub/response/attribute/interpolator/parameters.rb +27 -0
  48. data/lib/http_stub/server/stub/response/base.rb +5 -16
  49. data/lib/http_stub/server/stub/response/file.rb +6 -2
  50. data/lib/http_stub/server/stub/response/text.rb +12 -0
  51. data/lib/http_stub/server/stub/stub.rb +4 -0
  52. data/lib/http_stub/version.rb +1 -1
  53. data/spec/acceptance/request_reference_spec.rb +44 -0
  54. data/spec/lib/http_stub/configurer/dsl/request_attribute_referencer_spec.rb +37 -0
  55. data/spec/lib/http_stub/configurer/dsl/request_referencer_spec.rb +37 -0
  56. data/spec/lib/http_stub/configurer/dsl/scenario_activator_spec.rb +14 -14
  57. data/spec/lib/http_stub/configurer/dsl/server_spec.rb +2 -6
  58. data/spec/lib/http_stub/configurer/dsl/stub_builder_spec.rb +34 -8
  59. data/spec/lib/http_stub/{server/formatted_hash_spec.rb → extensions/core/hash/formatted_spec.rb} +4 -6
  60. data/spec/lib/http_stub/{hash_with_indifferent_and_insensitive_access_spec.rb → extensions/core/hash/indifferent_and_insensitive_access_spec.rb} +8 -4
  61. data/spec/lib/http_stub/extensions/core/hash/with_indifferent_and_insensitive_access_spec.rb +41 -0
  62. data/spec/lib/http_stub/extensions/core/hash_spec.rb +11 -129
  63. data/spec/lib/http_stub/server/application_spec.rb +1 -1
  64. data/spec/lib/http_stub/server/payload_file_consolidator_spec.rb +1 -1
  65. data/spec/lib/http_stub/server/request/headers_spec.rb +89 -0
  66. data/spec/lib/http_stub/server/request/parameters_spec.rb +60 -0
  67. data/spec/lib/http_stub/server/request/request_spec.rb +84 -0
  68. data/spec/lib/http_stub/server/request_spec.rb +9 -98
  69. data/spec/lib/http_stub/server/response_spec.rb +2 -6
  70. data/spec/lib/http_stub/server/scenario/controller_spec.rb +1 -1
  71. data/spec/lib/http_stub/server/scenario/parser_spec.rb +3 -1
  72. data/spec/lib/http_stub/server/stub/controller_spec.rb +11 -4
  73. data/spec/lib/http_stub/server/stub/empty_spec.rb +10 -0
  74. data/spec/lib/http_stub/server/stub/match/hash_matcher_spec.rb +122 -0
  75. data/spec/lib/http_stub/server/stub/match/rule/body_spec.rb +4 -4
  76. data/spec/lib/http_stub/server/stub/match/rule/headers_spec.rb +54 -45
  77. data/spec/lib/http_stub/server/stub/match/rule/json_body_spec.rb +5 -5
  78. data/spec/lib/http_stub/server/stub/match/rule/method_spec.rb +19 -17
  79. data/spec/lib/http_stub/server/stub/match/rule/parameters_spec.rb +26 -33
  80. data/spec/lib/http_stub/server/stub/match/rule/simple_body_spec.rb +16 -25
  81. data/spec/lib/http_stub/server/stub/match/{truthy_matcher_spec.rb → rule/truthy_spec.rb} +3 -5
  82. data/spec/lib/http_stub/server/stub/match/rule/uri_spec.rb +16 -25
  83. data/spec/lib/http_stub/server/stub/match/string_value_matcher_spec.rb +2 -12
  84. data/spec/lib/http_stub/server/stub/parser_spec.rb +5 -3
  85. data/spec/lib/http_stub/server/stub/response/attribute/body_spec.rb +98 -0
  86. data/spec/lib/http_stub/server/stub/response/attribute/headers_spec.rb +57 -0
  87. data/spec/lib/http_stub/server/stub/response/attribute/interpolator/headers_spec.rb +53 -0
  88. data/spec/lib/http_stub/server/stub/response/attribute/interpolator/parameters_spec.rb +53 -0
  89. data/spec/lib/http_stub/server/stub/response/attribute/interpolator_spec.rb +41 -0
  90. data/spec/lib/http_stub/server/stub/response/base_spec.rb +6 -53
  91. data/spec/lib/http_stub/server/stub/response/file_spec.rb +48 -7
  92. data/spec/lib/http_stub/server/stub/response/text_spec.rb +66 -1
  93. data/spec/lib/http_stub/server/stub/stub_spec.rb +25 -4
  94. data/spec/spec_helper.rb +1 -0
  95. data/spec/support/http_stub/server/request_fixture.rb +1 -1
  96. metadata +86 -26
  97. data/lib/http_stub/hash_with_indifferent_and_insensitive_access.rb +0 -18
  98. data/lib/http_stub/server/formatted_hash.rb +0 -18
  99. data/lib/http_stub/server/header_parser.rb +0 -17
  100. data/lib/http_stub/server/stub/match/hash_with_string_value_matchers.rb +0 -26
  101. data/lib/http_stub/server/stub/match/truthy_matcher.rb +0 -25
  102. data/spec/lib/http_stub/server/header_parser_spec.rb +0 -51
  103. data/spec/lib/http_stub/server/stub/match/hash_with_string_value_matchers_spec.rb +0 -166
@@ -49,7 +49,8 @@ describe HttpStub::Server::Stub::Stub do
49
49
  let(:request_headers) { instance_double(HttpStub::Server::Stub::Match::Rule::Headers, matches?: true) }
50
50
  let(:request_parameters) { instance_double(HttpStub::Server::Stub::Match::Rule::Parameters, matches?: true) }
51
51
  let(:request_body) { double("HttpStub::Server::Stub::SomeRequestBody", matches?: true) }
52
- let(:response) { instance_double(HttpStub::Server::Stub::Response::Base) }
52
+ let(:response_types) { [ HttpStub::Server::Stub::Response::Text, HttpStub::Server::Stub::Response::File ] }
53
+ let(:response) { instance_double(response_types.sample) }
53
54
  let(:triggers) { instance_double(HttpStub::Server::Stub::Triggers) }
54
55
 
55
56
  let(:the_stub) { HttpStub::Server::Stub::Stub.new(stub_payload) }
@@ -66,13 +67,12 @@ describe HttpStub::Server::Stub::Stub do
66
67
 
67
68
  describe "#matches?" do
68
69
 
69
- let(:logger) { instance_double(Logger) }
70
+ let(:logger) { instance_double(Logger) }
70
71
 
71
72
  context "when a request is provided" do
72
73
 
73
74
  let(:request_method) { request_method_payload }
74
- let(:request_uri) { "/a_request_uri" }
75
- let(:request) { instance_double(HttpStub::Server::Request, method: request_method_payload) }
75
+ let(:request) { instance_double(HttpStub::Server::Request::Request, method: request_method_payload) }
76
76
 
77
77
  subject { the_stub.matches?(request, logger) }
78
78
 
@@ -205,6 +205,27 @@ describe HttpStub::Server::Stub::Stub do
205
205
 
206
206
  end
207
207
 
208
+ describe "#repsonse_for" do
209
+
210
+ let(:request) { instance_double(HttpStub::Server::Request::Request) }
211
+
212
+ subject { the_stub.response_for(request) }
213
+
214
+ it "replaces values in the response with those from the request" do
215
+ expect(response).to receive(:with_values_from).with(request)
216
+
217
+ subject
218
+ end
219
+
220
+ it "returns the response with replaced values" do
221
+ response_with_replaced_values = instance_double(response_types.sample)
222
+ allow(response).to receive(:with_values_from).and_return(response_with_replaced_values)
223
+
224
+ expect(subject).to eql(response_with_replaced_values)
225
+ end
226
+
227
+ end
228
+
208
229
  describe "#uri" do
209
230
 
210
231
  it "returns the uri model encapsulating the uri provided in the request body" do
data/spec/spec_helper.rb CHANGED
@@ -29,6 +29,7 @@ require_relative '../examples/configurer_with_file_responses'
29
29
  require_relative '../examples/configurer_with_stub_request_body'
30
30
  require_relative '../examples/configurer_with_parts'
31
31
  require_relative '../examples/configurer_with_endpoint_template'
32
+ require_relative '../examples/configurer_with_request_references'
32
33
  require_relative '../examples/authentication_service/configurer'
33
34
 
34
35
  HttpStub::Server::Daemon.log_dir = ::File.expand_path('../../tmp/log', __FILE__)
@@ -6,7 +6,7 @@ module HttpStub
6
6
  class << self
7
7
 
8
8
  def create
9
- HttpStub::Server::Request.new(create_rack_request)
9
+ HttpStub::Server::Request.create(create_rack_request)
10
10
  end
11
11
 
12
12
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_stub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.4
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dueckes
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-05-13 00:00:00.000000000 Z
15
+ date: 2016-05-27 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake
@@ -140,6 +140,20 @@ dependencies:
140
140
  - - "~>"
141
141
  - !ruby/object:Gem::Version
142
142
  version: '3.4'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rubocop
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '0.40'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '0.40'
143
157
  - !ruby/object:Gem::Dependency
144
158
  name: rspec
145
159
  requirement: !ruby/object:Gem::Requirement
@@ -155,19 +169,19 @@ dependencies:
155
169
  - !ruby/object:Gem::Version
156
170
  version: '3.4'
157
171
  - !ruby/object:Gem::Dependency
158
- name: simplecov
172
+ name: coderay
159
173
  requirement: !ruby/object:Gem::Requirement
160
174
  requirements:
161
175
  - - "~>"
162
176
  - !ruby/object:Gem::Version
163
- version: '0.11'
177
+ version: '1.1'
164
178
  type: :development
165
179
  prerelease: false
166
180
  version_requirements: !ruby/object:Gem::Requirement
167
181
  requirements:
168
182
  - - "~>"
169
183
  - !ruby/object:Gem::Version
170
- version: '0.11'
184
+ version: '1.1'
171
185
  - !ruby/object:Gem::Dependency
172
186
  name: rack-test
173
187
  requirement: !ruby/object:Gem::Requirement
@@ -197,33 +211,33 @@ dependencies:
197
211
  - !ruby/object:Gem::Version
198
212
  version: '1.8'
199
213
  - !ruby/object:Gem::Dependency
200
- name: nokogiri
214
+ name: httparty
201
215
  requirement: !ruby/object:Gem::Requirement
202
216
  requirements:
203
217
  - - "~>"
204
218
  - !ruby/object:Gem::Version
205
- version: '1.6'
219
+ version: '0.13'
206
220
  type: :development
207
221
  prerelease: false
208
222
  version_requirements: !ruby/object:Gem::Requirement
209
223
  requirements:
210
224
  - - "~>"
211
225
  - !ruby/object:Gem::Version
212
- version: '1.6'
226
+ version: '0.13'
213
227
  - !ruby/object:Gem::Dependency
214
- name: httparty
228
+ name: nokogiri
215
229
  requirement: !ruby/object:Gem::Requirement
216
230
  requirements:
217
231
  - - "~>"
218
232
  - !ruby/object:Gem::Version
219
- version: '0.13'
233
+ version: '1.6'
220
234
  type: :development
221
235
  prerelease: false
222
236
  version_requirements: !ruby/object:Gem::Requirement
223
237
  requirements:
224
238
  - - "~>"
225
239
  - !ruby/object:Gem::Version
226
- version: '0.13'
240
+ version: '1.6'
227
241
  - !ruby/object:Gem::Dependency
228
242
  name: wait_until
229
243
  requirement: !ruby/object:Gem::Requirement
@@ -238,6 +252,20 @@ dependencies:
238
252
  - - "~>"
239
253
  - !ruby/object:Gem::Version
240
254
  version: '0.3'
255
+ - !ruby/object:Gem::Dependency
256
+ name: simplecov
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - "~>"
260
+ - !ruby/object:Gem::Version
261
+ version: '0.11'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - "~>"
267
+ - !ruby/object:Gem::Version
268
+ version: '0.11'
241
269
  - !ruby/object:Gem::Dependency
242
270
  name: travis-lint
243
271
  requirement: !ruby/object:Gem::Requirement
@@ -276,6 +304,8 @@ files:
276
304
  - "./lib/http_stub/configurer.rb"
277
305
  - "./lib/http_stub/configurer/dsl/deprecated.rb"
278
306
  - "./lib/http_stub/configurer/dsl/endpoint_template.rb"
307
+ - "./lib/http_stub/configurer/dsl/request_attribute_referencer.rb"
308
+ - "./lib/http_stub/configurer/dsl/request_referencer.rb"
279
309
  - "./lib/http_stub/configurer/dsl/scenario_activator.rb"
280
310
  - "./lib/http_stub/configurer/dsl/scenario_builder.rb"
281
311
  - "./lib/http_stub/configurer/dsl/server.rb"
@@ -299,20 +329,23 @@ files:
299
329
  - "./lib/http_stub/configurer/server/facade.rb"
300
330
  - "./lib/http_stub/configurer/server/request_processor.rb"
301
331
  - "./lib/http_stub/extensions/core/hash.rb"
332
+ - "./lib/http_stub/extensions/core/hash/formatted.rb"
333
+ - "./lib/http_stub/extensions/core/hash/indifferent_and_insensitive_access.rb"
334
+ - "./lib/http_stub/extensions/core/hash/with_indifferent_and_insensitive_access.rb"
302
335
  - "./lib/http_stub/extensions/rack/handler.rb"
303
- - "./lib/http_stub/hash_with_indifferent_and_insensitive_access.rb"
304
336
  - "./lib/http_stub/rake/server_daemon_tasks.rb"
305
337
  - "./lib/http_stub/rake/server_tasks.rb"
306
338
  - "./lib/http_stub/rake/task_generators.rb"
307
339
  - "./lib/http_stub/server/application.rb"
308
340
  - "./lib/http_stub/server/application_helpers.rb"
309
341
  - "./lib/http_stub/server/daemon.rb"
310
- - "./lib/http_stub/server/formatted_hash.rb"
311
- - "./lib/http_stub/server/header_parser.rb"
312
342
  - "./lib/http_stub/server/public/favicon.ico"
313
343
  - "./lib/http_stub/server/public/jquery-2.2.1.min.js"
314
344
  - "./lib/http_stub/server/registry.rb"
315
345
  - "./lib/http_stub/server/request.rb"
346
+ - "./lib/http_stub/server/request/headers.rb"
347
+ - "./lib/http_stub/server/request/parameters.rb"
348
+ - "./lib/http_stub/server/request/request.rb"
316
349
  - "./lib/http_stub/server/response.rb"
317
350
  - "./lib/http_stub/server/response_pipeline.rb"
318
351
  - "./lib/http_stub/server/scenario.rb"
@@ -326,7 +359,7 @@ files:
326
359
  - "./lib/http_stub/server/stub/controller.rb"
327
360
  - "./lib/http_stub/server/stub/empty.rb"
328
361
  - "./lib/http_stub/server/stub/match/exact_value_matcher.rb"
329
- - "./lib/http_stub/server/stub/match/hash_with_string_value_matchers.rb"
362
+ - "./lib/http_stub/server/stub/match/hash_matcher.rb"
330
363
  - "./lib/http_stub/server/stub/match/omitted_value_matcher.rb"
331
364
  - "./lib/http_stub/server/stub/match/regexp_value_matcher.rb"
332
365
  - "./lib/http_stub/server/stub/match/result.rb"
@@ -336,13 +369,18 @@ files:
336
369
  - "./lib/http_stub/server/stub/match/rule/method.rb"
337
370
  - "./lib/http_stub/server/stub/match/rule/parameters.rb"
338
371
  - "./lib/http_stub/server/stub/match/rule/simple_body.rb"
372
+ - "./lib/http_stub/server/stub/match/rule/truthy.rb"
339
373
  - "./lib/http_stub/server/stub/match/rule/uri.rb"
340
374
  - "./lib/http_stub/server/stub/match/string_value_matcher.rb"
341
- - "./lib/http_stub/server/stub/match/truthy_matcher.rb"
342
375
  - "./lib/http_stub/server/stub/parser.rb"
343
376
  - "./lib/http_stub/server/stub/payload_file_consolidator.rb"
344
377
  - "./lib/http_stub/server/stub/registry.rb"
345
378
  - "./lib/http_stub/server/stub/response.rb"
379
+ - "./lib/http_stub/server/stub/response/attribute/body.rb"
380
+ - "./lib/http_stub/server/stub/response/attribute/headers.rb"
381
+ - "./lib/http_stub/server/stub/response/attribute/interpolator.rb"
382
+ - "./lib/http_stub/server/stub/response/attribute/interpolator/headers.rb"
383
+ - "./lib/http_stub/server/stub/response/attribute/interpolator/parameters.rb"
346
384
  - "./lib/http_stub/server/stub/response/base.rb"
347
385
  - "./lib/http_stub/server/stub/response/file.rb"
348
386
  - "./lib/http_stub/server/stub/response/text.rb"
@@ -370,6 +408,7 @@ files:
370
408
  - "./spec/acceptance/configurer_initialization_spec.rb"
371
409
  - "./spec/acceptance/configurer_part_spec.rb"
372
410
  - "./spec/acceptance/endpoint_template_spec.rb"
411
+ - "./spec/acceptance/request_reference_spec.rb"
373
412
  - "./spec/acceptance/scenario_spec.rb"
374
413
  - "./spec/acceptance/server_defaults_spec.rb"
375
414
  - "./spec/acceptance/stub_body_request_matching_spec.rb"
@@ -380,6 +419,8 @@ files:
380
419
  - "./spec/curl_samples.txt"
381
420
  - "./spec/lib/http_stub/configurer/dsl/deprecated_spec.rb"
382
421
  - "./spec/lib/http_stub/configurer/dsl/endpoint_template_spec.rb"
422
+ - "./spec/lib/http_stub/configurer/dsl/request_attribute_referencer_spec.rb"
423
+ - "./spec/lib/http_stub/configurer/dsl/request_referencer_spec.rb"
383
424
  - "./spec/lib/http_stub/configurer/dsl/scenario_activator_spec.rb"
384
425
  - "./spec/lib/http_stub/configurer/dsl/scenario_builder_spec.rb"
385
426
  - "./spec/lib/http_stub/configurer/dsl/server_spec.rb"
@@ -401,9 +442,11 @@ files:
401
442
  - "./spec/lib/http_stub/configurer/server/command_spec.rb"
402
443
  - "./spec/lib/http_stub/configurer/server/facade_spec.rb"
403
444
  - "./spec/lib/http_stub/configurer/server/request_processor_spec.rb"
445
+ - "./spec/lib/http_stub/extensions/core/hash/formatted_spec.rb"
446
+ - "./spec/lib/http_stub/extensions/core/hash/indifferent_and_insensitive_access_spec.rb"
447
+ - "./spec/lib/http_stub/extensions/core/hash/with_indifferent_and_insensitive_access_spec.rb"
404
448
  - "./spec/lib/http_stub/extensions/core/hash_spec.rb"
405
449
  - "./spec/lib/http_stub/extensions/rack/handler_spec.rb"
406
- - "./spec/lib/http_stub/hash_with_indifferent_and_insensitive_access_spec.rb"
407
450
  - "./spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb"
408
451
  - "./spec/lib/http_stub/rake/server_tasks_smoke_spec.rb"
409
452
  - "./spec/lib/http_stub/rake/server_tasks_spec.rb"
@@ -412,10 +455,11 @@ files:
412
455
  - "./spec/lib/http_stub/server/application_spec.rb"
413
456
  - "./spec/lib/http_stub/server/daemon_integration_spec.rb"
414
457
  - "./spec/lib/http_stub/server/daemon_spec.rb"
415
- - "./spec/lib/http_stub/server/formatted_hash_spec.rb"
416
- - "./spec/lib/http_stub/server/header_parser_spec.rb"
417
458
  - "./spec/lib/http_stub/server/payload_file_consolidator_spec.rb"
418
459
  - "./spec/lib/http_stub/server/registry_spec.rb"
460
+ - "./spec/lib/http_stub/server/request/headers_spec.rb"
461
+ - "./spec/lib/http_stub/server/request/parameters_spec.rb"
462
+ - "./spec/lib/http_stub/server/request/request_spec.rb"
419
463
  - "./spec/lib/http_stub/server/request_spec.rb"
420
464
  - "./spec/lib/http_stub/server/response_pipeline_spec.rb"
421
465
  - "./spec/lib/http_stub/server/response_spec.rb"
@@ -429,7 +473,7 @@ files:
429
473
  - "./spec/lib/http_stub/server/stub/controller_spec.rb"
430
474
  - "./spec/lib/http_stub/server/stub/empty_spec.rb"
431
475
  - "./spec/lib/http_stub/server/stub/match/exact_value_matcher_spec.rb"
432
- - "./spec/lib/http_stub/server/stub/match/hash_with_string_value_matchers_spec.rb"
476
+ - "./spec/lib/http_stub/server/stub/match/hash_matcher_spec.rb"
433
477
  - "./spec/lib/http_stub/server/stub/match/omitted_value_matcher_spec.rb"
434
478
  - "./spec/lib/http_stub/server/stub/match/regexp_value_matcher_spec.rb"
435
479
  - "./spec/lib/http_stub/server/stub/match/result_spec.rb"
@@ -439,12 +483,17 @@ files:
439
483
  - "./spec/lib/http_stub/server/stub/match/rule/method_spec.rb"
440
484
  - "./spec/lib/http_stub/server/stub/match/rule/parameters_spec.rb"
441
485
  - "./spec/lib/http_stub/server/stub/match/rule/simple_body_spec.rb"
486
+ - "./spec/lib/http_stub/server/stub/match/rule/truthy_spec.rb"
442
487
  - "./spec/lib/http_stub/server/stub/match/rule/uri_spec.rb"
443
488
  - "./spec/lib/http_stub/server/stub/match/string_value_matcher_spec.rb"
444
- - "./spec/lib/http_stub/server/stub/match/truthy_matcher_spec.rb"
445
489
  - "./spec/lib/http_stub/server/stub/parser_spec.rb"
446
490
  - "./spec/lib/http_stub/server/stub/registry_integration_spec.rb"
447
491
  - "./spec/lib/http_stub/server/stub/registry_spec.rb"
492
+ - "./spec/lib/http_stub/server/stub/response/attribute/body_spec.rb"
493
+ - "./spec/lib/http_stub/server/stub/response/attribute/headers_spec.rb"
494
+ - "./spec/lib/http_stub/server/stub/response/attribute/interpolator/headers_spec.rb"
495
+ - "./spec/lib/http_stub/server/stub/response/attribute/interpolator/parameters_spec.rb"
496
+ - "./spec/lib/http_stub/server/stub/response/attribute/interpolator_spec.rb"
448
497
  - "./spec/lib/http_stub/server/stub/response/base_spec.rb"
449
498
  - "./spec/lib/http_stub/server/stub/response/file_spec.rb"
450
499
  - "./spec/lib/http_stub/server/stub/response/text_spec.rb"
@@ -493,6 +542,7 @@ test_files:
493
542
  - "./spec/acceptance/configurer_initialization_spec.rb"
494
543
  - "./spec/acceptance/configurer_part_spec.rb"
495
544
  - "./spec/acceptance/endpoint_template_spec.rb"
545
+ - "./spec/acceptance/request_reference_spec.rb"
496
546
  - "./spec/acceptance/scenario_spec.rb"
497
547
  - "./spec/acceptance/server_defaults_spec.rb"
498
548
  - "./spec/acceptance/stub_body_request_matching_spec.rb"
@@ -503,6 +553,8 @@ test_files:
503
553
  - "./spec/curl_samples.txt"
504
554
  - "./spec/lib/http_stub/configurer/dsl/deprecated_spec.rb"
505
555
  - "./spec/lib/http_stub/configurer/dsl/endpoint_template_spec.rb"
556
+ - "./spec/lib/http_stub/configurer/dsl/request_attribute_referencer_spec.rb"
557
+ - "./spec/lib/http_stub/configurer/dsl/request_referencer_spec.rb"
506
558
  - "./spec/lib/http_stub/configurer/dsl/scenario_activator_spec.rb"
507
559
  - "./spec/lib/http_stub/configurer/dsl/scenario_builder_spec.rb"
508
560
  - "./spec/lib/http_stub/configurer/dsl/server_spec.rb"
@@ -524,9 +576,11 @@ test_files:
524
576
  - "./spec/lib/http_stub/configurer/server/command_spec.rb"
525
577
  - "./spec/lib/http_stub/configurer/server/facade_spec.rb"
526
578
  - "./spec/lib/http_stub/configurer/server/request_processor_spec.rb"
579
+ - "./spec/lib/http_stub/extensions/core/hash/formatted_spec.rb"
580
+ - "./spec/lib/http_stub/extensions/core/hash/indifferent_and_insensitive_access_spec.rb"
581
+ - "./spec/lib/http_stub/extensions/core/hash/with_indifferent_and_insensitive_access_spec.rb"
527
582
  - "./spec/lib/http_stub/extensions/core/hash_spec.rb"
528
583
  - "./spec/lib/http_stub/extensions/rack/handler_spec.rb"
529
- - "./spec/lib/http_stub/hash_with_indifferent_and_insensitive_access_spec.rb"
530
584
  - "./spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb"
531
585
  - "./spec/lib/http_stub/rake/server_tasks_smoke_spec.rb"
532
586
  - "./spec/lib/http_stub/rake/server_tasks_spec.rb"
@@ -535,10 +589,11 @@ test_files:
535
589
  - "./spec/lib/http_stub/server/application_spec.rb"
536
590
  - "./spec/lib/http_stub/server/daemon_integration_spec.rb"
537
591
  - "./spec/lib/http_stub/server/daemon_spec.rb"
538
- - "./spec/lib/http_stub/server/formatted_hash_spec.rb"
539
- - "./spec/lib/http_stub/server/header_parser_spec.rb"
540
592
  - "./spec/lib/http_stub/server/payload_file_consolidator_spec.rb"
541
593
  - "./spec/lib/http_stub/server/registry_spec.rb"
594
+ - "./spec/lib/http_stub/server/request/headers_spec.rb"
595
+ - "./spec/lib/http_stub/server/request/parameters_spec.rb"
596
+ - "./spec/lib/http_stub/server/request/request_spec.rb"
542
597
  - "./spec/lib/http_stub/server/request_spec.rb"
543
598
  - "./spec/lib/http_stub/server/response_pipeline_spec.rb"
544
599
  - "./spec/lib/http_stub/server/response_spec.rb"
@@ -552,7 +607,7 @@ test_files:
552
607
  - "./spec/lib/http_stub/server/stub/controller_spec.rb"
553
608
  - "./spec/lib/http_stub/server/stub/empty_spec.rb"
554
609
  - "./spec/lib/http_stub/server/stub/match/exact_value_matcher_spec.rb"
555
- - "./spec/lib/http_stub/server/stub/match/hash_with_string_value_matchers_spec.rb"
610
+ - "./spec/lib/http_stub/server/stub/match/hash_matcher_spec.rb"
556
611
  - "./spec/lib/http_stub/server/stub/match/omitted_value_matcher_spec.rb"
557
612
  - "./spec/lib/http_stub/server/stub/match/regexp_value_matcher_spec.rb"
558
613
  - "./spec/lib/http_stub/server/stub/match/result_spec.rb"
@@ -562,12 +617,17 @@ test_files:
562
617
  - "./spec/lib/http_stub/server/stub/match/rule/method_spec.rb"
563
618
  - "./spec/lib/http_stub/server/stub/match/rule/parameters_spec.rb"
564
619
  - "./spec/lib/http_stub/server/stub/match/rule/simple_body_spec.rb"
620
+ - "./spec/lib/http_stub/server/stub/match/rule/truthy_spec.rb"
565
621
  - "./spec/lib/http_stub/server/stub/match/rule/uri_spec.rb"
566
622
  - "./spec/lib/http_stub/server/stub/match/string_value_matcher_spec.rb"
567
- - "./spec/lib/http_stub/server/stub/match/truthy_matcher_spec.rb"
568
623
  - "./spec/lib/http_stub/server/stub/parser_spec.rb"
569
624
  - "./spec/lib/http_stub/server/stub/registry_integration_spec.rb"
570
625
  - "./spec/lib/http_stub/server/stub/registry_spec.rb"
626
+ - "./spec/lib/http_stub/server/stub/response/attribute/body_spec.rb"
627
+ - "./spec/lib/http_stub/server/stub/response/attribute/headers_spec.rb"
628
+ - "./spec/lib/http_stub/server/stub/response/attribute/interpolator/headers_spec.rb"
629
+ - "./spec/lib/http_stub/server/stub/response/attribute/interpolator/parameters_spec.rb"
630
+ - "./spec/lib/http_stub/server/stub/response/attribute/interpolator_spec.rb"
571
631
  - "./spec/lib/http_stub/server/stub/response/base_spec.rb"
572
632
  - "./spec/lib/http_stub/server/stub/response/file_spec.rb"
573
633
  - "./spec/lib/http_stub/server/stub/response/text_spec.rb"
@@ -1,18 +0,0 @@
1
- module HttpStub
2
-
3
- class HashWithIndifferentAndInsensitiveAccess < HashWithIndifferentAccess
4
-
5
- def [](key)
6
- self.key?(key) ? super : insensitive_find(key)
7
- end
8
-
9
- private
10
-
11
- def insensitive_find(key)
12
- entry = self.find { |entry_key, _entry_value| entry_key.to_s.downcase == key.to_s.downcase }
13
- entry ? entry[1] : nil
14
- end
15
-
16
- end
17
-
18
- end
@@ -1,18 +0,0 @@
1
- module HttpStub
2
- module Server
3
-
4
- class FormattedHash < Hash
5
-
6
- def initialize(hash, key_value_delimiter)
7
- self.merge!(hash || {})
8
- @key_value_delimiter = key_value_delimiter
9
- end
10
-
11
- def to_s
12
- self.map { |key_and_value| key_and_value.map(&:to_s).join(@key_value_delimiter) }.join(", ")
13
- end
14
-
15
- end
16
-
17
- end
18
- end
@@ -1,17 +0,0 @@
1
- module HttpStub
2
- module Server
3
-
4
- class HeaderParser
5
-
6
- def self.parse(request)
7
- request.env.reduce(HttpStub::Server::FormattedHash.new({}, ":")) do |result, element|
8
- match = element[0].match(/^(?:HTTP_)?([A-Z0-9_]+)$/)
9
- result[match[1]] = element[1] if match
10
- result
11
- end
12
- end
13
-
14
- end
15
-
16
- end
17
- end