Bug 37115: Add unit tests

prove t/db_dependent/Koha/Item.t
prove t/db_dependent/Koha/BackgroundJobs/BatchDeleteItem.t

Signed-off-by: Boubacar OUATTARA <boubacar.ouattara@biblibre.com>
Signed-off-by: Nathalie <nathalie.savarit@univ-amu.fr>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 66d10246a3)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
Matt Blenkinsop 2024-07-04 10:14:21 +00:00 committed by Paul Derscheid
parent e766667c91
commit 6af70de8ec
No known key found for this signature in database
GPG Key ID: C25F9FD44CED595B
2 changed files with 93 additions and 2 deletions

View File

@ -25,6 +25,8 @@ use JSON qw( encode_json );
use Koha::Database;
use Koha::BackgroundJob::BatchDeleteItem;
use Koha::Serial;
use Koha::Serial::Items;
use t::lib::Mocks;
use t::lib::TestBuilder;
@ -34,7 +36,7 @@ my $builder = t::lib::TestBuilder->new;
subtest "process() tests" => sub {
plan tests => 2;
plan tests => 4;
$schema->storage->txn_begin;
@ -103,5 +105,44 @@ subtest "process() tests" => sub {
is( $counter, 1, 'Counter untouched with RealTimeHoldsQueue disabled' );
$biblio = $builder->build_sample_biblio;
my $item_with_serial = $builder->build_sample_item( { biblionumber => $biblio->id } );
my $serial =
$builder->build_object( { class => 'Koha::Serials', value => { biblionumber => $biblio->biblionumber } } );
my $serial_item = $builder->build_object(
{
class => 'Koha::Serial::Items',
value => { itemnumber => $item_with_serial->itemnumber, serialid => $serial->serialid }
}
);
$job = Koha::BackgroundJob::BatchDeleteItem->new(
{
status => 'new',
size => 2,
borrowernumber => undef,
type => 'batch_item_record_deletion',
data => encode_json {
record_ids => [ $item_with_serial->id ],
delete_biblios => 1,
delete_serial_issues => 1,
}
}
);
$job->process(
{
record_ids => [ $item_with_serial->id ],
delete_biblios => 1,
delete_serial_issues => 1,
}
);
my $serial_check = Koha::Serials->find( $serial->serialid );
my $serial_item_check = Koha::Serial::Items->find( $serial_item->itemnumber );
is( $serial_check, undef, 'Serial deleted' );
is( $serial_item_check, undef, 'Serial item deleted' );
$schema->storage->txn_rollback;
};

View File

@ -1214,7 +1214,7 @@ subtest 'store check barcodes' => sub {
};
subtest 'deletion' => sub {
plan tests => 15;
plan tests => 16;
$schema->storage->txn_begin;
@ -1406,6 +1406,56 @@ subtest 'deletion' => sub {
$schema->storage->txn_rollback;
};
subtest 'serial issues tests' => sub {
plan tests => 4;
t::lib::Mocks::mock_preference( 'IndependentBranches', 0 );
$schema->storage->txn_begin;
my $biblio = $builder->build_sample_biblio;
my $item_with_serial = $builder->build_sample_item( { biblionumber => $biblio->id } );
my $serial =
$builder->build_object( { class => 'Koha::Serials', value => { biblionumber => $biblio->biblionumber } } );
my $serial_item = $builder->build_object(
{
class => 'Koha::Serial::Items',
value => { itemnumber => $item_with_serial->itemnumber, serialid => $serial->serialid }
}
);
# Check serial issue is not deleted unless argument passed
$item_with_serial->safe_delete( { delete_serial_issues => 0 } );
my $serial_check = Koha::Serials->find( $serial->serialid );
my $serial_item_check = Koha::Serial::Items->find( $serial_item->itemnumber );
is( $serial_check->serialid, $serial->serialid, 'Serial not deleted as the argument was not passed' );
is( $serial_item_check, undef, 'Serial item deleted by cascade' );
$biblio = $builder->build_sample_biblio;
$item_with_serial = $builder->build_sample_item( { biblionumber => $biblio->id } );
$serial =
$builder->build_object( { class => 'Koha::Serials', value => { biblionumber => $biblio->biblionumber } } );
$serial_item = $builder->build_object(
{
class => 'Koha::Serial::Items',
value => { itemnumber => $item_with_serial->itemnumber, serialid => $serial->serialid }
}
);
# Check serial issue is deleted when argument passed
$item_with_serial->safe_delete( { delete_serial_issues => 1 } );
$serial_check = Koha::Serials->find( $serial->serialid );
$serial_item_check = Koha::Serial::Items->find( $serial_item->itemnumber );
is( $serial_check, undef, 'Serial deleted' );
is( $serial_item_check, undef, 'Serial item deleted by cascade' );
$schema->storage->txn_rollback;
};
$schema->storage->txn_rollback;
};