#!/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';
# valid card number test
{
- my $tx = Business::OnlinePayment->new("IPPay", @opts);
+ my $tx = Business::OnlinePayment->new("IPPay", %opt);
$tx->content(%content);
tx_check(
$tx,
# 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,
$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,
}
# 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,
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',
);
}
$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 {
);
}
-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);
-}