bunny 1.7.1 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/CONTRIBUTING.md +14 -0
- data/ChangeLog.md +21 -6
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/README.md +22 -23
- data/bunny.gemspec +1 -1
- data/lib/bunny/channel.rb +12 -0
- data/lib/bunny/concurrent/continuation_queue.rb +30 -13
- data/lib/bunny/exchange.rb +0 -5
- data/lib/bunny/jruby/socket.rb +1 -2
- data/lib/bunny/queue.rb +9 -0
- data/lib/bunny/session.rb +7 -6
- data/lib/bunny/version.rb +1 -1
- data/spec/higher_level_api/integration/basic_ack_spec.rb +9 -9
- data/spec/higher_level_api/integration/basic_cancel_spec.rb +4 -4
- data/spec/higher_level_api/integration/basic_consume_spec.rb +22 -22
- data/spec/higher_level_api/integration/basic_consume_with_objects_spec.rb +1 -1
- data/spec/higher_level_api/integration/basic_get_spec.rb +2 -2
- data/spec/higher_level_api/integration/basic_nack_spec.rb +6 -6
- data/spec/higher_level_api/integration/basic_publish_spec.rb +14 -14
- data/spec/higher_level_api/integration/basic_qos_spec.rb +11 -2
- data/spec/higher_level_api/integration/basic_recover_spec.rb +2 -2
- data/spec/higher_level_api/integration/basic_reject_spec.rb +6 -6
- data/spec/higher_level_api/integration/basic_return_spec.rb +1 -1
- data/spec/higher_level_api/integration/channel_close_spec.rb +2 -2
- data/spec/higher_level_api/integration/channel_open_spec.rb +11 -11
- data/spec/higher_level_api/integration/connection_recovery_spec.rb +52 -52
- data/spec/higher_level_api/integration/connection_spec.rb +83 -83
- data/spec/higher_level_api/integration/connection_stop_spec.rb +11 -11
- data/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb +2 -2
- data/spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb +3 -3
- data/spec/higher_level_api/integration/dead_lettering_spec.rb +6 -6
- data/spec/higher_level_api/integration/exchange_bind_spec.rb +1 -1
- data/spec/higher_level_api/integration/exchange_declare_spec.rb +20 -20
- data/spec/higher_level_api/integration/exchange_delete_spec.rb +11 -11
- data/spec/higher_level_api/integration/exchange_unbind_spec.rb +2 -2
- data/spec/higher_level_api/integration/merry_go_round_spec.rb +2 -2
- data/spec/higher_level_api/integration/message_properties_access_spec.rb +27 -27
- data/spec/higher_level_api/integration/predeclared_exchanges_spec.rb +1 -1
- data/spec/higher_level_api/integration/publisher_confirms_spec.rb +19 -19
- data/spec/higher_level_api/integration/publishing_edge_cases_spec.rb +9 -9
- data/spec/higher_level_api/integration/queue_bind_spec.rb +13 -13
- data/spec/higher_level_api/integration/queue_declare_spec.rb +23 -23
- data/spec/higher_level_api/integration/queue_delete_spec.rb +1 -1
- data/spec/higher_level_api/integration/queue_purge_spec.rb +2 -2
- data/spec/higher_level_api/integration/queue_unbind_spec.rb +2 -2
- data/spec/higher_level_api/integration/read_only_consumer_spec.rb +3 -3
- data/spec/higher_level_api/integration/sender_selected_distribution_spec.rb +4 -4
- data/spec/higher_level_api/integration/tls_connection_spec.rb +5 -5
- data/spec/higher_level_api/integration/with_channel_spec.rb +1 -1
- data/spec/issues/issue100_spec.rb +9 -10
- data/spec/issues/issue141_spec.rb +11 -12
- data/spec/issues/issue224_spec.rb +2 -2
- data/spec/issues/issue78_spec.rb +14 -18
- data/spec/issues/issue83_spec.rb +5 -6
- data/spec/issues/issue97_spec.rb +25 -26
- data/spec/lower_level_api/integration/basic_cancel_spec.rb +15 -16
- data/spec/lower_level_api/integration/basic_consume_spec.rb +19 -20
- data/spec/stress/channel_open_stress_spec.rb +1 -1
- data/spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb +6 -7
- data/spec/stress/concurrent_consumers_stress_spec.rb +6 -7
- data/spec/stress/concurrent_publishers_stress_spec.rb +6 -7
- data/spec/stress/connection_open_close_spec.rb +6 -6
- data/spec/stress/long_running_consumer_spec.rb +6 -7
- data/spec/unit/bunny_spec.rb +5 -5
- data/spec/unit/concurrent/atomic_fixnum_spec.rb +6 -6
- data/spec/unit/concurrent/condition_spec.rb +3 -3
- data/spec/unit/concurrent/linked_continuation_queue_spec.rb +2 -2
- data/spec/unit/concurrent/synchronized_sorted_set_spec.rb +16 -16
- data/spec/unit/system_timer_spec.rb +2 -2
- data/spec/unit/version_delivery_tag_spec.rb +3 -3
- metadata +8 -7
@@ -57,7 +57,7 @@ unless ENV["CI"]
|
|
57
57
|
x = ch.default_exchange
|
58
58
|
x.publish("msg", :routing_key => q.name)
|
59
59
|
sleep 0.5
|
60
|
-
q.message_count.
|
60
|
+
expect(q.message_count).to eq 1
|
61
61
|
q.purge
|
62
62
|
end
|
63
63
|
|
@@ -65,7 +65,7 @@ unless ENV["CI"]
|
|
65
65
|
q.purge
|
66
66
|
x.publish("msg", :routing_key => routing_key)
|
67
67
|
sleep 0.5
|
68
|
-
q.message_count.
|
68
|
+
expect(q.message_count).to eq 1
|
69
69
|
q.purge
|
70
70
|
end
|
71
71
|
|
@@ -74,7 +74,7 @@ unless ENV["CI"]
|
|
74
74
|
q.bind(destination, :routing_key => routing_key)
|
75
75
|
|
76
76
|
source.publish("msg", :routing_key => routing_key)
|
77
|
-
q.message_count.
|
77
|
+
expect(q.message_count).to eq 1
|
78
78
|
q.delete
|
79
79
|
end
|
80
80
|
|
@@ -86,10 +86,10 @@ unless ENV["CI"]
|
|
86
86
|
with_open do |c|
|
87
87
|
close_all_connections!
|
88
88
|
sleep 0.1
|
89
|
-
c.
|
89
|
+
expect(c).not_to be_open
|
90
90
|
|
91
91
|
wait_for_recovery
|
92
|
-
c.
|
92
|
+
expect(c).to be_open
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
@@ -97,10 +97,10 @@ unless ENV["CI"]
|
|
97
97
|
with_open_multi_host do |c|
|
98
98
|
close_all_connections!
|
99
99
|
sleep 0.1
|
100
|
-
c.
|
100
|
+
expect(c).not_to be_open
|
101
101
|
|
102
102
|
wait_for_recovery
|
103
|
-
c.
|
103
|
+
expect(c).to be_open
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
@@ -108,10 +108,10 @@ unless ENV["CI"]
|
|
108
108
|
with_open_multi_broken_host do |c|
|
109
109
|
close_all_connections!
|
110
110
|
sleep 0.1
|
111
|
-
c.
|
111
|
+
expect(c).not_to be_open
|
112
112
|
|
113
113
|
wait_for_recovery
|
114
|
-
c.
|
114
|
+
expect(c).to be_open
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
@@ -121,11 +121,11 @@ unless ENV["CI"]
|
|
121
121
|
ch2 = c.create_channel
|
122
122
|
close_all_connections!
|
123
123
|
sleep 0.1
|
124
|
-
c.
|
124
|
+
expect(c).not_to be_open
|
125
125
|
|
126
126
|
wait_for_recovery
|
127
|
-
ch1.
|
128
|
-
ch2.
|
127
|
+
expect(ch1).to be_open
|
128
|
+
expect(ch2).to be_open
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
@@ -135,11 +135,11 @@ unless ENV["CI"]
|
|
135
135
|
ch2 = c.create_channel
|
136
136
|
close_all_connections!
|
137
137
|
sleep 0.1
|
138
|
-
c.
|
138
|
+
expect(c).not_to be_open
|
139
139
|
|
140
140
|
wait_for_recovery
|
141
|
-
ch1.
|
142
|
-
ch2.
|
141
|
+
expect(ch1).to be_open
|
142
|
+
expect(ch2).to be_open
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
@@ -149,11 +149,11 @@ unless ENV["CI"]
|
|
149
149
|
ch2 = c.create_channel
|
150
150
|
close_all_connections!
|
151
151
|
sleep 0.1
|
152
|
-
c.
|
152
|
+
expect(c).not_to be_open
|
153
153
|
|
154
154
|
wait_for_recovery
|
155
|
-
ch1.
|
156
|
-
ch2.
|
155
|
+
expect(ch1).to be_open
|
156
|
+
expect(ch2).to be_open
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
@@ -161,14 +161,14 @@ unless ENV["CI"]
|
|
161
161
|
with_open do |c|
|
162
162
|
ch = c.create_channel
|
163
163
|
ch.prefetch(11)
|
164
|
-
ch.prefetch_count.
|
164
|
+
expect(ch.prefetch_count).to eq 11
|
165
165
|
close_all_connections!
|
166
166
|
sleep 0.1
|
167
|
-
c.
|
167
|
+
expect(c).not_to be_open
|
168
168
|
|
169
169
|
wait_for_recovery
|
170
|
-
ch.
|
171
|
-
ch.prefetch_count.
|
170
|
+
expect(ch).to be_open
|
171
|
+
expect(ch.prefetch_count).to eq 11
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
@@ -177,14 +177,14 @@ unless ENV["CI"]
|
|
177
177
|
with_open do |c|
|
178
178
|
ch = c.create_channel
|
179
179
|
ch.confirm_select
|
180
|
-
ch.
|
180
|
+
expect(ch).to be_using_publisher_confirms
|
181
181
|
close_all_connections!
|
182
182
|
sleep 0.1
|
183
|
-
c.
|
183
|
+
expect(c).not_to be_open
|
184
184
|
|
185
185
|
wait_for_recovery
|
186
|
-
ch.
|
187
|
-
ch.
|
186
|
+
expect(ch).to be_open
|
187
|
+
expect(ch).to be_using_publisher_confirms
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
@@ -192,14 +192,14 @@ unless ENV["CI"]
|
|
192
192
|
with_open do |c|
|
193
193
|
ch = c.create_channel
|
194
194
|
ch.tx_select
|
195
|
-
ch.
|
195
|
+
expect(ch).to be_using_tx
|
196
196
|
close_all_connections!
|
197
197
|
sleep 0.1
|
198
|
-
c.
|
198
|
+
expect(c).not_to be_open
|
199
199
|
|
200
200
|
wait_for_recovery
|
201
|
-
ch.
|
202
|
-
ch.
|
201
|
+
expect(ch).to be_open
|
202
|
+
expect(ch).to be_using_tx
|
203
203
|
end
|
204
204
|
end
|
205
205
|
|
@@ -209,10 +209,10 @@ unless ENV["CI"]
|
|
209
209
|
q = ch.queue("bunny.tests.recovery.client-named#{rand}")
|
210
210
|
close_all_connections!
|
211
211
|
sleep 0.1
|
212
|
-
c.
|
212
|
+
expect(c).not_to be_open
|
213
213
|
|
214
214
|
wait_for_recovery
|
215
|
-
ch.
|
215
|
+
expect(ch).to be_open
|
216
216
|
ensure_queue_recovery(ch, q)
|
217
217
|
q.delete
|
218
218
|
end
|
@@ -225,10 +225,10 @@ unless ENV["CI"]
|
|
225
225
|
q = ch.queue("", :exclusive => true)
|
226
226
|
close_all_connections!
|
227
227
|
sleep 0.1
|
228
|
-
c.
|
228
|
+
expect(c).not_to be_open
|
229
229
|
|
230
230
|
wait_for_recovery
|
231
|
-
ch.
|
231
|
+
expect(ch).to be_open
|
232
232
|
ensure_queue_recovery(ch, q)
|
233
233
|
end
|
234
234
|
end
|
@@ -241,10 +241,10 @@ unless ENV["CI"]
|
|
241
241
|
q.bind(x)
|
242
242
|
close_all_connections!
|
243
243
|
sleep 0.1
|
244
|
-
c.
|
244
|
+
expect(c).not_to be_open
|
245
245
|
|
246
246
|
wait_for_recovery
|
247
|
-
ch.
|
247
|
+
expect(ch).to be_open
|
248
248
|
ensure_queue_binding_recovery(x, q)
|
249
249
|
end
|
250
250
|
end
|
@@ -257,10 +257,10 @@ unless ENV["CI"]
|
|
257
257
|
x2.bind(x)
|
258
258
|
close_all_connections!
|
259
259
|
sleep 0.1
|
260
|
-
c.
|
260
|
+
expect(c).not_to be_open
|
261
261
|
|
262
262
|
wait_for_recovery
|
263
|
-
ch.
|
263
|
+
expect(ch).to be_open
|
264
264
|
ensure_exchange_binding_recovery(ch, x, x2)
|
265
265
|
end
|
266
266
|
end
|
@@ -269,20 +269,20 @@ unless ENV["CI"]
|
|
269
269
|
with_open do |c|
|
270
270
|
q = "queue#{Time.now.to_i}"
|
271
271
|
10.times { c.create_channel }
|
272
|
-
c.queue_exists?(q).
|
272
|
+
expect(c.queue_exists?(q)).to eq false
|
273
273
|
close_all_connections!
|
274
274
|
sleep 0.1
|
275
|
-
c.
|
275
|
+
expect(c).not_to be_open
|
276
276
|
|
277
277
|
wait_for_recovery
|
278
|
-
c.queue_exists?(q).
|
278
|
+
expect(c.queue_exists?(q)).to eq false
|
279
279
|
# make sure the connection isn't closed shortly after
|
280
280
|
# due to "second 'channel.open' seen". MK.
|
281
|
-
c.
|
281
|
+
expect(c).to be_open
|
282
282
|
sleep 0.1
|
283
|
-
c.
|
283
|
+
expect(c).to be_open
|
284
284
|
sleep 0.1
|
285
|
-
c.
|
285
|
+
expect(c).to be_open
|
286
286
|
end
|
287
287
|
end
|
288
288
|
|
@@ -297,14 +297,14 @@ unless ENV["CI"]
|
|
297
297
|
end
|
298
298
|
close_all_connections!
|
299
299
|
sleep 0.1
|
300
|
-
c.
|
300
|
+
expect(c).not_to be_open
|
301
301
|
|
302
302
|
wait_for_recovery
|
303
|
-
ch.
|
303
|
+
expect(ch).to be_open
|
304
304
|
|
305
305
|
q.publish("")
|
306
306
|
sleep 0.5
|
307
|
-
expect(delivered).to
|
307
|
+
expect(delivered).to eq true
|
308
308
|
end
|
309
309
|
end
|
310
310
|
|
@@ -321,12 +321,12 @@ unless ENV["CI"]
|
|
321
321
|
end
|
322
322
|
close_all_connections!
|
323
323
|
sleep 0.1
|
324
|
-
c.
|
324
|
+
expect(c).not_to be_open
|
325
325
|
|
326
326
|
wait_for_recovery
|
327
|
-
ch.
|
327
|
+
expect(ch).to be_open
|
328
328
|
|
329
|
-
q.consumer_count.
|
329
|
+
expect(q.consumer_count).to eq n
|
330
330
|
end
|
331
331
|
end
|
332
332
|
|
@@ -343,10 +343,10 @@ unless ENV["CI"]
|
|
343
343
|
end
|
344
344
|
close_all_connections!
|
345
345
|
sleep 0.1
|
346
|
-
c.
|
346
|
+
expect(c).not_to be_open
|
347
347
|
|
348
348
|
wait_for_recovery
|
349
|
-
ch.
|
349
|
+
expect(ch).to be_open
|
350
350
|
|
351
351
|
qs.each do |q|
|
352
352
|
ch.queue_declare(q.name, :passive => true)
|
@@ -24,10 +24,10 @@ describe Bunny::Session do
|
|
24
24
|
session = described_class.new("amqp://127.0.0.1")
|
25
25
|
session.start
|
26
26
|
|
27
|
-
session.vhost.
|
28
|
-
session.host.
|
29
|
-
session.port.
|
30
|
-
session.ssl
|
27
|
+
expect(session.vhost).to eq "/"
|
28
|
+
expect(session.host).to eq "127.0.0.1"
|
29
|
+
expect(session.port).to eq 5672
|
30
|
+
expect(session.ssl?).to eq false
|
31
31
|
|
32
32
|
session.close
|
33
33
|
end
|
@@ -37,15 +37,15 @@ describe Bunny::Session do
|
|
37
37
|
it "parses vhost as an empty string" do
|
38
38
|
session = described_class.new("amqp://127.0.0.1/")
|
39
39
|
|
40
|
-
session.hostname.
|
41
|
-
session.port.
|
42
|
-
session.vhost.
|
40
|
+
expect(session.hostname).to eq "127.0.0.1"
|
41
|
+
expect(session.port).to eq 5672
|
42
|
+
expect(session.vhost).to eq ""
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
context "when URI is amqp://dev.rabbitmq.com/a/path/with/slashes" do
|
47
47
|
it "raises an ArgumentError" do
|
48
|
-
|
48
|
+
expect { described_class.new("amqp://dev.rabbitmq.com/a/path/with/slashes") }.to raise_error(ArgumentError)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -57,7 +57,7 @@ describe Bunny::Session do
|
|
57
57
|
it "provides a way to fine tune socket options" do
|
58
58
|
conn = Bunny.new
|
59
59
|
conn.start
|
60
|
-
conn.transport.socket.
|
60
|
+
expect(conn.transport.socket).to respond_to(:setsockopt)
|
61
61
|
|
62
62
|
conn.close
|
63
63
|
end
|
@@ -65,16 +65,16 @@ describe Bunny::Session do
|
|
65
65
|
it "successfully negotiates the connection" do
|
66
66
|
conn = Bunny.new
|
67
67
|
conn.start
|
68
|
-
conn.
|
68
|
+
expect(conn).to be_connected
|
69
69
|
|
70
|
-
conn.server_properties.
|
71
|
-
conn.server_capabilities.
|
70
|
+
expect(conn.server_properties).not_to be_nil
|
71
|
+
expect(conn.server_capabilities).not_to be_nil
|
72
72
|
|
73
73
|
props = conn.server_properties
|
74
74
|
|
75
|
-
props["product"].
|
76
|
-
props["platform"].
|
77
|
-
props["version"].
|
75
|
+
expect(props["product"]).not_to be_nil
|
76
|
+
expect(props["platform"]).not_to be_nil
|
77
|
+
expect(props["version"]).not_to be_nil
|
78
78
|
|
79
79
|
conn.close
|
80
80
|
end
|
@@ -85,16 +85,16 @@ describe Bunny::Session do
|
|
85
85
|
it "successfully connects" do
|
86
86
|
conn = described_class.new(:connection_timeout => 5)
|
87
87
|
conn.start
|
88
|
-
conn.
|
88
|
+
expect(conn).to be_connected
|
89
89
|
|
90
|
-
conn.server_properties.
|
91
|
-
conn.server_capabilities.
|
90
|
+
expect(conn.server_properties).not_to be_nil
|
91
|
+
expect(conn.server_capabilities).not_to be_nil
|
92
92
|
|
93
93
|
props = conn.server_properties
|
94
94
|
|
95
|
-
props["product"].
|
96
|
-
props["platform"].
|
97
|
-
props["version"].
|
95
|
+
expect(props["product"]).not_to be_nil
|
96
|
+
expect(props["platform"]).not_to be_nil
|
97
|
+
expect(props["version"]).not_to be_nil
|
98
98
|
|
99
99
|
conn.close
|
100
100
|
end
|
@@ -111,16 +111,16 @@ describe Bunny::Session do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "uses hostname = 127.0.0.1" do
|
114
|
-
subject.host.
|
115
|
-
subject.hostname.
|
114
|
+
expect(subject.host).to eq host
|
115
|
+
expect(subject.hostname).to eq host
|
116
116
|
end
|
117
117
|
|
118
118
|
it "uses port 5672" do
|
119
|
-
subject.port.
|
119
|
+
expect(subject.port).to eq port
|
120
120
|
end
|
121
121
|
|
122
122
|
it "uses username = guest" do
|
123
|
-
subject.username.
|
123
|
+
expect(subject.username).to eq username
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
@@ -133,17 +133,17 @@ describe Bunny::Session do
|
|
133
133
|
let(:subject) { described_class.new(:hostname => host) }
|
134
134
|
|
135
135
|
it "uses hostname = localhost" do
|
136
|
-
subject.host.
|
137
|
-
subject.hostname.
|
136
|
+
expect(subject.host).to eq host
|
137
|
+
expect(subject.hostname).to eq host
|
138
138
|
end
|
139
139
|
|
140
140
|
it "uses port 5672" do
|
141
|
-
subject.port.
|
141
|
+
expect(subject.port).to eq port
|
142
142
|
end
|
143
143
|
|
144
144
|
it "uses username = guest" do
|
145
|
-
subject.username.
|
146
|
-
subject.user.
|
145
|
+
expect(subject.username).to eq username
|
146
|
+
expect(subject.user).to eq username
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
@@ -157,17 +157,17 @@ describe Bunny::Session do
|
|
157
157
|
let(:subject) { described_class.new(:hosts => hosts) }
|
158
158
|
|
159
159
|
it "uses hostname = localhost" do
|
160
|
-
subject.host.
|
161
|
-
subject.hostname.
|
160
|
+
expect(subject.host).to eq host
|
161
|
+
expect(subject.hostname).to eq host
|
162
162
|
end
|
163
163
|
|
164
164
|
it "uses port 5672" do
|
165
|
-
subject.port.
|
165
|
+
expect(subject.port).to eq port
|
166
166
|
end
|
167
167
|
|
168
168
|
it "uses username = guest" do
|
169
|
-
subject.username.
|
170
|
-
subject.user.
|
169
|
+
expect(subject.username).to eq username
|
170
|
+
expect(subject.user).to eq username
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
@@ -184,7 +184,7 @@ describe Bunny::Session do
|
|
184
184
|
# for future releases. MK.
|
185
185
|
it "negotiates channel max to be 1024" do
|
186
186
|
subject.start
|
187
|
-
subject.channel_max.
|
187
|
+
expect(subject.channel_max).to eq channel_max
|
188
188
|
|
189
189
|
subject.close
|
190
190
|
end
|
@@ -202,7 +202,7 @@ describe Bunny::Session do
|
|
202
202
|
end
|
203
203
|
|
204
204
|
it "uses TLS port" do
|
205
|
-
subject.port.
|
205
|
+
expect(subject.port).to eq tls_port
|
206
206
|
end
|
207
207
|
end
|
208
208
|
|
@@ -218,7 +218,7 @@ describe Bunny::Session do
|
|
218
218
|
end
|
219
219
|
|
220
220
|
it "uses TLS port" do
|
221
|
-
subject.port.
|
221
|
+
expect(subject.port).to eq tls_port
|
222
222
|
end
|
223
223
|
end
|
224
224
|
end
|
@@ -230,7 +230,7 @@ describe Bunny::Session do
|
|
230
230
|
end
|
231
231
|
|
232
232
|
let(:host) { "127.0.0.1" }
|
233
|
-
# see ./bin/ci/before_build
|
233
|
+
# see ./bin/ci/before_build
|
234
234
|
let(:username) { "bunny_gem" }
|
235
235
|
let(:password) { "bunny_password" }
|
236
236
|
let(:vhost) { "bunny_testbed" }
|
@@ -241,38 +241,38 @@ describe Bunny::Session do
|
|
241
241
|
|
242
242
|
it "successfully connects" do
|
243
243
|
5.times { subject.start }
|
244
|
-
subject.
|
244
|
+
expect(subject).to be_connected
|
245
245
|
|
246
|
-
subject.server_properties.
|
247
|
-
subject.server_capabilities.
|
246
|
+
expect(subject.server_properties).not_to be_nil
|
247
|
+
expect(subject.server_capabilities).not_to be_nil
|
248
248
|
|
249
249
|
props = subject.server_properties
|
250
250
|
|
251
|
-
props["product"].
|
252
|
-
props["platform"].
|
253
|
-
props["version"].
|
251
|
+
expect(props["product"]).not_to be_nil
|
252
|
+
expect(props["platform"]).not_to be_nil
|
253
|
+
expect(props["version"]).not_to be_nil
|
254
254
|
end
|
255
255
|
|
256
256
|
it "uses hostname = 127.0.0.1" do
|
257
|
-
subject.host.
|
258
|
-
subject.hostname.
|
257
|
+
expect(subject.host).to eq host
|
258
|
+
expect(subject.hostname).to eq host
|
259
259
|
end
|
260
260
|
|
261
261
|
it "uses port 5672" do
|
262
|
-
subject.port.
|
262
|
+
expect(subject.port).to eq port
|
263
263
|
end
|
264
264
|
|
265
265
|
it "uses provided vhost" do
|
266
|
-
subject.vhost.
|
267
|
-
subject.virtual_host.
|
266
|
+
expect(subject.vhost).to eq vhost
|
267
|
+
expect(subject.virtual_host).to eq vhost
|
268
268
|
end
|
269
269
|
|
270
270
|
it "uses provided username" do
|
271
|
-
subject.username.
|
271
|
+
expect(subject.username).to eq username
|
272
272
|
end
|
273
273
|
|
274
274
|
it "uses provided password" do
|
275
|
-
subject.password.
|
275
|
+
expect(subject.password).to eq password
|
276
276
|
end
|
277
277
|
end
|
278
278
|
|
@@ -283,7 +283,7 @@ describe Bunny::Session do
|
|
283
283
|
end
|
284
284
|
|
285
285
|
let(:host) { "127.0.0.1" }
|
286
|
-
# see ./bin/ci/before_build
|
286
|
+
# see ./bin/ci/before_build
|
287
287
|
let(:username) { "bunny_gem" }
|
288
288
|
let(:password) { "bunny_password" }
|
289
289
|
let(:vhost) { "bunny_testbed" }
|
@@ -294,33 +294,33 @@ describe Bunny::Session do
|
|
294
294
|
|
295
295
|
it "successfully connects" do
|
296
296
|
subject.start
|
297
|
-
subject.
|
297
|
+
expect(subject).to be_connected
|
298
298
|
|
299
|
-
subject.server_properties.
|
300
|
-
subject.server_capabilities.
|
299
|
+
expect(subject.server_properties).not_to be_nil
|
300
|
+
expect(subject.server_capabilities).not_to be_nil
|
301
301
|
|
302
302
|
props = subject.server_properties
|
303
303
|
|
304
|
-
props["product"].
|
305
|
-
props["platform"].
|
306
|
-
props["version"].
|
304
|
+
expect(props["product"]).not_to be_nil
|
305
|
+
expect(props["platform"]).not_to be_nil
|
306
|
+
expect(props["version"]).not_to be_nil
|
307
307
|
end
|
308
308
|
|
309
309
|
it "uses hostname = 127.0.0.1" do
|
310
|
-
subject.host.
|
311
|
-
subject.hostname.
|
310
|
+
expect(subject.host).to eq host
|
311
|
+
expect(subject.hostname).to eq host
|
312
312
|
end
|
313
313
|
|
314
314
|
it "uses port 5672" do
|
315
|
-
subject.port.
|
315
|
+
expect(subject.port).to eq port
|
316
316
|
end
|
317
317
|
|
318
318
|
it "uses provided username" do
|
319
|
-
subject.username.
|
319
|
+
expect(subject.username).to eq username
|
320
320
|
end
|
321
321
|
|
322
322
|
it "uses provided password" do
|
323
|
-
subject.password.
|
323
|
+
expect(subject.password).to eq password
|
324
324
|
end
|
325
325
|
end
|
326
326
|
|
@@ -332,7 +332,7 @@ describe Bunny::Session do
|
|
332
332
|
end
|
333
333
|
|
334
334
|
let(:host) { "127.0.0.1" }
|
335
|
-
# see ./bin/ci/before_build
|
335
|
+
# see ./bin/ci/before_build
|
336
336
|
let(:username) { "bunny_gem" }
|
337
337
|
let(:password) { "bunny_password" }
|
338
338
|
let(:vhost) { "bunny_testbed" }
|
@@ -344,21 +344,21 @@ describe Bunny::Session do
|
|
344
344
|
|
345
345
|
it "successfully connects" do
|
346
346
|
subject.start
|
347
|
-
subject.
|
347
|
+
expect(subject).to be_connected
|
348
348
|
|
349
|
-
subject.server_properties.
|
350
|
-
subject.server_capabilities.
|
349
|
+
expect(subject.server_properties).not_to be_nil
|
350
|
+
expect(subject.server_capabilities).not_to be_nil
|
351
351
|
|
352
352
|
props = subject.server_properties
|
353
353
|
|
354
|
-
props["product"].
|
355
|
-
props["platform"].
|
356
|
-
props["version"].
|
357
|
-
props["capabilities"].
|
354
|
+
expect(props["product"]).not_to be_nil
|
355
|
+
expect(props["platform"]).not_to be_nil
|
356
|
+
expect(props["version"]).not_to be_nil
|
357
|
+
expect(props["capabilities"]).not_to be_nil
|
358
358
|
|
359
359
|
# this is negotiated with RabbitMQ, so we need to
|
360
360
|
# establish the connection first
|
361
|
-
subject.heartbeat.
|
361
|
+
expect(subject.heartbeat).to eq interval
|
362
362
|
end
|
363
363
|
end
|
364
364
|
|
@@ -366,7 +366,7 @@ describe Bunny::Session do
|
|
366
366
|
|
367
367
|
context "initialized with :host => 127.0.0.1 and INVALID credentials" do
|
368
368
|
let(:host) { "127.0.0.1" }
|
369
|
-
# see ./bin/ci/before_build
|
369
|
+
# see ./bin/ci/before_build
|
370
370
|
let(:username) { "bunny_gem#{Time.now.to_i}" }
|
371
371
|
let(:password) { "sdjkfhsdf8ysd8fy8" }
|
372
372
|
let(:vhost) { "___sd89aysd98789" }
|
@@ -376,27 +376,27 @@ describe Bunny::Session do
|
|
376
376
|
end
|
377
377
|
|
378
378
|
it "fails to connect" do
|
379
|
-
|
379
|
+
expect do
|
380
380
|
subject.start
|
381
|
-
end.
|
381
|
+
end.to raise_error(Bunny::PossibleAuthenticationFailureError)
|
382
382
|
end
|
383
383
|
|
384
384
|
it "uses provided username" do
|
385
|
-
subject.username.
|
385
|
+
expect(subject.username).to eq username
|
386
386
|
end
|
387
387
|
|
388
388
|
it "uses provided password" do
|
389
|
-
subject.password.
|
389
|
+
expect(subject.password).to eq password
|
390
390
|
end
|
391
391
|
end
|
392
392
|
|
393
393
|
|
394
394
|
context "initialized with unreachable host or port" do
|
395
395
|
it "fails to connect" do
|
396
|
-
|
396
|
+
expect do
|
397
397
|
c = described_class.new(:port => 38000)
|
398
398
|
c.start
|
399
|
-
end.
|
399
|
+
end.to raise_error(Bunny::TCPConnectionFailed)
|
400
400
|
end
|
401
401
|
|
402
402
|
it "is not connected" do
|
@@ -407,7 +407,7 @@ describe Bunny::Session do
|
|
407
407
|
true
|
408
408
|
end
|
409
409
|
|
410
|
-
subject.status.
|
410
|
+
expect(subject.status).to eq :not_connected
|
411
411
|
end
|
412
412
|
|
413
413
|
it "is not open" do
|
@@ -418,7 +418,7 @@ describe Bunny::Session do
|
|
418
418
|
true
|
419
419
|
end
|
420
420
|
|
421
|
-
subject.
|
421
|
+
expect(subject).not_to be_open
|
422
422
|
end
|
423
423
|
end
|
424
424
|
|
@@ -431,7 +431,7 @@ describe Bunny::Session do
|
|
431
431
|
conn = described_class.new(:hostname => "localhost", :logger => logger)
|
432
432
|
conn.start
|
433
433
|
|
434
|
-
io.string.length.
|
434
|
+
expect(io.string.length).to be > 100
|
435
435
|
|
436
436
|
conn.close
|
437
437
|
end
|