X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=t%2Ftransaction_decline.t;fp=t%2Ftransaction_decline.t;h=a8efafbc31d2bfc7c6c0b93ee112e3892e96a41e;hb=094794d04a28d126f72f89359284d75750798409;hp=47a4cd1bd915a76dbd38eb0277945386a5c67a94;hpb=f6660ccc1cf3719650dc179aa7b1fd117b07ed0b;p=Business-OnlinePayment-FirstDataGlobalGateway.git diff --git a/t/transaction_decline.t b/t/transaction_decline.t index 47a4cd1..a8efafb 100644 --- a/t/transaction_decline.t +++ b/t/transaction_decline.t @@ -3,25 +3,35 @@ use strict; use warnings; use POSIX qw(strftime); -use Test::More tests => 3; - +use Test::More; use Business::OnlinePayment; -my %content = ( - action => "Normal Authorization", - type => "CC", - description => "Business::OnlinePayment::FirstDataGlobalGateway test", - card_number => '4111111111111111', - cvv2 => '123', - expiration => '12/20', - amount => '2.00', - first_name => 'Tofu', - last_name => 'Beast', - address => '1234 Soybean Ln.', - city => 'Soyville', - state => 'CA', #where else? - zip => '54545', -); +my $login = $ENV{BOP_TEST_LOGIN}; +my $password = $ENV{BOP_TEST_PASSWORD}; +if (!$login) { + plan skip_all => "no test credentials provided; set BOP_TEST_LOGIN and BOP_TEST_PASSWORD to test communication with the gateway.", + 1; + exit(0); +} + +plan tests => 2; +my %content = ( + login => $login, + password => $password, + action => "Normal Authorization", + type => "CC", + description => "Business::OnlinePayment::FirstDataGlobalGateway test", + card_number => '4111111111111111', + cvv2 => '123', + expiration => '12/20', + amount => '5521.00', # trigger error 521 + first_name => 'Tofu', + last_name => 'Beast', + address => '1234 Soybean Ln.', + city => 'Soyville', + state => 'CA', #where else? + zip => '54545', +); my $tx = new Business::OnlinePayment( 'FirstDataGlobalGateway' ); @@ -31,8 +41,9 @@ $tx->test_transaction(1); $tx->submit; -unlike( $tx->error_message, qr/^Agent code has not been set up/, 'Test decline not a login error'); -is( $tx->is_success, 0, 'Test decline transaction successful'); -is( $tx->failure_status, 'decline', 'Test decline failure_status set'); +is( $tx->is_success, 0, 'declined purchase') + or diag('Test transaction should have failed, but succeeded'); +is( $tx->failure_status, 'nsf', 'failure status' ) + or diag('Failure status reported as '.$tx->failure_status); 1;