X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=t%2Fcard.t;h=f00ce4e7b341de8fe01b86a2f6e1ea34fca69e3c;hb=HEAD;hp=a47d623255de5fce1e7e7da18bd9efd4f6d8f151;hpb=1d277ada8a9d43a42ae4f624ff0f03d63f41551c;p=Business-OnlinePayment-IPPay.git diff --git a/t/card.t b/t/card.t index a47d623..f00ce4e 100644 --- a/t/card.t +++ b/t/card.t @@ -1,10 +1,10 @@ #!/usr/bin/perl -w use Test::More; +require "t/lib/test_account.pl"; -my($login, $password, @opts) = ('TESTMERCHANT', '', - 'default_Origin' => 'RECURRING' ); -plan tests => 43; +my($login, $password, %opt) = test_account_or_skip('card'); +plan tests => 50; use_ok 'Business::OnlinePayment'; @@ -35,7 +35,7 @@ my $voidable_amount = 0; # valid card number test { - my $tx = Business::OnlinePayment->new("IPPay", @opts); + my $tx = Business::OnlinePayment->new("IPPay", %opt); $tx->content(%content); tx_check( $tx, @@ -55,23 +55,24 @@ my $voidable_amount = 0; # invalid card number test { - my $tx = Business::OnlinePayment->new("IPPay", @opts); + my $tx = Business::OnlinePayment->new("IPPay", %opt); $tx->content(%content, card_number => "4111111111111112" ); tx_check( $tx, desc => "invalid card_number", is_success => 0, - result_code => '912', - error_message => 'INVALID CARD NUMBER', + result_code => '900', #'912' with old jetpay gw + error_message => 'Invalid card number. ', #'INVALID CARD NUMBER' w/old gw authorization => qr/^$/, avs_code => '', # so rather pointless :\ cvv2_response => '', # ... + order_number => qr/^$/, ); } # authorization only test { - my $tx = Business::OnlinePayment->new("IPPay", @opts); + my $tx = Business::OnlinePayment->new("IPPay", %opt); $tx->content(%content, action => 'authorization only', amount => '3.00' ); tx_check( $tx, @@ -89,9 +90,38 @@ my $voidable_amount = 0; $postable_amount = $content{amount} if $tx->is_success; } +# authorization void test +{ + + my $tx = Business::OnlinePayment->new("IPPay", %opt); + $tx->content(%content, action => 'authorization only', amount => '3.00' ); + $tx->test_transaction(1); + $tx->submit; + + if ($tx->is_success) { + my $void_tx = Business::OnlinePayment->new("IPPay", %opt ); + + $tx->content(%content, action => 'reverse authorization', + order_number => $tx->order_number ); + tx_check( + $tx, + desc => "reverse authorization", + is_success => 1, + result_code => '000', + error_message => 'VOID SUCCESSFUL', + authorization => qr/TEST\d{2}/, + avs_code => '', # so rather pointless :\ + cvv2_response => 'P', # ... + ); + } + else { + + } +} + # post authorization test -SKIP: { - my $tx = new Business::OnlinePayment( "IPPay", %opts ); +{ + my $tx = new Business::OnlinePayment( "IPPay", %opt ); $tx->content( %content, 'action' => "post authorization", 'amount' => $postable_amount, # not required 'order_number' => $postable, @@ -109,8 +139,8 @@ SKIP: { } # void test -SKIP: { - my $tx = new Business::OnlinePayment( "IPPay", %opts ); +{ + my $tx = new Business::OnlinePayment( "IPPay", %opt ); $tx->content( %content, 'action' => "Void", 'order_number' => $voidable, 'authorization' => $voidable_auth, @@ -120,26 +150,26 @@ SKIP: { desc => "void", is_success => 1, result_code => '000', - error_message => 'VOID PROCESSED', - authorization => qr/^$voidable_auth$/, + error_message => 'VOID SUCCESSFUL', + authorization => qr/TEST\d{2}/, avs_code => '', - cvv2_response => '', + cvv2_response => 'P', ); } # credit test -SKIP: { - my $tx = new Business::OnlinePayment( "IPPay", %opts ); +{ + my $tx = new Business::OnlinePayment( "IPPay", %opt ); $tx->content( %content, 'action' => "credit"); tx_check( $tx, desc => "credit", is_success => 1, result_code => '000', - error_message => 'RETURN ACCEPTED', - authorization => qr/\d{6}/, + error_message => 'APPROVED', + authorization => qr/TEST\d{2}/, avs_code => '', - cvv2_response => '', + cvv2_response => 'P', ); } @@ -151,13 +181,14 @@ sub tx_check { $tx->test_transaction(1); $tx->submit; - is( $tx->is_success, $o{is_success}, "$o{desc}: " . tx_info($tx) ); - is( $tx->result_code, $o{result_code}, "result_code(): RESULT" ); - is( $tx->error_message, $o{error_message}, "error_message() / RESPMSG" ); - like( $tx->authorization, $o{authorization}, "authorization() / AUTHCODE" ); - is( $tx->avs_code, $o{avs_code}, "avs_code() / AVSADDR and AVSZIP" ); - is( $tx->cvv2_response, $o{cvv2_response}, "cvv2_response() / CVV2MATCH" ); - like( $tx->order_number, qr/^\w{18}/, "order_number() / PNREF" ); + is( $tx->is_success, $o{is_success}, "$o{desc}: ". tx_info($tx) ); + is( $tx->result_code, $o{result_code}, "$o{desc}: result_code()" ); + is( $tx->error_message, $o{error_message}, "$o{desc}: error_message()" ); + like( $tx->authorization, $o{authorization}, "$o{desc}: authorization()" ); + is( $tx->avs_code, $o{avs_code}, "$o{desc}: avs_code()" ); + is( $tx->cvv2_response, $o{cvv2_response}, "$o{desc}: cvv2_response()" ); + like( $tx->order_number, $o{order_number} + || qr/^\w{18}/, "$o{desc}: order_number()" ); } sub tx_info { @@ -178,10 +209,3 @@ sub tx_info { ); } -sub expiration_date { - my($month, $year) = (localtime)[4,5]; - $year++; # So we expire next year. - $year %= 100; # y2k? What's that? - - return sprintf("%02d/%02d", $month, $year); -}