From dad8ed5d124328211759a739588091d367317f81 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 --- t/db_dependent/Koha/Account/Lines.t | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/t/db_dependent/Koha/Account/Lines.t b/t/db_dependent/Koha/Account/Lines.t index 3856f6ef14..1f64125fdb 100755 --- a/t/db_dependent/Koha/Account/Lines.t +++ b/t/db_dependent/Koha/Account/Lines.t @@ -22,7 +22,7 @@ use Modern::Perl; use Test::More tests => 8; use Test::Exception; -use C4::Circulation qw/AddIssue AddReturn/; +use C4::Circulation qw/AddIssue AddReturn MarkIssueReturned/; use Koha::Account; use Koha::Account::Lines; use Koha::Account::Offsets; @@ -294,9 +294,9 @@ subtest 'apply() tests' => sub { $schema->storage->txn_rollback; }; -subtest 'Keep account info when related patron, staff or item is deleted' => sub { +subtest 'Keep account info when related patron, staff, item or issue is deleted' => sub { - plan tests => 3; + plan tests => 6; $schema->storage->txn_begin; @@ -309,18 +309,30 @@ subtest 'Keep account info when related patron, staff or item is deleted' => sub value => { itemnumber => $item->itemnumber } } ); + my $issue_id = $issue->id; my $line = Koha::Account::Line->new( { borrowernumber => $patron->borrowernumber, manager_id => $staff->borrowernumber, itemnumber => $item->itemnumber, + issue_id => $issue_id, + old_issue_id => undef, accounttype => "OVERDUE", status => "RETURNED", amount => 10, interface => 'commandline', })->store; - $issue->delete; + 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"); + $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.20.1 (Apple Git-117)