http_stub 0.13.5 → 0.14.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/lib/http_stub.rb +13 -4
  3. data/lib/http_stub/configurer.rb +9 -63
  4. data/lib/http_stub/configurer/deprecated_dsl.rb +57 -0
  5. data/lib/http_stub/configurer/request/stub.rb +7 -13
  6. data/lib/http_stub/configurer/request/stub_activator.rb +8 -4
  7. data/lib/http_stub/configurer/request/stub_activator_payload_builder.rb +25 -0
  8. data/lib/http_stub/configurer/request/stub_payload_builder.rb +44 -0
  9. data/lib/http_stub/configurer/server/buffered_command_processor.rb +24 -0
  10. data/lib/http_stub/configurer/server/command.rb +18 -0
  11. data/lib/http_stub/configurer/server/command_processor.rb +38 -0
  12. data/lib/http_stub/configurer/server/dsl.rb +56 -0
  13. data/lib/http_stub/configurer/server/facade.rb +57 -0
  14. data/lib/http_stub/configurer/server/request_processor.rb +30 -0
  15. data/lib/http_stub/models/registry.rb +4 -0
  16. data/lib/http_stub/models/stub.rb +2 -1
  17. data/lib/http_stub/models/stub_registry.rb +29 -0
  18. data/lib/http_stub/models/stub_triggers.rb +23 -0
  19. data/lib/http_stub/rake/server_tasks.rb +2 -5
  20. data/lib/http_stub/server.rb +14 -4
  21. data/lib/http_stub/version.rb +1 -1
  22. data/lib/http_stub/views/_stub.haml +7 -0
  23. data/spec/lib/http_stub/configurer/deprecated_dsl_spec.rb +232 -0
  24. data/spec/lib/http_stub/configurer/request/controllable_value_spec.rb +8 -8
  25. data/spec/lib/http_stub/configurer/request/omittable_spec.rb +8 -8
  26. data/spec/lib/http_stub/configurer/request/regexpable_spec.rb +14 -14
  27. data/spec/lib/http_stub/configurer/request/stub_activator_payload_builder_spec.rb +74 -0
  28. data/spec/lib/http_stub/configurer/request/stub_activator_spec.rb +19 -26
  29. data/spec/lib/http_stub/configurer/request/stub_payload_builder_spec.rb +203 -0
  30. data/spec/lib/http_stub/configurer/request/stub_spec.rb +18 -157
  31. data/spec/lib/http_stub/configurer/server/buffered_command_processor_spec.rb +35 -0
  32. data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +62 -0
  33. data/spec/lib/http_stub/configurer/server/command_spec.rb +25 -0
  34. data/spec/lib/http_stub/configurer/server/dsl_spec.rb +241 -0
  35. data/spec/lib/http_stub/configurer/server/facade_spec.rb +253 -0
  36. data/spec/lib/http_stub/configurer/server/request_processor_spec.rb +99 -0
  37. data/spec/lib/http_stub/configurer_integration_spec.rb +172 -122
  38. data/spec/lib/http_stub/configurer_spec.rb +4 -4
  39. data/spec/lib/http_stub/controllers/stub_activator_controller_spec.rb +25 -25
  40. data/spec/lib/http_stub/controllers/stub_controller_spec.rb +22 -22
  41. data/spec/lib/http_stub/hash_extensions_spec.rb +24 -24
  42. data/spec/lib/http_stub/models/exact_value_matcher_spec.rb +4 -4
  43. data/spec/lib/http_stub/models/hash_with_string_value_matchers_spec.rb +29 -29
  44. data/spec/lib/http_stub/models/headers_spec.rb +10 -10
  45. data/spec/lib/http_stub/models/omitted_value_matcher_spec.rb +8 -8
  46. data/spec/lib/http_stub/models/regexp_value_matcher_spec.rb +6 -6
  47. data/spec/lib/http_stub/models/registry_spec.rb +71 -28
  48. data/spec/lib/http_stub/models/request_header_parser_spec.rb +4 -4
  49. data/spec/lib/http_stub/models/request_pipeline_spec.rb +2 -2
  50. data/spec/lib/http_stub/models/response_spec.rb +38 -38
  51. data/spec/lib/http_stub/models/string_value_matcher_spec.rb +25 -25
  52. data/spec/lib/http_stub/models/stub_activator_spec.rb +15 -15
  53. data/spec/lib/http_stub/models/stub_headers_spec.rb +18 -18
  54. data/spec/lib/http_stub/models/stub_parameters_spec.rb +16 -16
  55. data/spec/lib/http_stub/models/stub_registry_integration_spec.rb +62 -0
  56. data/spec/lib/http_stub/models/stub_registry_spec.rb +152 -0
  57. data/spec/lib/http_stub/models/stub_spec.rb +67 -43
  58. data/spec/lib/http_stub/models/stub_triggers_spec.rb +64 -0
  59. data/spec/lib/http_stub/models/stub_uri_spec.rb +9 -9
  60. data/spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb +7 -7
  61. data/spec/lib/http_stub/rake/server_tasks_smoke_spec.rb +5 -5
  62. data/spec/lib/http_stub/rake/server_tasks_spec.rb +17 -15
  63. data/spec/lib/http_stub/server_daemon_spec.rb +16 -16
  64. data/spec/lib/http_stub/server_integration_spec.rb +112 -65
  65. data/spec/lib/http_stub/server_spec.rb +134 -96
  66. data/spec/spec_helper.rb +1 -1
  67. data/spec/support/http_stub/configurer/request/stub_payload_builder_shared_context.rb +27 -0
  68. data/spec/support/server_integration.rb +2 -2
  69. metadata +69 -30
  70. data/lib/http_stub/configurer/command.rb +0 -26
  71. data/lib/http_stub/configurer/command_processor.rb +0 -36
  72. data/lib/http_stub/configurer/impatient_command_chain.rb +0 -13
  73. data/lib/http_stub/configurer/patient_command_chain.rb +0 -25
  74. data/spec/lib/http_stub/configurer/command_processor_integration_spec.rb +0 -63
  75. data/spec/lib/http_stub/configurer/command_spec.rb +0 -40
  76. data/spec/lib/http_stub/configurer/impatient_command_chain_spec.rb +0 -17
  77. data/spec/lib/http_stub/configurer/patient_command_chain_spec.rb +0 -73
data/spec/spec_helper.rb CHANGED
@@ -4,7 +4,7 @@ Bundler.require(:development)
4
4
  SimpleCov.start do
5
5
  add_filter "/spec/"
6
6
  add_filter "/vendor/"
7
- minimum_coverage 99.2
7
+ minimum_coverage 99.4
8
8
  refuse_coverage_drop
9
9
  end if ENV["coverage"]
10
10
 
@@ -0,0 +1,27 @@
1
+ shared_context "stub payload builder arguments" do
2
+
3
+ let(:uri) { "/some/uri" }
4
+ let(:stub_method) { "Some Method" }
5
+ let(:request_headers) { { request_header_name: "value" } }
6
+ let(:request_parameters) { { parameter_name: "value" } }
7
+ let(:request_options) do
8
+ {
9
+ method: stub_method,
10
+ headers: request_headers,
11
+ parameters: request_parameters
12
+ }
13
+ end
14
+ let(:response_status) { 500 }
15
+ let(:response_headers) { { response_header_name: "value" } }
16
+ let(:response_body) { "Some body" }
17
+ let(:response_delay_in_seconds) { 7 }
18
+ let(:response_options) do
19
+ {
20
+ status: response_status,
21
+ headers: response_headers,
22
+ body: response_body,
23
+ delay_in_seconds: response_delay_in_seconds
24
+ }
25
+ end
26
+
27
+ end
@@ -1,11 +1,11 @@
1
1
  shared_context "server integration" do
2
2
 
3
- before(:all) do
3
+ before(:context) do
4
4
  @pid = Process.spawn("rake example_server:start:foreground --trace")
5
5
  ::Wait.until!("http stub server started") { Net::HTTP.get_response(server_host, "/", server_port) }
6
6
  end
7
7
 
8
- after(:all) { Process.kill(9, @pid) }
8
+ after(:context) { Process.kill(9, @pid) }
9
9
 
10
10
  def server_host
11
11
  "localhost"
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.13.5
4
+ version: 0.14.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-07 00:00:00.000000000 Z
12
+ date: 2014-10-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '10.1'
20
+ version: '10.3'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '10.1'
27
+ version: '10.3'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: sinatra
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '3.2'
76
+ version: '3.4'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '3.2'
83
+ version: '3.4'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: http_server_manager
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -95,62 +95,76 @@ dependencies:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0.4'
98
+ - !ruby/object:Gem::Dependency
99
+ name: activesupport
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '4.0'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '4.0'
98
112
  - !ruby/object:Gem::Dependency
99
113
  name: travis-lint
100
114
  requirement: !ruby/object:Gem::Requirement
101
115
  requirements:
102
116
  - - "~>"
103
117
  - !ruby/object:Gem::Version
104
- version: '1.7'
118
+ version: '2.0'
105
119
  type: :development
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
108
122
  requirements:
109
123
  - - "~>"
110
124
  - !ruby/object:Gem::Version
111
- version: '1.7'
125
+ version: '2.0'
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: metric_fu
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
130
  - - "~>"
117
131
  - !ruby/object:Gem::Version
118
- version: '4.7'
132
+ version: '4.11'
119
133
  type: :development
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
136
  requirements:
123
137
  - - "~>"
124
138
  - !ruby/object:Gem::Version
125
- version: '4.7'
139
+ version: '4.11'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: rspec
128
142
  requirement: !ruby/object:Gem::Requirement
129
143
  requirements:
130
144
  - - "~>"
131
145
  - !ruby/object:Gem::Version
132
- version: '2.14'
146
+ version: '3.1'
133
147
  type: :development
134
148
  prerelease: false
135
149
  version_requirements: !ruby/object:Gem::Requirement
136
150
  requirements:
137
151
  - - "~>"
138
152
  - !ruby/object:Gem::Version
139
- version: '2.14'
153
+ version: '3.1'
140
154
  - !ruby/object:Gem::Dependency
141
155
  name: simplecov
142
156
  requirement: !ruby/object:Gem::Requirement
143
157
  requirements:
144
158
  - - "~>"
145
159
  - !ruby/object:Gem::Version
146
- version: '0.8'
160
+ version: '0.9'
147
161
  type: :development
148
162
  prerelease: false
149
163
  version_requirements: !ruby/object:Gem::Requirement
150
164
  requirements:
151
165
  - - "~>"
152
166
  - !ruby/object:Gem::Version
153
- version: '0.8'
167
+ version: '0.9'
154
168
  - !ruby/object:Gem::Dependency
155
169
  name: rack-test
156
170
  requirement: !ruby/object:Gem::Requirement
@@ -185,14 +199,14 @@ dependencies:
185
199
  requirements:
186
200
  - - "~>"
187
201
  - !ruby/object:Gem::Version
188
- version: '0.12'
202
+ version: '0.13'
189
203
  type: :development
190
204
  prerelease: false
191
205
  version_requirements: !ruby/object:Gem::Requirement
192
206
  requirements:
193
207
  - - "~>"
194
208
  - !ruby/object:Gem::Version
195
- version: '0.12'
209
+ version: '0.13'
196
210
  - !ruby/object:Gem::Dependency
197
211
  name: wait_until
198
212
  requirement: !ruby/object:Gem::Requirement
@@ -229,15 +243,20 @@ extra_rdoc_files: []
229
243
  files:
230
244
  - "./lib/http_stub.rb"
231
245
  - "./lib/http_stub/configurer.rb"
232
- - "./lib/http_stub/configurer/command.rb"
233
- - "./lib/http_stub/configurer/command_processor.rb"
234
- - "./lib/http_stub/configurer/impatient_command_chain.rb"
235
- - "./lib/http_stub/configurer/patient_command_chain.rb"
246
+ - "./lib/http_stub/configurer/deprecated_dsl.rb"
236
247
  - "./lib/http_stub/configurer/request/controllable_value.rb"
237
248
  - "./lib/http_stub/configurer/request/omittable.rb"
238
249
  - "./lib/http_stub/configurer/request/regexpable.rb"
239
250
  - "./lib/http_stub/configurer/request/stub.rb"
240
251
  - "./lib/http_stub/configurer/request/stub_activator.rb"
252
+ - "./lib/http_stub/configurer/request/stub_activator_payload_builder.rb"
253
+ - "./lib/http_stub/configurer/request/stub_payload_builder.rb"
254
+ - "./lib/http_stub/configurer/server/buffered_command_processor.rb"
255
+ - "./lib/http_stub/configurer/server/command.rb"
256
+ - "./lib/http_stub/configurer/server/command_processor.rb"
257
+ - "./lib/http_stub/configurer/server/dsl.rb"
258
+ - "./lib/http_stub/configurer/server/facade.rb"
259
+ - "./lib/http_stub/configurer/server/request_processor.rb"
241
260
  - "./lib/http_stub/controllers/stub_activator_controller.rb"
242
261
  - "./lib/http_stub/controllers/stub_controller.rb"
243
262
  - "./lib/http_stub/hash_extensions.rb"
@@ -255,6 +274,8 @@ files:
255
274
  - "./lib/http_stub/models/stub_activator.rb"
256
275
  - "./lib/http_stub/models/stub_headers.rb"
257
276
  - "./lib/http_stub/models/stub_parameters.rb"
277
+ - "./lib/http_stub/models/stub_registry.rb"
278
+ - "./lib/http_stub/models/stub_triggers.rb"
258
279
  - "./lib/http_stub/models/stub_uri.rb"
259
280
  - "./lib/http_stub/rake/server_daemon_tasks.rb"
260
281
  - "./lib/http_stub/rake/server_tasks.rb"
@@ -268,15 +289,20 @@ files:
268
289
  - "./lib/http_stub/views/stub_activators.haml"
269
290
  - "./lib/http_stub/views/stubs.haml"
270
291
  - "./spec/curl_samples.txt"
271
- - "./spec/lib/http_stub/configurer/command_processor_integration_spec.rb"
272
- - "./spec/lib/http_stub/configurer/command_spec.rb"
273
- - "./spec/lib/http_stub/configurer/impatient_command_chain_spec.rb"
274
- - "./spec/lib/http_stub/configurer/patient_command_chain_spec.rb"
292
+ - "./spec/lib/http_stub/configurer/deprecated_dsl_spec.rb"
275
293
  - "./spec/lib/http_stub/configurer/request/controllable_value_spec.rb"
276
294
  - "./spec/lib/http_stub/configurer/request/omittable_spec.rb"
277
295
  - "./spec/lib/http_stub/configurer/request/regexpable_spec.rb"
296
+ - "./spec/lib/http_stub/configurer/request/stub_activator_payload_builder_spec.rb"
278
297
  - "./spec/lib/http_stub/configurer/request/stub_activator_spec.rb"
298
+ - "./spec/lib/http_stub/configurer/request/stub_payload_builder_spec.rb"
279
299
  - "./spec/lib/http_stub/configurer/request/stub_spec.rb"
300
+ - "./spec/lib/http_stub/configurer/server/buffered_command_processor_spec.rb"
301
+ - "./spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb"
302
+ - "./spec/lib/http_stub/configurer/server/command_spec.rb"
303
+ - "./spec/lib/http_stub/configurer/server/dsl_spec.rb"
304
+ - "./spec/lib/http_stub/configurer/server/facade_spec.rb"
305
+ - "./spec/lib/http_stub/configurer/server/request_processor_spec.rb"
280
306
  - "./spec/lib/http_stub/configurer_integration_spec.rb"
281
307
  - "./spec/lib/http_stub/configurer_spec.rb"
282
308
  - "./spec/lib/http_stub/controllers/stub_activator_controller_spec.rb"
@@ -295,7 +321,10 @@ files:
295
321
  - "./spec/lib/http_stub/models/stub_activator_spec.rb"
296
322
  - "./spec/lib/http_stub/models/stub_headers_spec.rb"
297
323
  - "./spec/lib/http_stub/models/stub_parameters_spec.rb"
324
+ - "./spec/lib/http_stub/models/stub_registry_integration_spec.rb"
325
+ - "./spec/lib/http_stub/models/stub_registry_spec.rb"
298
326
  - "./spec/lib/http_stub/models/stub_spec.rb"
327
+ - "./spec/lib/http_stub/models/stub_triggers_spec.rb"
299
328
  - "./spec/lib/http_stub/models/stub_uri_spec.rb"
300
329
  - "./spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb"
301
330
  - "./spec/lib/http_stub/rake/server_tasks_smoke_spec.rb"
@@ -305,6 +334,7 @@ files:
305
334
  - "./spec/lib/http_stub/server_integration_spec.rb"
306
335
  - "./spec/lib/http_stub/server_spec.rb"
307
336
  - "./spec/spec_helper.rb"
337
+ - "./spec/support/http_stub/configurer/request/stub_payload_builder_shared_context.rb"
308
338
  - "./spec/support/server_integration.rb"
309
339
  homepage: http://github.com/MYOB-Technology/http_stub
310
340
  licenses:
@@ -321,9 +351,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
351
  version: 1.9.3
322
352
  required_rubygems_version: !ruby/object:Gem::Requirement
323
353
  requirements:
324
- - - ">="
354
+ - - ">"
325
355
  - !ruby/object:Gem::Version
326
- version: '0'
356
+ version: 1.3.1
327
357
  requirements: []
328
358
  rubyforge_project: http_stub
329
359
  rubygems_version: 2.2.2
@@ -332,15 +362,20 @@ specification_version: 4
332
362
  summary: A HTTP Server replaying configured stub responses.
333
363
  test_files:
334
364
  - "./spec/curl_samples.txt"
335
- - "./spec/lib/http_stub/configurer/command_processor_integration_spec.rb"
336
- - "./spec/lib/http_stub/configurer/command_spec.rb"
337
- - "./spec/lib/http_stub/configurer/impatient_command_chain_spec.rb"
338
- - "./spec/lib/http_stub/configurer/patient_command_chain_spec.rb"
365
+ - "./spec/lib/http_stub/configurer/deprecated_dsl_spec.rb"
339
366
  - "./spec/lib/http_stub/configurer/request/controllable_value_spec.rb"
340
367
  - "./spec/lib/http_stub/configurer/request/omittable_spec.rb"
341
368
  - "./spec/lib/http_stub/configurer/request/regexpable_spec.rb"
369
+ - "./spec/lib/http_stub/configurer/request/stub_activator_payload_builder_spec.rb"
342
370
  - "./spec/lib/http_stub/configurer/request/stub_activator_spec.rb"
371
+ - "./spec/lib/http_stub/configurer/request/stub_payload_builder_spec.rb"
343
372
  - "./spec/lib/http_stub/configurer/request/stub_spec.rb"
373
+ - "./spec/lib/http_stub/configurer/server/buffered_command_processor_spec.rb"
374
+ - "./spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb"
375
+ - "./spec/lib/http_stub/configurer/server/command_spec.rb"
376
+ - "./spec/lib/http_stub/configurer/server/dsl_spec.rb"
377
+ - "./spec/lib/http_stub/configurer/server/facade_spec.rb"
378
+ - "./spec/lib/http_stub/configurer/server/request_processor_spec.rb"
344
379
  - "./spec/lib/http_stub/configurer_integration_spec.rb"
345
380
  - "./spec/lib/http_stub/configurer_spec.rb"
346
381
  - "./spec/lib/http_stub/controllers/stub_activator_controller_spec.rb"
@@ -359,7 +394,10 @@ test_files:
359
394
  - "./spec/lib/http_stub/models/stub_activator_spec.rb"
360
395
  - "./spec/lib/http_stub/models/stub_headers_spec.rb"
361
396
  - "./spec/lib/http_stub/models/stub_parameters_spec.rb"
397
+ - "./spec/lib/http_stub/models/stub_registry_integration_spec.rb"
398
+ - "./spec/lib/http_stub/models/stub_registry_spec.rb"
362
399
  - "./spec/lib/http_stub/models/stub_spec.rb"
400
+ - "./spec/lib/http_stub/models/stub_triggers_spec.rb"
363
401
  - "./spec/lib/http_stub/models/stub_uri_spec.rb"
364
402
  - "./spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb"
365
403
  - "./spec/lib/http_stub/rake/server_tasks_smoke_spec.rb"
@@ -369,4 +407,5 @@ test_files:
369
407
  - "./spec/lib/http_stub/server_integration_spec.rb"
370
408
  - "./spec/lib/http_stub/server_spec.rb"
371
409
  - "./spec/spec_helper.rb"
410
+ - "./spec/support/http_stub/configurer/request/stub_payload_builder_shared_context.rb"
372
411
  - "./spec/support/server_integration.rb"
@@ -1,26 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
-
4
- class Command
5
-
6
- attr_reader :request, :description
7
-
8
- def initialize(args)
9
- @processor = args[:processor]
10
- @request = args[:request]
11
- @description = args[:description]
12
- @resetable_flag = !!args[:resetable]
13
- end
14
-
15
- def execute
16
- @processor.process(self)
17
- end
18
-
19
- def resetable?
20
- @resetable_flag
21
- end
22
-
23
- end
24
-
25
- end
26
- end
@@ -1,36 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
-
4
- class CommandProcessor
5
-
6
- def initialize(configurer)
7
- @configurer = configurer
8
- end
9
-
10
- def process(command)
11
- begin
12
- response = Net::HTTP.start(host, port) { |http| http.request(command.request) }
13
- raise "#{error_message_prefix(command)}: #{response.code} #{response.message}" unless response.code == "200"
14
- rescue Exception => exc
15
- raise "#{error_message_prefix(command)}: #{exc}"
16
- end
17
- end
18
-
19
- private
20
-
21
- def host
22
- @configurer.get_host
23
- end
24
-
25
- def port
26
- @configurer.get_port
27
- end
28
-
29
- def error_message_prefix(command)
30
- "Error occurred #{command.description} whilst configuring #{@configurer.get_base_uri}: "
31
- end
32
-
33
- end
34
-
35
- end
36
- end
@@ -1,13 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
-
4
- class ImpatientCommandChain
5
-
6
- def <<(command)
7
- command.execute()
8
- end
9
-
10
- end
11
-
12
- end
13
- end
@@ -1,25 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
-
4
- class PatientCommandChain
5
-
6
- def initialize(commands=[])
7
- @commands = commands
8
- end
9
-
10
- def <<(command)
11
- @commands << command
12
- end
13
-
14
- def execute
15
- @commands.each(&:execute)
16
- end
17
-
18
- def filter(&block)
19
- HttpStub::Configurer::PatientCommandChain.new(@commands.select(&block))
20
- end
21
-
22
- end
23
-
24
- end
25
- end
@@ -1,63 +0,0 @@
1
- describe HttpStub::Configurer::CommandProcessor do
2
-
3
- let(:command) { HttpStub::Configurer::Command.new(request: request, description: "performing an operation") }
4
- let(:server_base_uri) { "http://localhost:8001" }
5
- let(:configurer) do
6
- double(HttpStub::Configurer, get_base_uri: server_base_uri, get_host: "localhost", get_port: 8001)
7
- end
8
-
9
- let(:command_processor) { HttpStub::Configurer::CommandProcessor.new(configurer) }
10
-
11
- context "when the server is running" do
12
-
13
- include_context "server integration"
14
-
15
- describe "#process" do
16
-
17
- describe "when the server responds with a 200 response" do
18
-
19
- let(:request) { Net::HTTP::Get.new("/stubs") }
20
-
21
- it "should execute without error" do
22
- lambda { command_processor.process(command) }.should_not raise_error
23
- end
24
-
25
- end
26
-
27
- describe "when the server responds with a non-200 response" do
28
-
29
- let(:request) { Net::HTTP::Get.new("/causes_error") }
30
-
31
- it "should raise an exception that includes the server base URI" do
32
- lambda { command_processor.process(command) }.should raise_error(/#{server_base_uri}/)
33
- end
34
-
35
- it "should raise an exception that includes the commands description" do
36
- lambda { command_processor.process(command) }.should raise_error(/performing an operation/)
37
- end
38
-
39
- end
40
-
41
- end
42
-
43
- end
44
-
45
- context "when the server is unavailable" do
46
-
47
- let(:request) { Net::HTTP::Get.new("/does/not/exist") }
48
-
49
- describe "#process" do
50
-
51
- it "should raise an exception that includes the server base URI" do
52
- lambda { command_processor.process(command) }.should raise_error(/#{server_base_uri}/)
53
- end
54
-
55
- it "should raise an exception that includes the commands description" do
56
- lambda { command_processor.process(command) }.should raise_error(/performing an operation/)
57
- end
58
-
59
- end
60
-
61
- end
62
-
63
- end