Bug 14576: Unit tests
authorNick Clemens <nick@bywatersolutions.com>
Wed, 4 Oct 2017 15:21:57 +0000 (15:21 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 25 Apr 2019 11:36:24 +0000 (11:36 +0000)
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 <black23@gmail.com>

Signed-off-by: Michal Denar <black23@gmail.com>

Signed-off-by: Liz Rea <wizzyrea@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

t/db_dependent/Circulation/Returns.t
t/db_dependent/Circulation/issue.t
t/db_dependent/UsageStats.t

index 2f09606..6645668 100644 (file)
@@ -17,7 +17,7 @@
 
 use Modern::Perl;
 
-use Test::More tests => 5;
+use Test::More tests => 4;
 use Test::MockModule;
 use Test::Warn;
 
@@ -68,50 +68,6 @@ my $rule = Koha::IssuingRule->new(
 );
 $rule->store();
 
-my $manager = $builder->build({source => 'Borrower'});
-$manager_id = $manager->{borrowernumber};
-
-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 = Koha::Items->find( $itemnumber );
-    is( $item->location, 'CART',
-        "InProcessingToShelvingCart functions as intended" );
-
-    ModItem( {location => $location}, undef, $itemnumber );
-
-    t::lib::Mocks::mock_preference( "InProcessingToShelvingCart", 0 );
-    AddReturn( $barcode, $branch );
-    $item = Koha::Items->find( $itemnumber );
-    is( $item->location, $permanent_location,
-        "InProcessingToShelvingCart functions as intended" );
-};
-
-
 subtest "AddReturn logging on statistics table (item-level_itypes=1)" => sub {
 
     plan tests => 4;
@@ -382,3 +338,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;
index 97c3902..31dd457 100644 (file)
@@ -17,7 +17,7 @@
 
 use Modern::Perl;
 
-use Test::More tests => 33;
+use Test::More tests => 45;
 use DateTime::Duration;
 
 use t::lib::Mocks;
@@ -373,6 +373,58 @@ AddReturn( 'barcode_3', $branchcode_1 );
 $item = Koha::Items->find( $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 = Koha::Items->find( $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 = Koha::Items->find( $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 = Koha::Items->find( $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 = Koha::Items->find( $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 = Koha::Items->find( $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 = Koha::Items->find( $itemnumber2 );
+ok( $item2->location eq '', q{UpdateItemLocationOnCheckin updates location value from 'GEN' to '' with setting "GEN: _BLANK_"} );
+AddReturn( 'barcode_4', $branchcode_1 );
+$item2 = Koha::Items->find( $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 = Koha::Items( $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, '');
index 9d11af1..90b205b 100644 (file)
@@ -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