Sha256: 539a93d5416af9422ece73dd449682f3d7e81a1dbe0485d03a79c9de808b2241

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.3.0 spec/units/message_driver/adapters/base_spec.rb