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 <tomascohen@theke.io>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Tomás Cohen Arazi 2015-07-22 11:22:20 -03:00
parent fa54a6f04d
commit 5e14748360

View file

@ -25,6 +25,7 @@ use Koha::Authority;
use Test::More; use Test::More;
use Test::MockModule; use Test::MockModule;
use Test::MockObject;
BEGIN { BEGIN {
use_ok('Koha::RecordProcessor'); use_ok('Koha::RecordProcessor');
@ -63,4 +64,51 @@ my $result = $processor->process($bib);
is_deeply($result, $resultbib, 'Inserted see-from heading to record'); 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(); done_testing();