From 130adf6ae29bedd43d7bd0dfcadec0f09d706c25 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 8 Aug 2016 23:46:48 -0300 Subject: [PATCH] Bug 14642: (QA followup) Add tests for Koha::Hold->delete Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/Hold.t | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Hold.t b/t/db_dependent/Hold.t index 9604bd8..098aced 100755 --- a/t/db_dependent/Hold.t +++ b/t/db_dependent/Hold.t @@ -23,11 +23,12 @@ use C4::Biblio qw( AddBiblio ); use Koha::Database; use Koha::Libraries; use Koha::Patrons; +use Koha::Holds; use Koha::Item; use Koha::DateUtils; use t::lib::TestBuilder; -use Test::More tests => 32; +use Test::More tests => 33; use Test::Warn; use_ok('Koha::Hold'); @@ -144,4 +145,43 @@ ok( $hold->is_at_destination(), "Waiting hold where hold branchcode is the same $schema->storage->txn_rollback(); +subtest "delete() tests" => sub { + + plan tests => 6; + + $schema->storage->txn_begin(); + + # Disable logging + t::lib::Mocks::mock_preference( 'HoldsLog', 0 ); + + my $hold = $builder->build({ source => 'Reserve' }); + + my $hold_object = Koha::Holds->find( $hold->{ reserve_id } ); + my $deleted = $hold_object->delete; + is( $deleted, 1, 'Koha::Hold->delete should return 1 if the hold has been correctly deleted' ); + is( Koha::Holds->search({ reserve_id => $hold->{ reserve_id } })->count, 0, + "Koha::Hold->delete should have deleted the hold" ); + + my $number_of_logs = $schema->resultset('ActionLog')->search( + { module => 'HOLDS', action => 'DELETE', object => $hold->{ reserve_id } } )->count; + is( $number_of_logs, 0, 'With HoldsLogs, Koha::Hold->delete shouldn\'t have been logged' ); + + # Enable logging + t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); + + $hold = $builder->build({ source => 'Reserve' }); + + $hold_object = Koha::Holds->find( $hold->{ reserve_id } ); + $deleted = $hold_object->delete; + is( $deleted, 1, 'Koha::Hold->delete should return 1 if the hold has been correctly deleted' ); + is( Koha::Holds->search({ reserve_id => $hold->{ reserve_id } })->count, 0, + "Koha::Hold->delete should have deleted the hold" ); + + $number_of_logs = $schema->resultset('ActionLog')->search( + { module => 'HOLDS', action => 'DELETE', object => $hold->{ reserve_id } } )->count; + is( $number_of_logs, 1, 'With HoldsLogs, Koha::Hold->delete should have been logged' ); + + $schema->storage->txn_rollback(); + }; + 1; -- 2.9.2