require 'test_helper' class JetpayTest < Test::Unit::TestCase include AbtainBilling::Billing def setup Base.gateway_mode = :test @gateway = JetpayGateway.new(:login => 'login') @credit_card = credit_card @amount = 100 @options = { :order_id => '1', :billing_address => address(:country => 'US'), :shipping_address => address(:country => 'US'), :email => 'test@test.com', :ip => '127.0.0.1', :order_id => '12345', :tax => 7 } end def test_successful_purchase @gateway.expects(:ssl_post).returns(successful_purchase_response) assert response = @gateway.purchase(@amount, @credit_card, @options) assert_success response assert_equal '707a4f1750d8dc03bd;TEST47;100', response.authorization assert_equal('TEST47', response.params["approval"]) assert response.test? end def test_unsuccessful_request @gateway.expects(:ssl_post).returns(failed_purchase_response) assert response = @gateway.purchase(@amount, @credit_card, @options) assert_failure response assert_equal('7605f7c5d6e8f74deb;;100', response.authorization) assert response.test? end def test_successful_authorize @gateway.expects(:ssl_post).returns(successful_authorize_response) assert response = @gateway.authorize(@amount, @credit_card, @options) assert_success response assert_equal('010327153017T10018;502F6B;100', response.authorization) assert_equal('502F6B', response.params["approval"]) assert response.test? end def test_successful_capture @gateway.expects(:ssl_post).returns(successful_capture_response) assert response = @gateway.capture(1111, "010327153017T10018;502F7B;1111") assert_success response assert_equal('010327153017T10018;502F6B;1111', response.authorization) assert_equal('502F6B', response.params["approval"]) assert response.test? end def test_successful_void # no need for csv card = credit_card('4242424242424242', :verification_value => nil) @gateway.expects(:ssl_post).returns(successful_void_response) assert response = @gateway.void('010327153x17T10418;502F7B;500') assert_success response assert_equal('010327153x17T10418;502F7B;500', response.authorization) assert_equal('502F7B', response.params["approval"]) assert response.test? end def test_successful_credit # no need for csv card = credit_card('4242424242424242', :verification_value => nil) @gateway.expects(:ssl_post).returns(successful_credit_response) # linked credit assert response = @gateway.credit(9900, '010327153017T10017') assert_success response assert_equal('010327153017T10017;002F6B;9900', response.authorization) assert_equal('002F6B', response.params['approval']) assert response.test? # unlinked credit @gateway.expects(:ssl_post).returns(successful_credit_response) assert response = @gateway.credit(9900, card) assert_success response end def test_avs_result @gateway.expects(:ssl_post).returns(successful_purchase_response) response = @gateway.purchase(@amount, @credit_card) assert_equal 'Y', response.avs_result['code'] end def test_cvv_result @gateway.expects(:ssl_post).returns(successful_purchase_response) response = @gateway.purchase(@amount, @credit_card) assert_equal 'P', response.cvv_result['code'] end private def successful_purchase_response <<-EOF 707a4f1750d8dc03bd 000 TEST47 P APPROVED Y Y Y EOF end def failed_purchase_response <<-EOF 7605f7c5d6e8f74deb 005 DECLINED EOF end def successful_authorize_response <<-EOF 010327153017T10018 000 502F6B APPROVED EOF end def successful_capture_response <<-EOF 010327153017T10018 000 502F6B APPROVED EOF end def successful_void_response <<-EOF 010327153x17T10418 000 502F7B VOID PROCESSED EOF end def successful_credit_response <<-EOF 010327153017T10017 000 002F6B APPROVED EOF end end