Sha256: cac309c388bc13fa80a42c73f008e0f39fea759b857e740d316c70cef3d2156a
Contents?: true
Size: 1.28 KB
Versions: 30
Compression:
Stored size: 1.28 KB
Contents
require "spec_helper" require "set" describe Bunny::Queue, "#subscribe_with" do let(:connection) do c = Bunny.new(username: "bunny_gem", password: "bunny_password", vhost: "bunny_testbed") c.start c end after :each do connection.close if connection.open? end context "with explicit acknowledgements mode" do class ExampleConsumer < Bunny::Consumer def cancelled? @cancelled end def handle_cancellation(_) @cancelled = true end def call(delivery_info, metadata, payload) # no-op end end # demonstrates that manual acknowledgement mode is actually # used. MK. it "requeues messages on channel closure" do ch1 = connection.create_channel ch2 = connection.create_channel q1 = ch1.queue("bunny.tests.consumer_object1", exclusive: true) q2 = ch2.queue("bunny.tests.consumer_object1", exclusive: true) ec = ExampleConsumer.new(ch1, q1, "", false) x = ch2.default_exchange t = Thread.new do 50.times do x.publish("hello", routing_key: q2.name) end end t.abort_on_exception = true q1.subscribe_with(ec, manual_ack: true) sleep 2 ch1.close expect(q2.message_count).to eq 50 end end end
Version data entries
30 entries across 30 versions & 1 rubygems