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 44 45 46 47 48 49 50 51 52 53 54 55 56
|
# encoding: utf-8
require "spec_helper"
describe "Messages with empty bodies" do
#
# Environment
#
include EventedSpec::AMQPSpec
default_options AMQP_OPTS
default_timeout 5
amqp_before do
@channel = AMQP::Channel.new
@channel.on_error do |ch, close|
raise "Channel-level error!: #{close.inspect}"
end
@queue = @channel.queue("", :auto_delete => true)
@exchange = @channel.direct("amqpgem.tests.integration.direct.exchange", :auto_delete => true)
@queue.bind(@exchange, :routing_key => "builds.all")
end
it "can be mixed with any other messages" do
mailbox1 = Array.new
mailbox2 = Array.new
consumer1 = AMQP::Consumer.new(@channel, @queue).consume
consumer2 = AMQP::Consumer.new(@channel, @queue).consume
consumer1.on_delivery do |metadata, payload|
mailbox1 << payload
end
consumer2.on_delivery do |metadata, payload|
mailbox2 << payload
end
EventMachine.add_timer(0.5) do
12.times { @exchange.publish("", :routing_key => "builds.all") }
12.times { @exchange.publish(".", :routing_key => "all.builds") }
12.times { @exchange.publish("", :routing_key => "all.builds") }
end
done(1.5) {
mailbox1.size.should == 6
mailbox2.size.should == 6
}
end
end
|