| Lines 19-25
          
      
      
        Link Here | 
        
          | 19 |  | 19 |  | 
        
          | 20 | use Modern::Perl; | 20 | use Modern::Perl; | 
        
          | 21 |  | 21 |  | 
          
            
              | 22 | use Test::More tests => 7; | 22 | use Test::More tests => 8; | 
        
          | 23 |  | 23 |  | 
        
          | 24 | use C4::Biblio; | 24 | use C4::Biblio; | 
        
          | 25 | use C4::Circulation; | 25 | use C4::Circulation; | 
  
    | Lines 339-344
          subtest 'pickup_locations' => sub {
      
      
        Link Here | 
        
          | 339 |     $schema->storage->txn_rollback; | 339 |     $schema->storage->txn_rollback; | 
        
          | 340 | }; | 340 | }; | 
        
          | 341 |  | 341 |  | 
            
              |  |  | 342 | subtest '_can_pickup_at' => sub { | 
            
              | 343 |     plan tests =>8; | 
            
              | 344 |  | 
            
              | 345 |     $schema->storage->txn_begin; | 
            
              | 346 |  | 
            
              | 347 |     t::lib::Mocks::mock_preference('UseBranchTransferLimits', 0); | 
            
              | 348 |  | 
            
              | 349 |     my $library1 = $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, } } ); | 
            
              | 350 |     my $library2 = $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, } } ); | 
            
              | 351 |     my $library3 = $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 0, } } ); | 
            
              | 352 |     my $library4 = $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, } } ); | 
            
              | 353 |  | 
            
              | 354 |     my $item = $builder->build_sample_item({ | 
            
              | 355 |         homebranch => $library1->branchcode, | 
            
              | 356 |         holdingbranch => $library1->branchcode, | 
            
              | 357 |         ccode => "Gollum" | 
            
              | 358 |     }); | 
            
              | 359 |  | 
            
              | 360 |     my @to = ( $library1, $library2, $library3, $library4 ); | 
            
              | 361 |  | 
            
              | 362 |     my $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 363 |     is( scalar @$pickup_locations, 3, "With no transfer limits we get back the libraries that are pickup locations"); | 
            
              | 364 |  | 
            
              | 365 |     t::lib::Mocks::mock_preference('UseBranchTransferLimits', 1); | 
            
              | 366 |     t::lib::Mocks::mock_preference('BranchTransferLimitsType', 'itemtype'); | 
            
              | 367 |     $builder->build_object( { class => 'Koha::Item::Transfer::Limits', value => { | 
            
              | 368 |         toBranch => $library2->branchcode, | 
            
              | 369 |         fromBranch => $library1->branchcode, | 
            
              | 370 |         itemtype => $item->itype, | 
            
              | 371 |         ccode => undef, | 
            
              | 372 |         } | 
            
              | 373 |     }); | 
            
              | 374 |  | 
            
              | 375 |     $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 376 |     is( scalar @$pickup_locations, 2, "With a transfer limits we get back the libraries that are pickup locations minus 1 limited library"); | 
            
              | 377 |  | 
            
              | 378 |     $builder->build_object( { class => 'Koha::Item::Transfer::Limits', value => { | 
            
              | 379 |         toBranch => $library4->branchcode, | 
            
              | 380 |         fromBranch => $library1->branchcode, | 
            
              | 381 |         itemtype => $item->itype, | 
            
              | 382 |         ccode => undef, | 
            
              | 383 |         } | 
            
              | 384 |     }); | 
            
              | 385 |  | 
            
              | 386 |     $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 387 |     is( scalar @$pickup_locations, 1, "With 2 transfer limits we get back the libraries that are pickup locations minus 2 limited libraries"); | 
            
              | 388 |  | 
            
              | 389 |     t::lib::Mocks::mock_preference('BranchTransferLimitsType', 'ccode'); | 
            
              | 390 |     $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 391 |     is( scalar @$pickup_locations, 3, "With no transfer limits of type ccode we get back the libraries that are pickup locations"); | 
            
              | 392 |  | 
            
              | 393 |     $builder->build_object( { class => 'Koha::Item::Transfer::Limits', value => { | 
            
              | 394 |         toBranch => $library2->branchcode, | 
            
              | 395 |         fromBranch => $library1->branchcode, | 
            
              | 396 |         itemtype => undef, | 
            
              | 397 |         ccode => $item->ccode, | 
            
              | 398 |         } | 
            
              | 399 |     }); | 
            
              | 400 |  | 
            
              | 401 |     $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 402 |     is( scalar @$pickup_locations, 2, "With a transfer limits we get back the libraries that are pickup locations minus 1 limited library"); | 
            
              | 403 |  | 
            
              | 404 |     $builder->build_object( { class => 'Koha::Item::Transfer::Limits', value => { | 
            
              | 405 |         toBranch => $library4->branchcode, | 
            
              | 406 |         fromBranch => $library1->branchcode, | 
            
              | 407 |         itemtype => undef, | 
            
              | 408 |         ccode => $item->ccode, | 
            
              | 409 |         } | 
            
              | 410 |     }); | 
            
              | 411 |  | 
            
              | 412 |     $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 413 |     is( scalar @$pickup_locations, 1, "With 2 transfer limits we get back the libraries that are pickup locations minus 2 limited libraries"); | 
            
              | 414 |  | 
            
              | 415 |  | 
            
              | 416 |     $pickup_locations = $item->_can_pickup_at({ to => \@to, from => $library2 }); | 
            
              | 417 |     is( scalar @$pickup_locations, 3, "With transfer limits enabled but not applying because of 'from' we get back the libraries that are pickup locations"); | 
            
              | 418 |  | 
            
              | 419 |     t::lib::Mocks::mock_preference('UseBranchTransferLimits', 0); | 
            
              | 420 |  | 
            
              | 421 |     $pickup_locations = $item->_can_pickup_at({ to => \@to }); | 
            
              | 422 |     is( scalar @$pickup_locations, 3, "With transfer limits disabled we get back the libraries that are pickup locations"); | 
            
              | 423 |  | 
            
              | 424 | }; | 
            
              | 425 |  | 
        
          | 342 | subtest 'deletion' => sub { | 426 | subtest 'deletion' => sub { | 
        
          | 343 |     plan tests => 12; | 427 |     plan tests => 12; | 
        
          | 344 |  | 428 |  | 
            
              | 345 | -  |  |  |