From 1aadf8667a72ed5717918282e7520e73e114c662 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 4 Oct 2017 15:21:57 +0000 Subject: [PATCH] Bug 14576: Unit tests To test: 1 - prove -v t/db_dependent/Circulation/Returns.t 2 - prove -v t/db_dependent/Circulation/issue.t 3 - prove -v t/db_dependent/UsageStats.t 4 - All should pass Signed-off-by: Michal Denar Signed-off-by: Michal Denar --- t/db_dependent/Circulation/Returns.t | 45 ++---------------------------- t/db_dependent/Circulation/issue.t | 54 +++++++++++++++++++++++++++++++++++- t/db_dependent/UsageStats.t | 2 -- 3 files changed, 56 insertions(+), 45 deletions(-) diff --git a/t/db_dependent/Circulation/Returns.t b/t/db_dependent/Circulation/Returns.t index bd21347..b58eab5 100644 --- a/t/db_dependent/Circulation/Returns.t +++ b/t/db_dependent/Circulation/Returns.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 5; +use Test::More tests => 4; use Test::MockModule; use Test::Warn; @@ -60,47 +60,6 @@ my $rule = Koha::IssuingRule->new( ); $rule->store(); -subtest "InProcessingToShelvingCart tests" => sub { - - plan tests => 2; - - $branch = $builder->build({ source => 'Branch' })->{ branchcode }; - my $permanent_location = 'TEST'; - my $location = 'PROC'; - - # Create a biblio record with biblio-level itemtype - my $record = MARC::Record->new(); - my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, '' ); - my $built_item = $builder->build({ - source => 'Item', - value => { - biblionumber => $biblionumber, - homebranch => $branch, - holdingbranch => $branch, - location => $location, - permanent_location => $permanent_location - } - }); - my $barcode = $built_item->{ barcode }; - my $itemnumber = $built_item->{ itemnumber }; - my $item; - - t::lib::Mocks::mock_preference( "InProcessingToShelvingCart", 1 ); - AddReturn( $barcode, $branch ); - $item = GetItem( $itemnumber ); - is( $item->{location}, 'CART', - "InProcessingToShelvingCart functions as intended" ); - - $item->{location} = $location; - ModItem( $item, undef, $itemnumber ); - - t::lib::Mocks::mock_preference( "InProcessingToShelvingCart", 0 ); - AddReturn( $barcode, $branch ); - $item = GetItem( $itemnumber ); - is( $item->{location}, $permanent_location, - "InProcessingToShelvingCart functions as intended" ); -}; - subtest "AddReturn logging on statistics table (item-level_itypes=1)" => sub { @@ -368,3 +327,5 @@ subtest 'BlockReturnOfLostItems' => sub { ( $doreturn, $messages, $issue ) = AddReturn($item->barcode); is( $doreturn, 1, "Without BlockReturnOfLostItems, a checkin of a lost item should not be blocked"); }; + +$schema->storage->txn_rollback; diff --git a/t/db_dependent/Circulation/issue.t b/t/db_dependent/Circulation/issue.t index f613f08..4f3ec3c 100644 --- a/t/db_dependent/Circulation/issue.t +++ b/t/db_dependent/Circulation/issue.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 32; +use Test::More tests => 44; use DateTime::Duration; use t::lib::Mocks; @@ -370,6 +370,58 @@ AddReturn( 'barcode_3', $branchcode_1 ); $item = GetItem( $itemnumber ); ok( $item->{notforloan} eq 9, q{UpdateNotForLoanStatusOnCheckin does not update notforloan value from 9 with setting "1: 9"} ); +my $itemnumber2; +($biblionumber, $biblioitemnumber, $itemnumber2) = C4::Items::AddItem( + { + barcode => 'barcode_4', + itemcallnumber => 'callnumber4', + homebranch => $branchcode_1, + holdingbranch => $branchcode_1, + location => 'FIC', + itype => $itemtype + }, + $biblionumber +); + +t::lib::Mocks::mock_preference( 'UpdateItemLocationOnCheckin', q{} ); +AddReturn( 'barcode_4', $branchcode_1 ); +my $item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq 'FIC', 'UpdateItemLocationOnCheckin does not modify value when not enabled' ); + +t::lib::Mocks::mock_preference( 'UpdateItemLocationOnCheckin', 'FIC: GEN' ); +AddReturn( 'barcode_4', $branchcode_1 ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq 'GEN', q{UpdateItemLocationOnCheckin updates location value from 'FIC' to 'GEN' with setting "FIC: GEN"} ); +ok( $item2->{permanent_location} eq 'GEN', q{UpdateItemLocationOnCheckin updates permanent_location value from 'FIC' to 'GEN' with setting "FIC: GEN"} ); +AddReturn( 'barcode_4', $branchcode_1 ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq 'GEN', q{UpdateItemLocationOnCheckin does not update location value from 'GEN' with setting "FIC: GEN"} ); + +t::lib::Mocks::mock_preference( 'UpdateItemLocationOnCheckin', '_ALL_: CART' ); +AddReturn( 'barcode_4', $branchcode_1 ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq 'CART', q{UpdateItemLocationOnCheckin updates location value from 'GEN' with setting "_ALL_: CART"} ); +ok( $item2->{permanent_location} eq 'GEN', q{UpdateItemLocationOnCheckin does not update permanent_location value from 'GEN' with setting "_ALL_: CART"} ); +AddIssue( $borrower_1, 'barcode_4', $daysago10,0, $today, '' ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq 'GEN', q{Location updates from 'CART' to permanent location on issue} ); + +t::lib::Mocks::mock_preference( 'UpdateItemLocationOnCheckin', "GEN: _BLANK_\n_BLANK_: PROC\nPROC: _PERM_" ); +AddReturn( 'barcode_4', $branchcode_1 ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq '', q{UpdateItemLocationOnCheckin updates location value from 'GEN' to '' with setting "GEN: _BLANK_"} ); +AddReturn( 'barcode_4', $branchcode_1 ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq 'PROC' , q{UpdateItemLocationOnCheckin updates location value from '' to 'PROC' with setting "_BLANK_: PROC"} ); +ok( $item2->{permanent_location} eq '' , q{UpdateItemLocationOnCheckin does not update permanent_location value from '' to 'PROC' with setting "_BLANK_: PROC"} ); +AddReturn( 'barcode_4', $branchcode_1 ); +$item2 = GetItem( $itemnumber2 ); +ok( $item2->{location} eq '' , q{UpdateItemLocationOnCheckin updates location value from 'PROC' to '' with setting "PROC: _PERM_" } ); +ok( $item2->{permanent_location} eq '' , q{UpdateItemLocationOnCheckin does not update permanent_location from '' with setting "PROC: _PERM_" } ); + + + + # Bug 14640 - Cancel the hold on checking out if asked my $reserve_id = AddReserve($branchcode_1, $borrower_id1, $biblionumber, undef, 1, undef, undef, "a note", "a title", undef, ''); diff --git a/t/db_dependent/UsageStats.t b/t/db_dependent/UsageStats.t index 9d11af1..90b205b 100644 --- a/t/db_dependent/UsageStats.t +++ b/t/db_dependent/UsageStats.t @@ -397,7 +397,6 @@ sub mocking_systempreferences_to_a_set_value { CircControl HomeOrHoldingBranch HomeOrHoldingBranchReturn - InProcessingToShelvingCart IssueLostItem IssuingInProcess ManInvInNoissuesCharge @@ -406,7 +405,6 @@ sub mocking_systempreferences_to_a_set_value { RenewalSendNotice RentalsInNoissuesCharge ReturnBeforeExpiry - ReturnToShelvingCart TransfersMaxDaysWarning UseBranchTransferLimits useDaysMode -- 2.1.4