http_stub 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
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