From 39f4a3f52acb901bf188c409f00de6504f516b26 Mon Sep 17 00:00:00 2001
From: Mark Tompsett <mtompset@hotmail.com>
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 <http://www.gnu.org/licenses>.
+
+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