From 75ddf7636172b33cce8c4a5a1f4a55cdfd81ecfc Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Tue, 1 Aug 2017 18:40:46 -0400 Subject: [PATCH] Bug 14385: Add missing test to trigger Koha/BiblioUtils/Iterator change --- t/db_dependent/Koha/BiblioUtils/Iterator.t | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 t/db_dependent/Koha/BiblioUtils/Iterator.t diff --git a/t/db_dependent/Koha/BiblioUtils/Iterator.t b/t/db_dependent/Koha/BiblioUtils/Iterator.t new file mode 100644 index 0000000..d436932 --- /dev/null +++ b/t/db_dependent/Koha/BiblioUtils/Iterator.t @@ -0,0 +1,76 @@ +#!/usr/bin/perl +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Test::More tests => 3; + +use_ok('Koha::BiblioUtils'); +use_ok('Koha::BiblioUtils::Iterator'); + +use C4::Biblio; +use C4::Items; +use DBI; +use t::lib::TestBuilder; +use t::lib::Mocks; + +my $schema = Koha::Database->new()->schema(); +$schema->storage->txn_begin(); +my $dbh = C4::Context->dbh; +$dbh->{RaiseError} = 1; + +# blank all biblios, biblioitems, and items. +$schema->resultset('Biblio')->delete(); + +my $location = 'My Location'; +my $builder = t::lib::TestBuilder->new; +my $library = $builder->build({ + source => 'Branch', +}); +my $itemtype = $builder->build({ + source => 'Itemtype', +}); + +# Create a biblio instance for testing +t::lib::Mocks::mock_preference('marcflavour', 'MARC21'); +my ($bibnum, $bibitemnum) = get_biblio(); + +# Add an item. +my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode}, location => $location, itype => $itemtype->{itemtype} } , $bibnum); + +my $rs = $schema->resultset('Biblioitem')->search({}); +my $iterator = Koha::BiblioUtils::Iterator->new($rs, items => 1 ); +my $record = $iterator->next(); +my $expected_tags = [ 100, 245, 952, 999 ]; +my @result_tags = map { $_->tag() } $record->field('...'); +my @sorted_tags = sort @result_tags; +is_deeply(\@sorted_tags,$expected_tags, "Got the same tags as expected"); + +$schema->storage->txn_rollback(); + +# Helper method to set up a Biblio. +sub get_biblio { + my ( $frameworkcode ) = @_; + $frameworkcode //= ''; + my $bib = MARC::Record->new(); + $bib->append_fields( + MARC::Field->new('100', ' ', ' ', a => 'Moffat, Steven'), + MARC::Field->new('245', ' ', ' ', a => 'Silence in the library'), + ); + my ($bibnum, $bibitemnum) = AddBiblio($bib, $frameworkcode); + return ($bibnum, $bibitemnum); +} -- 2.1.4