Bug 34828: Make normalized_oclc use Koha::Biblio::Metadata::Extractor

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2023-10-05 11:48:59 +02:00 committed by Tomas Cohen Arazi
parent d5d2f319df
commit 5ee20cba58
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F
3 changed files with 41 additions and 2 deletions

View file

@ -1321,7 +1321,7 @@ Normalizes and returns the OCLC number found in the MARC record.
sub normalized_oclc {
my ($self) = @_;
my $marc_record = $self->metadata->record;
return C4::Koha::GetNormalizedOCLCNumber($marc_record);
return $self->metadata_extractor->get_normalized_oclc;
}
=head3 to_api

View file

@ -74,6 +74,28 @@ sub get_normalized_upc {
}
}
=head2 get_normalized_oclc
my $normalized_oclc = $extractor->get_normalized_oclc();
Returns a normalized OCLC number.
=cut
sub get_normalized_oclc {
my ($self) = @_;
my $record = $self->metadata;
my @fields = $record->field('035');
foreach my $field (@fields) {
my $oclc = $field->subfield('a');
if ( $oclc && $oclc =~ /OCoLC/ ) {
$oclc =~ s/\(OCoLC\)//;
return $oclc;
}
}
}
=head1 AUTHOR
Tomas Cohen Arazi, E<lt>tomascohen@theke.ioE<gt>

View file

@ -19,7 +19,7 @@
use Modern::Perl;
use Test::More tests => 2;
use Test::More tests => 3;
use Test::Exception;
use t::lib::TestBuilder;
@ -69,3 +69,20 @@ subtest 'get_normalized_upc() tests' => sub {
is( $extractor->get_normalized_upc, "" );
};
subtest 'get_normalized_oclc() tests' => sub {
plan tests => 2;
my $record = MARC::Record->new();
$record->append_fields( MARC::Field->new( '035', ' ', ' ', a => "(OCoLC)902632762" ) );
my $extractor = Koha::Biblio::Metadata::Extractor->new( { metadata => $record } );
is( $extractor->get_normalized_oclc, '902632762' );
$record = MARC::Record->new();
$extractor = Koha::Biblio::Metadata::Extractor->new( { metadata => $record } );
is( $extractor->get_normalized_oclc, "" );
};