spec/lib/mailbox_spec.rb in mail_room-0.5.2 vs spec/lib/mailbox_spec.rb in mail_room-0.6.0

- old
+ new

@@ -1,14 +1,42 @@ require 'spec_helper' describe MailRoom::Mailbox do describe "#deliver" do + context "with arbitration_method of noop" do + it 'arbitrates with a Noop instance' do + mailbox = MailRoom::Mailbox.new({:arbitration_method => 'noop'}) + noop = stub(:deliver?) + MailRoom::Arbitration['noop'].stubs(:new => noop) + + uid = 123 + + mailbox.deliver?(uid) + + noop.should have_received(:deliver?).with(uid) + end + end + + context "with arbitration_method of redis" do + it 'arbitrates with a Redis instance' do + mailbox = MailRoom::Mailbox.new({:arbitration_method => 'redis'}) + redis = stub(:deliver?) + MailRoom::Arbitration['redis'].stubs(:new => redis) + + uid = 123 + + mailbox.deliver?(uid) + + redis.should have_received(:deliver?).with(uid) + end + end + context "with delivery_method of noop" do it 'delivers with a Noop instance' do mailbox = MailRoom::Mailbox.new({:delivery_method => 'noop'}) noop = stub(:deliver) - MailRoom::Delivery::Noop.stubs(:new => noop) + MailRoom::Delivery['noop'].stubs(:new => noop) mailbox.deliver(stub(:attr => {'RFC822' => 'a message'})) noop.should have_received(:deliver).with('a message') end @@ -16,11 +44,11 @@ context "with delivery_method of logger" do it 'delivers with a Logger instance' do mailbox = MailRoom::Mailbox.new({:delivery_method => 'logger'}) logger = stub(:deliver) - MailRoom::Delivery::Logger.stubs(:new => logger) + MailRoom::Delivery['logger'].stubs(:new => logger) mailbox.deliver(stub(:attr => {'RFC822' => 'a message'})) logger.should have_received(:deliver).with('a message') end @@ -28,11 +56,11 @@ context "with delivery_method of postback" do it 'delivers with a Postback instance' do mailbox = MailRoom::Mailbox.new({:delivery_method => 'postback'}) postback = stub(:deliver) - MailRoom::Delivery::Postback.stubs(:new => postback) + MailRoom::Delivery['postback'].stubs(:new => postback) mailbox.deliver(stub(:attr => {'RFC822' => 'a message'})) postback.should have_received(:deliver).with('a message') end @@ -40,11 +68,11 @@ context "with delivery_method of letter_opener" do it 'delivers with a LetterOpener instance' do mailbox = MailRoom::Mailbox.new({:delivery_method => 'letter_opener'}) letter_opener = stub(:deliver) - MailRoom::Delivery::LetterOpener.stubs(:new => letter_opener) + MailRoom::Delivery['letter_opener'].stubs(:new => letter_opener) mailbox.deliver(stub(:attr => {'RFC822' => 'a message'})) letter_opener.should have_received(:deliver).with('a message') end @@ -52,10 +80,10 @@ context "without an RFC822 attribute" do it "doesn't deliver the message" do mailbox = MailRoom::Mailbox.new({:delivery_method => 'noop'}) noop = stub(:deliver) - MailRoom::Delivery::Noop.stubs(:new => noop) + MailRoom::Delivery['noop'].stubs(:new => noop) mailbox.deliver(stub(:attr => {'FLAGS' => [:Seen, :Recent]})) noop.should have_received(:deliver).never end