From 2f5f3171d5462f3bfa6948668efb36bc8dcb082f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 19 Aug 2020 12:55:07 +0200 Subject: [PATCH] Bug 26250: StockRotationItems.t - wip StockRotationItems.t and StockRotationStages.t need to be fixed --- t/db_dependent/StockRotationItems.t | 68 +++++++++++++++-------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/t/db_dependent/StockRotationItems.t b/t/db_dependent/StockRotationItems.t index 707842e4a5..c859b973b9 100644 --- a/t/db_dependent/StockRotationItems.t +++ b/t/db_dependent/StockRotationItems.t @@ -40,13 +40,13 @@ subtest 'Basic object tests' => sub { $schema->storage->txn_begin; - my $itm = $builder->build({ source => 'Item' }); + my $itm = $builder->build_sample_item; my $stage = $builder->build({ source => 'Stockrotationstage' }); my $item = $builder->build({ source => 'Stockrotationitem', value => { - itemnumber_id => $itm->{itemnumber}, + itemnumber_id => $itm->itemnumber, stage_id => $stage->{stage_id}, }, }); @@ -60,7 +60,7 @@ subtest 'Basic object tests' => sub { # Relationship to rota isa_ok( $sritem->itemnumber, 'Koha::Item', "Fetched related item." ); - is( $sritem->itemnumber->itemnumber, $itm->{itemnumber}, "Related rota OK." ); + is( $sritem->itemnumber->itemnumber, $itm->itemnumber, "Related rota OK." ); # Relationship to stage isa_ok( $sritem->stage, 'Koha::StockRotationStage', "Fetched related stage." ); @@ -130,18 +130,23 @@ subtest 'Tests for needs_repatriating' => sub { subtest "Tests for repatriate." => sub { plan tests => 3; $schema->storage->txn_begin; - my $sritem = $builder->build({ source => 'Stockrotationitem' }); - my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); - $dbitem->stage->position(1); - $dbitem->stage->duration(50); + my $item = $builder->build_sample_item; + my $rota_item = $builder->build_object( + { + class => 'Koha::StockRotationItems', + value => { itemnumber_id => $item->itemnumber } + } + ); + $rota_item->stage->position(1); + $rota_item->stage->duration(50); my $branch = $builder->build({ source => 'Branch' }); - $dbitem->itemnumber->holdingbranch($branch->{branchcode}); + $rota_item->itemnumber->holdingbranch($branch->{branchcode}); # Test a straight up repatriate - ok($dbitem->repatriate, "Repatriation done."); - my $intransfer = $dbitem->itemnumber->get_transfer; + ok($rota_item->repatriate, "Repatriation done."); + my $intransfer = $rota_item->itemnumber->get_transfer; is($intransfer->frombranch, $branch->{branchcode}, "Origin correct."); - is($intransfer->tobranch, $dbitem->stage->branchcode_id, "Target Correct."); + is($intransfer->tobranch, $rota_item->stage->branchcode_id, "Target Correct."); $schema->storage->txn_rollback; }; @@ -209,11 +214,14 @@ subtest "Tests for advance." => sub { plan tests => 15; $schema->storage->txn_begin; - my $sritem = $builder->build({ - source => 'Stockrotationitem', - value => { 'fresh' => 1 } - }); - my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); + my $item = $builder->build_sample_item; + my $rota_item = $builder->build_object( + { + class => 'Koha::StockRotationItems', + value => { itemnumber_id => $item->itemnumber, fresh => 1 } + } + ); + my $dbitem = Koha::StockRotationItems->find($rota_item->itemnumber_id); $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id); my $dbstage = $dbitem->stage; $dbstage->position(1)->duration(50)->store; # Configure stage. @@ -233,14 +241,14 @@ subtest "Tests for advance." => sub { $dbstage->rota->cyclical(1)->store; # Set Rota to cyclical. ok($dbitem->advance, "Single stage cyclical advance done."); ## Refetch dbitem - $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); + $dbitem = Koha::StockRotationItems->find($rota_item->itemnumber_id); is($dbitem->stage->stage_id, $dbstage->stage_id, "Single stage cyclical stage OK."); # Test with indemand advance $dbitem->indemand(1)->store; ok($dbitem->advance, "Indemand item advance done."); ## Refetch dbitem - $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); + $dbitem = Koha::StockRotationItems->find($rota_item->itemnumber_id); is($dbitem->indemand, 0, "Indemand OK."); is($dbitem->stage->stage_id, $dbstage->stage_id, "Indemand item advance stage OK."); @@ -256,7 +264,7 @@ subtest "Tests for advance." => sub { # Test a straight up advance ok($dbitem->advance, "Advancement done."); ## Refetch dbitem - $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); + $dbitem = Koha::StockRotationItems->find($rota_item->itemnumber_id); ## Test results is($dbitem->stage->stage_id, $dbstage2->stage_id, "Stage updated."); my $intransfer = $dbitem->itemnumber->get_transfer; @@ -273,7 +281,7 @@ subtest "Tests for advance." => sub { # Advance again, Remove from rota. ok($dbitem->advance, "Non-cyclical advance."); ## Refetch dbitem - $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); + $dbitem = Koha::StockRotationItems->find($rota_item->itemnumber_id); is($dbitem, undef, "StockRotationItem has been removed."); $schema->storage->txn_rollback; @@ -284,22 +292,19 @@ subtest "Tests for investigate (singular)." => sub { $schema->storage->txn_begin; # Test brand new item's investigation ['initiation'] - my $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1 } }); + my $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); is($dbitem->investigate->{reason}, 'initiation', "fresh item initiates."); # Test brand new item at stagebranch ['initiation'] - $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1 } }); + $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id)->store; $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id)->store; is($dbitem->investigate->{reason}, 'initiation', "fresh item at stagebranch initiates."); # Test item not at stagebranch with branchtransfer history ['repatriation'] - $sritem = $builder->build({ - source => 'Stockrotationitem', - value => { 'fresh' => 0,} - }); + $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); my $dbtransfer = Koha::Item::Transfer->new({ 'itemnumber' => $dbitem->itemnumber_id, @@ -312,10 +317,7 @@ subtest "Tests for investigate (singular)." => sub { is($dbitem->investigate->{reason}, 'repatriation', "older item repatriates."); # Test item at stagebranch with branchtransfer history ['not-ready'] - $sritem = $builder->build({ - source => 'Stockrotationitem', - value => { 'fresh' => 0,} - }); + $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); $dbtransfer = Koha::Item::Transfer->new({ 'itemnumber' => $dbitem->itemnumber_id, @@ -330,7 +332,7 @@ subtest "Tests for investigate (singular)." => sub { is($dbitem->investigate->{reason}, 'not-ready', "older item at stagebranch not-ready."); # Test item due for advancement ['advancement'] - $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 0 } }); + $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); $dbitem->indemand(0)->store; $dbitem->stage->duration(50)->store; @@ -350,7 +352,7 @@ subtest "Tests for investigate (singular)." => sub { "Item ready for advancement."); # Test item due for advancement but in-demand ['in-demand'] - $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 0 } }); + $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); $dbitem->indemand(1)->store; $dbitem->stage->duration(50)->store; @@ -370,7 +372,7 @@ subtest "Tests for investigate (singular)." => sub { "Item advances, but in-demand."); # Test item ready for advancement, but at wrong library ['repatriation'] - $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 0 } }); + $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1, itemnumber_id => $builder->build_sample_item->itemnumber } }); $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id}); $dbitem->indemand(0)->store; $dbitem->stage->duration(50)->store; -- 2.20.1