@@ -, +, @@ + improve t/db_dependent/Reserves.t to make tests pass on UNIMARC --- C4/Reserves.pm | 6 ++++++ t/db_dependent/Reserves.t | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -426,6 +426,12 @@ sub CanBookBeReserved{ return 'tooManyReserves'; } + # Check for the age restriction + my $biblioData = C4::Biblio::GetBiblioData( $biblionumber ); + my $borrower = C4::Members::GetMember(borrowernumber => $borrowernumber); + my ($ageRestriction, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction( $biblioData->{agerestriction}, $borrower ); + return 'ageRestricted' if $daysToAgeRestriction && $daysToAgeRestriction > 0; + my $items = GetItemnumbersForBiblio($biblionumber); #get items linked via host records my @hostitems = get_hostitemnumbers_of($biblionumber); --- a/t/db_dependent/Reserves.t +++ a/t/db_dependent/Reserves.t @@ -19,6 +19,7 @@ use Modern::Perl; use Test::More tests => 73; use Test::Warn; +use Test::MockModule; use MARC::Record; use DateTime::Duration; @@ -39,9 +40,8 @@ BEGIN { } # a very minimal mack of userenv for use by the test of DelItemCheck -*C4::Context::userenv = sub { - return {}; -}; +my $c4_context = Test::MockModule->new('C4::Context'); +$c4_context->mock('userenv', sub { return { flags => 1 } }); my $dbh = C4::Context->dbh; @@ -50,7 +50,11 @@ $dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; # Somewhat arbitrary field chosen for age restriction unit tests. Must be added to db before the framework is cached -$dbh->do("update marc_subfield_structure set kohafield='biblioitems.agerestriction' where tagfield='521' and tagsubfield='a'"); +$dbh->do(q| + INSERT INTO marc_subfield_structure (frameworkcode, tagfield, tagsubfield, kohafield) + VALUES ('', '521', 'a', 'biblioitems.agerestriction') + ON DUPLICATE KEY UPDATE kohafield = VALUES(kohafield) +|); # Setup Test------------------------ --