Bug 23695: (follow-up) Adjust for addition of transfer trigger
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
f3c66c6d94
commit
4d0e22f97a
2 changed files with 75 additions and 36 deletions
|
@ -18,7 +18,7 @@
|
||||||
use Modern::Perl;
|
use Modern::Perl;
|
||||||
use utf8;
|
use utf8;
|
||||||
|
|
||||||
use Test::More tests => 50;
|
use Test::More tests => 49;
|
||||||
use Test::MockModule;
|
use Test::MockModule;
|
||||||
use Test::Deep qw( cmp_deeply );
|
use Test::Deep qw( cmp_deeply );
|
||||||
|
|
||||||
|
@ -3296,31 +3296,6 @@ subtest 'Cancel transfers on lost items' => sub {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
subtest 'transferbook test' => sub {
|
|
||||||
plan tests => 5;
|
|
||||||
|
|
||||||
my $library = $builder->build_object( { class => 'Koha::Libraries' } );
|
|
||||||
my $item = $builder->build_sample_item();
|
|
||||||
ok( $item->holdingbranch ne $library->branchcode && $item->homebranch ne $library->branchcode, "Item is not held or owned by library");
|
|
||||||
C4::Circulation::transferbook({
|
|
||||||
from_branch => $library->branchcode,
|
|
||||||
to_branch => $item->homebranch,
|
|
||||||
barcode => $item->barcode,
|
|
||||||
});
|
|
||||||
my ($datesent,$from_branch,$to_branch) = GetTransfers($item->itemnumber);
|
|
||||||
is( $from_branch, $library->branchcode, 'The transfer is initiated from the specified branch, not the items home or holdingbranch');
|
|
||||||
is( $to_branch, $item->homebranch, 'The transfer is initiated to the specified branch');
|
|
||||||
C4::Circulation::transferbook({
|
|
||||||
from_branch => $item->homebranch,
|
|
||||||
to_branch => $library->branchcode,
|
|
||||||
barcode => $item->barcode,
|
|
||||||
});
|
|
||||||
($datesent,$from_branch,$to_branch) = GetTransfers($item->itemnumber);
|
|
||||||
is( $from_branch, $item->homebranch, 'The transfer is initiated from the specified branch');
|
|
||||||
is( $to_branch, $library->branchcode, 'The transfer is initiated to the specified branch');
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
subtest 'CanBookBeIssued | is_overdue' => sub {
|
subtest 'CanBookBeIssued | is_overdue' => sub {
|
||||||
plan tests => 3;
|
plan tests => 3;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
use Modern::Perl;
|
use Modern::Perl;
|
||||||
|
|
||||||
use Test::More tests => 5;
|
use Test::More tests => 6;
|
||||||
use t::lib::TestBuilder;
|
use t::lib::TestBuilder;
|
||||||
use t::lib::Mocks;
|
use t::lib::Mocks;
|
||||||
|
|
||||||
|
@ -39,7 +39,11 @@ subtest 'transfer a non-existant item' => sub {
|
||||||
$item->delete;
|
$item->delete;
|
||||||
|
|
||||||
my ( $dotransfer, $messages ) =
|
my ( $dotransfer, $messages ) =
|
||||||
C4::Circulation::transferbook( $library->{branchcode}, $badbc );
|
C4::Circulation::transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->{branchcode},
|
||||||
|
barcode => $badbc
|
||||||
|
});
|
||||||
is( $dotransfer, 0, "Can't transfer a bad barcode" );
|
is( $dotransfer, 0, "Can't transfer a bad barcode" );
|
||||||
is_deeply(
|
is_deeply(
|
||||||
$messages,
|
$messages,
|
||||||
|
@ -70,7 +74,12 @@ subtest 'field population tests' => sub {
|
||||||
);
|
);
|
||||||
|
|
||||||
my $trigger = "Manual";
|
my $trigger = "Manual";
|
||||||
my ($dotransfer, $messages ) = transferbook( $library2->branchcode, $item->barcode, undef, $trigger );
|
my ($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library2->branchcode,
|
||||||
|
barcode => $item->barcode,
|
||||||
|
trigger => $trigger
|
||||||
|
});
|
||||||
is( $dotransfer, 1, 'Transfer succeeded' );
|
is( $dotransfer, 1, 'Transfer succeeded' );
|
||||||
is_deeply(
|
is_deeply(
|
||||||
$messages,
|
$messages,
|
||||||
|
@ -108,7 +117,11 @@ subtest 'transfer already at destination' => sub {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
my ($dotransfer, $messages ) = transferbook( $library->branchcode, $item->barcode );
|
my ($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode
|
||||||
|
});
|
||||||
is( $dotransfer, 0, 'Transfer of item failed when destination equals holding branch' );
|
is( $dotransfer, 0, 'Transfer of item failed when destination equals holding branch' );
|
||||||
is_deeply(
|
is_deeply(
|
||||||
$messages,
|
$messages,
|
||||||
|
@ -126,7 +139,11 @@ subtest 'transfer already at destination' => sub {
|
||||||
itemnumber => $item->itemnumber,
|
itemnumber => $item->itemnumber,
|
||||||
});
|
});
|
||||||
|
|
||||||
($dotransfer, $messages ) = transferbook( $library->branchcode, $item->barcode );
|
($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode
|
||||||
|
});
|
||||||
is( $dotransfer, 1, 'Transfer of reserved item succeeded without ignore reserves' );
|
is( $dotransfer, 1, 'Transfer of reserved item succeeded without ignore reserves' );
|
||||||
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
||||||
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
||||||
|
@ -157,7 +174,11 @@ subtest 'transfer an issued item' => sub {
|
||||||
# We are making sure there is no regression, feel free to change the behavior if needed.
|
# We are making sure there is no regression, feel free to change the behavior if needed.
|
||||||
# * WasReturned does not seem like a variable that should contain a borrowernumber
|
# * WasReturned does not seem like a variable that should contain a borrowernumber
|
||||||
# * Should we return even if the transfer did not happen? (same branches)
|
# * Should we return even if the transfer did not happen? (same branches)
|
||||||
my ($dotransfer, $messages) = transferbook( $library->branchcode, $item->barcode );
|
my ($dotransfer, $messages) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode
|
||||||
|
});
|
||||||
is( $messages->{WasReturned}, $patron->borrowernumber, 'transferbook should have return a WasReturned flag is the item was issued before the transferbook call');
|
is( $messages->{WasReturned}, $patron->borrowernumber, 'transferbook should have return a WasReturned flag is the item was issued before the transferbook call');
|
||||||
|
|
||||||
# Reset issue
|
# Reset issue
|
||||||
|
@ -173,7 +194,11 @@ subtest 'transfer an issued item' => sub {
|
||||||
itemnumber => $item->itemnumber,
|
itemnumber => $item->itemnumber,
|
||||||
});
|
});
|
||||||
|
|
||||||
($dotransfer, $messages ) = transferbook( $library->branchcode, $item->barcode );
|
($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode
|
||||||
|
});
|
||||||
is( $dotransfer, 1, 'Transfer of reserved item succeeded without ignore reserves' );
|
is( $dotransfer, 1, 'Transfer of reserved item succeeded without ignore reserves' );
|
||||||
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
||||||
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
||||||
|
@ -208,19 +233,33 @@ subtest 'ignore_reserves flag' => sub {
|
||||||
# We are making sure there is no regression, feel free to change the behavior if needed.
|
# We are making sure there is no regression, feel free to change the behavior if needed.
|
||||||
# * Contrary to the POD, if ignore_reserves is not passed (or is false), any item reserve
|
# * Contrary to the POD, if ignore_reserves is not passed (or is false), any item reserve
|
||||||
# found will override all other measures that may prevent transfer and force a transfer.
|
# found will override all other measures that may prevent transfer and force a transfer.
|
||||||
my ($dotransfer, $messages ) = transferbook( $library->branchcode, $item->barcode );
|
my ($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode
|
||||||
|
});
|
||||||
is( $dotransfer, 1, 'Transfer of reserved item succeeded without ignore reserves' );
|
is( $dotransfer, 1, 'Transfer of reserved item succeeded without ignore reserves' );
|
||||||
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
||||||
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
||||||
|
|
||||||
my $ignore_reserves = 0;
|
my $ignore_reserves = 0;
|
||||||
($dotransfer, $messages ) = transferbook( $library->branchcode, $item->barcode, $ignore_reserves );
|
($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode,
|
||||||
|
ignore_reserves => $ignore_reserves
|
||||||
|
});
|
||||||
is( $dotransfer, 1, 'Transfer of reserved item succeeded with ignore reserves: false' );
|
is( $dotransfer, 1, 'Transfer of reserved item succeeded with ignore reserves: false' );
|
||||||
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
is( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve");
|
||||||
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info");
|
||||||
|
|
||||||
$ignore_reserves = 1;
|
$ignore_reserves = 1;
|
||||||
($dotransfer, $messages ) = transferbook( $library->branchcode, $item->barcode, $ignore_reserves );
|
($dotransfer, $messages ) = transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode,
|
||||||
|
ignore_reserves => $ignore_reserves
|
||||||
|
});
|
||||||
is( $dotransfer, 0, 'Transfer of reserved item failed with ignore reserves: true' );
|
is( $dotransfer, 0, 'Transfer of reserved item failed with ignore reserves: true' );
|
||||||
is_deeply(
|
is_deeply(
|
||||||
$messages,
|
$messages,
|
||||||
|
@ -230,3 +269,28 @@ subtest 'ignore_reserves flag' => sub {
|
||||||
isnt( $messages->{ResFound}->{ResFound}, 'Reserved', "We did not return that we found a reserve");
|
isnt( $messages->{ResFound}->{ResFound}, 'Reserved', "We did not return that we found a reserve");
|
||||||
isnt( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We did not return the reserve info");
|
isnt( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We did not return the reserve info");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
subtest 'transferbook test from branch' => sub {
|
||||||
|
plan tests => 5;
|
||||||
|
|
||||||
|
my $library = $builder->build_object( { class => 'Koha::Libraries' } );
|
||||||
|
my $item = $builder->build_sample_item();
|
||||||
|
ok( $item->holdingbranch ne $library->branchcode && $item->homebranch ne $library->branchcode, "Item is not held or owned by library");
|
||||||
|
C4::Circulation::transferbook({
|
||||||
|
from_branch => $library->branchcode,
|
||||||
|
to_branch => $item->homebranch,
|
||||||
|
barcode => $item->barcode,
|
||||||
|
});
|
||||||
|
my ($datesent,$from_branch,$to_branch) = GetTransfers($item->itemnumber);
|
||||||
|
is( $from_branch, $library->branchcode, 'The transfer is initiated from the specified branch, not the items home or holdingbranch');
|
||||||
|
is( $to_branch, $item->homebranch, 'The transfer is initiated to the specified branch');
|
||||||
|
C4::Circulation::transferbook({
|
||||||
|
from_branch => $item->homebranch,
|
||||||
|
to_branch => $library->branchcode,
|
||||||
|
barcode => $item->barcode,
|
||||||
|
});
|
||||||
|
($datesent,$from_branch,$to_branch) = GetTransfers($item->itemnumber);
|
||||||
|
is( $from_branch, $item->homebranch, 'The transfer is initiated from the specified branch');
|
||||||
|
is( $to_branch, $library->branchcode, 'The transfer is initiated to the specified branch');
|
||||||
|
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in a new issue