Koha/t/db_dependent/Circulation/StoreLastBorrower.t
Jonathan Druart 4f72b06e5d Bug 16966: Koha::Patrons - Move AnonymiseIssueHistory tests
The next patch will move C4::Circulation::AnonymiseIssueHistory and
C4::Members::GetBorrowersWithIssuesHistoryOlderThan to Koha::Patrons
This patch move the history anonymisation code to the Patrons.t test
file and the entire subtest related to StoreLastBorrower to
StoreLastBorrower.t

It just moves and add some minor adjustements.

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2017-03-03 17:20:02 +00:00

144 lines
4.4 KiB
Perl

#!/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 => 1;
use C4::Context;
use C4::Circulation;
use Koha::Database;
use Koha::Items;
use t::lib::Mocks;
use t::lib::TestBuilder;
my $schema = Koha::Database->new->schema;
$schema->storage->txn_begin;
my $builder = t::lib::TestBuilder->new;
subtest 'Test StoreLastBorrower' => sub {
plan tests => 6;
t::lib::Mocks::mock_preference( 'StoreLastBorrower', '1' );
my $patron = $builder->build(
{
source => 'Borrower',
value => { privacy => 1, }
}
);
my $item = $builder->build(
{
source => 'Item',
value => {
itemlost => 0,
withdrawn => 0,
},
}
);
my $issue = $builder->build(
{
source => 'Issue',
value => {
borrowernumber => $patron->{borrowernumber},
itemnumber => $item->{itemnumber},
},
}
);
my $item_object = Koha::Items->find( $item->{itemnumber} );
my $patron_object = $item_object->last_returned_by();
is( $patron_object, undef, 'Koha::Item::last_returned_by returned undef' );
my ( $returned, undef, undef ) = C4::Circulation::AddReturn( $item->{barcode}, $patron->{branchcode}, undef, undef, '2010-10-10' );
$item_object = Koha::Items->find( $item->{itemnumber} );
$patron_object = $item_object->last_returned_by();
is( ref($patron_object), 'Koha::Patron', 'Koha::Item::last_returned_by returned Koha::Patron' );
$patron = $builder->build(
{
source => 'Borrower',
value => { privacy => 1, }
}
);
$issue = $builder->build(
{
source => 'Issue',
value => {
borrowernumber => $patron->{borrowernumber},
itemnumber => $item->{itemnumber},
},
}
);
( $returned, undef, undef ) = C4::Circulation::AddReturn( $item->{barcode}, $patron->{branchcode}, undef, undef, '2010-10-10' );
$item_object = Koha::Items->find( $item->{itemnumber} );
$patron_object = $item_object->last_returned_by();
is( $patron_object->id, $patron->{borrowernumber}, 'Second patron to return item replaces the first' );
$patron = $builder->build(
{
source => 'Borrower',
value => { privacy => 1, }
}
);
$patron_object = Koha::Patrons->find( $patron->{borrowernumber} );
$item_object->last_returned_by($patron_object);
$item_object = Koha::Items->find( $item->{itemnumber} );
my $patron_object2 = $item_object->last_returned_by();
is( $patron_object->id, $patron_object2->id,
'Calling last_returned_by with Borrower object sets last_returned_by to that borrower' );
$patron_object->delete;
$item_object = Koha::Items->find( $item->{itemnumber} );
is( $item_object->last_returned_by, undef, 'last_returned_by should return undef if the last patron to return the item has been deleted' );
t::lib::Mocks::mock_preference( 'StoreLastBorrower', '0' );
$patron = $builder->build(
{
source => 'Borrower',
value => { privacy => 1, }
}
);
$issue = $builder->build(
{
source => 'Issue',
value => {
borrowernumber => $patron->{borrowernumber},
itemnumber => $item->{itemnumber},
},
}
);
( $returned, undef, undef ) = C4::Circulation::AddReturn( $item->{barcode}, $patron->{branchcode}, undef, undef, '2010-10-10' );
$item_object = Koha::Items->find( $item->{itemnumber} );
is( $item_object->last_returned_by, undef, 'Last patron to return item should not be stored if StoreLastBorrower if off' );
};
$schema->storage->txn_rollback;
1;