From 816ab9243f57a02f9c2f5efbc31025613c97c75d Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 23 Mar 2020 12:46:26 +0000 Subject: [PATCH] Bug 23695: (follow-up) Adjust for addition of transfer trigger --- t/db_dependent/Circulation.t | 27 +--------- t/db_dependent/Circulation/transferbook.t | 85 +++++++++++++++++++++++++++---- 2 files changed, 76 insertions(+), 36 deletions(-) diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 3a4844607f..c8cdbf9c24 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -18,7 +18,7 @@ use Modern::Perl; use utf8; -use Test::More tests => 47; +use Test::More tests => 46; use Test::MockModule; use Test::Deep qw( cmp_deeply ); @@ -3021,31 +3021,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 { plan tests => 3; diff --git a/t/db_dependent/Circulation/transferbook.t b/t/db_dependent/Circulation/transferbook.t index 576894d110..71e9d5e971 100644 --- a/t/db_dependent/Circulation/transferbook.t +++ b/t/db_dependent/Circulation/transferbook.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 5; +use Test::More tests => 6; use t::lib::TestBuilder; use t::lib::Mocks; @@ -39,7 +39,11 @@ subtest 'transfer a non-existant item' => sub { $item->delete; 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_deeply( $messages, @@ -70,7 +74,12 @@ subtest 'field population tests' => sub { ); 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_deeply( $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_deeply( $messages, @@ -126,7 +139,11 @@ subtest 'transfer already at destination' => sub { 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( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve"); 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. # * WasReturned does not seem like a variable that should contain a borrowernumber # * 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'); # Reset issue @@ -173,7 +194,11 @@ subtest 'transfer an issued item' => sub { 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( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve"); 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. # * 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. - 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( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve"); is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info"); 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( $messages->{ResFound}->{ResFound}, 'Reserved', "We found the reserve"); is( $messages->{ResFound}->{itemnumber}, $item->itemnumber, "We got the reserve info"); $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_deeply( $messages, @@ -230,3 +269,29 @@ subtest 'ignore_reserves flag' => sub { 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"); }; + +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'); + +}; + -- 2.11.0