1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
require "spec_helper"
describe "Registering 2nd exclusive consumer on queue" do
before :all do
@connection = Bunny.new(:user => "bunny_gem", password: "bunny_password", :vhost => "bunny_testbed")
@connection.start
end
after :each do
@connection.close if @connection.open?
end
it "raises a meaningful exception" do
xs = []
ch1 = @connection.create_channel
ch2 = @connection.create_channel
q1 = ch1.queue("", :auto_delete => true)
q2 = ch2.queue(q1.name, :auto_delete => true, :passive => true)
c1 = q1.subscribe(exclusive: true) do |_, _, payload|
xs << payload
end
sleep 0.1
expect do
q2.subscribe(exclusive: true) do |_, _, _|
end
end.to raise_error(Bunny::AccessRefused)
expect(ch1).to be_open
expect(ch2).to be_closed
q1.publish("abc")
sleep 0.1
# verify that the first consumer is fine
expect(xs).to eq ["abc"]
q1.delete
end
end
|