Bug 23057: Unit tests
authorKyle M Hall <kyle@bywatersolutions.com>
Thu, 6 Jun 2019 14:37:11 +0000 (10:37 -0400)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 16 Jul 2019 13:39:59 +0000 (14:39 +0100)
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Matha Fuerst <mfuerst@hmcpl.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

t/db_dependent/SIP/Message.t

index 23d9be8..2cdeba7 100755 (executable)
@@ -67,7 +67,7 @@ subtest 'Testing Patron Info Request V2' => sub {
 subtest 'Checkin V2' => sub {
     my $schema = Koha::Database->new->schema;
     $schema->storage->txn_begin;
-    plan tests => 27;
+    plan tests => 29;
     $C4::SIP::Sip::protocol_version = 2;
     test_checkin_v2();
     $schema->storage->txn_rollback;
@@ -302,7 +302,8 @@ sub test_request_patron_info_v2 {
 
 sub test_checkin_v2 {
     my $builder = t::lib::TestBuilder->new();
-    my $branchcode = $builder->build({ source => 'Branch' })->{branchcode};
+    my $branchcode  = $builder->build({ source => 'Branch' })->{branchcode};
+    my $branchcode2 = $builder->build({ source => 'Branch' })->{branchcode};
     my ( $response, $findpatron );
     my $mocks = create_mocks( \$response, \$findpatron, \$branchcode );
 
@@ -320,6 +321,7 @@ sub test_checkin_v2 {
         source => 'Item',
         value => { damaged => 0, withdrawn => 0, itemlost => 0, restricted => 0, homebranch => $branchcode, holdingbranch => $branchcode },
     });
+    my $item_object = Koha::Items->find( $item->{itemnumber} );
 
     my $mockILS = $mocks->{ils};
     my $server = { ils => $mockILS, account => {} };
@@ -370,9 +372,18 @@ sub test_checkin_v2 {
     is( substr($response,2,1), '1', 'OK flag is true now with checked_in_ok flag set when checking in an item that was not checked out' );
     is( substr($response,5,1), 'N', 'Alert flag no longer set' );
     check_field( $respcode, $response, FID_SCREEN_MSG, undef, 'No screen msg' );
-    $server->{account}->{checked_in_ok} = 0;
 
-    $server->{account}->{checked_in_ok} = 1;
+    # Move item to another holding branch to trigger CV of 04 with alert flag
+    t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'holdingbranch' );
+    $item_object->holdingbranch( $branchcode2 )->store();
+    undef $response;
+    $msg = C4::SIP::Sip::MsgType->new( $siprequest, 0 );
+    $msg->handle_checkin( $server );
+    is( substr($response,5,1), 'Y', 'Alert flag is set with check_in_ok, item is checked in but needs transfer' );
+    check_field( $respcode, $response, FID_ALERT_TYPE, '04', 'Got FID_ALERT_TYPE (CV) field with value 04 ( needs transfer )' );
+    $item_object->holdingbranch( $branchcode )->store();
+    t::lib::Mocks::mock_preference( ' AllowReturnToBranch ', 'anywhere' );
+
     $server->{account}->{cv_send_00_on_success} = 0;
     undef $response;
     $msg = C4::SIP::Sip::MsgType->new( $siprequest, 0 );