From 75eeb333c514e0498a364e291b3c914b63aeeab3 Mon Sep 17 00:00:00 2001
From: David Cook <dcook@prosentient.com.au>
Date: Mon, 11 Nov 2024 04:40:52 +0000
Subject: [PATCH] Bug 38416: Add unit tests
Content-Type: text/plain; charset=utf-8

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
---
 .../Koha/SearchEngine/Elasticsearch.t         | 21 ++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/t/db_dependent/Koha/SearchEngine/Elasticsearch.t b/t/db_dependent/Koha/SearchEngine/Elasticsearch.t
index 48cd2025d8..79f4281f96 100755
--- a/t/db_dependent/Koha/SearchEngine/Elasticsearch.t
+++ b/t/db_dependent/Koha/SearchEngine/Elasticsearch.t
@@ -186,7 +186,7 @@ subtest 'get_elasticsearch_mappings() tests' => sub {
 
 subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' => sub {
 
-    plan tests => 66;
+    plan tests => 69;
 
     t::lib::Mocks::mock_preference('marcflavour', 'MARC21');
     t::lib::Mocks::mock_preference('ElasticsearchMARCFormat', 'ISO2709');
@@ -752,6 +752,25 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests'
     is_deeply( $docs->[0]->{author},[],'No value placed into field if mapped marc field is blank');
     is_deeply( $docs->[0]->{author__suggestion},[],'No value placed into suggestion if mapped marc field is blank');
 
+    my $marc_record_with_large_field = MARC::Record->new();
+    $marc_record_with_large_field->leader('     cam  22      a 4500');
+
+    $marc_record_with_large_field->append_fields(
+        MARC::Field->new('100', '', '', a => 'Author 1'),
+        MARC::Field->new('245', '', '', a => 'Title:', b => 'record with large field'),
+        MARC::Field->new('500', '', '', a => 'X' x 15000),
+        MARC::Field->new('999', '', '', c => '1234567'),
+    );
+
+    $docs = $see->marc_records_to_documents([$marc_record_with_large_field]);
+
+    is($docs->[0]->{marc_format}, 'MARCXML', 'For record with large field marc_format should be set correctly');
+
+    $decoded_marc_record = $see->decode_record_from_result($docs->[0]);
+
+    ok($decoded_marc_record->isa('MARC::Record'), "MARCXML record successfully decoded from result");
+    is($decoded_marc_record->as_xml_record(), $marc_record_with_large_field->as_xml_record(), "Decoded MARCXML record has same data as original record");
+
 };
 
 subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents_array () tests' => sub {
-- 
2.39.5