Sha256: cf389c89ec7de5c43cb24a871529a9262bf2dfef98c4008f867f757773ef0960

Contents?: true

Size: 1.72 KB

Versions: 7

Compression:

Stored size: 1.72 KB

Contents

require 'spec_helper'

describe MailRoom::Mailbox do
  describe "#deliver" do
    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)

        mailbox.deliver(stub(:attr => {'RFC822' => 'a message'}))

        noop.should have_received(:deliver).with('a message')
      end
    end

    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)

        mailbox.deliver(stub(:attr => {'RFC822' => 'a message'}))

        logger.should have_received(:deliver).with('a message')
      end
    end

    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)

        mailbox.deliver(stub(:attr => {'RFC822' => 'a message'}))

        postback.should have_received(:deliver).with('a message')
      end
    end

    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)

        mailbox.deliver(stub(:attr => {'RFC822' => 'a message'}))

        letter_opener.should have_received(:deliver).with('a message')
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mail_room-0.4.0 spec/lib/mailbox_spec.rb
mail_room-0.3.1 spec/lib/mailbox_spec.rb
mail_room-0.3.0 spec/lib/mailbox_spec.rb
mail_room-0.2.0 spec/lib/mailbox_spec.rb
mail_room-0.1.0 spec/lib/mailbox_spec.rb
mail_room-0.0.3 spec/lib/mailbox_spec.rb
mail_room-0.0.2 spec/lib/mailbox_spec.rb