Sha256: 9dfd4b47cba47012d6c47aee43d33fd0095ab9093b5fc5a9f2c7eec09dbfae2a

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

require 'spec_helper'

module MessageDriver::Adapters
  describe Base do
    class TestAdapter < Base
      def initialize(_configuration)
      end
    end
    subject(:adapter) { TestAdapter.new({}) }

    describe '#new_context' do
      it 'raises an error' do
        expect {
          subject.new_context
        }.to raise_error 'Must be implemented in subclass'
      end
    end

    describe ContextBase do
      class TestContext < ContextBase
      end
      subject(:adapter_context) { TestContext.new(adapter) }

      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 '#create_destination' do
        it 'raises an error' do
          expect {
            subject.create_destination('foo')
          }.to raise_error 'Must be implemented in subclass'
        end
      end

      describe '#publish' do
        it 'raises an error' do
          expect {
            subject.publish(:destination, foo: 'bar')
          }.to raise_error 'Must be implemented in subclass'
        end
      end

      describe '#pop_message' do
        it 'raises an error' do
          expect {
            subject.pop_message(:destination)
          }.to raise_error 'Must be implemented in subclass'
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
message-driver-0.4.0 spec/units/message_driver/adapters/base_spec.rb