From: Jason Stephenson Date: Fri, 9 Mar 2018 14:17:34 +0000 (-0500) Subject: Lp 1411422: Fix & rename test file. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=8537883382be0db8fe2b395463aca4f240edaf31;p=evergreen%2Fmasslnc.git Lp 1411422: Fix & rename test file. The tests added for this branch had a bad plan. It specified 7 tests were to be run when actually there are 8. I also renumbered the file to be 26, so that there would be only 1 test numbered 25. Signed-off-by: Jason Stephenson --- diff --git a/Open-ILS/src/perlmods/live_t/25-lp1411422-transferring-items-volumes-with-parts.t b/Open-ILS/src/perlmods/live_t/25-lp1411422-transferring-items-volumes-with-parts.t deleted file mode 100755 index 18fe58c21e..0000000000 --- a/Open-ILS/src/perlmods/live_t/25-lp1411422-transferring-items-volumes-with-parts.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use Test::More tests => 7; - -diag("Test transferring holds with parts."); - -use constant WORKSTATION_NAME => 'BR1-test-25-lp1411422-transferring-items-volumes-with-parts.t'; -use constant WORKSTATION_LIB => 4; - -use strict; use warnings; - -use OpenILS::Utils::TestUtils; -use OpenILS::Utils::CStoreEditor qw/:funcs/; -use OpenILS::Utils::Fieldmapper; - -our $script = OpenILS::Utils::TestUtils->new(); -$script->bootstrap; - -our $e = new_editor(xact => 1); -$e->init; - - -# setup workstation and login -# ------------- -setupLogin(); - -# Find a copy with at least one part -# ------------- - -my $copy = $e->search_asset_copy([ -{ deleted => 'f' }, -{ - join => { - acpm => { - type => 'inner', - join => { - bmp => { type => 'left' }, - } - } - }, - flesh => 1, - flesh_fields => { acp => ['parts']}, - limit => 1 -} -])->[0]; - -diag("Using copy ". $copy->id); -my $parts = $copy->parts; -my $oldcallnumber = $copy->call_number; -my $part_objs = []; -my $part; - -foreach my $spart (@$parts) { - $part = $spart; -} -diag("Copy part label -> ". $part->label); - -diag("Copy call number ". $oldcallnumber); - -$oldcallnumber = $e->search_asset_call_number({id => $oldcallnumber, deleted => 'f'})->[0]; - -diag("Copy attached to bib ". $oldcallnumber->record); - -# Find a bib without parts -# ------------- -my $sdestbib = $e->search_biblio_record_entry([ -{ -id => - { - 'not in' => - { "from" => 'bmp', - 'select' => { "bmp" => [ 'record' ] } - } - }, -deleted => 'f' }, -{ limit => 3 } - -]); - -my $destbib; -foreach(@{$sdestbib}) { - if ($_->id > -1) { - $destbib = $_; - last; - } -} - - -diag("Using this non parted bib ". $destbib->id); - -# Create a new volume for the copy to transfer to -# ------------- -my $newcall = Fieldmapper::asset::call_number->new; - -$newcall->owning_lib($oldcallnumber->owning_lib); -$newcall->record($destbib->id); -$newcall->creator($oldcallnumber->creator); -$newcall->editor($oldcallnumber->editor); -$newcall->label('Test copy transfer with parts'); - - -my $stat = $e->create_asset_call_number($newcall); -ok($stat, 'Created temporary volume on bib '.$destbib->id); - -diag( "New call number id: " . $newcall->id ); - -# freshen up the variable -# get all the rest of the values from the DB -$newcall = $e->search_asset_call_number({id => $newcall->id})->[0]; - -# save changes so that the storage request has access -$e->commit; - -# make the transfer -# ------------- -my @copy_id_array = ($copy->id); -my $storage = $script->session('open-ils.cat'); -my $req = $storage->request( - 'open-ils.cat.transfer_copies_to_volume', $script->authtoken, $newcall->id, \@copy_id_array )->gather(1); - -# Did the code create a new part on the destination bib? -# ------------- -$e->xact_begin; - -my $destparts = $e->search_biblio_monograph_part({record => $newcall->record, label => $part->label, deleted => 'f'})->[0]; -ok($destparts, 'Copy transfer with parts success on bib '.$destbib->id); - -is($destparts->label, $part->label, 'Part labels match and everything!'); - -# Now test transferring volumes, -# might as well transfer it back to the old bib -# ------------- - -my @vols = ($newcall->id); -my $docid = $oldcallnumber->record; -my $args = {lib => $oldcallnumber->owning_lib, docid => $docid, volumes => \@vols }; -$storage = $script->session('open-ils.cat'); -$req = $storage->request( - 'open-ils.cat.asset.volume.batch.transfer', - $script->authtoken, - $args - )->gather(1); -# Make sure that the old bib received the part -my $destparts2 = $e->search_biblio_monograph_part({record => $oldcallnumber->record, label => $part->label, deleted => 'f'})->[0]; -ok($destparts2, 'Volume transfer with parts success on bib '.$oldcallnumber->record); -is($destparts->label, $part->label, 'Part labels match and everything!'); - - -# Reverse the data -# ------------- -$storage = $script->session('open-ils.cat'); -$req = $storage->request( - 'open-ils.cat.transfer_copies_to_volume', $script->authtoken, $oldcallnumber->id, \@copy_id_array )->gather(1); - -$stat = $e->delete_asset_call_number($newcall); - -$e->xact_commit; - - -sub setupLogin { - - my $workstation = $e->search_actor_workstation([ {name => WORKSTATION_NAME, owning_lib => WORKSTATION_LIB } ])->[0]; - - if(!$workstation ) - { - $script->authenticate({ - username => 'admin', - password => 'demo123', - type => 'staff'}); - ok( $script->authtoken, 'Have an authtoken'); - my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB); - ok( ! ref $ws, 'Registered a new workstation'); - $script->logout(); - } - - $script->authenticate({ - username => 'admin', - password => 'demo123', - type => 'staff', - workstation => WORKSTATION_NAME}); - ok( $script->authtoken, 'Have an authtoken associated with the workstation'); -} - diff --git a/Open-ILS/src/perlmods/live_t/26-lp1411422-transferring-items-volumes-with-parts.t b/Open-ILS/src/perlmods/live_t/26-lp1411422-transferring-items-volumes-with-parts.t new file mode 100755 index 0000000000..5bd7e1f14d --- /dev/null +++ b/Open-ILS/src/perlmods/live_t/26-lp1411422-transferring-items-volumes-with-parts.t @@ -0,0 +1,183 @@ +#!perl + +use Test::More tests => 8; + +diag("Test transferring holds with parts."); + +use constant WORKSTATION_NAME => 'BR1-test-26-lp1411422-transferring-items-volumes-with-parts.t'; +use constant WORKSTATION_LIB => 4; + +use strict; use warnings; + +use OpenILS::Utils::TestUtils; +use OpenILS::Utils::CStoreEditor qw/:funcs/; +use OpenILS::Utils::Fieldmapper; + +our $script = OpenILS::Utils::TestUtils->new(); +$script->bootstrap; + +our $e = new_editor(xact => 1); +$e->init; + + +# setup workstation and login +# ------------- +setupLogin(); + +# Find a copy with at least one part +# ------------- + +my $copy = $e->search_asset_copy([ +{ deleted => 'f' }, +{ + join => { + acpm => { + type => 'inner', + join => { + bmp => { type => 'left' }, + } + } + }, + flesh => 1, + flesh_fields => { acp => ['parts']}, + limit => 1 +} +])->[0]; + +diag("Using copy ". $copy->id); +my $parts = $copy->parts; +my $oldcallnumber = $copy->call_number; +my $part_objs = []; +my $part; + +foreach my $spart (@$parts) { + $part = $spart; +} +diag("Copy part label -> ". $part->label); + +diag("Copy call number ". $oldcallnumber); + +$oldcallnumber = $e->search_asset_call_number({id => $oldcallnumber, deleted => 'f'})->[0]; + +diag("Copy attached to bib ". $oldcallnumber->record); + +# Find a bib without parts +# ------------- +my $sdestbib = $e->search_biblio_record_entry([ +{ +id => + { + 'not in' => + { "from" => 'bmp', + 'select' => { "bmp" => [ 'record' ] } + } + }, +deleted => 'f' }, +{ limit => 3 } + +]); + +my $destbib; +foreach(@{$sdestbib}) { + if ($_->id > -1) { + $destbib = $_; + last; + } +} + + +diag("Using this non parted bib ". $destbib->id); + +# Create a new volume for the copy to transfer to +# ------------- +my $newcall = Fieldmapper::asset::call_number->new; + +$newcall->owning_lib($oldcallnumber->owning_lib); +$newcall->record($destbib->id); +$newcall->creator($oldcallnumber->creator); +$newcall->editor($oldcallnumber->editor); +$newcall->label('Test copy transfer with parts'); + + +my $stat = $e->create_asset_call_number($newcall); +ok($stat, 'Created temporary volume on bib '.$destbib->id); + +diag( "New call number id: " . $newcall->id ); + +# freshen up the variable +# get all the rest of the values from the DB +$newcall = $e->search_asset_call_number({id => $newcall->id})->[0]; + +# save changes so that the storage request has access +$e->commit; + +# make the transfer +# ------------- +my @copy_id_array = ($copy->id); +my $storage = $script->session('open-ils.cat'); +my $req = $storage->request( + 'open-ils.cat.transfer_copies_to_volume', $script->authtoken, $newcall->id, \@copy_id_array )->gather(1); + +# Did the code create a new part on the destination bib? +# ------------- +$e->xact_begin; + +my $destparts = $e->search_biblio_monograph_part({record => $newcall->record, label => $part->label, deleted => 'f'})->[0]; +ok($destparts, 'Copy transfer with parts success on bib '.$destbib->id); + +is($destparts->label, $part->label, 'Part labels match and everything!'); + +# Now test transferring volumes, +# might as well transfer it back to the old bib +# ------------- + +my @vols = ($newcall->id); +my $docid = $oldcallnumber->record; +my $args = {lib => $oldcallnumber->owning_lib, docid => $docid, volumes => \@vols }; +$storage = $script->session('open-ils.cat'); +$req = $storage->request( + 'open-ils.cat.asset.volume.batch.transfer', + $script->authtoken, + $args + )->gather(1); +# Make sure that the old bib received the part +my $destparts2 = $e->search_biblio_monograph_part({record => $oldcallnumber->record, label => $part->label, deleted => 'f'})->[0]; +ok($destparts2, 'Volume transfer with parts success on bib '.$oldcallnumber->record); +is($destparts->label, $part->label, 'Part labels match and everything!'); + + +# Reverse the data +# ------------- +$storage = $script->session('open-ils.cat'); +$req = $storage->request( + 'open-ils.cat.transfer_copies_to_volume', $script->authtoken, $oldcallnumber->id, \@copy_id_array )->gather(1); + +$stat = $e->delete_asset_call_number($newcall); + +$e->xact_commit; + + +sub setupLogin { + + my $workstation = $e->search_actor_workstation([ {name => WORKSTATION_NAME, owning_lib => WORKSTATION_LIB } ])->[0]; + + if(!$workstation ) + { + $script->authenticate({ + username => 'admin', + password => 'demo123', + type => 'staff'}); + ok( $script->authtoken, 'Have an authtoken'); + my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB); + ok( ! ref $ws, 'Registered a new workstation'); + $script->logout(); + } + + $script->authenticate({ + username => 'admin', + password => 'demo123', + type => 'staff', + workstation => WORKSTATION_NAME}); + ok( $script->authtoken, 'Have an authtoken associated with the workstation'); +} +