spec/units/message_driver/broker_spec.rb in message-driver-0.4.0 vs spec/units/message_driver/broker_spec.rb in message-driver-0.5.0
- old
+ new
@@ -1,36 +1,36 @@
require 'spec_helper'
require 'message_driver/adapters/in_memory_adapter'
module MessageDriver
- describe Broker do
+ RSpec.describe Broker do
let(:broker_name) { described_class::DEFAULT_BROKER_NAME }
let(:options) { { adapter: :in_memory } }
describe '.configure and .broker' do
it 'calls new, passing in the options and saves the instance' do
- options = {foo: :bar}
+ options = { foo: :bar }
result = double(described_class).as_null_object
- described_class.should_receive(:new).with(described_class::DEFAULT_BROKER_NAME, options).and_return(result)
+ expect(described_class).to receive(:new).with(described_class::DEFAULT_BROKER_NAME, options).and_return(result)
described_class.configure(options)
expect(described_class.broker).to be result
expect(described_class.broker(described_class::DEFAULT_BROKER_NAME)).to be result
end
it "doesn't allow you to configure the same broker twice" do
described_class.configure(broker_name, options)
- expect {
+ expect do
described_class.configure(broker_name, options)
- }.to raise_error MessageDriver::BrokerAlreadyConfigured, match('default')
+ end.to raise_error MessageDriver::BrokerAlreadyConfigured, /default/
end
context 'when configurating multiple brokers' do
it 'allows you to fetch each configured broker through .broker' do
- options1 = {foo: :bar}
- options2 = {bar: :baz}
+ options1 = { foo: :bar }
+ options2 = { bar: :baz }
result1 = double('result1').as_null_object
result2 = double('result2').as_null_object
allow(described_class).to receive(:new).with(:result1, options1).and_return(result1)
allow(described_class).to receive(:new).with(:result2, options2).and_return(result2)
@@ -42,13 +42,13 @@
end
end
context "when you try to access a broker that isn't configured" do
it 'should raise an error' do
- expect {
+ expect do
described_class.broker(:not_an_adapter)
- }.to raise_error BrokerNotConfigured
+ end.to raise_error BrokerNotConfigured
end
end
end
describe '.reset' do
@@ -62,41 +62,41 @@
described_class.reset
expect(broker1).to have_received(:stop)
expect(broker2).to have_received(:stop)
- expect {
+ expect do
described_class.broker(:broker1)
- }.to raise_error BrokerNotConfigured
+ end.to raise_error BrokerNotConfigured
- expect {
+ expect do
described_class.broker(:broker2)
- }.to raise_error BrokerNotConfigured
+ end.to raise_error BrokerNotConfigured
end
context 'when one of the brokers raises and error' do
it 'still stops all the brokers' do
broker1 = described_class.configure(:broker1, adapter: :in_memory)
broker2 = described_class.configure(:broker2, adapter: :in_memory)
allow(broker1).to receive(:stop).and_raise 'error stopping broker1!'
allow(broker2).to receive(:stop).and_call_original
- expect {
+ expect do
described_class.reset
- }.not_to raise_error
+ end.not_to raise_error
expect(broker1).to have_received(:stop)
expect(broker2).to have_received(:stop)
- expect {
+ expect do
described_class.broker(:broker1)
- }.to raise_error BrokerNotConfigured
+ end.to raise_error BrokerNotConfigured
- expect {
+ expect do
described_class.broker(:broker2)
- }.to raise_error BrokerNotConfigured
+ end.to raise_error BrokerNotConfigured
end
end
end
describe '.client' do
@@ -121,13 +121,13 @@
end
end
describe '#initialize' do
it "raises an error if you don't specify an adapter" do
- expect {
+ expect do
described_class.new({})
- }.to raise_error(/must specify an adapter/)
+ end.to raise_error(/must specify an adapter/)
end
it 'if you provide an adapter instance, it uses that one' do
adapter = Adapters::InMemoryAdapter.new({})
@@ -150,13 +150,13 @@
end
it "raises and error if you don't provide a MessageDriver::Adapters::Base" do
adapter = Hash.new
- expect {
+ expect do
described_class.new(adapter: adapter)
- }.to raise_error(/adapter must be a MessageDriver::Adapters::Base/)
+ end.to raise_error(/adapter must be a MessageDriver::Adapters::Base/)
end
it 'starts off with the adapter not stopped' do
adapter = :in_memory
@@ -192,13 +192,13 @@
expect(adapter).to have_received(:stop)
end
it 'marks the broker as stopped' do
- expect {
+ expect do
subject.stop
- }.to change { subject.stopped? }.from(false).to(true)
+ end.to change { subject.stopped? }.from(false).to(true)
end
it 'invalidates the contexts' do
my_ctx = double('context', invalidate: nil)
adapter.contexts << my_ctx
@@ -213,33 +213,33 @@
before do
allow(original_adapter).to receive(:stop).and_call_original
end
it 'reconfigures the adapter' do
- expect {
+ expect do
subject.restart
- }.to change { subject.adapter }
+ end.to change { subject.adapter }
end
it "stops the adapter if it hasn't already been stopped" do
subject.restart
expect(original_adapter).to have_received(:stop).once
end
it 'does not stop the adapter again if it has already been stopped' do
expect(subject.adapter).to be original_adapter
subject.stop
- expect {
+ expect do
subject.restart
- }.to change { subject.stopped? }.from(true).to(false)
+ end.to change { subject.stopped? }.from(true).to(false)
expect(original_adapter).to have_received(:stop).once
end
end
describe '#configuration' do
it 'returns the configuration hash you passed to .configure' do
- config = {adapter: :in_memory, foo: :bar, baz: :boz}
+ config = { adapter: :in_memory, foo: :bar, baz: :boz }
instance = described_class.new(config)
expect(instance.configuration).to be config
end
end
@@ -257,45 +257,45 @@
end
context "when the destination can't be found" do
let(:bad_dest_name) { :not_a_queue }
it 'raises a MessageDriver:NoSuchDestinationError' do
- expect {
+ expect do
broker.find_destination(bad_dest_name)
- }.to raise_error(MessageDriver::NoSuchDestinationError, /#{bad_dest_name}/)
+ end.to raise_error(MessageDriver::NoSuchDestinationError, /#{bad_dest_name}/)
end
end
end
describe '#consumer' do
- let(:consumer_double) { lambda do |_| end }
+ let(:consumer_double) { ->(_) {} }
it 'saves the provided consumer' do
broker.consumer(:my_consumer, &consumer_double)
expect(broker.consumers[:my_consumer]).to be(consumer_double)
end
context 'when no consumer is provided' do
it 'raises an error' do
- expect {
+ expect do
broker.consumer(:my_consumer)
- }.to raise_error(MessageDriver::Error, 'you must provide a block')
+ end.to raise_error(MessageDriver::Error, 'you must provide a block')
end
end
end
describe '#find_consumer' do
- let(:consumer_double) { lambda do |_| end }
+ let(:consumer_double) { ->(_) {} }
it 'finds the previously defined consumer' do
my_consumer = broker.consumer(:my_consumer, &consumer_double)
expect(broker.find_consumer(:my_consumer)).to be(my_consumer)
end
context "when the consumer can't be found" do
let(:bad_consumer_name) { :not_a_queue }
it 'raises a MessageDriver:NoSuchConsumerError' do
- expect {
+ expect do
broker.find_consumer(bad_consumer_name)
- }.to raise_error(MessageDriver::NoSuchConsumerError, /#{bad_consumer_name}/)
+ end.to raise_error(MessageDriver::NoSuchConsumerError, /#{bad_consumer_name}/)
end
end
end
describe '#dynamic_destination' do