From 0919c7715a0307d5158bdb430a1d67a95f8dfb03 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 12 Dec 2024 10:18:22 -0300 Subject: [PATCH] Bug 38686: Unit tests Signed-off-by: Roman Dolny --- t/db_dependent/Koha/Items.t | 39 ++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Items.t b/t/db_dependent/Koha/Items.t index 03b26550eb..64ae1a071e 100755 --- a/t/db_dependent/Koha/Items.t +++ b/t/db_dependent/Koha/Items.t @@ -19,12 +19,14 @@ use Modern::Perl; -use Test::More tests => 20; +use Test::More tests => 21; use Test::MockModule; use Test::Exception; use Time::Fake; +use List::MoreUtils qw(none); + use C4::Circulation qw( AddIssue LostItem AddReturn ); use C4::Context; use C4::Serials qw( NewIssue AddItem2Serial ); @@ -2222,3 +2224,38 @@ subtest 'filter_by_bookable' => sub { $schema->storage->txn_rollback; }; + +subtest 'filter_by_checked_out() tests' => sub { + + plan tests => 6; + + $schema->storage->txn_begin; + + my $item_1 = $builder->build_sample_item(); + my $item_2 = $builder->build_sample_item(); + my $item_3 = $builder->build_sample_item(); + + my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + t::lib::Mocks::mock_userenv( { patron => $patron, branchcode => $patron->branchcode } ); + + my $items = Koha::Items->search( { 'me.itemnumber' => [ $item_1->id, $item_2->id, $item_3->id ] } ); + + is( $items->count, 3, '3 items in the resultset' ); + + my $filtered_rs = $items->filter_by_checked_out(); + is( $filtered_rs->count, 0, 'No checked out items in the resultset' ); + + AddIssue( $patron, $item_3->barcode ); + $filtered_rs = $items->filter_by_checked_out(); + + is( $filtered_rs->count, 1, '1 item in the resultset' ); + is( $filtered_rs->next->id, $item_3->id, 'The checked out item remains in the resultset' ); + + AddIssue( $patron, $item_1->barcode ); + $filtered_rs = $items->filter_by_checked_out(); + + is( $filtered_rs->count, 2, '2 item in the resultset' ); + ok( ( none { $_->id == $item_2->id } $filtered_rs->as_list ), 'The item not checked out is not in the resultset' ); + + $schema->storage->txn_rollback; +}; -- 2.39.5