- use Test::More;
- our $test_request_data = [
- # AR/AP Transaction Screen Tests
- {
- '_test_id' => 'AR Transaction Screen',
- '_codebase' => 'old',
- 'module' => 'ar.pl',
- 'action' => 'add'
- },
- {
- '_test_id' => 'AP Transaction Screen',
- '_codebase' => 'old',
- 'module' => 'ap.pl',
- 'action' => 'add'
- },
- # Create Batch Screens
- {
- '_test_id' => 'AR Transaction Voucher Screen',
- '_codebase' => 'new',
- 'action' => 'create_batch',
- 'batch_type' => 'recievable',
- 'module' => 'vouchers.pl',
- },
- {
- '_test_id' => 'AP Transaction Voucher Screen',
- '_codebase' => 'new',
- 'action' => 'create_batch',
- 'batch_type' => 'payable',
- 'module' => 'vouchers.pl',
- },
- {
- '_test_id' => 'Payment Transaction Voucher Screen',
- '_codebase' => 'new',
- 'action' => 'create_batch',
- 'batch_type' => 'payment',
- 'module' => 'vouchers.pl',
- },
- {
- '_test_id' => 'Payment Reversal Transaction Voucher Screen',
- '_codebase' => 'new',
- 'action' => 'create_batch',
- 'batch_type' => 'payment_reversal',
- 'module' => 'vouchers.pl',
- },
- {
- '_test_id' => 'GL Transaction Voucher Screen',
- '_codebase' => 'new',
- 'action' => 'create_batch',
- 'batch_type' => 'gl',
- 'module' => 'vouchers.pl',
- },
- {
- '_test_id' => 'Payment source start error',
- '_codebase' => 'new',
- '_error_test' => 1,
- 'account_class' => 1,
- 'module' => 'payment.pl',
- 'action' => 'display_payments',
- 'approved' => 0,
- 'currency' => 'USD',
- 'datepaid' => '2008-07-22',
- },
- {
- '_test_id' => 'Payment source numbering',
- '_codebase' => 'new',
- '_error_test' => 1,
- 'account_class' => 1,
- 'start_source' => 1,
- 'module' => 'payment.pl',
- 'action' => 'update_payments',
- 'approved' => 0,
- 'currency' => 'USD',
- 'datepaid' => '2008-07-22',
- 'id_1' => 1,
- 'id_3' => 3,
- '_exec_override' => {
- 'payment_get_all_contact_invoices' => sub {
- my $self = shift;
- $retval = [ { contact_id => 1,
- total_due => Math::BigFloat->new(1000),
- econtrol_code => 'TEST1',
- eca_description => 'test',
- contact_name => 'test',
- account_number => 'test',
- invoices => '{{"100","101","2009-01-01",1000,1000}}',
- has_vouchers => 0,
- } ,
- {
- contact_id => 2,
- total_due => Math::BigFloat->new(1000),
- econtrol_code => 'TEST1',
- eca_description => 'test',
- contact_name => 'test',
- account_number => 'test',
- invoices => '{{101,101,2009-01-01,1000,1000}}',
- has_vouchers => 0,
- } ,
- {
- contact_id => 3,
- total_due => Math::BigFloat->new(1000),
- econtrol_code => 'TEST1',
- eca_description => 'test',
- contact_name => 'test',
- account_number => 'test',
- invoices => '{{102,101,2009-01-01,1000,1000}}',
- has_vouchers => 0,
- } ];
- $self->{contact_invoices} = $retval;
- $self->debug({'file' => '/tmp/test2'});
- return @$retval;
- }
- }
- },
- {
- '_test_id' => 'Payment print total',
- '_codebase' => 'new',
- 'action' => 'print',
- 'approved' => 0,
- 'currency' => 'USD',
- 'datepaid' => '2008-07-22',
- 'contact_1' => '25',
- 'id_25' => '25',
- 'paid_25' => 'all',
- 'payment_209' => '1000.00',
- 'invoice_25_1' => 209,
- 'net_209' => '1000.00',
- 'payment_210' => '-100.00',
- 'invoice_25_2' => '210',
- 'net_210' => '-100.00',
- 'payment_344' => '100000.00',
- 'invoice_25_3' => '344',
- 'net_344' => '100000.00',
- 'payment_352' => '1000.00',
- 'invoice_25_4' => '352',
- 'net_352' => '1000.00',
- 'payment_353' => '1000.00',
- 'invoice_25_5' => '353',
- 'net_353' => '1000.00',
- 'payment_354' => '1000.00',
- 'invoice_25_6' => '354',
- 'net_354' => '1000.00',
- 'payment_355' => '1000.00',
- 'invoice_25_7' => '355',
- 'net_355' => '1000.00',
- 'payment_356' => '1000.00',
- 'invoice_25_8' => '356',
- 'net_356' => '1000.00',
- 'invoice_count_25' => 8,
- 'contact_count' => 1,
- 'media' => 'screen',
- 'format' => 'PDF',
- 'module' => 'payment.pl',
- 'account_class' => 1,
- 'currency' => 'USD',
- 'multiple' => 1,
-
- },
-
- ];
- our $pre_test_subs = {
- 'Payment print total' => sub {
- $LedgerSMB::Sysconfig::check_max_invoices = 1;
- },
- };
- our $api_test_cases = {
- 'AR Transaction Voucher Screen' => sub {
- my $request = shift;
- ok($request->{batch_number}, 'Batch Number is Defined');
- },
- 'AP Transaction Voucher Screen' => sub {
- my $request = shift;
- ok($request->{batch_number}, 'Batch Number is Defined');
- },
- 'Payment Transaction Voucher Screen' => sub {
- my $request = shift;
- ok($request->{batch_number}, 'Batch Number is Defined');
- },
- 'Payment Reversal Transaction Voucher Screen' => sub {
- my $request = shift;
- ok($request->{batch_number}, 'Batch Number is Defined');
- },
- 'GL Transaction Voucher Screen' => sub {
- my $request = shift;
- ok($request->{batch_number}, 'Batch Number is Defined');
- },
- 'Payment print total' => sub {
- use strict;
- my $request = shift;
- $request->debug({file => '/tmp/check' });
- cmp_ok($request->{invoice_count_25}, '>', $LedgerSMB::Sysconfig::check_max_invoices, 'Test is valid under current config');
- cmp_ok(scalar @{$request->{checks}}, '==',
- $request->{contact_count},
- 'Correct number of checks printed');
- my $check = shift @{$request->{checks}};
- cmp_ok(
- $request->format_amount({
- amount => $check->{amount},
- format => '1000.00',
- precision => 2
- }), 'eq', '105900.00',
- 'Printed amount is correct'
- );
- },
- 'Payment source start error' => sub {
- my $self = shift;
- cmp_ok($self->{_error}, 'eq', 'No source start defined!',
- "Payment source start error: error correct");
- },
- 'Payment source numbering' => sub {
- my $self = shift;
- $self->debug({file => '/tmp/test'});
- ok(defined $self->{source_1},
- "$self->{_test_id} source 1 defined");
- cmp_ok($self->{source_2}, 'eq', '',
- "$self->{_test_id} source 2 not found");
- ok(defined $self->{source_3},
- "$self->{_test_id} source 3 defined");
- }
- };
- opendir (D62, 't/data/62.d');
- for my $testfile (readdir(D62)){
- do "t/data/62.d/$testfile";
- };
- # Overridden methods in classes for tests.
- package LedgerSMB::DBObject::Payment;
- sub exec_method {
- my $self = shift;
- my %args = @_;
- my $funcname = $args{funcname};
- if (ref $self->{_exec_override} eq 'HASH'){
- if ($self->{_exec_override}->{"$funcname"}){
- return $self->{_exec_override}->{"$args{funcname}"}($self);
- }
- }
- LedgerSMB::DBObject::exec_method($self, @_);
- }
|