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:
parent
d5d2f319df
commit
5ee20cba58
3 changed files with 41 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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, "" );
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue