From 795f31107ebd90951169177541daa1fe7590a375 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 22 Jul 2015 11:22:20 -0300 Subject: [PATCH] Bug 14456: (regression test) Holdings fields should be skipped by EmbedSeeFromHeadings This patch introduces a regression test for the situation in which an itemnumber on a record matches the authid of an authority record and the current implementation of the EmbedSeeFromHeadings filter wrongly includes new holding fields with authority data... To test: - Apply the patch - Run: $ prove t/db_dependent/RecordProcessor_EmbedSeeFromHeadings.t => FAIL: The test 'Holdings fields not processed to introduce See-from heading' fails. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 5e1474836024a9ccd1a9fb4eef91641fba6f8598) Signed-off-by: Chris Cormack --- .../RecordProcessor_EmbedSeeFromHeadings.t | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/t/db_dependent/RecordProcessor_EmbedSeeFromHeadings.t b/t/db_dependent/RecordProcessor_EmbedSeeFromHeadings.t index 0c63771604..0b9d5f0ded 100755 --- a/t/db_dependent/RecordProcessor_EmbedSeeFromHeadings.t +++ b/t/db_dependent/RecordProcessor_EmbedSeeFromHeadings.t @@ -25,6 +25,7 @@ use Koha::Authority; use Test::More; use Test::MockModule; +use Test::MockObject; BEGIN { use_ok('Koha::RecordProcessor'); @@ -63,4 +64,51 @@ my $result = $processor->process($bib); is_deeply($result, $resultbib, 'Inserted see-from heading to record'); + +subtest "EmbedSeeFromHeadings should skip holdings fields" => sub { + + plan tests => 1; + + my $biblio_record = MARC::Record->new; + $biblio_record->add_fields( + [ '245', '0', '4', a => 'The Ifrane cookbook' ], + [ '952', ' ', ' ', a => 'Cooking', 9 => '1234' ] + ); + + my $record_copy = MARC::Record->new; + $record_copy->add_fields( + [ '245', '0', '4', a => 'The Ifrane cookbook' ], + [ '952', ' ', ' ', a => 'Cooking', 9 => '1234' ] + ); + + + my $koha_authority = new Test::MockModule('Koha::Authority'); + $koha_authority->mock( 'get_from_authid', sub { + + my $auth_record = MARC::Record->new; + + $auth_record->add_fields( + [ '001', '1234' ], + [ '150', ' ', ' ', a => 'Cooking' ], + [ '450', ' ', ' ', a => 'Cookery' ], + ); + + my $authority_object = Test::MockObject->new(); + $authority_object->mock( 'authid', sub { return '1234'; }); + $authority_object->mock( 'authtype', sub { return 'TOPIC_TERM'; }); + $authority_object->mock( 'schema', sub { return 'marc21'; }); + $authority_object->mock( 'record', sub { return $auth_record; }); + + return $authority_object; + }); + + my $processor = Koha::RecordProcessor->new({ + filters => ( 'EmbedSeeFromHeadings' ) + }); + + my $result = $processor->process($biblio_record); + + is_deeply($result, $record_copy, 'Holdings fields not processed to introduce See-from heading'); +}; + done_testing(); -- 2.39.5