spec/units/message_driver/adapters/base_spec.rb in message-driver-0.1.0 vs spec/units/message_driver/adapters/base_spec.rb in message-driver-0.2.0.rc1

- old
+ new

@@ -1,44 +1,63 @@ require 'spec_helper' module MessageDriver::Adapters describe Base do - class TestAdapter < described_class + class TestAdapter < Base def initialize(configuration) - end end - subject { TestAdapter.new({}) } + subject(:adapter) { TestAdapter.new({}) } - describe "#publish" do + describe "#new_context" do it "raises an error" do expect { - subject.publish(:destination, {foo: "bar"}) + subject.new_context }.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 - describe "#stop" do - it "raises an error" do + it "raises an error", pending: "maybe we don't want to do this" do expect { subject.stop }.to raise_error "Must be implemented in subclass" end end - describe "#create_destination" do - it "raises an error" do - expect { - subject.create_destination("foo") - }.to raise_error "Must be implemented in subclass" + 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