Lines 33-49
my $builder = t::lib::TestBuilder->new;
Link Here
|
33 |
|
33 |
|
34 |
subtest 'outstanding_debits() tests' => sub { |
34 |
subtest 'outstanding_debits() tests' => sub { |
35 |
|
35 |
|
36 |
plan tests => 12; |
36 |
plan tests => 13; |
37 |
|
37 |
|
38 |
$schema->storage->txn_begin; |
38 |
$schema->storage->txn_begin; |
39 |
|
39 |
|
40 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
40 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
41 |
|
41 |
|
42 |
my @generated_lines; |
42 |
my @generated_lines; |
43 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 1 })->store; |
43 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store; |
44 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 2 })->store; |
44 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store; |
45 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 3 })->store; |
45 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store; |
46 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 4 })->store; |
46 |
push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store; |
47 |
|
47 |
|
48 |
my $account = $patron->account; |
48 |
my $account = $patron->account; |
49 |
my $lines = $account->outstanding_debits(); |
49 |
my $lines = $account->outstanding_debits(); |
Lines 59-66
subtest 'outstanding_debits() tests' => sub {
Link Here
|
59 |
|
59 |
|
60 |
my $patron_2 = $builder->build_object({ class => 'Koha::Patrons' }); |
60 |
my $patron_2 = $builder->build_object({ class => 'Koha::Patrons' }); |
61 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -2 })->store; |
61 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -2 })->store; |
62 |
my $just_one = Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => 3 })->store; |
62 |
my $just_one = Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => 3, amountoutstanding => 3 })->store; |
63 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -6 })->store; |
63 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -6, amountoutstanding => -6 })->store; |
64 |
$lines = $patron_2->account->outstanding_debits(); |
64 |
$lines = $patron_2->account->outstanding_debits(); |
65 |
is( $lines->total_outstanding, 3, "Total if some outstanding debits and some credits is only debits" ); |
65 |
is( $lines->total_outstanding, 3, "Total if some outstanding debits and some credits is only debits" ); |
66 |
is( $lines->count, 1, "With 1 outstanding debits, we get back a Lines object with 1 lines" ); |
66 |
is( $lines->count, 1, "With 1 outstanding debits, we get back a Lines object with 1 lines" ); |
Lines 68-91
subtest 'outstanding_debits() tests' => sub {
Link Here
|
68 |
is_deeply( $the_line->unblessed, $lines->next->unblessed, "We get back the one correct line"); |
68 |
is_deeply( $the_line->unblessed, $lines->next->unblessed, "We get back the one correct line"); |
69 |
|
69 |
|
70 |
my $patron_3 = $builder->build_object({ class => 'Koha::Patrons' }); |
70 |
my $patron_3 = $builder->build_object({ class => 'Koha::Patrons' }); |
71 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -2 })->store; |
71 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -2, amountoutstanding => -2 })->store; |
72 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -20 })->store; |
72 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -20, amountoutstanding => -20 })->store; |
73 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -200 })->store; |
73 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -200, amountoutstanding => -200 })->store; |
74 |
$lines = $patron_3->account->outstanding_debits(); |
74 |
$lines = $patron_3->account->outstanding_debits(); |
75 |
is( $lines->total_outstanding, 0, "Total if no outstanding debits total is 0" ); |
75 |
is( $lines->total_outstanding, 0, "Total if no outstanding debits total is 0" ); |
76 |
is( $lines->count, 0, "With 0 outstanding debits, we get back a Lines object with 0 lines" ); |
76 |
is( $lines->count, 0, "With 0 outstanding debits, we get back a Lines object with 0 lines" ); |
77 |
|
77 |
|
78 |
my $patron_4 = $builder->build_object({ class => 'Koha::Patrons' }); |
78 |
my $patron_4 = $builder->build_object({ class => 'Koha::Patrons' }); |
79 |
$lines = $patron_4->account->outstanding_debits(); |
79 |
my $account_4 = $patron_4->account; |
|
|
80 |
$lines = $account_4->outstanding_debits(); |
80 |
is( $lines->total_outstanding, 0, "Total if no outstanding debits is 0" ); |
81 |
is( $lines->total_outstanding, 0, "Total if no outstanding debits is 0" ); |
81 |
is( $lines->count, 0, "With no outstanding debits, we get back a Lines object with 0 lines" ); |
82 |
is( $lines->count, 0, "With no outstanding debits, we get back a Lines object with 0 lines" ); |
82 |
|
83 |
|
|
|
84 |
# create a pathological credit with amountoutstanding > 0 (BZ 14591) |
85 |
Koha::Account::Line->new({ borrowernumber => $patron_4->id, amount => -3, amountoutstanding => 3 })->store(); |
86 |
$lines = $account_4->outstanding_debits(); |
87 |
is( $lines->count, 0, 'No credits are confused with debits because of the amountoutstanding value' ); |
88 |
|
83 |
$schema->storage->txn_rollback; |
89 |
$schema->storage->txn_rollback; |
84 |
}; |
90 |
}; |
85 |
|
91 |
|
86 |
subtest 'outstanding_credits() tests' => sub { |
92 |
subtest 'outstanding_credits() tests' => sub { |
87 |
|
93 |
|
88 |
plan tests => 7; |
94 |
plan tests => 8; |
89 |
|
95 |
|
90 |
$schema->storage->txn_begin; |
96 |
$schema->storage->txn_begin; |
91 |
|
97 |
|
Lines 110-119
subtest 'outstanding_credits() tests' => sub {
Link Here
|
110 |
} |
116 |
} |
111 |
|
117 |
|
112 |
my $patron_2 = $builder->build_object({ class => 'Koha::Patrons' }); |
118 |
my $patron_2 = $builder->build_object({ class => 'Koha::Patrons' }); |
113 |
$lines = $patron_2->account->outstanding_credits(); |
119 |
$account = $patron_2->account; |
|
|
120 |
$lines = $account->outstanding_credits(); |
114 |
is( $lines->total_outstanding, 0, "Total if no outstanding credits is 0" ); |
121 |
is( $lines->total_outstanding, 0, "Total if no outstanding credits is 0" ); |
115 |
is( $lines->count, 0, "With no outstanding credits, we get back a Lines object with 0 lines" ); |
122 |
is( $lines->count, 0, "With no outstanding credits, we get back a Lines object with 0 lines" ); |
116 |
|
123 |
|
|
|
124 |
# create a pathological debit with amountoutstanding < 0 (BZ 14591) |
125 |
Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => 2, amountoutstanding => -3 })->store(); |
126 |
$lines = $account->outstanding_credits(); |
127 |
is( $lines->count, 0, 'No debits are confused with credits because of the amountoutstanding value' ); |
128 |
|
117 |
$schema->storage->txn_rollback; |
129 |
$schema->storage->txn_rollback; |
118 |
}; |
130 |
}; |
119 |
|
131 |
|
120 |
- |
|
|