From 49d5f628df17284cd6350d8a7cd3c2efee964ae0 Mon Sep 17 00:00:00 2001 From: Lucas Gass Date: Mon, 17 Nov 2025 20:57:50 +0000 Subject: [PATCH] Bug 34069: Add unit tests --- t/db_dependent/Koha/Old/Patron.t | 64 ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 t/db_dependent/Koha/Old/Patron.t diff --git a/t/db_dependent/Koha/Old/Patron.t b/t/db_dependent/Koha/Old/Patron.t new file mode 100755 index 00000000000..320c619559f --- /dev/null +++ b/t/db_dependent/Koha/Old/Patron.t @@ -0,0 +1,64 @@ +#!/usr/bin/perl + +# Copyright 2025 Koha +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Test::More tests => 2; +use Test::Exception; +use Test::MockModule; + +use t::lib::TestBuilder; +use t::lib::Mocks; +use Test::NoWarnings; + +use Koha::Database; +use Koha::Patrons; +use Koha::Old::Patrons; + +my $schema = Koha::Database->new->schema; +my $builder = t::lib::TestBuilder->new; + +subtest 'restore_deleted_borrower' => sub { + plan tests => 4; + + $schema->storage->txn_begin; + + #create a test patron + my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + my $borrowernumber = $patron->borrowernumber; + my $cardnumber = $patron->cardnumber; + + #delete the created patron, using move = 1 to ensure they go to deleteborrowers + my $to_delete = Koha::Patrons->search( { borrowernumber => $borrowernumber } ); + $to_delete->delete( { move => 1 } ); + + #verify patron is in deletedborrowers + my $deleted_patron = Koha::Old::Patrons->search( { borrowernumber => $borrowernumber } )->next; + ok( $deleted_patron, 'Patron moved to deletedborrowers' ); + + #restore the deleted patron + my $restored = $deleted_patron->restore_deleted_borrower; + + #verify the patron is restored + ok( $restored, 'Restored patron exists' ); + is( $restored->borrowernumber, $borrowernumber, 'Borrowernumber matches' ); + is( $restored->cardnumber, $cardnumber, 'Cardnumber matches' ); + + $schema->storage->txn_rollback; +}; -- 2.39.5