Bug 20702: Add unit tests for GetHostItemsInfo
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Thu, 3 May 2018 12:08:01 +0000 (14:08 +0200)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 22 Jun 2018 13:36:48 +0000 (13:36 +0000)
Unfortunately, we did not have unit tests yet.
Adding some simple tests that test basic operation of the sub when the
pref is enabled/disabled and for MARC21/UNIMARC.

Test plan:
[1] Run t/db_dependent/Items/GetHostItemsInfo.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
t/db_dependent/Items/GetHostItemsInfo.t [new file with mode: 0644]

diff --git a/t/db_dependent/Items/GetHostItemsInfo.t b/t/db_dependent/Items/GetHostItemsInfo.t
new file mode 100644 (file)
index 0000000..5f4a5c3
--- /dev/null
@@ -0,0 +1,41 @@
+use Modern::Perl;
+
+use Test::More tests => 1;
+use t::lib::Mocks;
+use t::lib::TestBuilder;
+
+use C4::Items;
+use Koha::Database;
+
+my $schema = Koha::Database->new->schema;
+$schema->storage->txn_begin;
+
+subtest 'GetHostItemsInfo' => sub {
+    plan tests => 3;
+
+    my $builder = t::lib::TestBuilder->new;
+    my $bib1 = $builder->build({ source => 'Biblio' });
+    my $itm1 = $builder->build({ source => 'Item', value => { biblionumber => $bib1->{biblionumber} }});
+    my $itm2 = $builder->build({ source => 'Item', value => { biblionumber => $bib1->{biblionumber} }});
+    my $marc = MARC::Record->new;
+    $marc->append_fields(
+        MARC::Field->new( '461', '', '', 0 => $bib1->{biblionumber}, 9 => $itm1->{itemnumber} ),
+        MARC::Field->new( '773', '', '', 0 => $bib1->{biblionumber}, 9 => $itm1->{itemnumber} ),
+        MARC::Field->new( '773', '', '', 0 => $bib1->{biblionumber}, 9 => $itm2->{itemnumber} ),
+    );
+
+    t::lib::Mocks::mock_preference('marcflavour', 'MARC21');
+    t::lib::Mocks::mock_preference('EasyAnalyticalRecords', 0);
+    my @a = C4::Items::GetHostItemsInfo( $marc );
+    is( @a, 0, 'GetHostItemsInfo returns empty list when pref is disabled' );
+
+    t::lib::Mocks::mock_preference('EasyAnalyticalRecords', 1);
+    @a = C4::Items::GetHostItemsInfo( $marc );
+    is( @a, 2, 'GetHostItemsInfo returns two items for MARC21' );
+
+    t::lib::Mocks::mock_preference('marcflavour', 'UNIMARC');
+    @a = C4::Items::GetHostItemsInfo( $marc );
+    is( @a, 1, 'GetHostItemsInfo returns one item for UNIMARC' );
+};
+
+$schema->storage->txn_rollback;