bunny 1.7.1 → 2.0.0.rc1
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.
- 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
@@ -20,9 +20,9 @@ describe Bunny::Session do
|
|
20
20
|
c.start
|
21
21
|
ch = c.create_channel
|
22
22
|
|
23
|
-
c.
|
23
|
+
expect(c).to be_connected
|
24
24
|
c.stop
|
25
|
-
c.
|
25
|
+
expect(c).to be_closed
|
26
26
|
end
|
27
27
|
|
28
28
|
it "can be closed twice (Session#close is idempotent)" do
|
@@ -30,11 +30,11 @@ describe Bunny::Session do
|
|
30
30
|
c.start
|
31
31
|
ch = c.create_channel
|
32
32
|
|
33
|
-
c.
|
33
|
+
expect(c).to be_connected
|
34
34
|
c.stop
|
35
|
-
c.
|
35
|
+
expect(c).to be_closed
|
36
36
|
c.stop
|
37
|
-
c.
|
37
|
+
expect(c).to be_closed
|
38
38
|
end
|
39
39
|
|
40
40
|
describe "in a single threaded mode" do
|
@@ -43,9 +43,9 @@ describe Bunny::Session do
|
|
43
43
|
c.start
|
44
44
|
ch = c.create_channel
|
45
45
|
|
46
|
-
c.
|
46
|
+
expect(c).to be_connected
|
47
47
|
c.stop
|
48
|
-
c.
|
48
|
+
expect(c).to be_closed
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -56,14 +56,14 @@ describe Bunny::Session do
|
|
56
56
|
c.start
|
57
57
|
ch = c.create_channel
|
58
58
|
|
59
|
-
c.
|
59
|
+
expect(c).to be_open
|
60
60
|
close_connection(c.local_port)
|
61
61
|
sleep 0.2
|
62
|
-
c.
|
62
|
+
expect(c).not_to be_open
|
63
63
|
|
64
64
|
wait_for_recovery
|
65
|
-
c.
|
66
|
-
ch.
|
65
|
+
expect(c).to be_open
|
66
|
+
expect(ch).to be_open
|
67
67
|
|
68
68
|
c.close
|
69
69
|
end
|
@@ -34,7 +34,7 @@ describe Bunny::Channel do
|
|
34
34
|
ch.queue(queue_name, :auto_delete => true).delete
|
35
35
|
|
36
36
|
sleep 0.5
|
37
|
-
cancelled.
|
37
|
+
expect(cancelled).to eq true
|
38
38
|
|
39
39
|
ch.close
|
40
40
|
end
|
@@ -75,7 +75,7 @@ describe Bunny::Channel do
|
|
75
75
|
ch.queue(queue_name, :auto_delete => true).delete
|
76
76
|
|
77
77
|
sleep 0.5
|
78
|
-
consumer.
|
78
|
+
expect(consumer).to be_cancelled
|
79
79
|
|
80
80
|
ch.close
|
81
81
|
end
|
@@ -120,7 +120,7 @@ describe Bunny::Channel do
|
|
120
120
|
x.publish("abc", :routing_key => queue_name)
|
121
121
|
sleep 0.5
|
122
122
|
q = ch.queue("basic.consume.after_cancellation", :auto_delete => true)
|
123
|
-
xs.
|
123
|
+
expect(xs).to eq ["abc"]
|
124
124
|
|
125
125
|
ch.close
|
126
126
|
end
|
@@ -23,15 +23,15 @@ describe "A message" do
|
|
23
23
|
sleep 0.2
|
24
24
|
|
25
25
|
delivery_info, _, _ = q.pop(:manual_ack => true)
|
26
|
-
dlq.message_count.
|
26
|
+
expect(dlq.message_count).to be_zero
|
27
27
|
ch.nack(delivery_info.delivery_tag)
|
28
28
|
|
29
29
|
sleep 0.2
|
30
|
-
q.message_count.
|
30
|
+
expect(q.message_count).to be_zero
|
31
31
|
|
32
32
|
delivery, properties, body = dlq.pop
|
33
33
|
ds = properties.headers["x-death"]
|
34
|
-
ds.
|
34
|
+
expect(ds).not_to be_empty
|
35
35
|
expect(ds.first["reason"]).to eq("rejected")
|
36
36
|
|
37
37
|
dlx.delete
|
@@ -48,8 +48,8 @@ describe "A message" do
|
|
48
48
|
x.publish("")
|
49
49
|
sleep 0.2
|
50
50
|
|
51
|
-
q.message_count.
|
52
|
-
dlq.message_count.
|
51
|
+
expect(q.message_count).to be_zero
|
52
|
+
expect(dlq.message_count).to eq 1
|
53
53
|
|
54
54
|
dlx.delete
|
55
55
|
end
|
@@ -67,7 +67,7 @@ describe "A message" do
|
|
67
67
|
|
68
68
|
delivery, properties, body = dlq.pop
|
69
69
|
ds = properties.headers["x-death"]
|
70
|
-
ds.
|
70
|
+
expect(ds).not_to be_empty
|
71
71
|
expect(ds.first["reason"]).to eq("expired")
|
72
72
|
|
73
73
|
dlx.delete
|
@@ -17,7 +17,7 @@ describe Bunny::Exchange do
|
|
17
17
|
|
18
18
|
x = Bunny::Exchange.default(ch)
|
19
19
|
|
20
|
-
x.name.
|
20
|
+
expect(x.name).to eq ''
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -28,7 +28,7 @@ describe Bunny::Exchange do
|
|
28
28
|
|
29
29
|
name = "bunny.tests.exchanges.fanout#{rand}"
|
30
30
|
x = ch.fanout(name)
|
31
|
-
x.name.
|
31
|
+
expect(x.name).to eq name
|
32
32
|
|
33
33
|
x.delete
|
34
34
|
ch.close
|
@@ -41,7 +41,7 @@ describe Bunny::Exchange do
|
|
41
41
|
|
42
42
|
name = "amq.fanout"
|
43
43
|
x = ch.fanout(name)
|
44
|
-
x.name.
|
44
|
+
expect(x.name).to eq name
|
45
45
|
|
46
46
|
ch.close
|
47
47
|
end
|
@@ -55,7 +55,7 @@ describe Bunny::Exchange do
|
|
55
55
|
ch.fanout("amq.test")
|
56
56
|
}.to raise_error(Bunny::AccessRefused)
|
57
57
|
|
58
|
-
ch.
|
58
|
+
expect(ch).to be_closed
|
59
59
|
expect {
|
60
60
|
ch.fanout("amq.test")
|
61
61
|
}.to raise_error(Bunny::ChannelAlreadyClosed)
|
@@ -68,9 +68,9 @@ describe Bunny::Exchange do
|
|
68
68
|
|
69
69
|
name = "bunny.tests.exchanges.durable"
|
70
70
|
x = ch.fanout(name, :durable => true)
|
71
|
-
x.name.
|
72
|
-
x.
|
73
|
-
x.
|
71
|
+
expect(x.name).to eq name
|
72
|
+
expect(x).to be_durable
|
73
|
+
expect(x).not_to be_auto_delete
|
74
74
|
|
75
75
|
x.delete
|
76
76
|
ch.close
|
@@ -84,9 +84,9 @@ describe Bunny::Exchange do
|
|
84
84
|
|
85
85
|
name = "bunny.tests.exchanges.auto-delete"
|
86
86
|
x = ch.fanout(name, :auto_delete => true)
|
87
|
-
x.name.
|
88
|
-
x.
|
89
|
-
x.
|
87
|
+
expect(x.name).to eq name
|
88
|
+
expect(x).not_to be_durable
|
89
|
+
expect(x).to be_auto_delete
|
90
90
|
|
91
91
|
ch.exchange(name, :type => :fanout, :auto_delete => true)
|
92
92
|
|
@@ -106,7 +106,7 @@ describe Bunny::Exchange do
|
|
106
106
|
ch.exchange_declare("bunny.tests.exchanges.fanout", :direct, :auto_delete => false, :durable => true)
|
107
107
|
}.to raise_error(Bunny::PreconditionFailed)
|
108
108
|
|
109
|
-
ch.
|
109
|
+
expect(ch).to be_closed
|
110
110
|
expect {
|
111
111
|
ch.fanout("bunny.tests.exchanges.fanout", :auto_delete => true, :durable => false)
|
112
112
|
}.to raise_error(Bunny::ChannelAlreadyClosed)
|
@@ -121,7 +121,7 @@ describe Bunny::Exchange do
|
|
121
121
|
|
122
122
|
name = "bunny.tests.exchanges.direct"
|
123
123
|
x = ch.direct(name)
|
124
|
-
x.name.
|
124
|
+
expect(x.name).to eq name
|
125
125
|
|
126
126
|
ch.exchange(name, :type => :direct)
|
127
127
|
|
@@ -136,7 +136,7 @@ describe Bunny::Exchange do
|
|
136
136
|
|
137
137
|
name = "amq.direct"
|
138
138
|
x = ch.direct(name)
|
139
|
-
x.name.
|
139
|
+
expect(x.name).to eq name
|
140
140
|
|
141
141
|
ch.close
|
142
142
|
end
|
@@ -150,7 +150,7 @@ describe Bunny::Exchange do
|
|
150
150
|
|
151
151
|
name = "bunny.tests.exchanges.topic"
|
152
152
|
x = ch.topic(name)
|
153
|
-
x.name.
|
153
|
+
expect(x.name).to eq name
|
154
154
|
|
155
155
|
ch.exchange(name, :type => :topic)
|
156
156
|
|
@@ -165,7 +165,7 @@ describe Bunny::Exchange do
|
|
165
165
|
|
166
166
|
name = "amq.topic"
|
167
167
|
x = ch.topic(name)
|
168
|
-
x.name.
|
168
|
+
expect(x.name).to eq name
|
169
169
|
|
170
170
|
ch.close
|
171
171
|
end
|
@@ -179,7 +179,7 @@ describe Bunny::Exchange do
|
|
179
179
|
|
180
180
|
name = "bunny.tests.exchanges.headers"
|
181
181
|
x = ch.headers(name)
|
182
|
-
x.name.
|
182
|
+
expect(x.name).to eq name
|
183
183
|
|
184
184
|
x.delete
|
185
185
|
ch.close
|
@@ -192,7 +192,7 @@ describe Bunny::Exchange do
|
|
192
192
|
|
193
193
|
name = "amq.match"
|
194
194
|
x = ch.headers(name)
|
195
|
-
x.name.
|
195
|
+
expect(x.name).to eq name
|
196
196
|
|
197
197
|
ch.close
|
198
198
|
end
|
@@ -204,7 +204,7 @@ describe Bunny::Exchange do
|
|
204
204
|
|
205
205
|
name = "amq.headers"
|
206
206
|
x = ch.headers(name)
|
207
|
-
x.name.
|
207
|
+
expect(x.name).to eq name
|
208
208
|
|
209
209
|
ch.close
|
210
210
|
end
|
@@ -216,7 +216,7 @@ describe Bunny::Exchange do
|
|
216
216
|
it "can be declared" do
|
217
217
|
ch = connection.create_channel
|
218
218
|
x = ch.fanout("bunny.tests.exchanges.internal", :internal => true)
|
219
|
-
x.
|
219
|
+
expect(x).to be_internal
|
220
220
|
x.delete
|
221
221
|
|
222
222
|
ch.close
|
@@ -227,7 +227,7 @@ describe Bunny::Exchange do
|
|
227
227
|
it "is not internal" do
|
228
228
|
ch = connection.create_channel
|
229
229
|
x = ch.fanout("bunny.tests.exchanges.non-internal")
|
230
|
-
x.
|
230
|
+
expect(x).not_to be_internal
|
231
231
|
x.delete
|
232
232
|
|
233
233
|
ch.close
|
@@ -21,7 +21,7 @@ describe Bunny::Exchange, "#delete" do
|
|
21
21
|
# no exception as of RabbitMQ 3.2. MK.
|
22
22
|
x.delete
|
23
23
|
|
24
|
-
ch.exchanges.size.
|
24
|
+
expect(ch.exchanges.size).to eq 0
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -43,7 +43,7 @@ describe Bunny::Exchange, "#delete" do
|
|
43
43
|
ch = connection.create_channel
|
44
44
|
x = ch.direct('amq.direct')
|
45
45
|
|
46
|
-
x.delete.
|
46
|
+
expect(x.delete).to eq nil
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -52,7 +52,7 @@ describe Bunny::Exchange, "#delete" do
|
|
52
52
|
ch = connection.create_channel
|
53
53
|
x = ch.fanout('amq.fanout')
|
54
54
|
|
55
|
-
x.delete.
|
55
|
+
expect(x.delete).to eq nil
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -61,7 +61,7 @@ describe Bunny::Exchange, "#delete" do
|
|
61
61
|
ch = connection.create_channel
|
62
62
|
x = ch.topic('amq.topic')
|
63
63
|
|
64
|
-
x.delete.
|
64
|
+
expect(x.delete).to eq nil
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -70,7 +70,7 @@ describe Bunny::Exchange, "#delete" do
|
|
70
70
|
ch = connection.create_channel
|
71
71
|
x = ch.headers('amq.headers')
|
72
72
|
|
73
|
-
x.delete.
|
73
|
+
expect(x.delete).to eq nil
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -79,7 +79,7 @@ describe Bunny::Exchange, "#delete" do
|
|
79
79
|
ch = connection.create_channel
|
80
80
|
x = ch.headers('amq.match')
|
81
81
|
|
82
|
-
x.delete.
|
82
|
+
expect(x.delete).to eq nil
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -89,16 +89,16 @@ describe Bunny::Exchange, "#delete" do
|
|
89
89
|
it "returns true" do
|
90
90
|
ch = connection.create_channel
|
91
91
|
|
92
|
-
connection.exchange_exists?("amq.fanout").
|
93
|
-
connection.exchange_exists?("amq.direct").
|
94
|
-
connection.exchange_exists?("amq.topic").
|
95
|
-
connection.exchange_exists?("amq.match").
|
92
|
+
expect(connection.exchange_exists?("amq.fanout")).to eq true
|
93
|
+
expect(connection.exchange_exists?("amq.direct")).to eq true
|
94
|
+
expect(connection.exchange_exists?("amq.topic")).to eq true
|
95
|
+
expect(connection.exchange_exists?("amq.match")).to eq true
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
99
|
context "when a exchange DOES NOT exist" do
|
100
100
|
it "returns false" do
|
101
|
-
connection.exchange_exists?("suf89u9a4jo3ndnakls##{Time.now.to_i}").
|
101
|
+
expect(connection.exchange_exists?("suf89u9a4jo3ndnakls##{Time.now.to_i}")).to eq false
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
@@ -24,14 +24,14 @@ describe Bunny::Exchange do
|
|
24
24
|
source.publish("")
|
25
25
|
sleep 0.5
|
26
26
|
|
27
|
-
queue.message_count.
|
27
|
+
expect(queue.message_count).to eq 1
|
28
28
|
queue.pop(:manual_ack => true)
|
29
29
|
|
30
30
|
destination.unbind(source)
|
31
31
|
source.publish("")
|
32
32
|
sleep 0.5
|
33
33
|
|
34
|
-
queue.message_count.
|
34
|
+
expect(queue.message_count).to eq 0
|
35
35
|
|
36
36
|
source.delete
|
37
37
|
destination.delete
|
@@ -79,7 +79,7 @@ describe "A message that is proxied by multiple intermediate consumers" do
|
|
79
79
|
puts "About to sleep for #{t} seconds..."
|
80
80
|
sleep(t)
|
81
81
|
|
82
|
-
xs.size.
|
83
|
-
xs.last.
|
82
|
+
expect(xs.size).to eq n
|
83
|
+
expect(xs.last).to eq "msg #{n - 1}"
|
84
84
|
end
|
85
85
|
end
|
@@ -57,38 +57,38 @@ describe Bunny::Queue, "#subscribe" do
|
|
57
57
|
|
58
58
|
sleep 0.7
|
59
59
|
|
60
|
-
metadata.content_type.
|
61
|
-
metadata.priority.
|
60
|
+
expect(metadata.content_type).to eq "application/octet-stream"
|
61
|
+
expect(metadata.priority).to eq 8
|
62
62
|
|
63
63
|
time = metadata.headers["time"]
|
64
|
-
time.year.
|
65
|
-
time.month.
|
66
|
-
time.day.
|
67
|
-
time.hour.
|
68
|
-
time.min.
|
69
|
-
time.sec.
|
64
|
+
expect(time.year).to eq @now.year
|
65
|
+
expect(time.month).to eq @now.month
|
66
|
+
expect(time.day).to eq @now.day
|
67
|
+
expect(time.hour).to eq @now.hour
|
68
|
+
expect(time.min).to eq @now.min
|
69
|
+
expect(time.sec).to eq @now.sec
|
70
70
|
|
71
|
-
metadata.headers["coordinates"]["latitude"].
|
72
|
-
metadata.headers["participants"].
|
73
|
-
metadata.headers["venue"].
|
74
|
-
metadata.headers["true_field"].
|
75
|
-
metadata.headers["false_field"].
|
76
|
-
metadata.headers["nil_field"].
|
77
|
-
metadata.headers["ary_field"].
|
71
|
+
expect(metadata.headers["coordinates"]["latitude"]).to eq 59.35
|
72
|
+
expect(metadata.headers["participants"]).to eq 11
|
73
|
+
expect(metadata.headers["venue"]).to eq "Stockholm"
|
74
|
+
expect(metadata.headers["true_field"]).to eq true
|
75
|
+
expect(metadata.headers["false_field"]).to eq false
|
76
|
+
expect(metadata.headers["nil_field"]).to be_nil
|
77
|
+
expect(metadata.headers["ary_field"]).to eq ["one", 2.0, 3, [{ "abc" => 123}]]
|
78
78
|
|
79
|
-
metadata.timestamp.
|
80
|
-
metadata.type.
|
81
|
-
metadata.reply_to.
|
82
|
-
metadata.correlation_id.
|
83
|
-
metadata.message_id.
|
84
|
-
metadata.app_id.
|
79
|
+
expect(metadata.timestamp).to eq Time.at(@now.to_i)
|
80
|
+
expect(metadata.type).to eq "kinda.checkin"
|
81
|
+
expect(metadata.reply_to).to eq "a.sender"
|
82
|
+
expect(metadata.correlation_id).to eq "r-1"
|
83
|
+
expect(metadata.message_id).to eq "m-1"
|
84
|
+
expect(metadata.app_id).to eq "bunny.example"
|
85
85
|
|
86
|
-
envelope.consumer_tag.
|
87
|
-
envelope.consumer_tag.
|
88
|
-
envelope.
|
89
|
-
envelope.delivery_tag.
|
90
|
-
envelope.routing_key.
|
91
|
-
envelope.exchange.
|
86
|
+
expect(envelope.consumer_tag).not_to be_nil
|
87
|
+
expect(envelope.consumer_tag).not_to be_empty
|
88
|
+
expect(envelope).not_to be_redelivered
|
89
|
+
expect(envelope.delivery_tag).to eq 1
|
90
|
+
expect(envelope.routing_key).to eq queue_name
|
91
|
+
expect(envelope.exchange).to eq ""
|
92
92
|
|
93
93
|
ch.close
|
94
94
|
end
|