use C4::Biblio;
use C4::Circulation;
+
use C4::Members;
use C4::Circulation;
$patron_other->delete;
};
+subtest 'get_overdues' => sub {
+ plan tests => 7;
+
+ my $library = $builder->build( { source => 'Branch' } );
+ my ($biblionumber_1) = AddBiblio( MARC::Record->new, '' );
+ my $item_1 = $builder->build(
+ {
+ source => 'Item',
+ value => {
+ homebranch => $library->{branchcode},
+ holdingbranch => $library->{branchcode},
+ biblionumber => $biblionumber_1
+ }
+ }
+ );
+ my $item_2 = $builder->build(
+ {
+ source => 'Item',
+ value => {
+ homebranch => $library->{branchcode},
+ holdingbranch => $library->{branchcode},
+ biblionumber => $biblionumber_1
+ }
+ }
+ );
+ my ($biblionumber_2) = AddBiblio( MARC::Record->new, '' );
+ my $item_3 = $builder->build(
+ {
+ source => 'Item',
+ value => {
+ homebranch => $library->{branchcode},
+ holdingbranch => $library->{branchcode},
+ biblionumber => $biblionumber_2
+ }
+ }
+ );
+ my $patron = $builder->build(
+ {
+ source => 'Borrower',
+ value => { branchcode => $library->{branchcode} }
+ }
+ );
+
+ my $module = new Test::MockModule('C4::Context');
+ $module->mock( 'userenv', sub { { branch => $library->{branchcode} } } );
+
+ AddIssue( $patron, $item_1->{barcode}, DateTime->now->subtract( days => 1 ) );
+ AddIssue( $patron, $item_2->{barcode}, DateTime->now->subtract( days => 5 ) );
+ AddIssue( $patron, $item_3->{barcode} );
+
+ $patron = Koha::Patrons->find( $patron->{borrowernumber} );
+ my $overdues = $patron->get_overdues;
+ is( $overdues->count, 2, 'Patron should have 2 overdues');
+ is( $overdues->next->itemnumber, $item_1->{itemnumber}, 'The issue should be returned in the same order as they have been done, first is correct' );
+ is( $overdues->next->itemnumber, $item_2->{itemnumber}, 'The issue should be returned in the same order as they have been done, second is correct' );
+
+ my $o = $overdues->reset->next;
+ my $unblessed_overdue = $o->unblessed_all_relateds;
+ is( exists( $unblessed_overdue->{issuedate} ), 1, 'Fields from the issues table should be filled' );
+ is( exists( $unblessed_overdue->{itemcallnumber} ), 1, 'Fields from the items table should be filled' );
+ is( exists( $unblessed_overdue->{title} ), 1, 'Fields from the biblio table should be filled' );
+ is( exists( $unblessed_overdue->{itemtype} ), 1, 'Fields from the biblioitems table should be filled' );
+
+ # Clean stuffs
+ $patron->checkouts->delete;
+ $patron->delete;
+};
+
$retrieved_patron_1->delete;
is( Koha::Patrons->search->count, $nb_of_patrons + 1, 'Delete should have deleted the patron' );
+++ /dev/null
-#!/usr/bin/perl
-
-# This file is part of Koha.
-#
-# Koha is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# Koha is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Koha; if not, see <http://www.gnu.org/licenses>.
-
-use Modern::Perl;
-
-use Test::More tests => 3;
-use Test::MockModule;
-
-use t::lib::TestBuilder;
-
-use C4::Biblio;
-use C4::Items;
-use C4::Members;
-use C4::Circulation;
-use Koha::Libraries;
-use Koha::Patrons;
-use MARC::Record;
-
-my $schema = Koha::Database->schema;
-my $dbh = C4::Context->dbh;
-$schema->storage->txn_begin;
-
-my $builder = t::lib::TestBuilder->new;
-
-$dbh->do(q|DELETE FROM issues|);
-$dbh->do(q|DELETE FROM borrowers|);
-$dbh->do(q|DELETE FROM items|);
-$dbh->do(q|DELETE FROM branches|);
-$dbh->do(q|DELETE FROM biblio|);
-$dbh->do(q|DELETE FROM categories|);
-
-my $branchcode = $builder->build( { source => 'Branch' } )->{branchcode};
-my $categorycode = $builder->build( { source => 'Category' } )->{categorycode};
-my $itemtype = $builder->build( { source => 'Itemtype' } )->{itemtype};
-
-my %item_infos = (
- homebranch => $branchcode,
- holdingbranch => $branchcode,
- itype => $itemtype
-);
-
-my ($biblionumber1) = AddBiblio( MARC::Record->new, '' );
-my $itemnumber1 =
- AddItem( { barcode => '0101', %item_infos }, $biblionumber1 );
-my $itemnumber2 =
- AddItem( { barcode => '0102', %item_infos }, $biblionumber1 );
-
-my ($biblionumber2) = AddBiblio( MARC::Record->new, '' );
-my $itemnumber3 =
- AddItem( { barcode => '0103', %item_infos }, $biblionumber2 );
-
-my $borrowernumber =
- AddMember( categorycode => $categorycode, branchcode => $branchcode );
-my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
-
-my $module = new Test::MockModule('C4::Context');
-$module->mock( 'userenv', sub { { branch => $branchcode } } );
-
-AddIssue( $borrower, '0101', DateTime->now->subtract( days => 1 ) );
-AddIssue( $borrower, '0102', DateTime->now->subtract( days => 5 ) );
-AddIssue( $borrower, '0103' );
-
-my $overdues = C4::Members::GetOverduesForPatron( $borrowernumber );
-is( @$overdues, 2, 'GetOverduesForPatron returns the correct number of elements' );
-is( $overdues->[0]->{itemnumber}, $itemnumber1, 'First overdue is correct' );
-is( $overdues->[1]->{itemnumber}, $itemnumber2, 'Second overdue is correct' );