X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment-Bambora.git;a=blobdiff_plain;f=t%2F032-payments-card-pre-authorization-complete-void.t;fp=t%2F032-payments-card-pre-authorization-complete-void.t;h=863c8e1cad9c965a643ee8310890db8cbdc6e280;hp=7c575c976a2ce275ccaa62bffeea636b2d8ad09d;hb=ef8b468214d2917b90f0537130f14c217ea71224;hpb=24c86c6b9136ad878a118d57fc9b876eee3672f8 diff --git a/t/032-payments-card-pre-authorization-complete-void.t b/t/032-payments-card-pre-authorization-complete-void.t index 7c575c9..863c8e1 100755 --- a/t/032-payments-card-pre-authorization-complete-void.t +++ b/t/032-payments-card-pre-authorization-complete-void.t @@ -4,131 +4,109 @@ use warnings; use Test::More; use lib 't'; -require 'TestFixtures.pm'; +use TestFixtures; use Business::OnlinePayment; my $merchant_id = $ENV{BAMBORA_MERCHANT_ID}; my $api_key = $ENV{BAMBORA_API_KEY}; SKIP: { - skip 'Missing env vars BAMBORA_MERCHANT_ID and BAMBORA_API_KEY', 32 + skip 'Missing env vars BAMBORA_MERCHANT_ID and BAMBORA_API_KEY', 56 unless $merchant_id && $api_key; my %content = ( - login => $merchant_id, - password => $api_key, - action => 'Authorization Only', - amount => '9.99', - - owner => 'Freeside Internet Services', - name => 'Mitch Jackson', - address => '1407 Graymalkin Lane', - city => 'Vancouver', - state => 'BC', - zip => '111 111', - country => 'CA', - - invoice_number => time(), - card_number => '4030000010001234', - cvv2 => '123', - expiration => '1122', - phone => '251-300-1300', - email => 'mitch@freeside.biz', - ); + common_content(), - my $tr; - ok( $tr = Business::OnlinePayment->new('Bambora'), 'Instantiatiate $tr' ); - ok( $tr->content( %content ), 'Set transaction content onto $tr' ); - { - local $@; - eval { $tr->submit }; - ok( !$@, "Submit pre-auth (expect approve)" ); - } - - my $response; - my %expect = ( - amount => '9.99', - approved => 1, - auth_code => 'TEST', - message => 'Approved', - message_id => 1, - payment_method => 'CC', - type => 'PA', - ); - my @expect = qw( - card - created - order_number - risk_score - id + login => $merchant_id, + password => $api_key, + + action => 'Authorization Only', ); - ok( $response = $tr->response_decoded, 'response_decoded' ); + # + # Process a pre-auth + # - for my $k ( keys %expect ) { - ok( - $response->{$k} eq $expect{$k}, - sprintf '$tr->%s == %s', $k, $expect{$k} - ); - } + my ( $tr, $response ) = make_api_request( \%content ); + + inspect_response( + $response, + { + amount => '9.99', + approved => 1, + auth_code => 'TEST', + message => 'Approved', + message_id => 1, + payment_method => 'CC', + type => 'PA', + }, + [qw/ + card + created + order_number + risk_score + id + /], + ); - for my $k ( @expect ) { - ok( - defined $response->{$k}, - sprintf '$r->%s (%s)', - $k, $response->{$k} - ); - } + inspect_transaction( + $tr, + { + is_success => 1, + }, + [qw/ + message_id + authorization + order_number + txn_date + avs_code + /], + ); - %content = ( + # + # Process a post-auth + # + + my %content_pa = ( %content, action => 'Post Authorization', order_number => $tr->order_number, amount => '8.99', # $1 Less than pre-auth ); - my $tr_pa; - ok( $tr_pa = Business::OnlinePayment->new('Bambora'), 'Instantiate $tr_pa' ); - ok( $tr_pa->content( %content ), 'Set transaction content onto $tr_pa' ); - { - local $@; - eval { $tr_pa->submit }; - ok( !$@, "Submit post-auth" ); - warn "Error: $@" if $@; - } - - %expect = ( - amount => '8.99', - approved => '1', - message => 'Approved', - message_id => '1', - type => 'PAC', + my ( $tr_pa, $response_pa ) = make_api_request( \%content_pa ); + + inspect_response( + $response_pa, + { + amount => '8.99', + approved => '1', + message => 'Approved', + message_id => '1', + type => 'PAC', + }, + [qw/ + authorizing_merchant_id + card + created + order_number + id + /], + ); + + inspect_transaction( + $tr_pa, + { + is_success => 1, + }, + [qw/ + message_id + authorization + order_number + txn_date + avs_code + /], ); - @expect = (qw/ - authorizing_merchant_id - card - created - order_number - id - /); - - my $response_pa; - ok( $response_pa = $tr_pa->response_decoded, 'response_decoded' ); - - for my $k ( keys %expect ) { - ok( - $response_pa->{$k} eq $expect{$k}, - sprintf '$tr->%s == %s', $k, $expect{$k} - ); - } - - for my $k ( @expect ) { - ok( - defined $response_pa->{$k}, - sprintf '$r->%s (%s)', - $k, $response_pa->{$k} - ); - } # # Void Transaction @@ -138,34 +116,36 @@ SKIP: { action => 'Void', login => $content{login}, password => $content{password}, + order_number => $tr_pa->order_number, amount => '8.99', ); - my $tr_void; - ok( $tr_void = Business::OnlinePayment->new('Bambora'), 'Instantiate $tr_void' ); - ok( $tr_void->content( %content_void ), 'Set transaction content onto $tr_void' ); - { - local $@; - eval { $tr_void->submit }; - ok( !$@, "Submit void" ); - warn "Error: $@" if $@; - } - - %expect = ( - amount => '8.99', - approved => '1', - message => 'Approved', - message_id => '1', - type => 'R', + my ( $tr_void, $response_void ) = make_api_request( \%content_void ); + + inspect_response( + $response_void, + { + amount => '8.99', + approved => '1', + message => 'Approved', + message_id => '1', + type => 'R', + }, + [qw/ + authorizing_merchant_id + card + created + order_number + id + /], + ); + + inspect_transaction( + $tr_void, + { is_success => 1 }, + [], ); - @expect = (qw/ - authorizing_merchant_id - card - created - order_number - id - /); }