From 50d82cff137abd13c79f9a5f87284598dd656099 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Mon, 14 Feb 2022 11:14:36 +0000 Subject: [PATCH] Bug 22321: Add unit tests To test: 1. prove t/db_dependent/Illrequests.t 2. Observe test failure 1..3 ok 1 - before change, original borrowernumber found not ok 2 - after change, changed borrowernumber found in holds # Failed test 'after change, changed borrowernumber found in holds' # at t/db_dependent/Illrequests.t line 167. # got: '3786' # expected: '3787' ok 3 - after change, changed borrowernumber found in illrequests # Looks like you failed 1 test of 3. not ok 4 - store borrowernumber change also updates holds --- t/db_dependent/Illrequests.t | 51 +++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Illrequests.t b/t/db_dependent/Illrequests.t index 5f4f25cdcc..2ee61123c5 100755 --- a/t/db_dependent/Illrequests.t +++ b/t/db_dependent/Illrequests.t @@ -41,7 +41,7 @@ use Test::Exception; use Test::Deep qw/ cmp_deeply ignore /; use Test::Warn; -use Test::More tests => 13; +use Test::More tests => 14; my $schema = Koha::Database->new->schema; my $builder = t::lib::TestBuilder->new; @@ -125,6 +125,55 @@ subtest 'Basic object tests' => sub { $schema->storage->txn_rollback; }; +subtest 'store borrowernumber change also updates holds' => sub { + plan tests => 3; + + $schema->storage->txn_begin; + + Koha::Illrequests->search->delete; + + my $patron = $builder->build_object({ class => 'Koha::Patrons' }); + my $other_patron = $builder->build_object({ class => 'Koha::Patrons' }); + my $biblio = $builder->build_object({ class => 'Koha::Biblios' }); + + my $request = $builder->build_object({ + class => 'Koha::Illrequests', + value => { + borrowernumber => $patron->borrowernumber, + biblio_id => $biblio->biblionumber, + } + }); + $builder->build({ + source => 'Reserve', + value => { + borrowernumber => $patron->borrowernumber, + biblionumber => $request->biblio_id + } + }); + + my $hold = Koha::Holds->find({ + biblionumber => $request->biblio_id, + borrowernumber => $request->borrowernumber, + }); + + is( $hold->borrowernumber, $request->borrowernumber, + 'before change, original borrowernumber found' ); + + $request->borrowernumber( $other_patron->borrowernumber )->store; + + # reload changes + $hold->discard_changes; + + is( $hold->borrowernumber, $other_patron->borrowernumber, + 'after change, changed borrowernumber found in holds' ); + + is( $request->borrowernumber, $other_patron->borrowernumber, + 'after change, changed borrowernumber found in illrequests' ); + + $schema->storage->txn_rollback; + +}; + subtest 'Working with related objects' => sub { plan tests => 7; -- 2.25.1