spec/integration/bunny/amqp_integration_spec.rb in message-driver-0.3.0 vs spec/integration/bunny/amqp_integration_spec.rb in message-driver-0.4.0
- old
+ new
@@ -1,142 +1,142 @@
require 'spec_helper'
-describe "AMQP Integration", :bunny, type: :integration do
+describe 'AMQP Integration', :bunny, type: :integration do
let!(:broker) { MessageDriver::Broker.configure BrokerConfig.config }
context "when a queue can't be found" do
- let(:queue_name) { "my.lost.queue" }
- it "raises a MessageDriver::QueueNotFound error" do
+ let(:queue_name) { 'my.lost.queue' }
+ it 'raises a MessageDriver::QueueNotFound error' do
expect {
broker.dynamic_destination(queue_name, passive: true)
}.to raise_error(MessageDriver::QueueNotFound) do |err|
expect(err.queue_name).to eq(queue_name)
expect(err.nested).to be_a Bunny::NotFound
end
end
end
- context "when a channel level exception occurs" do
- it "raises a MessageDriver::WrappedError error" do
+ context 'when a channel level exception occurs' do
+ it 'raises a MessageDriver::WrappedError error' do
expect {
- broker.dynamic_destination("not.a.queue", passive: true)
+ broker.dynamic_destination('not.a.queue', passive: true)
}.to raise_error(MessageDriver::WrappedError) { |err| err.nested.should be_a Bunny::ChannelLevelException }
end
- it "reestablishes the channel transparently" do
+ it 'reestablishes the channel transparently' do
expect {
- broker.dynamic_destination("not.a.queue", passive: true)
+ broker.dynamic_destination('not.a.queue', passive: true)
}.to raise_error(MessageDriver::WrappedError)
expect {
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
}.to_not raise_error
end
- context "when in a transaction" do
- it "sets the channel_context as rollback-only until the transaction is finished" do
+ context 'when in a transaction' do
+ it 'sets the channel_context as rollback-only until the transaction is finished' do
MessageDriver::Client.with_message_transaction do
expect {
- broker.dynamic_destination("not.a.queue", passive: true)
+ broker.dynamic_destination('not.a.queue', passive: true)
}.to raise_error(MessageDriver::WrappedError)
expect {
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
}.to raise_error(MessageDriver::TransactionRollbackOnly)
end
expect {
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
}.to_not raise_error
end
end
end
- context "when the broker connection fails", pending: "these spec are busted" do
+ context 'when the broker connection fails', pending: 'these spec are busted' do
def disrupt_connection
#yes, this is very implementation specific
broker.adapter.connection.instance_variable_get(:@transport).close
end
def create_destination(queue_name)
broker.dynamic_destination(queue_name, exclusive: true)
end
- it "raises a MessageDriver::ConnectionError" do
- dest = create_destination("test_queue")
+ it 'raises a MessageDriver::ConnectionError' do
+ dest = create_destination('test_queue')
disrupt_connection
expect {
- dest.publish("Reconnection Test")
+ dest.publish('Reconnection Test')
}.to raise_error(MessageDriver::ConnectionError) do |err|
expect(err.nested).to be_a Bunny::NetworkErrorWrapper
end
end
- it "seemlessly reconnects" do
- dest = create_destination("seemless.reconnect.queue")
+ it 'seemlessly reconnects' do
+ dest = create_destination('seemless.reconnect.queue')
disrupt_connection
expect {
- dest.publish("Reconnection Test 1")
+ dest.publish('Reconnection Test 1')
}.to raise_error(MessageDriver::ConnectionError)
- dest = create_destination("seemless.reconnect.queue")
- dest.publish("Reconnection Test 2")
+ dest = create_destination('seemless.reconnect.queue')
+ dest.publish('Reconnection Test 2')
msg = dest.pop_message
expect(msg).to_not be_nil
- expect(msg.body).to eq("Reconnection Test 2")
+ expect(msg.body).to eq('Reconnection Test 2')
end
- context "when in a transaction" do
- it "raises a MessageDriver::ConnectionError" do
+ context 'when in a transaction' do
+ it 'raises a MessageDriver::ConnectionError' do
expect {
MessageDriver::Client.with_message_transaction do
disrupt_connection
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
end
}.to raise_error(MessageDriver::ConnectionError)
end
- it "sets the channel_context as rollback-only until the transaction is finished" do
+ it 'sets the channel_context as rollback-only until the transaction is finished' do
MessageDriver::Client.with_message_transaction do
disrupt_connection
expect {
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
}.to raise_error(MessageDriver::ConnectionError)
expect {
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
}.to raise_error(MessageDriver::TransactionRollbackOnly)
end
expect {
- broker.dynamic_destination("", exclusive: true)
+ broker.dynamic_destination('', exclusive: true)
}.to_not raise_error
end
end
end
- context "when an unhandled expection occurs in a transaction" do
- let(:destination) { broker.dynamic_destination("", exclusive: true) }
+ context 'when an unhandled expection occurs in a transaction' do
+ let(:destination) { broker.dynamic_destination('', exclusive: true) }
- it "rolls back the transaction" do
+ it 'rolls back the transaction' do
expect {
MessageDriver::Client.with_message_transaction do
- destination.publish("Test Message")
- raise "unhandled error"
+ destination.publish('Test Message')
+ raise 'unhandled error'
end
- }.to raise_error "unhandled error"
+ }.to raise_error 'unhandled error'
expect(destination.pop_message).to be_nil
end
- it "allows the next transaction to continue" do
+ it 'allows the next transaction to continue' do
expect {
MessageDriver::Client.with_message_transaction do
- destination.publish("Test Message 1")
- raise "unhandled error"
+ destination.publish('Test Message 1')
+ raise 'unhandled error'
end
- }.to raise_error "unhandled error"
+ }.to raise_error 'unhandled error'
expect(destination.pop_message).to be_nil
MessageDriver::Client.with_message_transaction do
- destination.publish("Test Message 2")
+ destination.publish('Test Message 2')
end
msg = destination.pop_message
expect(msg).to_not be_nil
- expect(msg.body).to eq("Test Message 2")
+ expect(msg.body).to eq('Test Message 2')
end
end
end