From 311d3be1c59fe253471ec15f57ec16cdad1be9bf Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 6 Jun 2019 12:26:47 +0100 Subject: [PATCH] Bug 22421: Add tests for new constraints Test plan: * Read the updated tests and verify that they make sense and do not remove anything previously tested for. Signed-off-by: Martin Renvoize Signed-off-by: Kyle M Hall Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer --- t/db_dependent/Koha/Account/Line.t | 42 +++++++++++++++++++----------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/t/db_dependent/Koha/Account/Line.t b/t/db_dependent/Koha/Account/Line.t index 426cb021dc..41b76c9662 100755 --- a/t/db_dependent/Koha/Account/Line.t +++ b/t/db_dependent/Koha/Account/Line.t @@ -25,7 +25,7 @@ use Test::MockModule; use DateTime; -use C4::Circulation qw( AddRenewal CanBookBeRenewed LostItem AddIssue AddReturn ); +use C4::Circulation qw( AddRenewal CanBookBeRenewed LostItem AddIssue AddReturn MarkIssueReturned ); use Koha::Account; use Koha::Account::Lines; use Koha::Account::Offsets; @@ -448,9 +448,9 @@ subtest 'apply() tests' => sub { $schema->storage->txn_rollback; }; -subtest 'Keep account info when related patron, staff, item or cash_register is deleted' => sub { +subtest 'Keep account info when related patron, staff, item, issue or cash_register is deleted' => sub { - plan tests => 4; + plan tests => 7; $schema->storage->txn_begin; @@ -460,24 +460,36 @@ subtest 'Keep account info when related patron, staff, item or cash_register is my $issue = $builder->build_object( { class => 'Koha::Checkouts', - value => { itemnumber => $item->itemnumber } + value => { itemnumber => $item->itemnumber, borrowernumber => $patron->borrowernumber } } ); my $register = $builder->build_object({ class => 'Koha::Cash::Registers' }); my $line = Koha::Account::Line->new( - { - borrowernumber => $patron->borrowernumber, - manager_id => $staff->borrowernumber, - itemnumber => $item->itemnumber, - debit_type_code => "OVERDUE", - status => "RETURNED", - amount => 10, - interface => 'commandline', - register_id => $register->id - })->store; + { + borrowernumber => $patron->borrowernumber, + manager_id => $staff->borrowernumber, + itemnumber => $item->itemnumber, + debit_type_code => "OVERDUE", + issue_id => $issue->id, + old_issue_id => undef, + status => "RETURNED", + amount => 10, + interface => 'commandline', + register_id => $register->id + } + )->store; + + MarkIssueReturned($patron->borrowernumber, $item->itemnumber, undef, 0 ); + $line = $line->get_from_storage; + is( $line->issue_id, undef, "The account line should not be deleted when the related issue is archived"); + is( $line->old_issue_id, $issue->id, "The account line link to the archived issue"); + + my $old_issue = Koha::Old::Checkouts->find($issue->id); + $old_issue->delete; + $line = $line->get_from_storage; + is( $line->old_issue_id, undef, "The account line should not be deleted when the related old_issue is delete"); - $issue->delete; $item->delete; $line = $line->get_from_storage; is( $line->itemnumber, undef, "The account line should not be deleted when the related item is delete"); -- 2.39.5