|
Lines 487-501
subtest 'automatic_checkin' => sub {
Link Here
|
| 487 |
|
487 |
|
| 488 |
subtest 'attempt_auto_renew' => sub { |
488 |
subtest 'attempt_auto_renew' => sub { |
| 489 |
|
489 |
|
| 490 |
plan tests => 17; |
490 |
plan tests => 33; |
| 491 |
|
491 |
|
| 492 |
$schema->storage->txn_begin; |
492 |
$schema->storage->txn_begin; |
| 493 |
|
493 |
|
| 494 |
my $renew_error = 'auto_renew'; |
494 |
my $renew_error = 'auto_renew'; |
| 495 |
my $module = Test::MockModule->new('C4::Circulation'); |
495 |
my $module = Test::MockModule->new('C4::Circulation'); |
| 496 |
$module->mock( 'CanBookBeRenewed', sub { return ( 1, $renew_error ) } ); |
496 |
$module->mock( 'CanBookBeRenewed', sub { return ( 1, $renew_error ) } ); |
| 497 |
my $around_now = dt_from_string(); |
497 |
$module->mock( 'AddRenewal', sub { warn "AddRenewal called" } ); |
| 498 |
$module->mock( 'AddRenewal', sub { warn "AddRenewal called" } ); |
|
|
| 499 |
my $checkout = $builder->build_object( |
498 |
my $checkout = $builder->build_object( |
| 500 |
{ |
499 |
{ |
| 501 |
class => 'Koha::Checkouts', |
500 |
class => 'Koha::Checkouts', |
|
Lines 527-532
subtest 'attempt_auto_renew' => sub {
Link Here
|
| 527 |
is( $error, undef, "No error when renewed" ); |
526 |
is( $error, undef, "No error when renewed" ); |
| 528 |
ok( $updated, "Issue reported as updated when renewed" ); |
527 |
ok( $updated, "Issue reported as updated when renewed" ); |
| 529 |
|
528 |
|
|
|
529 |
$module->mock( 'AddRenewal', sub { return; } ); |
| 530 |
|
| 530 |
$renew_error = 'anything_else'; |
531 |
$renew_error = 'anything_else'; |
| 531 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew(); |
532 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew(); |
| 532 |
ok( !$success, "Success is untrue for any other status" ); |
533 |
ok( !$success, "Success is untrue for any other status" ); |
|
Lines 546-550
subtest 'attempt_auto_renew' => sub {
Link Here
|
| 546 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew(); |
547 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew(); |
| 547 |
ok( !$updated, "Issue not reported as updated when status has not changed" ); |
548 |
ok( !$updated, "Issue not reported as updated when status has not changed" ); |
| 548 |
|
549 |
|
|
|
550 |
$renew_error = "auto_unseen_final"; |
| 551 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew( { confirm => 1 } ); |
| 552 |
ok( $success, "Issue is renewed when error is 'auto_unseen_final'" ); |
| 553 |
is( $error, 'auto_unseen_final', "Error of finality reported when renewed" ); |
| 554 |
ok( $updated, "Issue reported as updated when renewed" ); |
| 555 |
$checkout->discard_changes(); |
| 556 |
is( $checkout->auto_renew_error, 'auto_unseen_final', "Error updated" ); |
| 557 |
|
| 558 |
$renew_error = "too_unseen"; |
| 559 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew( { confirm => 1 } ); |
| 560 |
ok( !$success, "Issue is not renewed when error is 'too_unseen'" ); |
| 561 |
is( $error, 'too_unseen', "Error reported correctly" ); |
| 562 |
ok( !$updated, "Issue not reported as updated when moved from final to too unseen" ); |
| 563 |
$checkout->discard_changes(); |
| 564 |
is( $checkout->auto_renew_error, 'too_unseen', "Error updated" ); |
| 565 |
|
| 566 |
$renew_error = "auto_renew_final"; |
| 567 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew( { confirm => 1 } ); |
| 568 |
ok( $success, "Issue is renewed when error is 'auto_renew_final'" ); |
| 569 |
is( $error, 'auto_renew_final', "Error of finality reported when renewed" ); |
| 570 |
ok( $updated, "Issue reported as updated when renewed" ); |
| 571 |
$checkout->discard_changes(); |
| 572 |
is( $checkout->auto_renew_error, 'auto_renew_final', "Error updated" ); |
| 573 |
|
| 574 |
$renew_error = "too_many"; |
| 575 |
( $success, $error, $updated ) = $checkout->attempt_auto_renew( { confirm => 1 } ); |
| 576 |
ok( !$success, "Issue is not renewed when error is 'too_many'" ); |
| 577 |
is( $error, 'too_many', "Error reported correctly" ); |
| 578 |
ok( !$updated, "Issue not reported as updated when moved from final to too many" ); |
| 579 |
$checkout->discard_changes(); |
| 580 |
is( $checkout->auto_renew_error, 'too_many', "Error updated" ); |
| 581 |
|
| 549 |
$schema->storage->txn_rollback; |
582 |
$schema->storage->txn_rollback; |
| 550 |
}; |
583 |
}; |
| 551 |
- |
|
|