From 8f3ff19890e472d273067513c15ff0ef368c708d Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Tue, 25 Feb 2020 14:42:17 +0000 Subject: [PATCH] Bug 24553: Unit tests Signed-off-by: Andrew Fuerste-Henry --- t/db_dependent/SIP/ILS.t | 69 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/SIP/ILS.t b/t/db_dependent/SIP/ILS.t index 77eafa20b1..f08a259621 100755 --- a/t/db_dependent/SIP/ILS.t +++ b/t/db_dependent/SIP/ILS.t @@ -20,12 +20,24 @@ use Modern::Perl; -use Test::More tests => 9; +use Test::More tests => 10; + +use t::lib::TestBuilder; +use t::lib::Mocks; + +use C4::Reserves; +use Koha::CirculationRules; +use Koha::Database; BEGIN { use_ok('C4::SIP::ILS'); } +my $schema = Koha::Database->new->schema; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new(); + my $class = 'C4::SIP::ILS'; my $institution = { id => 'CPL', }; @@ -56,3 +68,58 @@ is( $ils->test_cardnumber_compare( 'A1234', 'a1234' ), is( $ils->test_cardnumber_compare( 'A1234', 'b1234' ), q{}, 'borrower bc test identifies difference' ); + +subtest cancel_hold => sub { + plan tests => 5; + + my $library = $builder->build_object ({ class => 'Koha::Libraries' }); + my $patron = $builder->build_object( + { + class => 'Koha::Patrons', + value => { + branchcode => $library->branchcode, + } + } + ); + t::lib::Mocks::mock_userenv({ branchcode => $library->branchcode, flags => 1 }); + + my $item = $builder->build_sample_item({ + library => $library->branchcode, + }); + + Koha::CirculationRules->set_rules( + { + categorycode => $patron->categorycode, + branchcode => $library->branchcode, + itemtype => $item->effective_itemtype, + rules => { + onshelfholds => 1, + reservesallowed => 3, + holds_per_record => 3, + issuelength => 5, + lengthunit => 'days', + } + } + ); + + my $reserve1 = AddReserve( + { + branchcode => $library->branchcode, + borrowernumber => $patron->borrowernumber, + biblionumber => $item->biblio->biblionumber, + itemnumber => $item->itemnumber, + } + ); + is( $item->biblio->holds->count(), 1, "Hold was placed on bib"); + is( $item->holds->count(),1,"Hold was placed on specific item"); + + my $ils = C4::SIP::ILS->new({ id => $library->branchcode }); + my $sip_patron = C4::SIP::ILS::Patron->new( $patron->cardnumber ); + my $transaction = $ils->cancel_hold($patron->cardnumber,undef,$item->barcode,undef); + + is( $transaction->{screen_msg},"Hold Cancelled.","We get a success message when hold cancelled"); + + is( $item->biblio->holds->count(), 0, "Bib has 0 holds remaining"); + is( $item->holds->count(), 0, "Item has 0 holds remaining"); +}; +$schema->storage->txn_rollback; -- 2.11.0