module ActionMailboxAmazonIngress::RSpec

Public Instance Methods

amazon_ingress_deliver_email(options = {}) click to toggle source
# File lib/action_mailbox_amazon_ingress/rspec.rb, line 16
def amazon_ingress_deliver_email(options = {})
  email = Email.new(**options)
  stub_aws_sns_message_verifier(email)
  post email.url, params: email.params.to_json,
                  headers: email.headers
end
amazon_ingress_deliver_subscription_confirmation(options = {}) click to toggle source
# File lib/action_mailbox_amazon_ingress/rspec.rb, line 8
def amazon_ingress_deliver_subscription_confirmation(options = {})
  subscription_confirmation = SubscriptionConfirmation.new(**options)
  stub_aws_sns_message_verifier(subscription_confirmation)
  stub_aws_sns_subscription_request
  post subscription_confirmation.url, params: subscription_confirmation.params.to_json,
                                      headers: subscription_confirmation.headers
end

Private Instance Methods

message_verifier(subscription_confirmation) click to toggle source
# File lib/action_mailbox_amazon_ingress/rspec.rb, line 25
def message_verifier(subscription_confirmation)
  instance_double(Aws::SNS::MessageVerifier, authentic?: subscription_confirmation.authentic?)
end
stub_aws_sns_message_verifier(notification) click to toggle source
# File lib/action_mailbox_amazon_ingress/rspec.rb, line 29
def stub_aws_sns_message_verifier(notification)
  allow(Aws::SNS::MessageVerifier).to receive(:new) { message_verifier(notification) }
end
stub_aws_sns_subscription_request() click to toggle source
# File lib/action_mailbox_amazon_ingress/rspec.rb, line 33
def stub_aws_sns_subscription_request
  allow(Net::HTTP).to receive(:get_response).and_call_original
  allow(Net::HTTP)
    .to receive(:get_response)
      .with(URI('http://example.com/subscribe')) { double(code: '200') }
end