Bug 27281: (follow-up) Clean up LostItem test
The LostItem test was rather messy, and wasn't actually testing much in reality. This patch cleans it up and adds testing for transfer queue handling of ListItem cancellations. Test plan 1/ Confirm t/db_dependent/Circulation.t still passes 2/ Read the tests before and after and confirm that they test what is required. 3/ Signoff Signed-off-by: Petro Vashchuk <stalkernoid@gmail.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
dcd1f2faed
commit
7d2da13822
1 changed files with 54 additions and 43 deletions
|
@ -3475,57 +3475,68 @@ subtest 'Set waiting flag' => sub {
|
|||
};
|
||||
|
||||
subtest 'Cancel transfers on lost items' => sub {
|
||||
plan tests => 6;
|
||||
my $library_1 = $builder->build( { source => 'Branch' } );
|
||||
my $patron_1 = $builder->build( { source => 'Borrower', value => { branchcode => $library_1->{branchcode}, categorycode => $patron_category->{categorycode} } } );
|
||||
my $library_2 = $builder->build( { source => 'Branch' } );
|
||||
my $patron_2 = $builder->build( { source => 'Borrower', value => { branchcode => $library_2->{branchcode}, categorycode => $patron_category->{categorycode} } } );
|
||||
my $biblio = $builder->build_sample_biblio({branchcode => $library->{branchcode}});
|
||||
my $item = $builder->build_sample_item({
|
||||
biblionumber => $biblio->biblionumber,
|
||||
library => $library_1->{branchcode},
|
||||
});
|
||||
plan tests => 5;
|
||||
|
||||
set_userenv( $library_2 );
|
||||
my $reserve_id = AddReserve(
|
||||
my $library_to = $builder->build_object( { class => 'Koha::Libraries' } );
|
||||
my $item = $builder->build_sample_item();
|
||||
my $old_transfer = $builder->build_object(
|
||||
{
|
||||
branchcode => $library_2->{branchcode},
|
||||
borrowernumber => $patron_2->{borrowernumber},
|
||||
biblionumber => $item->biblionumber,
|
||||
priority => 1,
|
||||
itemnumber => $item->itemnumber,
|
||||
class => 'Koha::Item::Transfers',
|
||||
value => {
|
||||
itemnumber => $item->itemnumber,
|
||||
frombranch => $item->holdingbranch,
|
||||
tobranch => $library_to->branchcode,
|
||||
reason => 'Manual',
|
||||
datesent => \'NOW()',
|
||||
datearrived => \'NOW()',
|
||||
datecancelled => undef,
|
||||
daterequested => \'NOW()'
|
||||
}
|
||||
}
|
||||
);
|
||||
my $transfer_1 = $builder->build_object(
|
||||
{
|
||||
class => 'Koha::Item::Transfers',
|
||||
value => {
|
||||
itemnumber => $item->itemnumber,
|
||||
frombranch => $item->holdingbranch,
|
||||
tobranch => $library_to->branchcode,
|
||||
reason => 'Manual',
|
||||
datesent => undef,
|
||||
datearrived => undef,
|
||||
datecancelled => undef,
|
||||
daterequested => \'NOW()'
|
||||
}
|
||||
}
|
||||
);
|
||||
my $transfer_2 = $builder->build_object(
|
||||
{
|
||||
class => 'Koha::Item::Transfers',
|
||||
value => {
|
||||
itemnumber => $item->itemnumber,
|
||||
frombranch => $item->holdingbranch,
|
||||
tobranch => $library_to->branchcode,
|
||||
reason => 'Manual',
|
||||
datesent => \'NOW()',
|
||||
datearrived => undef,
|
||||
datecancelled => undef,
|
||||
daterequested => \'NOW()'
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
#Return book and add transfer
|
||||
set_userenv( $library_1 );
|
||||
my $do_transfer = 1;
|
||||
my ( $res, $rr ) = AddReturn( $item->barcode, $library_1->{branchcode} );
|
||||
ModReserveAffect( $item->itemnumber, undef, $do_transfer, $reserve_id );
|
||||
C4::Circulation::transferbook({
|
||||
from_branch => $library_1->{branchcode},
|
||||
to_branch => $library_2->{branchcode},
|
||||
barcode => $item->barcode,
|
||||
trigger => 'Reserve',
|
||||
});
|
||||
my $hold = Koha::Holds->find( $reserve_id );
|
||||
is( $hold->found, 'T', 'Hold is in transit' );
|
||||
|
||||
#Check transfer exists and the items holding branch is the transfer destination branch before marking it as lost
|
||||
my ($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber);
|
||||
is( $frombranch, $library_1->{branchcode}, 'The transfer is generated from the correct library');
|
||||
is( $tobranch, $library_2->{branchcode}, 'The transfer is generated to the correct library');
|
||||
my $itemcheck = Koha::Items->find($item->itemnumber);
|
||||
is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Items holding branch is the transfers origination branch before it is marked as lost' );
|
||||
|
||||
#Simulate item being marked as lost and confirm the transfer is deleted and the items holding branch is the transfers source branch
|
||||
# Simulate item being marked as lost
|
||||
$item->itemlost(1)->store;
|
||||
LostItem( $item->itemnumber, 'test', 1 );
|
||||
($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber);
|
||||
is( $tobranch, undef, 'The transfer on the lost item has been deleted as the LostItemCancelOutstandingTransfer is enabled');
|
||||
$itemcheck = Koha::Items->find($item->itemnumber);
|
||||
is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Lost item with cancelled hold has holding branch equallying the transfers source branch' );
|
||||
|
||||
$transfer_1->discard_changes;
|
||||
isnt($transfer_1->datecancelled, undef, "Queud transfer was cancelled upon item lost");
|
||||
is($transfer_1->cancellation_reason, 'ItemLost', "Cancellation reason was set to 'ItemLost'");
|
||||
$transfer_2->discard_changes;
|
||||
isnt($transfer_2->datecancelled, undef, "Active transfer was cancelled upon item lost");
|
||||
is($transfer_2->cancellation_reason, 'ItemLost', "Cancellation reason was set to 'ItemLost'");
|
||||
$old_transfer->discard_changes;
|
||||
is($old_transfer->datecancelled, undef, "Old transfers are unaffected");
|
||||
};
|
||||
|
||||
subtest 'CanBookBeIssued | is_overdue' => sub {
|
||||
|
|
Loading…
Reference in a new issue