http_stub 0.14.0.rc1 → 0.14.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3cec045dffff863269a30e24044093374be1218f
4
- data.tar.gz: dc15184117f995a3718732ab94bddc6d4fbd4166
3
+ metadata.gz: 6d5d1e764366bda9d5f710c4938843dd56cfe795
4
+ data.tar.gz: e45dbffa5460da77bb50c24bf57eea45a43afe95
5
5
  SHA512:
6
- metadata.gz: 7e903d5defca3127e859d7d66831bbcd66ad5d0c8a3cbbcaf5a5b08f2a431a18bf7d97441405272643a1ea0c9a60b58988b2af3b7704b5d2f98c715017ed46a4
7
- data.tar.gz: 6fcd2527a0bab4f1006890912b57628cea65d8032de7e71e73a252108eefeccf452fc979f5f72a8ac6e9e3284c82f787e468c0cb98bbd0f56c0455612cd2130e
6
+ metadata.gz: 7e2c3a0c793fb39fe1a6c1ab1a88de29da1f086370b0e98836f8366b5ad523ccc228a4ca2fa208bcd2576ac8eb27fe8f8689cd247c9b2a12c224c310491503e9
7
+ data.tar.gz: 7e8282e64d9ad2c8e627ebe5ceffcbeb8df653cdd5f9915bab7a4b17ae28bbdf003376fbf9fa8088fc7688d30e88a6e274c525eb5e75fd6e3e827af7b2908e5d
@@ -4,7 +4,7 @@ module HttpStub
4
4
 
5
5
  class StubActivatorPayloadBuilder
6
6
 
7
- delegate :match_request, :with_response, :and_add_stub, to: :@stub_payload_builder
7
+ delegate :match_request, :with_response, :and_add_stub, :and_add_stubs, to: :@stub_payload_builder
8
8
 
9
9
  def initialize
10
10
  @stub_payload_builder = HttpStub::Configurer::Request::StubPayloadBuilder.new
@@ -21,6 +21,10 @@ module HttpStub
21
21
  @args[:triggers] << stub_builder
22
22
  end
23
23
 
24
+ def and_add_stubs(stub_builders)
25
+ @args[:triggers].concat(stub_builders)
26
+ end
27
+
24
28
  def build
25
29
  {
26
30
  uri: HttpStub::Configurer::Request::ControllableValue.format(@uri),
@@ -23,6 +23,10 @@ module HttpStub
23
23
  @server_facade.stub_response(HttpStub::Configurer::Request::Stub.new(resolved_builder.build))
24
24
  end
25
25
 
26
+ def add_stubs!(builders)
27
+ builders.each { |builder| add_stub!(builder) }
28
+ end
29
+
26
30
  def add_activator!(&block)
27
31
  builder = HttpStub::Configurer::Request::StubActivatorPayloadBuilder.new
28
32
  block.call(builder)
@@ -1,3 +1,3 @@
1
1
  module HttpStub
2
- VERSION = "0.14.0.rc1"
2
+ VERSION = "0.14.0.rc2"
3
3
  end
@@ -43,6 +43,18 @@ describe HttpStub::Configurer::Request::StubActivatorPayloadBuilder do
43
43
 
44
44
  end
45
45
 
46
+ describe "#and_add_stubs" do
47
+
48
+ let(:trigger_builders) { (1..3).map { instance_double(HttpStub::Configurer::Request::StubPayloadBuilder) } }
49
+
50
+ it "delegates to a stub payload builder" do
51
+ expect(stub_builder).to receive(:and_add_stubs).with(trigger_builders)
52
+
53
+ builder.and_add_stubs(trigger_builders)
54
+ end
55
+
56
+ end
57
+
46
58
  describe "#build" do
47
59
 
48
60
  subject { builder.build }
@@ -2,6 +2,17 @@ describe HttpStub::Configurer::Request::StubPayloadBuilder do
2
2
 
3
3
  let(:builder) { HttpStub::Configurer::Request::StubPayloadBuilder.new }
4
4
 
5
+ shared_context "add stub trigger" do
6
+
7
+ let(:trigger_payload) { { "trigger_key" => "trigger value" } }
8
+ let(:trigger_builder) do
9
+ instance_double(HttpStub::Configurer::Request::StubPayloadBuilder, build: trigger_payload)
10
+ end
11
+
12
+ before(:example) { builder.and_add_stub(trigger_builder) }
13
+
14
+ end
15
+
5
16
  shared_context "add stub triggers" do
6
17
 
7
18
  let(:trigger_payloads) { (1..3).map { |i| { "trigger_#{i}_key" => "trigger #{i} value" } } }
@@ -11,13 +22,13 @@ describe HttpStub::Configurer::Request::StubPayloadBuilder do
11
22
  end
12
23
  end
13
24
 
14
- before(:example) { trigger_builders.each { |trigger_builder| builder.and_add_stub(trigger_builder) } }
25
+ before(:example) { builder.and_add_stubs(trigger_builders) }
15
26
 
16
27
  end
17
28
 
18
29
  describe "#build" do
19
30
 
20
- context "when provided a uri and stub arguments" do
31
+ context "when provided a request match and response data" do
21
32
 
22
33
  include_context "stub payload builder arguments"
23
34
 
@@ -176,8 +187,18 @@ describe HttpStub::Configurer::Request::StubPayloadBuilder do
176
187
 
177
188
  end
178
189
 
179
- context "when stub triggers are added" do
190
+ context "when a stub trigger is added" do
180
191
 
192
+ include_context "add stub trigger"
193
+
194
+ it "has a triggers entry containing the stub trigger payload" do
195
+ expect(subject).to include(triggers: [ trigger_payload ])
196
+ end
197
+
198
+ end
199
+
200
+ context "when stub triggers are added" do
201
+
181
202
  include_context "add stub triggers"
182
203
 
183
204
  it "has a triggers entry containing the stub trigger payloads" do
@@ -85,7 +85,7 @@ describe HttpStub::Configurer::Server::DSL do
85
85
  subject
86
86
  end
87
87
 
88
- it "informs the server facade to stub the response" do
88
+ it "informs the server facade of the stub request" do
89
89
  expect(server_facade).to receive(:stub_response).with(stub_request)
90
90
 
91
91
  subject
@@ -129,6 +129,53 @@ describe HttpStub::Configurer::Server::DSL do
129
129
 
130
130
  end
131
131
 
132
+ describe "#add_stubs!" do
133
+
134
+ context "when multiple stub payload builders are provided" do
135
+
136
+ let(:stub_payloads) { (1..3).map { |i| { "stub_payload_key_#{i}" => "stub payload value #{i}" } } }
137
+ let(:stub_payload_builders) do
138
+ stub_payloads.map do |payload|
139
+ instance_double(HttpStub::Configurer::Request::StubPayloadBuilder, build: payload)
140
+ end
141
+ end
142
+ let(:stub_requests) do
143
+ (1..stub_payloads.length).map { instance_double(HttpStub::Configurer::Request::Stub) }
144
+ end
145
+
146
+ subject { dsl.add_stubs!(stub_payload_builders) }
147
+
148
+ before(:example) do
149
+ allow(HttpStub::Configurer::Request::Stub).to receive(:new).and_return(*stub_requests)
150
+ allow(server_facade).to receive(:stub_response)
151
+ end
152
+
153
+ it "builds the each stub payload" do
154
+ stub_payload_builders.zip(stub_payloads).each do |stub_payload_builder, stub_payload|
155
+ expect(stub_payload_builder).to receive(:build).and_return(stub_payload)
156
+ end
157
+
158
+ subject
159
+ end
160
+
161
+ it "creates a stub request for each built payload" do
162
+ stub_payloads.zip(stub_requests).each do |stub_payload, stub_request|
163
+ expect(HttpStub::Configurer::Request::Stub).to receive(:new).with(stub_payload).and_return(stub_request)
164
+ end
165
+
166
+ subject
167
+ end
168
+
169
+ it "informs the server facade of each stub request" do
170
+ stub_requests.each { |stub_request| expect(server_facade).to receive(:stub_response).with(stub_request) }
171
+
172
+ subject
173
+ end
174
+
175
+ end
176
+
177
+ end
178
+
132
179
  describe "#add_activator!" do
133
180
 
134
181
  let(:stub_activator_payload) { { activator_payload_key: "activator payload value" } }
@@ -510,7 +510,7 @@ describe HttpStub::Configurer, "when the server is running" do
510
510
  stub_server.add_stub! do |stub|
511
511
  stub.match_request("/stub_with_triggers", method: :get)
512
512
  stub.with_response(body: "Trigger stub body")
513
- triggers.each { |trigger| stub.and_add_stub(trigger) }
513
+ stub.and_add_stubs(triggers)
514
514
  end
515
515
  end
516
516
 
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.14.0.rc1
4
+ version: 0.14.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman