diff options
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/agent.pm | 3 | ||||
-rw-r--r-- | FS/FS/cust_main/Billing_Realtime.pm | 5 | ||||
-rwxr-xr-x | FS/t/suite/13-tokenization.t | 42 |
3 files changed, 42 insertions, 8 deletions
diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index b97e9b9b4..e70b9716a 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -239,8 +239,7 @@ sub ticketing_queue { Returns a payment gateway object (see L<FS::payment_gateway>) for this agent. -Currently available options are I<nofatal>, I<method>, I<thirdparty>, -<conf> and I<load_gatewaynum>. +Currently available options are I<nofatal>, I<method>, I<thirdparty> and I<conf>. If I<nofatal> is set, and no gateway is available, then the empty string will be returned instead of throwing a fatal exception. diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index ef17fce24..b9332c413 100644 --- a/FS/FS/cust_main/Billing_Realtime.pm +++ b/FS/FS/cust_main/Billing_Realtime.pm @@ -113,7 +113,6 @@ I<depend_jobnum> allows payment capture to unlock export jobs =cut # Currently only used by ClientAPI -# NOT 4.x COMPATIBLE (see below) sub realtime_collect { my( $self, %options ) = @_; @@ -127,10 +126,6 @@ sub realtime_collect { $options{amount} = $self->balance unless exists( $options{amount} ); return '' unless $options{amount} > 0; - #### NOT 4.x COMPATIBLE - $options{method} = FS::payby->payby2bop($self->payby) - unless exists( $options{method} ); - return $self->realtime_bop({%options}); } diff --git a/FS/t/suite/13-tokenization.t b/FS/t/suite/13-tokenization.t index 1b654add5..9a3ef3f22 100755 --- a/FS/t/suite/13-tokenization.t +++ b/FS/t/suite/13-tokenization.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use FS::Test; -use Test::More tests => 8; +use Test::More tests => 9; use FS::Conf; ### can only run on test database (company name "Freeside Test") @@ -38,6 +38,46 @@ TESTTERMINAL'; $conf->set('business-onlinepayment' => $bopconf); is( join("\n",$conf->config('business-onlinepayment')), $bopconf, "setting first default gateway" ) or BAIL_OUT(''); +# generate a few void/refund records for upgrading +my $counter = 20; +foreach my $cust_pay ( $fs->qsearch('cust_pay',{ payby => 'CARD' }) ) { + if ($counter % 2) { + $err = $cust_pay->void('Testing'); + $err = "Voiding: $err" if $err; + } else { + # from realtime_refund_bop, just the important bits + while ( $cust_pay->unapplied < $cust_pay->paid ) { + my @cust_bill_pay = $cust_pay->cust_bill_pay; + last unless @cust_bill_pay; + my $cust_bill_pay = pop @cust_bill_pay; + $err = $cust_bill_pay->delete; + $err = "Refund unapply: $err" if $err; + last if $err; + } + last if $err; + my $cust_refund = new FS::cust_refund ( { + 'custnum' => $cust_pay->cust_main->custnum, + 'paynum' => $cust_pay->paynum, + 'source_paynum' => $cust_pay->paynum, + 'refund' => $cust_pay->paid, + '_date' => '', + 'payby' => $cust_pay->payby, + 'payinfo' => $cust_pay->payinfo, + 'reason' => 'Testing', + 'gatewaynum' => $cust_pay->gatewaynum, + 'processor' => $cust_pay->payment_gateway ? $cust_pay->payment_gateway->processor : '', + 'auth' => $cust_pay->auth, + 'order_number' => $cust_pay->order_number, + } ); + $err = $cust_refund->insert( reason_type => 'Refund' ); + $err = "Refunding: $err" if $err; + } + last if $err; + $counter -= 1; + last unless $counter > 0; +} +ok( !$err, "create some refunds and voids" ) or BAIL_OUT($err); + $err = system('freeside-upgrade','admin'); ok( !$err, 'initial upgrade' ) or BAIL_OUT('Error string: '.$!); |