summaryrefslogtreecommitdiff
path: root/t/transaction.t
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-07-10 14:13:12 -0700
committerMark Wells <mark@freeside.biz>2014-07-10 14:13:12 -0700
commit094794d04a28d126f72f89359284d75750798409 (patch)
tree94426facdeaa828389d3a3444d8aea80a50ebda0 /t/transaction.t
parentf6660ccc1cf3719650dc179aa7b1fd117b07ed0b (diff)
version 0.01
Diffstat (limited to 't/transaction.t')
-rw-r--r--t/transaction.t73
1 files changed, 50 insertions, 23 deletions
diff --git a/t/transaction.t b/t/transaction.t
index 28db227..affe60c 100644
--- a/t/transaction.t
+++ b/t/transaction.t
@@ -3,37 +3,64 @@
use strict;
use warnings;
use POSIX qw(strftime);
-use Test::More tests => 1;
-
+use Test::More;
use Business::OnlinePayment;
-my %content = (
- login => '124freeside',
- password => 'freeside124',
- action => "Normal Authorization",
- type => "CC",
- description => "Business::OnlinePayment::FirstDataGlobalGateway test",
- card_number => '4111111111111111',
- cvv2 => '123',
- expiration => '12/20',
- amount => '1.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;
+
+###
+# Purchase
+###
+my %content = (
+ login => $login,
+ password => $password,
+ type => "CC",
+ description => "Business::OnlinePayment::FirstDataGlobalGateway test",
+ card_number => '4111111111111111',
+ cvv2 => '123',
+ expiration => '12/20',
+ amount => '1.00',
+ first_name => 'Tofu',
+ last_name => 'Beast',
+ address => '1234 Soybean Ln.',
+ city => 'Soyville',
+ state => 'CA', #where else?
+ zip => '94804',
+);
my $tx = new Business::OnlinePayment( 'FirstDataGlobalGateway' );
-$tx->content( %content );
+$tx->content( %content,
+ action => 'Normal Authorization' );
$tx->test_transaction(1);
$tx->submit;
-is( $tx->is_success, 1, 'Test transaction successful')
- or diag('iATS Payments error: '. $tx->error_message);
-
+is( $tx->is_success, 1, 'purchase' )
+ or diag('Gateway error: '. $tx->error_message);
+
+###
+# Refund
+###
+my $auth = $tx->authorization;
+$tx = new Business::OnlinePayment( 'FirstDataGlobalGateway' );
+$tx->content( %content,
+ action => 'Credit',
+ authorization => $auth );
+$tx->test_transaction(1);
+
+$tx->submit;
+
+is( $tx->is_success, 1, 'refund' )
+ or diag('Gateway error: '. $tx->error_message);
+
1;