spec/support/shared/subscription_examples.rb in message-driver-0.3.0 vs spec/support/shared/subscription_examples.rb in message-driver-0.4.0
- old
+ new
@@ -1,42 +1,42 @@
-shared_examples "subscriptions are not supported" do
- describe "#supports_subscriptions?" do
- it "returns false" do
+shared_examples 'subscriptions are not supported' do
+ describe '#supports_subscriptions?' do
+ it 'returns false' do
expect(subject.supports_subscriptions?).to eq(false)
end
end
- describe "#subscribe" do
- it "raises an error" do
- destination = double("destination")
- consumer = lambda do |m| end
+ describe '#subscribe' do
+ it 'raises an error' do
+ destination = double('destination')
+ consumer = lambda do |_| end
expect {
subject.subscribe(destination, &consumer)
}.to raise_error "#subscribe is not supported by #{subject.adapter.class}"
end
end
end
-shared_examples "subscriptions are supported" do |subscription_type|
- describe "#supports_subscriptions?" do
- it "returns true" do
+shared_examples 'subscriptions are supported' do |subscription_type|
+ describe '#supports_subscriptions?' do
+ it 'returns true' do
expect(subject.supports_subscriptions?).to eq(true)
end
end
- let(:destination) { adapter_context.create_destination("subscriptions_example_queue") }
+ let(:destination) { adapter_context.create_destination('subscriptions_example_queue') }
- let(:message1) { "message 1" }
- let(:message2) { "message 2" }
+ let(:message1) { 'message 1' }
+ let(:message2) { 'message 2' }
let(:messages) { [] }
let(:consumer) do
lambda do |msg|
messages << msg
end
end
- describe "#subscribe" do
+ describe '#subscribe' do
before do
if destination.respond_to? :purge
destination.purge
end
end
@@ -44,99 +44,99 @@
let(:subscription) { adapter_context.subscribe(destination, &consumer) }
after do
subscription.unsubscribe
end
- it "returns a MessageDriver::Subscription::Base" do
+ it 'returns a MessageDriver::Subscription::Base' do
expect(subscription).to be_a MessageDriver::Subscription::Base
end
- context "the subscription" do
+ context 'the subscription' do
subject { subscription }
it { should be_a MessageDriver::Subscription::Base }
it { should be_a subscription_type }
its(:adapter) { should be adapter }
its(:destination) { should be destination }
its(:consumer) { should be consumer }
- describe "#unsubscribe" do
+ describe '#unsubscribe' do
it "makes it so messages don't go to the consumer any more" do
subscription.unsubscribe
expect {
- destination.publish("should not be consumed")
+ destination.publish('should not be consumed')
}.to_not change{messages.size}
end
end
end
- context "when there are already messages in the destination" do
+ context 'when there are already messages in the destination' do
before do
destination.publish(message1)
destination.publish(message2)
end
- it "plays the messages into the consumer" do
+ it 'plays the messages into the consumer' do
expect {
subscription
pause_if_needed
}.to change{messages.size}.from(0).to(2)
bodies = messages.map(&:body)
expect(bodies).to include(message1)
expect(bodies).to include(message2)
end
- it "removes the messages from the queue" do
+ it 'removes the messages from the queue' do
pause_if_needed
expect {
subscription
pause_if_needed
}.to change{destination.message_count}.from(2).to(0)
end
end
- context "when a message is published to the destination" do
+ context 'when a message is published to the destination' do
before do
subscription
end
- it "consumers the message into the consumer instead of putting them on the queue" do
+ it 'consumers the message into the consumer instead of putting them on the queue' do
expect {
expect {
subject.publish(destination, message1)
pause_if_needed
}.to change{messages.length}.from(0).to(1)
}.to_not change{destination.message_count}
expect(messages[0].body).to eq(message1)
end
end
- context "when the consumer raises an error" do
- let(:error) { RuntimeError.new("oh nos!") }
+ context 'when the consumer raises an error' do
+ let(:error) { RuntimeError.new('oh nos!') }
let(:consumer) do
- lambda do |msg|
+ lambda do |_|
raise error
end
end
before do
destination.publish(message1)
destination.publish(message2)
end
- it "keeps processing the messages" do
+ it 'keeps processing the messages' do
pause_if_needed
expect {
subscription
pause_if_needed
}.to change{destination.message_count}.from(2).to(0)
end
- context "an error_handler is provided" do
+ context 'an error_handler is provided' do
let(:error_handler) { double(:error_handler, call: nil) }
let(:subscription) { adapter_context.subscribe(destination, error_handler: error_handler, &consumer) }
- it "passes the errors and the messages to the error handler" do
+ it 'passes the errors and the messages to the error handler' do
subscription
pause_if_needed
expect(error_handler).to have_received(:call).with(error, kind_of(MessageDriver::Message::Base)).at_least(2).times
end
end