Bug 28478: Add get_opac_suppression extractor
This patch adds an extractor method for the historically hardcoded field 942$n. This way we have a single place in which we code the extraction and sanitization of its value. To test: 1. Apply this patch 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/Biblio/Metadata/Extractor/MARC.t => SUCCESS: Tests pass! All use cases are covered! 3. Sign off :-D Signed-off-by: Magnus Enger <magnus@libriotech.no> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
parent
538005a28c
commit
b503cfe2be
|
|
@ -100,6 +100,23 @@ sub get_control_number {
|
|||
return $control_number;
|
||||
}
|
||||
|
||||
=head2 get_opac_suppression
|
||||
|
||||
my $opac_suppressed = $extractor->get_opac_suppression();
|
||||
|
||||
Returns whether the record is flagged as suppressed in the OPAC.
|
||||
FIXME: Revisit after 38330 discussion
|
||||
|
||||
=cut
|
||||
|
||||
sub get_opac_suppression {
|
||||
my ($self) = @_;
|
||||
|
||||
my $record = $self->metadata;
|
||||
|
||||
return $record->subfield( '942', 'n' ) ? 1 : 0;
|
||||
}
|
||||
|
||||
=head3 _normalize_string
|
||||
|
||||
my $normalized_string = $self->_normalize_string($string);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 1;
|
||||
use Test::More tests => 2;
|
||||
use Test::Exception;
|
||||
|
||||
use t::lib::TestBuilder;
|
||||
|
|
@ -54,3 +54,26 @@ subtest 'get_control_number() tests' => sub {
|
|||
is( $extractor->get_control_number, $identifier, 'Returns the right value' );
|
||||
}
|
||||
};
|
||||
|
||||
subtest 'get_opac_suppression() tests' => sub {
|
||||
|
||||
plan tests => 8;
|
||||
|
||||
foreach my $marcflavour (qw( MARC21 UNIMARC )) {
|
||||
t::lib::Mocks::mock_preference( 'marcflavour', $marcflavour );
|
||||
|
||||
my $record = MARC::Record->new();
|
||||
my $extractor = Koha::Biblio::Metadata::Extractor->new( { metadata => $record } );
|
||||
|
||||
is( $extractor->get_opac_suppression(), 0, 'If 942$n absent, then not suppressed' );
|
||||
|
||||
$record->append_fields( MARC::Field->new( '942', q{}, q{}, n => '' ) );
|
||||
is( $extractor->get_opac_suppression(), 0, 'If 942$n has empty string, then not suppressed' );
|
||||
|
||||
$record->field('942')->replace_with( MARC::Field->new( '942', q{}, q{}, n => 'potato' ) );
|
||||
is( $extractor->get_opac_suppression(), 1, 'If 942$n has something different than false, then suppressed' );
|
||||
|
||||
$record->field('942')->replace_with( MARC::Field->new( '942', q{}, q{}, n => '1' ) );
|
||||
is( $extractor->get_opac_suppression(), 1, 'If 942$n is 1, then suppressed' );
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue