Bugzilla – Attachment 110102 Details for
Bug 22806
CanBookBeReserve and CanItemBeReserve do not check AllowHoldsOnPatronsPossessions
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 22806: Unit Tests
Bug-22806-Unit-Tests.patch (text/plain), 5.75 KB, created by
Arthur Suzuki
on 2020-09-15 11:37:56 UTC
(
hide
)
Description:
Bug 22806: Unit Tests
Filename:
MIME Type:
Creator:
Arthur Suzuki
Created:
2020-09-15 11:37:56 UTC
Size:
5.75 KB
patch
obsolete
>From b14bc2a7d6140f57aa053db962eeea3082aa9dfd Mon Sep 17 00:00:00 2001 >From: Arthur Suzuki <arthur.suzuki@biblibre.com> >Date: Wed, 8 Jan 2020 14:20:38 +0100 >Subject: [PATCH] Bug 22806: Unit Tests > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: David Nind <david@davidnind.com> >--- > t/db_dependent/ILSDI_Services.t | 44 +++++++++++++++++++++++++++++++---------- > t/db_dependent/Reserves.t | 40 ++++++++++++++++++++++++++++++++++++- > 2 files changed, 73 insertions(+), 11 deletions(-) > >diff --git a/t/db_dependent/ILSDI_Services.t b/t/db_dependent/ILSDI_Services.t >index 3b599b67f0..f8ab8921ca 100755 >--- a/t/db_dependent/ILSDI_Services.t >+++ b/t/db_dependent/ILSDI_Services.t >@@ -300,7 +300,7 @@ subtest 'LookupPatron test' => sub { > > subtest 'Holds test' => sub { > >- plan tests => 5; >+ plan tests => 7; > > $schema->storage->txn_begin; > >@@ -371,19 +371,28 @@ subtest 'Holds test' => sub { > $reply = C4::ILSDI::Services::HoldItem( $query ); > is( $reply->{code}, 'tooManyReserves', "Too many reserves" ); > >- # Adding a holdable item to biblio 3. >- my $item3 = $builder->build_sample_item( >+ my $origin_branch = $builder->build( > { >- damaged => 0, >+ source => 'Branch', >+ value => { >+ pickup_location => 1, >+ } > } > ); > >+ # Adding a holdable item. >+ my $item3 = $builder->build_sample_item( >+ { >+ barcode => '123456789', >+ library => $origin_branch->{branchcode} >+ }); >+ > my $item4 = $builder->build_sample_item( > { >- biblionumber => $item3->biblionumber, >- damaged => 1, >- } >- ); >+ biblionumber => $item3->biblionumber, >+ damaged => 1, >+ library => $origin_branch->{branchcode} >+ }); > > Koha::CirculationRules->set_rule( > { >@@ -397,12 +406,27 @@ subtest 'Holds test' => sub { > > $query = new CGI; > $query->param( 'patron_id', $patron->{borrowernumber}); >- $query->param( 'bib_id', $item3->biblionumber); >+ $query->param( 'bib_id', $item4->biblionumber); > $query->param( 'item_id', $item4->itemnumber); > > $reply = C4::ILSDI::Services::HoldItem( $query ); > is( $reply->{code}, 'damaged', "Item is damaged" ); > >+ my $module = new Test::MockModule('C4::Context'); >+ $module->mock('userenv', sub { { patron => $patron } }); >+ my $issue = C4::Circulation::AddIssue($patron, $item3->barcode); >+ t::lib::Mocks::mock_preference( 'AllowHoldsOnPatronsPossessions', '0' ); >+ >+ $query = new CGI; >+ $query->param( 'patron_id', $patron->{borrowernumber}); >+ $query->param( 'bib_id', $item3->biblionumber); >+ $query->param( 'item_id', $item3->itemnumber); >+ $query->param( 'pickup_location', $origin_branch->{branchcode}); >+ $reply = C4::ILSDI::Services::HoldItem( $query ); >+ >+ is( $reply->{code}, 'itemAlreadyOnLoan', "Patron has issued same book" ); >+ is( $reply->{pickup_location}, undef, "No reserve placed"); >+ > $schema->storage->txn_rollback; > }; > >@@ -642,7 +666,7 @@ subtest 'GetPatronInfo paginated loans' => sub { > }); > my $module = new Test::MockModule('C4::Context'); > $module->mock('userenv', sub { { branch => $library->branchcode } }); >- my $date_due = DateTime->now->add(weeks => 2); >+ my $date_due = Koha::DateUtils::dt_from_string()->add(weeks => 2); > my $issue1 = C4::Circulation::AddIssue($patron->unblessed, $item1->barcode, $date_due); > my $date_due1 = Koha::DateUtils::dt_from_string( $issue1->date_due ); > my $issue2 = C4::Circulation::AddIssue($patron->unblessed, $item2->barcode, $date_due); >diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t >index 26f1f4863e..33c9c89d19 100755 >--- a/t/db_dependent/Reserves.t >+++ b/t/db_dependent/Reserves.t >@@ -17,7 +17,7 @@ > > use Modern::Perl; > >-use Test::More tests => 63; >+use Test::More tests => 64; > use Test::MockModule; > use Test::Warn; > >@@ -1075,6 +1075,44 @@ subtest 'RevertWaitingStatus' => sub { > ); > }; > >+subtest 'AllowHoldOnPatronPossession test' => sub { >+ >+ plan tests => 4; >+ >+ # Create the items and patrons we need >+ my $biblio = $builder->build_sample_biblio(); >+ my $itype = $builder->build_object({ class => "Koha::ItemTypes", value => { notforloan => 0 } }); >+ my $item = $builder->build_sample_item({ biblionumber => $biblio->biblionumber,notforloan => 0, itype => $itype->itemtype }); >+ my $patron = $builder->build_object({ class => "Koha::Patrons", >+ value => { branchcode => $item->homebranch }}); >+ >+ C4::Circulation::AddIssue($patron->unblessed, >+ $item->barcode); >+ t::lib::Mocks::mock_preference('AllowHoldsOnPatronsPossessions', 0); >+ >+ is(C4::Reserves::CanBookBeReserved($patron->borrowernumber, >+ $item->biblionumber)->{status}, >+ 'itemAlreadyOnLoan', >+ 'Patron cannot place hold on a book loaned to itself'); >+ >+ is(C4::Reserves::CanItemBeReserved($patron->borrowernumber, >+ $item->itemnumber)->{status}, >+ 'itemAlreadyOnLoan', >+ 'Patron cannot place hold on an item loaned to itself'); >+ >+ t::lib::Mocks::mock_preference('AllowHoldsOnPatronsPossessions', 1); >+ >+ is(C4::Reserves::CanBookBeReserved($patron->borrowernumber, >+ $item->biblionumber)->{status}, >+ 'OK', >+ 'Patron can place hold on a book loaned to itself'); >+ >+ is(C4::Reserves::CanItemBeReserved($patron->borrowernumber, >+ $item->itemnumber)->{status}, >+ 'OK', >+ 'Patron can place hold on an item loaned to itself'); >+}; >+ > sub count_hold_print_messages { > my $message_count = $dbh->selectall_arrayref(q{ > SELECT COUNT(*) >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 22806
:
89039
|
89724
|
91784
|
94388
|
94389
|
97947
|
99881
|
99882
|
99883
|
99884
|
99885
|
100091
|
100092
|
100093
|
100173
|
100174
|
100175
|
106564
|
106778
|
106779
|
106780
|
107760
|
107806
|
110100
|
110101
|
110102
|
110973
|
110974
|
110975
|
110976
|
111771
|
111772
|
111773
|
111774
|
112824