http_stub 0.5.5 → 0.5.6

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.
data/lib/http_stub.rb CHANGED
@@ -23,6 +23,6 @@ require File.expand_path('../http_stub/server', __FILE__)
23
23
  require File.expand_path('../http_stub/configurer/stub_request', __FILE__)
24
24
  require File.expand_path('../http_stub/configurer/stub_activator_request', __FILE__)
25
25
  require File.expand_path('../http_stub/configurer/command', __FILE__)
26
- require File.expand_path('../http_stub/configurer/buffered_command_processor', __FILE__)
27
- require File.expand_path('../http_stub/configurer/immediate_command_processor', __FILE__)
26
+ require File.expand_path('../http_stub/configurer/pre_initialize_command_processor', __FILE__)
27
+ require File.expand_path('../http_stub/configurer/post_initialize_command_processor', __FILE__)
28
28
  require File.expand_path('../http_stub/configurer', __FILE__)
@@ -36,8 +36,8 @@ module HttpStub
36
36
  alias_method :activate_stub!, :activate!
37
37
 
38
38
  def initialize!
39
- processor.flush
40
- @processor = HttpStub::Configurer::ImmediateCommandProcessor.new
39
+ processor.replay()
40
+ @processor = HttpStub::Configurer::PostInitializeCommandProcessor.new(processor)
41
41
  end
42
42
 
43
43
  def clear_activators!
@@ -57,7 +57,7 @@ module HttpStub
57
57
  end
58
58
 
59
59
  def processor
60
- @processor ||= HttpStub::Configurer::BufferedCommandProcessor.new
60
+ @processor ||= HttpStub::Configurer::PreInitializeCommandProcessor.new
61
61
  end
62
62
 
63
63
  end
@@ -0,0 +1,21 @@
1
+ module HttpStub
2
+ module Configurer
3
+
4
+ class PostInitializeCommandProcessor
5
+
6
+ def initialize(pre_initialize_processor)
7
+ @pre_initialize_processor = pre_initialize_processor
8
+ end
9
+
10
+ def process(command)
11
+ command.execute()
12
+ end
13
+
14
+ def replay
15
+ @pre_initialize_processor.replay()
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module HttpStub
2
+ module Configurer
3
+
4
+ class PreInitializeCommandProcessor
5
+
6
+ def initialize
7
+ @cache = []
8
+ end
9
+
10
+ def process(command)
11
+ @cache << command
12
+ end
13
+
14
+ def replay
15
+ @cache.each { |command| command.execute() }
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module HttpStub
2
- VERSION = "0.5.5"
2
+ VERSION = "0.5.6"
3
3
  end
@@ -0,0 +1,34 @@
1
+ describe HttpStub::Configurer::PostInitializeCommandProcessor do
2
+
3
+ let(:command) { double(HttpStub::Configurer::Command).as_null_object }
4
+
5
+ let(:pre_processor) { double(HttpStub::Configurer::PreInitializeCommandProcessor) }
6
+ let(:post_processor) { HttpStub::Configurer::PostInitializeCommandProcessor.new(pre_processor) }
7
+
8
+ describe "#process" do
9
+
10
+ it "should immediately execute the provided command" do
11
+ command.should_receive(:execute)
12
+
13
+ post_processor.process(command)
14
+ end
15
+
16
+ it "should not execute the command via the pre initialize command processor" do
17
+ pre_processor.should_not_receive(:execute)
18
+
19
+ post_processor.process(command)
20
+ end
21
+
22
+ end
23
+
24
+ describe "#replay" do
25
+
26
+ it "should replay any commands known by the pre initialize command processor" do
27
+ pre_processor.should_receive(:replay)
28
+
29
+ post_processor.replay
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,47 @@
1
+ describe HttpStub::Configurer::PreInitializeCommandProcessor do
2
+
3
+ let(:processor) { HttpStub::Configurer::PreInitializeCommandProcessor.new }
4
+
5
+ describe "#replay" do
6
+
7
+ describe "when a number of commands have been processed" do
8
+
9
+ let(:commands) do
10
+ (1..3).map { |i| double("Command#{i}").as_null_object }
11
+ end
12
+
13
+ before(:each) do
14
+ commands.each { |command| processor.process(command) }
15
+ end
16
+
17
+ it "should execute the cached commands" do
18
+ commands.each { |command| command.should_receive(:execute) }
19
+
20
+ processor.replay()
21
+ end
22
+
23
+ describe "and those commands have already been replayed" do
24
+
25
+ before(:each) { processor.replay() }
26
+
27
+ it "should re-replay those commands" do
28
+ commands.each { |command| command.should_receive(:execute) }
29
+
30
+ processor.replay()
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+
37
+ describe "when no commands have been processed" do
38
+
39
+ it "should execute without error" do
40
+ lambda { processor.replay() }.should_not raise_error
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+
47
+ end
@@ -43,7 +43,7 @@ describe HttpStub::Configurer, "when the server is running" do
43
43
 
44
44
  end
45
45
 
46
- describe "and an class stub is defined" do
46
+ describe "and a class stub is defined" do
47
47
 
48
48
  let(:configurer) { HttpStub::Examples::ConfigurerWithClassStub.new }
49
49
 
@@ -54,6 +54,27 @@ describe HttpStub::Configurer, "when the server is running" do
54
54
  response.body.should eql("Class stub body")
55
55
  end
56
56
 
57
+ describe "and the stub is overridden" do
58
+
59
+ before(:each) do
60
+ configurer.stub_response!("/a_class_stub", method: :get, response: { body: "Other class stub body" })
61
+ end
62
+
63
+ describe "and the configurer is re-initialized" do
64
+
65
+ before(:each) { configurer.class.initialize! }
66
+
67
+ it "should re-establish the class stub as having priority" do
68
+ response = Net::HTTP.get_response("localhost", "/a_class_stub", 8001)
69
+
70
+ response.code.should eql("201")
71
+ response.body.should eql("Class stub body")
72
+ end
73
+
74
+ end
75
+
76
+ end
77
+
57
78
  end
58
79
 
59
80
  describe "and a response for a request is stubbed" do
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.5.5
4
+ version: 0.5.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-03-14 00:00:00.000000000 Z
13
+ date: 2013-03-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sinatra
@@ -194,9 +194,9 @@ executables: []
194
194
  extensions: []
195
195
  extra_rdoc_files: []
196
196
  files:
197
- - ./lib/http_stub/configurer/buffered_command_processor.rb
198
197
  - ./lib/http_stub/configurer/command.rb
199
- - ./lib/http_stub/configurer/immediate_command_processor.rb
198
+ - ./lib/http_stub/configurer/post_initialize_command_processor.rb
199
+ - ./lib/http_stub/configurer/pre_initialize_command_processor.rb
200
200
  - ./lib/http_stub/configurer/stub_activator_request.rb
201
201
  - ./lib/http_stub/configurer/stub_request.rb
202
202
  - ./lib/http_stub/configurer.rb
@@ -220,9 +220,9 @@ files:
220
220
  - ./lib/http_stub/views/stubs.haml
221
221
  - ./lib/http_stub.rb
222
222
  - ./spec/curl_samples.txt
223
- - ./spec/lib/http_stub/configurer/buffered_command_processor_spec.rb
224
223
  - ./spec/lib/http_stub/configurer/command_integration_spec.rb
225
- - ./spec/lib/http_stub/configurer/immediate_command_processor_spec.rb
224
+ - ./spec/lib/http_stub/configurer/post_initialize_command_processor_spec.rb
225
+ - ./spec/lib/http_stub/configurer/pre_initialize_command_processor_spec.rb
226
226
  - ./spec/lib/http_stub/configurer/stub_activator_request_spec.rb
227
227
  - ./spec/lib/http_stub/configurer/stub_request_spec.rb
228
228
  - ./spec/lib/http_stub/configurer_integration_spec.rb
@@ -262,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
262
262
  version: '0'
263
263
  segments:
264
264
  - 0
265
- hash: 914771674812276370
265
+ hash: -3141550755533395331
266
266
  requirements: []
267
267
  rubyforge_project: http_stub
268
268
  rubygems_version: 1.8.25
@@ -271,9 +271,9 @@ specification_version: 3
271
271
  summary: A HTTP Server replaying configured stub responses.
272
272
  test_files:
273
273
  - ./spec/curl_samples.txt
274
- - ./spec/lib/http_stub/configurer/buffered_command_processor_spec.rb
275
274
  - ./spec/lib/http_stub/configurer/command_integration_spec.rb
276
- - ./spec/lib/http_stub/configurer/immediate_command_processor_spec.rb
275
+ - ./spec/lib/http_stub/configurer/post_initialize_command_processor_spec.rb
276
+ - ./spec/lib/http_stub/configurer/pre_initialize_command_processor_spec.rb
277
277
  - ./spec/lib/http_stub/configurer/stub_activator_request_spec.rb
278
278
  - ./spec/lib/http_stub/configurer/stub_request_spec.rb
279
279
  - ./spec/lib/http_stub/configurer_integration_spec.rb
@@ -1,24 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
-
4
- class BufferedCommandProcessor
5
-
6
- def initialize
7
- @buffer = []
8
- end
9
-
10
- def process(command)
11
- @buffer << command
12
- end
13
-
14
- def flush
15
- until @buffer.empty?
16
- command = @buffer.shift
17
- command.execute()
18
- end
19
- end
20
-
21
- end
22
-
23
- end
24
- end
@@ -1,17 +0,0 @@
1
- module HttpStub
2
- module Configurer
3
-
4
- class ImmediateCommandProcessor
5
-
6
- def process(command)
7
- command.execute()
8
- end
9
-
10
- def flush
11
- # Intentionally blank
12
- end
13
-
14
- end
15
-
16
- end
17
- end
@@ -1,47 +0,0 @@
1
- describe HttpStub::Configurer::BufferedCommandProcessor do
2
-
3
- let(:processor) { HttpStub::Configurer::BufferedCommandProcessor.new }
4
-
5
- describe "#flush" do
6
-
7
- describe "when a number of commands have been processed" do
8
-
9
- let(:commands) do
10
- (1..3).map { |i| double("Command#{i}").as_null_object }
11
- end
12
-
13
- before(:each) do
14
- commands.each { |command| processor.process(command) }
15
- end
16
-
17
- it "should execute the buffered commands" do
18
- commands.each { |command| command.should_receive(:execute) }
19
-
20
- processor.flush()
21
- end
22
-
23
- describe "and those commands have already been flushed" do
24
-
25
- before(:each) { processor.flush() }
26
-
27
- it "should not re-execute those commands" do
28
- commands.each { |command| command.should_not_receive(:execute) }
29
-
30
- processor.flush()
31
- end
32
-
33
- end
34
-
35
- end
36
-
37
- describe "when no commands have been processed" do
38
-
39
- it "should execute without error" do
40
- lambda { processor.flush() }.should_not raise_error
41
- end
42
-
43
- end
44
-
45
- end
46
-
47
- end
@@ -1,34 +0,0 @@
1
- describe HttpStub::Configurer::ImmediateCommandProcessor do
2
-
3
- let(:command) { double("Command").as_null_object }
4
-
5
- let(:processor) { HttpStub::Configurer::ImmediateCommandProcessor.new }
6
-
7
- describe "#process" do
8
-
9
- it "should execute the provided command" do
10
- command.should_receive(:execute)
11
-
12
- processor.process(command)
13
- end
14
-
15
- end
16
-
17
- describe "#flush" do
18
-
19
- describe "when a command has been processed" do
20
-
21
- before(:each) { processor.process(command) }
22
-
23
- it "should not re-execute the command" do
24
- command.should_not_receive(:execute)
25
-
26
- processor.flush
27
- end
28
-
29
- end
30
-
31
-
32
- end
33
-
34
- end