From 0bf498c5951cf840144e9c0015ab71576c2fe295 Mon Sep 17 00:00:00 2001
From: Julian Maurice <julian.maurice@biblibre.com>
Date: Tue, 12 Apr 2016 13:54:13 +0200
Subject: [PATCH] Bug 16246: Add tests for ILS-DI GetRecords

---
 t/db_dependent/ILSDI_Services.t | 60 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 59 insertions(+), 1 deletion(-)

diff --git a/t/db_dependent/ILSDI_Services.t b/t/db_dependent/ILSDI_Services.t
index 88e8181d04..5078b961a4 100644
--- a/t/db_dependent/ILSDI_Services.t
+++ b/t/db_dependent/ILSDI_Services.t
@@ -17,9 +17,13 @@
 
 use Modern::Perl;
 
+use C4::Biblio qw( AddBiblio );
+use C4::Items qw( AddItem );
+use C4::Reserves qw( AddReserve GetReserve );
 use CGI qw ( -utf8 );
+use MARC::Record;
 
-use Test::More tests => 3;
+use Test::More tests => 4;
 use Test::MockModule;
 use t::lib::Mocks;
 use t::lib::TestBuilder;
@@ -198,4 +202,58 @@ subtest 'GetPatronInfo/GetBorrowerAttributes test for extended patron attributes
     $schema->storage->txn_rollback;
 };
 
+
+subtest 'GetRecords' => sub {
+
+    plan tests => 1;
+
+    $schema->storage->txn_begin;
+
+    t::lib::Mocks::mock_preference('ILS-DI', 1);
+
+    my $builder = t::lib::TestBuilder->new;
+
+    my $branch = $builder->build({
+        source => 'Branch',
+        value => {
+            branchcode => 'T_ILSDI',
+        }
+    });
+
+    my $category = $builder->build({
+        source => 'Category',
+        value  => {
+            category_type => 'A',
+        }
+    });
+
+    # Create a new user:
+    my $borrower = $builder->build({
+        source => 'Borrower',
+        value  => {
+            categorycode => $category->{categorycode},
+            branchcode   => $branch->{branchcode},
+        }
+    });
+
+    my ($biblionumber) = AddBiblio(MARC::Record->new, '');
+    my $item = {};
+    my $itemnumber = AddItem($item, $biblionumber);
+
+    my $reserve_id = AddReserve($branch, $borrower->{borrowernumber}, $biblionumber);
+
+    # Prepare and send web request for IL-SDI server:
+    my $query = new CGI;
+    $query->param( 'service', 'GetRecords' );
+    $query->param( 'id', $biblionumber );
+
+    my $response = C4::ILSDI::Services::GetRecords( $query );
+
+    my $reserve = GetReserve($reserve_id);
+    $reserve->{rtimestamp} = $reserve->{timestamp};
+
+    is_deeply( $response->{record}->[0]->{reserves}->{reserve}, [ $reserve ],
+        'GetRecords /record/reserves/reserve is as expected' );
+};
+
 1;
-- 
2.11.0