|
Lines 19-25
Link Here
|
| 19 |
|
19 |
|
| 20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
| 21 |
|
21 |
|
| 22 |
use Test::More tests => 41; |
22 |
use Test::More tests => 42; |
| 23 |
use Test::Warn; |
23 |
use Test::Warn; |
| 24 |
use Test::Exception; |
24 |
use Test::Exception; |
| 25 |
use Test::MockModule; |
25 |
use Test::MockModule; |
|
Lines 2121-2123
subtest 'extended_attributes' => sub {
Link Here
|
| 2121 |
|
2121 |
|
| 2122 |
$schema->storage->txn_rollback; |
2122 |
$schema->storage->txn_rollback; |
| 2123 |
}; |
2123 |
}; |
| 2124 |
- |
2124 |
|
|
|
2125 |
subtest 'filter_by_debts' => sub { |
| 2126 |
|
| 2127 |
plan tests => 7; |
| 2128 |
my $schema = Koha::Database->new->schema; |
| 2129 |
$schema->storage->txn_begin; |
| 2130 |
|
| 2131 |
my $library = $builder->build({source => 'Branch' }); |
| 2132 |
my $max_owing = 10; |
| 2133 |
|
| 2134 |
my $patrons = Koha::Patrons->filter_by_owings({ branchcode => $library->{branchcode}, amountoutstanding => { '>=' => $max_owing } }); |
| 2135 |
is(ref($patrons), 'Koha::Patrons', 'filter_by_owings returns set of Koha::Patrons'); |
| 2136 |
is($patrons->count, 0, 'Empty set of Koha::Patrons returned'); |
| 2137 |
|
| 2138 |
my $patron1 = $builder->build_object({ class => 'Koha::Patrons', value => { branchcode => $library->{branchcode} }}); |
| 2139 |
my $account1 = $patron1->account; |
| 2140 |
$account1->add_debit({ amount => 10, interface => 'commandline', type => 'OVERDUE', library_id => $library->{branchcode} }); |
| 2141 |
|
| 2142 |
my $patron2 = $builder->build_object({ class => 'Koha::Patrons', value => { branchcode => $library->{branchcode} }}); |
| 2143 |
my $account2 = $patron2->account; |
| 2144 |
$account2->add_debit({ amount => 10, interface => 'commandline', type => 'OVERDUE', library_id => $library->{branchcode} }); |
| 2145 |
|
| 2146 |
t::lib::Mocks::mock_userenv({ patron => $patron1 }); |
| 2147 |
|
| 2148 |
$patrons = Koha::Patrons->filter_by_owings({ branchcode => $library->{branchcode}, amountoutstanding => { '>=' => $max_owing } }); |
| 2149 |
is($patrons->count, 2, 'filter_by_debts() should return set of 2 patrons when filtered with amountoutstanding'); |
| 2150 |
|
| 2151 |
my $found_patron1 = $patrons->find($patron1->borrowernumber); |
| 2152 |
my $found_patron2 = $patrons->find($patron2->borrowernumber); |
| 2153 |
|
| 2154 |
is($found_patron1->borrowernumber, $patron1->borrowernumber, 'patron 1 returned'); |
| 2155 |
is($found_patron2->borrowernumber, $patron2->borrowernumber, 'patron 2 returned'); |
| 2156 |
|
| 2157 |
$account1->pay({ amount => 10, interface => 'commandline', library_id => $library->{branchcode}, manager_id => $patron1->borrowernumber }); |
| 2158 |
$patrons = Koha::Patrons->filter_by_owings({ branchcode => $library->{branchcode}, amountoutstanding => { '>=' => $max_owing } }); |
| 2159 |
|
| 2160 |
is( $patrons->count, 1, 'filter_by_debts() should return 1 patron when filtered with amountoutstanding'); |
| 2161 |
my $found_patron = $patrons->next; |
| 2162 |
is( $found_patron->borrowernumber, $patron2->borrowernumber, 'Only patron 2 returned'); |
| 2163 |
|
| 2164 |
$schema->storage->txn_rollback; |
| 2165 |
}; |