@@ -, +, @@ --- t/db_dependent/Koha/Patrons.t | 71 +++++++++++++++++++++++++++++++- t/db_dependent/Members/GetOverdues.t | 80 ------------------------------------ 2 files changed, 70 insertions(+), 81 deletions(-) delete mode 100644 t/db_dependent/Members/GetOverdues.t --- a/t/db_dependent/Koha/Patrons.t +++ a/t/db_dependent/Koha/Patrons.t @@ -19,13 +19,14 @@ use Modern::Perl; -use Test::More tests => 23; +use Test::More tests => 24; use Test::Warn; use Time::Fake; use DateTime; use C4::Biblio; use C4::Circulation; + use C4::Members; use C4::Circulation; @@ -955,6 +956,74 @@ subtest 'account_locked' => sub { $patron->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' ); --- a/t/db_dependent/Members/GetOverdues.t +++ a/t/db_dependent/Members/GetOverdues.t @@ -1,80 +0,0 @@ -#!/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 . - -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' ); --