spec/units/message_driver/broker_spec.rb in message-driver-0.3.0 vs spec/units/message_driver/broker_spec.rb in message-driver-0.4.0

- old
+ new

@@ -4,12 +4,12 @@ module MessageDriver 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 + describe '.configure and .broker' do + it 'calls new, passing in the options and saves the instance' do 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) described_class.configure(options) @@ -20,19 +20,19 @@ it "doesn't allow you to configure the same broker twice" do described_class.configure(broker_name, options) expect { described_class.configure(broker_name, options) - }.to raise_error MessageDriver::BrokerAlreadyConfigured, match("default") + }.to raise_error MessageDriver::BrokerAlreadyConfigured, match('default') end - context "when configurating multiple brokers" do - it "allows you to fetch each configured broker through .broker" do + context 'when configurating multiple brokers' do + it 'allows you to fetch each configured broker through .broker' do options1 = {foo: :bar} options2 = {bar: :baz} - result1 = double("result1").as_null_object - result2 = double("result2").as_null_object + 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) described_class.configure(:result1, options1) described_class.configure(:result2, options2) @@ -41,20 +41,20 @@ expect(described_class.broker(:result2)).to be(result2) end end context "when you try to access a broker that isn't configured" do - it "should raise an error" do + it 'should raise an error' do expect { described_class.broker(:not_an_adapter) }.to raise_error BrokerNotConfigured end end end - describe ".reset" do - it "stops and removes all the brokers" do + describe '.reset' do + it 'stops and removes 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_call_original allow(broker2).to receive(:stop).and_call_original @@ -71,16 +71,16 @@ expect { described_class.broker(:broker2) }.to raise_error BrokerNotConfigured end - context "when one of the brokers raises and error" do - it "still stops all the brokers" do + 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(broker1).to receive(:stop).and_raise 'error stopping broker1!' allow(broker2).to receive(:stop).and_call_original expect { described_class.reset }.not_to raise_error @@ -97,54 +97,54 @@ }.to raise_error BrokerNotConfigured end end end - describe ".client" do + describe '.client' do let(:broker_name) { described_class::DEFAULT_BROKER_NAME } - it "returns a module that extends MessageDriver::Client for the specified broker" do + it 'returns a module that extends MessageDriver::Client for the specified broker' do expect(described_class.client(broker_name)).to be_kind_of MessageDriver::Client expect(described_class.client(broker_name).broker_name).to eq(broker_name) end - it "caches the modules" do + it 'caches the modules' do first = described_class.client(broker_name) second = described_class.client(broker_name) expect(second).to be first end - context "when the broker has a non-default name" do + context 'when the broker has a non-default name' do let(:broker_name) { :my_cool_broker } it "returns a module that extends MessageDriver::Client that knows it's broker" do expect(described_class.client(broker_name)).to be_kind_of MessageDriver::Client expect(described_class.client(broker_name).broker_name).to eq(broker_name) end end end - describe "#initialize" do + describe '#initialize' do it "raises an error if you don't specify an adapter" do expect { described_class.new({}) }.to raise_error(/must specify an adapter/) end - it "if you provide an adapter instance, it uses that one" do + it 'if you provide an adapter instance, it uses that one' do adapter = Adapters::InMemoryAdapter.new({}) instance = described_class.new(adapter: adapter) expect(instance.adapter).to be adapter end - it "if you provide an adapter class, it will instansiate it" do + it 'if you provide an adapter class, it will instansiate it' do adapter = Adapters::InMemoryAdapter instance = described_class.new(adapter: adapter) expect(instance.adapter).to be_a adapter end - it "if you provide a symbol, it will try to look up the adapter class" do + it 'if you provide a symbol, it will try to look up the adapter class' do adapter = :in_memory instance = described_class.new(adapter: adapter) expect(instance.adapter).to be_a Adapters::InMemoryAdapter end @@ -155,18 +155,18 @@ expect { described_class.new(adapter: adapter) }.to raise_error(/adapter must be a MessageDriver::Adapters::Base/) end - it "starts off with the adapter not stopped" do + it 'starts off with the adapter not stopped' do adapter = :in_memory instance = described_class.new(adapter: adapter) expect(instance).not_to be_stopped end - it "has a default name of :default" do + it 'has a default name of :default' do adapter = :in_memory instance = described_class.new(adapter: adapter) expect(instance.name).to eq(:default) end @@ -178,155 +178,154 @@ instance = described_class.new(name, adapter: adapter) expect(instance.name).to eq(name) end end - context do subject!(:broker) { described_class.configure(broker_name, options) } - describe "#stop" do + describe '#stop' do let(:adapter) { broker.adapter } - it "calls stop on the adapter" do + it 'calls stop on the adapter' do allow(adapter).to receive(:stop).and_call_original subject.stop expect(adapter).to have_received(:stop) end - it "marks the broker as stopped" do + it 'marks the broker as stopped' do expect { subject.stop }.to change { subject.stopped? }.from(false).to(true) end - it "invalidates the contexts" do - my_ctx = double("context", invalidate: nil) + it 'invalidates the contexts' do + my_ctx = double('context', invalidate: nil) adapter.contexts << my_ctx subject.stop expect(adapter.contexts).to be_empty expect(my_ctx).to have_received(:invalidate) end end - describe "#restart" do + describe '#restart' do let!(:original_adapter) { subject.adapter } before do allow(original_adapter).to receive(:stop).and_call_original end - it "reconfigures the adapter" do + it 'reconfigures the adapter' do expect { subject.restart }.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 + it 'does not stop the adapter again if it has already been stopped' do expect(subject.adapter).to be original_adapter subject.stop expect { subject.restart }.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 + describe '#configuration' do + it 'returns the configuration hash you passed to .configure' do config = {adapter: :in_memory, foo: :bar, baz: :boz} instance = described_class.new(config) expect(instance.configuration).to be config end end - describe "#destination" do - it "returns the destination" do - destination = broker.destination(:my_queue, "my_queue", exclusive: true) + describe '#destination' do + it 'returns the destination' do + destination = broker.destination(:my_queue, 'my_queue', exclusive: true) expect(destination).to be_a MessageDriver::Destination::Base end end - describe "#find_destination" do - it "finds the previously defined destination" do - my_destination = broker.destination(:my_queue, "my_queue", exclusive: true) + describe '#find_destination' do + it 'finds the previously defined destination' do + my_destination = broker.destination(:my_queue, 'my_queue', exclusive: true) expect(broker.find_destination(:my_queue)).to be(my_destination) end context "when the destination can't be found" do let(:bad_dest_name) { :not_a_queue } - it "raises a MessageDriver:NoSuchDestinationError" do + it 'raises a MessageDriver:NoSuchDestinationError' do expect { broker.find_destination(bad_dest_name) }.to raise_error(MessageDriver::NoSuchDestinationError, /#{bad_dest_name}/) end end end - describe "#consumer" do - let(:consumer_double) { lambda do |m| end } - it "saves the provided consumer" do + describe '#consumer' do + let(:consumer_double) { lambda do |_| end } + 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 + context 'when no consumer is provided' do + it 'raises an error' do expect { broker.consumer(:my_consumer) - }.to raise_error(MessageDriver::Error, "you must provide a block") + }.to raise_error(MessageDriver::Error, 'you must provide a block') end end end - describe "#find_consumer" do - let(:consumer_double) { lambda do |m| end } - it "finds the previously defined consumer" do + describe '#find_consumer' do + let(:consumer_double) { lambda do |_| end } + 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 + it 'raises a MessageDriver:NoSuchConsumerError' do expect { broker.find_consumer(bad_consumer_name) }.to raise_error(MessageDriver::NoSuchConsumerError, /#{bad_consumer_name}/) end end end - describe "#dynamic_destination" do - it "returns the destination" do - destination = broker.dynamic_destination("my_queue", exclusive: true) + describe '#dynamic_destination' do + it 'returns the destination' do + destination = broker.dynamic_destination('my_queue', exclusive: true) expect(destination).to be_a MessageDriver::Destination::Base end end - describe "#client" do + describe '#client' do let(:broker_name) { described_class::DEFAULT_BROKER_NAME } it "returns a module that extends MessageDriver::Client that knows it's broker" do expect(broker.client).to be_kind_of MessageDriver::Client expect(broker.client.broker_name).to eq(broker_name) expect(broker.client.broker).to be(broker) end - it "caches the modules" do + it 'caches the modules' do first = broker.client second = broker.client expect(second).to be first end - it "returns the same module as .client" do + it 'returns the same module as .client' do expect(broker.client).to be described_class.client(broker.name) end - context "when the broker has a non-default name" do + context 'when the broker has a non-default name' do let(:broker_name) { :my_cool_broker } it "returns a module that extends MessageDriver::Client that knows it's broker" do expect(broker.name).to eq(broker_name) expect(broker.client).to be_kind_of MessageDriver::Client expect(broker.client.broker_name).to eq(broker_name)