From 3173ba9970300e21e90f97cffa5c68a3c3c9e17e Mon Sep 17 00:00:00 2001 From: Arthur Suzuki Date: Mon, 16 Dec 2024 10:59:22 +0100 Subject: [PATCH] Bug 7376: Unit test Signed-off-by: Julian Maurice --- t/db_dependent/Circulation.t | 44 +++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index f26069e9..c5f71b1b 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 => 75; +use Test::More tests => 76; use Test::Exception; use Test::MockModule; use Test::Deep qw( cmp_deeply ); @@ -2600,6 +2600,48 @@ subtest 'CanBookBeIssued + Koha::Patron->is_debarred|has_overdues' => sub { is( $error->{USERBLOCKEDNOENDDATE}, '9999-12-31', 'USERBLOCKEDNOENDDATE should be 9999-12-31 for unlimited debarments' ); }; + +subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { + plan tests => 6; + + my $homebranch = $builder->build( { source => 'Branch' } ); + my $otherbranch = $builder->build( { source => 'Branch' } ); + my $patron = $builder->build( { source => 'Borrower', value => { categorycode => $patron_category->{categorycode} } } ); + + my $item = $builder->build_sample_item( + { + homebranch => $homebranch->{branchcode}, + holdingbranch => $homebranch->{branchcode}, + } + ); + + t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'anywhere' ); + set_userenv($homebranch); + my $issue = AddIssue( $patron, $item->barcode ); + my ($allowed, $message) = C4::Circulation::CanBookBeReturned($item, $otherbranch); + is ( 1 , $allowed , 'with AllowReturnToBranch = anywhere and no limits return to other is allowed'); + is ( undef , $message , 'without limits provides no message'); + + t::lib::Mocks::mock_preference( 'UseBranchTransferLimits', '1' ); + t::lib::Mocks::mock_preference( 'BranchTransferLimitsType', 'itemtype' ); + + # set limit + my $limit = Koha::Item::Transfer::Limit->new({ + toBranch => $otherbranch->{branchcode}, + fromBranch => $item->homebranch, + itemtype => $item->effective_itemtype, + })->store(); + + ($allowed, $message) = C4::Circulation::CanBookBeReturned($item, $otherbranch); + is ( 0 , $allowed , 'With transfer limits cannot return to otherbranch'); + is ( $homebranch->{branchcode} , $message , 'With transfer limits asks return to homebranch'); + + ($allowed, $message) = C4::Circulation::CanBookBeReturned($item, $homebranch); + is ( 1 , $allowed , 'With transfer limits can return to homebranch'); + is ( undef , $message , 'With transfer limits and homebranch provides no message'); +}; + + subtest 'Statistic patrons "X"' => sub { plan tests => 15; -- 2.30.2