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