From 709f307af7b51f42d79a68a09b31249daef32ec1 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Mon, 2 Nov 2020 08:11:58 -0500 Subject: [PATCH] Bug 14708: (QA follow-up) Throw exception when deleting anonymous borrower Signed-off-by: Jonathan Druart --- Koha/Exceptions/Patron.pm | 3 +++ Koha/Patron.pm | 2 +- t/db_dependent/Koha/Patrons.t | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Koha/Exceptions/Patron.pm b/Koha/Exceptions/Patron.pm index 8eac9c9366..069ed942c2 100644 --- a/Koha/Exceptions/Patron.pm +++ b/Koha/Exceptions/Patron.pm @@ -9,6 +9,9 @@ use Exception::Class ( 'Koha::Exceptions::Patron::FailedDelete' => { description => "Deleting patron failed" }, + 'Koha::Exceptions::Patron::FailedDeleteAnonymousPatron' => { + description => "Deleting patron failed, AnonymousPatron is not deleteable" + }, ); 1; diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 8ff4462df1..14385aad9b 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -361,7 +361,7 @@ sub delete { my ($self) = @_; my $anonymous_patron = C4::Context->preference("AnonymousPatron"); - return $self if $anonymous_patron && $self->id eq $anonymous_patron; + Koha::Exceptions::Patron::FailedDeleteAnonymousPatron->throw() if $anonymous_patron && $self->id eq $anonymous_patron; $self->_result->result_source->schema->txn_do( sub { diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index a267ca58eb..c2824082e7 100755 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -1037,10 +1037,12 @@ subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { t::lib::Mocks::mock_preference( 'AnonymousPatron', $anonymous->{borrowernumber} ); subtest 'Anonymous Patron should be undeleteable' => sub { - plan tests => 1; + plan tests => 2; my $anonymous_patron = Koha::Patrons->find( $anonymous->{borrowernumber} ); - $anonymous_patron->delete(); + throws_ok { $anonymous_patron->delete(); } + 'Koha::Exceptions::Patron::FailedDeleteAnonymousPatron', + 'Attempt to delete anonymous patron throws exception.'; $anonymous_patron = Koha::Patrons->find( $anonymous->{borrowernumber} ); is( $anonymous_patron->id, $anonymous->{borrowernumber}, "Anonymous Patron was not deleted" ); }; -- 2.39.5