-use Test::More tests => 1 + 2 * 5;
+# vim:set syntax=perl:
-BEGIN { use_ok('Business::OnlinePayment') };
+use constant FIELDS => qw(
+ result_code authorization error_message
+ receipt_number sales_number
+ date
+ card_type
+ avs_response cvv2_response
+ total_amount
+ );
+use constant RESULTS => (
+ {
+ is_success => 1,
+ result_code => '2000',
+ authorization => 'T00000',
+ error_message => 'Test Approved',
+ receipt_number => '1096019995.5012',
+ sales_number => 0,
+ date => '2003/12/17 09:59:58',
+ card_type => undef,
+ avs_response => undef,
+ cvv2_response => undef,
+ total_amount => 3.88,
+ uuid => 'f81d4fae-7dec-11d0-a765-00a0c91e6bf6',
+ guid => 'f81d4fae-7dec-11d0-a765-00a0c91e6bf6',
+ },
+ {
+ is_success => 0,
+ result_code => '98e05',
+ authorization => undef,
+ error_message => 'Real error message',
+ receipt_number => '1096021915.5853',
+ sales_number => 729,
+ date => '2003/12/17 10:31:58',
+ card_type => 'Visa',
+ avs_response => undef,
+ cvv2_response => undef,
+ total_amount => 3.88,
+ uuid => undef,
+ guid => undef,
+ },
+ );
-use constant FIELDS => (qw( result_code authorization total_amount ));
-use constant RESULTS => (
- [ 1, '2000', 'T00000', 3.88 ],
- [ 0, '98e05', undef, 3.88 ],
- );
+use Test::More tests => 1 + scalar(RESULTS) * (1 + 1 + scalar(FIELDS));
+
+BEGIN { use_ok('Business::OnlinePayment') };
+
my $txn = new Business::OnlinePayment 'InternetSecure', merchant_id => '0000';
$/ = '';
-foreach (RESULTS) {
- my @results = @$_;
-
+foreach my $results (RESULTS) {
my $xml = <DATA>;
$txn->parse_response($xml);
is($txn->server_response, $xml, 'server_response');
- if (shift @results) {
+ if ($results->{is_success}) {
ok($txn->is_success, 'expecting success');
} else {
ok(!$txn->is_success, 'expecting failure');
foreach (FIELDS) {
no strict 'refs';
- is($txn->$_, shift @results, $_);
+ is($txn->$_, $results->{$_}, $_);
}
}
<DoubleColonProducts>3.10::1::001::Test Product 1::{USD}{GST}{TEST}|0.20::1::010::Test Product 2::{GST}{TEST}|0.33::1::020::Test Product 3::{GST}{TEST}|0.25::1::GST::Canadian GST Charged::{TAX}{CALCULATED}</DoubleColonProducts>
<AVSResponseCode />
<CVV2ResponseCode />
+ <GUID>f81d4fae-7dec-11d0-a765-00a0c91e6bf6</GUID>
</TranxResponse>
<?xml version="1.0" encoding="UTF-8"?>
<Page>98e05</Page>
<ApprovalCode />
<Verbiage>Incorrect Card Number - Please Retry</Verbiage>
+ <Error>Real error message</Error>
<TotalAmount>3.88</TotalAmount>
<Products>
<product>