require File.dirname(__FILE__) + '/../../test_helper' class EwayTest < Test::Unit::TestCase def setup @gateway = EwayGateway.new( :login => '87654321' ) @credit_card = credit_card('4646464646464646') @options = { :order_id => '1230123', :email => 'bob@testbob.com', :billing_address => { :address1 => '1234 First St.', :address2 => 'Apt. 1', :city => 'Melbourne', :state => 'ACT', :country => 'AU', :zip => '12345' }, :description => 'purchased items' } end def test_successful_purchase @gateway.expects(:ssl_post).returns(successful_purchase_response) assert response = @gateway.purchase(@amount, @credit_card, @options) assert_instance_of Response, response assert_success response assert_equal '123456', response.authorization end def test_failed_purchase @gateway.expects(:ssl_post).returns(failed_purchase_response) assert response = @gateway.purchase(@amount, @credit_card, @options) assert_instance_of Response, response assert_failure response end def test_amount_style assert_equal '1034', @gateway.send(:amount, 1034) assert_raise(ArgumentError) do @gateway.send(:amount, '10.34') end end def test_ensure_does_not_respond_to_authorize assert !@gateway.respond_to?(:authorize) end def test_ensure_does_not_respond_to_capture assert !@gateway.respond_to?(:capture) end def test_test_url_without_cvn assert_equal EwayGateway::TEST_URL, @gateway.send(:gateway_url, false, true) end def test_test_url_with_cvn assert_equal EwayGateway::TEST_CVN_URL, @gateway.send(:gateway_url, true, true) end def test_live_url_without_cvn assert_equal EwayGateway::LIVE_URL, @gateway.send(:gateway_url, false, false) end def test_live_url_with_cvn assert_equal EwayGateway::LIVE_CVN_URL, @gateway.send(:gateway_url, true, false) end def test_add_address post = {} @gateway.send(:add_address, post, @options) assert_equal '1234 First St., Apt. 1, Melbourne, ACT, AU', post[:CustomerAddress] assert_equal @options[:billing_address][:zip], post[:CustomerPostcode] end private def successful_purchase_response <<-XML True 11292 123456 100 00,Transaction Approved(Test CVN Gateway) XML end def failed_purchase_response <<-XML False 11290 100 eWAY Error: Invalid Expiry Date. Your credit card has not been billed for this transaction.(Test CVN Gateway) XML end end