require File.dirname(__FILE__) + '/../../test_helper'
class TransFirstTest < Test::Unit::TestCase
AMOUNT = 100
def setup
@gateway = TransFirstGateway.new(
:login => 'LOGIN',
:password => 'PASSWORD'
)
@creditcard = credit_card('4242424242424242')
@address = { :address1 => '1234 My Street',
:address2 => 'Apt 1',
:company => 'Widgets Inc',
:city => 'Ottawa',
:state => 'ON',
:zip => 'K1C2N6',
:country => 'Canada',
:phone => '(555)555-5555'
}
end
def test_successful_request
@creditcard.number = 1
assert response = @gateway.purchase(AMOUNT, @creditcard, {})
assert_success response
assert_equal '5555', response.authorization
assert response.test?
end
def test_unsuccessful_request
@creditcard.number = 2
assert response = @gateway.purchase(AMOUNT, @creditcard, {})
assert_failure response
assert response.test?
end
def test_request_error
@creditcard.number = 3
assert_raise(Error){ @gateway.purchase(AMOUNT, @creditcard, {}) }
end
def test_missing_field_response
@gateway.stubs(:ssl_post).returns(missing_field_response)
response = @gateway.purchase(AMOUNT, @creditcard)
assert_failure response
assert response.test?
assert_equal 'Missing parameter: UserId.', response.message
end
def test_successful_purchase
@gateway.stubs(:ssl_post).returns(successful_purchase_response)
response = @gateway.purchase(AMOUNT, @creditcard)
assert_success response
assert response.test?
assert_equal 'test transaction', response.message
assert_equal '355', response.authorization
end
def test_failed_purchase
@gateway.stubs(:ssl_post).returns(failed_purchase_response)
response = @gateway.purchase(AMOUNT, @creditcard)
assert_failure response
assert response.test?
assert_equal '29005716', response.authorization
assert_equal 'Invalid cardholder number', response.message
end
private
def missing_field_response
"Missing parameter: UserId.\r\n"
end
def successful_purchase_response
<<-XML
355
c2535abbf0bb38005a14fd575553df65
1.00
Test00
Authorized
test transaction
XML
end
def failed_purchase_response
<<-XML
29005716
0610
2005-09-29T15:16:23.7297658-07:00
2005-09-29T15:16:23.9641468-07:00
0.02
Declined
Invalid cardholder number
XML
end
end