From 3ded55daf200624bbd995d584724856f40854cf9 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 24 Oct 2019 13:17:07 +0100 Subject: [PATCH] Bug 22569: Add Unit Tests --- t/db_dependent/Koha/Item/Transfers.t | 2 +- t/db_dependent/Koha/Libraries.t | 35 +++++++++++++++++ t/db_dependent/StockRotationItems.t | 58 +++++++++++++++++++++++++++- 3 files changed, 93 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/Koha/Item/Transfers.t b/t/db_dependent/Koha/Item/Transfers.t index 28e070671f..d435aa7413 100644 --- a/t/db_dependent/Koha/Item/Transfers.t +++ b/t/db_dependent/Koha/Item/Transfers.t @@ -19,7 +19,7 @@ use Modern::Perl; -use Test::More tests => 3; +use Test::More tests => 4; use Koha::Item::Transfer; use Koha::Item::Transfers; diff --git a/t/db_dependent/Koha/Libraries.t b/t/db_dependent/Koha/Libraries.t index ff9f6a9f0a..9d23ed42f8 100644 --- a/t/db_dependent/Koha/Libraries.t +++ b/t/db_dependent/Koha/Libraries.t @@ -226,3 +226,38 @@ subtest 'get_hold_libraries and validate_hold_sibling' => sub { $schema->storage->txn_rollback; }; + +subtest 'outgoing_transfers' => sub { + plan tests => 3; + + $schema->storage->txn_begin; + + my $library = $builder->build_object( { class => 'Koha::Libraries' } ); + my $transfer1 = $builder->build_object( + { + class => 'Koha::Item::Transfers', + value => { frombranch => $library->branchcode }, + } + ); + my $transfer2 = $builder->build_object( + { + class => 'Koha::Item::Transfers', + value => { frombranch => $library->branchcode }, + } + ); + + my $outgoing_transfers = $library->outgoing_transfers; + is( ref($outgoing_transfers), 'Koha::Item::Transfers', +'Koha::Library->outgoing_transfers should return a set of Koha::Item::Transfers' + ); + is( $outgoing_transfers->count, 2, + 'Koha::Library->outgoing_transfers should return the correct transfers' + ); + + $transfer1->delete; + is( $library->outgoing_transfers->next->id, $transfer2->id, + 'Koha::Library->outgoing_transfers should return the correct cash registers' + ); + + $schema->storage->txn_rollback; +}; diff --git a/t/db_dependent/StockRotationItems.t b/t/db_dependent/StockRotationItems.t index 1829a9b61f..16a86f96dd 100644 --- a/t/db_dependent/StockRotationItems.t +++ b/t/db_dependent/StockRotationItems.t @@ -26,7 +26,7 @@ use Koha::DateUtils; use Koha::Item::Transfer; use t::lib::TestBuilder; -use Test::More tests => 8; +use Test::More tests => 9; my $schema = Koha::Database->new->schema; @@ -423,4 +423,60 @@ subtest "Tests for investigate (singular)." => sub { $schema->storage->txn_rollback; }; +subtest "Tests for toggle_indemand" => sub { + plan tests => 15; + $schema->storage->txn_begin; + + my $sritem = $builder->build({ + source => 'Stockrotationitem', + value => { 'fresh' => 0, 'indemand' => 0 } + }); + my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); + my $firstbranch = $dbitem->stage->branchcode_id; + $dbitem->itemnumber->holdingbranch($firstbranch)->store; + my $dbstage = $dbitem->stage; + $dbstage->position(1)->duration(50)->store; # Configure stage. + # Configure item + $dbitem->itemnumber->holdingbranch($firstbranch)->store; + $dbitem->itemnumber->homebranch($firstbranch)->store; + # Sanity check + is($dbitem->stage->stage_id, $dbstage->stage_id, "Stage sanity check."); + + # Test if an item is not in transfer, toggle always acts. + is($dbitem->indemand, 0, "Item not in transfer starts with indemand disabled."); + $dbitem->toggle_indemand; + is($dbitem->indemand, 1, "Item not in transfer toggled correctly first time."); + $dbitem->toggle_indemand; + is($dbitem->indemand, 0, "Item not in transfer toggled correctly second time."); + + # Add stages + my $srstage = $builder->build({ + source => 'Stockrotationstage', + value => { duration => 50 } + }); + my $dbstage2 = Koha::StockRotationStages->find($srstage->{stage_id}); + $dbstage2->move_to_group($dbitem->stage->rota_id); + $dbstage2->position(2)->store; + my $secondbranch = $dbstage2->branchcode_id; + + # Test an item in transfer, toggle cancels transfer and resets indemand. + ok($dbitem->advance, "Advancement done."); + $dbitem->get_from_storage; + my $transfer = $dbitem->itemnumber->get_transfer; + is(ref($transfer), 'Koha::Item::Transfer', 'Item set to in transfer as expected'); + is($transfer->frombranch, $firstbranch, 'Transfer from set correctly'); + is($transfer->tobranch, $secondbranch, 'Transfer to set correctly'); + is($transfer->datearrived, undef, 'Transfer datearrived not set'); + $dbitem->toggle_indemand; + my $updated_transfer = $transfer->get_from_storage; + is($updated_transfer->frombranch, $firstbranch, 'Transfer from retained correctly'); + is($updated_transfer->tobranch, $firstbranch, 'Transfer to updated correctly'); + isnt($updated_transfer->datearrived, undef, 'Transfer datearrived set as expected'); + is($dbitem->indemand, 0, "Item retains indemand as expected."); + is($dbitem->stage_id, $dbstage->id, 'Item stage reset as expected.'); + is($dbitem->itemnumber->homebranch, $firstbranch, 'Item homebranch reset as expected.'); + + $schema->storage->txn_rollback; +}; + 1; -- 2.20.1