spec/units/message_driver/adapters/base_spec.rb in message-driver-0.6.1 vs spec/units/message_driver/adapters/base_spec.rb in message-driver-0.7.0
- old
+ new
@@ -1,57 +1,63 @@
require 'spec_helper'
module MessageDriver
module Adapters
RSpec.describe Base do
- class TestAdapter < Base
- def initialize(_configuration)
+ let(:spec_adapter_class) do
+ Class.new(described_class) do
+ def initialize; end
end
end
- subject(:adapter) { TestAdapter.new({}) }
+ subject(:adapter) { spec_adapter_class.new }
describe '#new_context' do
it 'raises an error' do
expect do
subject.new_context
end.to raise_error 'Must be implemented in subclass'
end
end
- describe ContextBase do
- class TestContext < ContextBase
- end
- subject(:adapter_context) { TestContext.new(adapter) }
+ context 'with a test adapter' do
+ subject(:adapter) { TestAdapter.new(nil, {}) }
- it_behaves_like 'an adapter context'
- it_behaves_like 'transactions are not supported'
- it_behaves_like 'client acks are not supported'
- it_behaves_like 'subscriptions are not supported'
+ describe ContextBase do
+ context 'with a test context subclass' do
+ subject(:adapter_context) { TestContext.new(adapter) }
- describe '#create_destination' do
- it 'raises an error' do
- expect do
- subject.create_destination('foo')
- end.to raise_error 'Must be implemented in subclass'
+ it_behaves_like 'an adapter context'
+ it_behaves_like 'transactions are not supported'
+ it_behaves_like 'client acks are not supported'
+ it_behaves_like 'subscriptions are not supported'
end
- end
- describe '#publish' do
- it 'raises an error' do
- expect do
- subject.publish(:destination, foo: 'bar')
- end.to raise_error 'Must be implemented in subclass'
+ subject(:adapter_context) { ContextBase.new(adapter) }
+
+ describe '#create_destination' do
+ it 'raises an error' do
+ expect do
+ subject.create_destination('foo')
+ end.to raise_error 'Must be implemented in subclass'
+ end
end
- end
- describe '#pop_message' do
- it 'raises an error' do
- expect do
- subject.pop_message(:destination)
- end.to raise_error 'Must be implemented in subclass'
+ describe '#publish' do
+ it 'raises an error' do
+ expect do
+ subject.publish(:destination, foo: 'bar')
+ end.to raise_error 'Must be implemented in subclass'
+ end
end
- end
+ describe '#pop_message' do
+ it 'raises an error' do
+ expect do
+ subject.pop_message(:destination)
+ end.to raise_error 'Must be implemented in subclass'
+ end
+ end
+ end
end
end
end
end