Initial commit
This commit is contained in:
44
spec/models/amqp_queue_spec.rb
Normal file
44
spec/models/amqp_queue_spec.rb
Normal file
@@ -0,0 +1,44 @@
|
||||
# encoding: UTF-8
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe AMQP::Queue do
|
||||
let(:config) do
|
||||
Hashie::Mash.new(connect: { host: '127.0.0.1' },
|
||||
exchange: { testx: { name: 'testx', type: 'fanout' } },
|
||||
queue: { testq: { name: 'testq', durable: true },
|
||||
testd: { name: 'testd' } },
|
||||
binding: {
|
||||
test: { queue: 'testq', exchange: 'testx' },
|
||||
testd: { queue: 'testd' },
|
||||
default: { queue: 'testq' }
|
||||
})
|
||||
end
|
||||
|
||||
let(:default_exchange) { stub('default_exchange') }
|
||||
let(:channel) { stub('channel', default_exchange: default_exchange) }
|
||||
|
||||
before do
|
||||
AMQP::Config.stubs(:data).returns(config)
|
||||
|
||||
AMQP::Queue.unstub(:publish)
|
||||
AMQP::Queue.stubs(:exchanges).returns(default: default_exchange)
|
||||
AMQP::Queue.stubs(:channel).returns(channel)
|
||||
end
|
||||
|
||||
it 'should instantiate exchange use exchange config' do
|
||||
channel.expects(:fanout).with('testx')
|
||||
AMQP::Queue.exchange(:testx)
|
||||
end
|
||||
|
||||
it 'should publish message on selected exchange' do
|
||||
exchange = mock('test exchange')
|
||||
channel.expects(:fanout).with('testx').returns(exchange)
|
||||
exchange.expects(:publish).with(JSON.dump(data: 'hello'), {})
|
||||
AMQP::Queue.publish(:testx, data: 'hello')
|
||||
end
|
||||
|
||||
it 'should publish message on default exchange' do
|
||||
default_exchange.expects(:publish).with(JSON.dump(data: 'hello'), routing_key: 'testd')
|
||||
AMQP::Queue.enqueue(:testd, data: 'hello')
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user