From 0a9c905ff097003be6c7e6e87ae4b38866fe4a28 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 24 Oct 2017 14:53:36 -0300 Subject: [PATCH] Bug 19513: Re-add AnonymousPatron-related tests These tests are still useful Signed-off-by: Marcel de Rooy The AddMember call is considerably slowing it down. A call to TestBuilder would be an improvement for performance. Signed-off-by: Jonathan Druart --- .../Circulation/MarkIssueReturned.t | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/t/db_dependent/Circulation/MarkIssueReturned.t b/t/db_dependent/Circulation/MarkIssueReturned.t index d2cf2387a4..403b1d8778 100644 --- a/t/db_dependent/Circulation/MarkIssueReturned.t +++ b/t/db_dependent/Circulation/MarkIssueReturned.t @@ -25,6 +25,8 @@ use t::lib::TestBuilder; use C4::Circulation; use C4::Context; +use C4::Members; +use Koha::Checkouts; use Koha::Database; my $schema = Koha::Database->schema; @@ -32,8 +34,6 @@ $schema->storage->txn_begin; my $builder = t::lib::TestBuilder->new; -t::lib::Mocks::mock_preference('AnonymousPatron', ''); - my $library = $builder->build({ source => 'Branch' }); C4::Context->_new_userenv('xxx'); @@ -56,18 +56,31 @@ my $item = $builder->build( } } ); -my $issue = C4::Circulation::AddIssue( $patron, $item->{barcode} ); - -eval { C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, 'dropbox_branch', 'returndate', 2 ) }; -like ( $@, qr, 'Fatal error on anonymization' ); +subtest 'anonymous patron' => sub { + plan tests => 2; + # The next call will raise an error, because data are not correctly set + t::lib::Mocks::mock_preference('AnonymousPatron', ''); + my $issue = C4::Circulation::AddIssue( $patron, $item->{barcode} ); + eval { C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, 'dropbox_branch', 'returndate', 2 ) }; + like ( $@, qr, 'AnonymousPatron is not set - Fatal error on anonymization' ); + Koha::Checkouts->find( $issue->issue_id )->delete; + + my $anonymous_borrowernumber = C4::Members::AddMember( categorycode => $patron_category->{categorycode}, branchcode => $library->{branchcode} ); + t::lib::Mocks::mock_preference('AnonymousPatron', $anonymous_borrowernumber); + $issue = C4::Circulation::AddIssue( $patron, $item->{barcode} ); + eval { C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, 'dropbox_branch', 'returndate', 2 ) }; + is ( $@, q||, 'AnonymousPatron is set correctly - no error expected'); +}; + +my ( $issue_id, $issue ); # The next call will return undef for invalid item number -my $issue_id; eval { $issue_id = C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, 'invalid_itemnumber', 'dropbox_branch', 'returndate', 0 ) }; is( $@, '', 'No die triggered by invalid itemnumber' ); is( $issue_id, undef, 'No issue_id returned' ); # In the next call we return the item and try it another time +$issue = C4::Circulation::AddIssue( $patron, $item->{barcode} ); eval { $issue_id = C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, undef, undef, 0 ) }; is( $issue_id, $issue->issue_id, "Item has been returned (issue $issue_id)" ); eval { $issue_id = C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, undef, undef, 0 ) }; -- 2.39.2