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