aboutsummaryrefslogblamecommitdiffstats
path: root/test/unit/mailbox/callbacks_test.rb
blob: ada6410876b5266a316c8f687d97bb86dd64919e (plain) (tree)
























                                                                                         
require_relative '../../test_helper'

class CallbackMailbox < ActionMailroom::Mailbox
  before_processing { $before_processing = "Ran that!" }
  after_processing  { $after_processing = "Ran that too!" }
  around_processing ->(r, block) { block.call; $around_processing = "Ran that as well!" }

  def process
    $processed = mail.subject
  end
end

class ActionMailroom::Mailbox::CallbacksTest < ActiveSupport::TestCase
  setup do
    $before_processing = $after_processing = $around_processing = $processed = false
    @inbound_email = create_inbound_email("welcome.eml")
  end

  test "all callback types" do
    CallbackMailbox.receive @inbound_email
    assert_equal "Ran that!", $before_processing
    assert_equal "Ran that too!", $after_processing
    assert_equal "Ran that as well!", $around_processing
  end
end