use Modern::Perl;
-use Test::More tests => 14;
+use Test::More tests => 15;
use Test::MockModule;
use Test::Warn;
use List::MoreUtils qw( uniq );
use C4::Linker::Default qw( get_link );
BEGIN {
- use_ok('C4::Biblio', qw( AddBiblio GetMarcFromKohaField BiblioAutoLink GetMarcSubfieldStructure GetMarcSubfieldStructureFromKohaField LinkBibHeadingsToAuthorities GetBiblioData GetMarcBiblio ModBiblio GetMarcISSN GetMarcControlnumber GetMarcISBN GetMarcPrice GetFrameworkCode GetMarcUrls IsMarcStructureInternal GetMarcStructure GetXmlBiblio DelBiblio ));
+ use_ok('C4::Biblio', qw( AddBiblio GetMarcFromKohaField BiblioAutoLink GetMarcSubfieldStructure GetMarcSubfieldStructureFromKohaField LinkBibHeadingsToAuthorities GetBiblioData ModBiblio GetMarcISSN GetMarcControlnumber GetMarcISBN GetMarcPrice GetFrameworkCode GetMarcUrls IsMarcStructureInternal GetMarcStructure GetXmlBiblio DelBiblio ));
}
my $schema = Koha::Database->new->schema;
is( Koha::Biblios->count, $nb_biblios,
'No biblio should have been added if something went wrong' );
- t::lib::Mocks::mock_preference( 'BiblioAddsAuthorities', $marcflavour );
+ t::lib::Mocks::mock_preference( 'AutoLinkBiblios', $marcflavour );
t::lib::Mocks::mock_preference( 'AutoCreateAuthorities', $marcflavour );
+ t::lib::Mocks::mock_preference( 'autoControlNumber', "OFF" );
my $mock_biblio = Test::MockModule->new("C4::Biblio");
$mock_biblio->mock( BiblioAutoLink => sub {
plan tests => 4;
# Automatic authority creation
t::lib::Mocks::mock_preference('LinkerModule', 'Default');
- t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 1);
+ t::lib::Mocks::mock_preference('AutoLinkBiblios', 1);
t::lib::Mocks::mock_preference('AutoCreateAuthorities', 1);
t::lib::Mocks::mock_preference('marcflavour', 'MARC21');
my $linker = C4::Linker::Default->new({});
# Authority tests don't interact well with Elasticsearch at the moment due to the fact that there's currently no way to
# roll back ES index changes.
t::lib::Mocks::mock_preference('SearchEngine', 'Zebra');
+ t::lib::Mocks::mock_preference('autoControlNumber', 'OFF');
- my $bgj_mock = Test::MockModule->new('Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue');
- $bgj_mock->mock( 'enqueue', undef );
+ t::lib::Mocks::mock_preference( 'RealTimeHoldsQueue', 0 );
my $isbn = '0590353403';
my $title = 'Foundation';
is( $data->{ title }, undef,
'(GetBiblioData) Title field is empty in fresh biblio.');
+ my $biblio = Koha::Biblios->find($biblionumber);
+
my ( $isbn_field, $isbn_subfield ) = get_isbn_field();
- my $marc = GetMarcBiblio({ biblionumber => $biblionumber });
+ my $marc = $biblio->metadata->record;
is( $marc->subfield( $isbn_field, $isbn_subfield ), $isbn, );
# Add title
is( $data->{ title }, $title,
'ModBiblio correctly added the title field, and GetBiblioData.');
is( $data->{ isbn }, $isbn, '(ModBiblio) ISBN is still there after ModBiblio.');
- $marc = GetMarcBiblio({ biblionumber => $biblionumber });
+ $marc = $biblio->get_from_storage->metadata->record;
my ( $title_field, $title_subfield ) = get_title_field();
is( $marc->subfield( $title_field, $title_subfield ), $title, );
is( GetMarcPrice( $record_for_isbn, $marcflavour ), 100,
"GetMarcPrice returns the correct value");
- my $updatedrecord = GetMarcBiblio({
- biblionumber => $biblionumber,
- embed_items => 0 });
my $frameworkcode = GetFrameworkCode($biblionumber);
+ my $updatedrecord = $biblio->metadata->record;
my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.biblioitemnumber" );
die qq{No biblioitemnumber tag for framework "$frameworkcode"} unless $biblioitem_tag;
my $biblioitemnumbertotest;
'GetMarcUrls prefixed a MARC21 URL with http://' );
# Automatic authority creation
- t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 1);
+ t::lib::Mocks::mock_preference('AutoLinkBiblios', 1);
t::lib::Mocks::mock_preference('AutoCreateAuthorities', 1);
my $authorities_mod = Test::MockModule->new( 'C4::Heading' );
$authorities_mod->mock(
is($field->subfield($author_relator_subfield), undef, 'Authority does not contain relator subfield');
# Reset settings
- t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 0);
+ t::lib::Mocks::mock_preference('AutoLinkBiblios', 0);
t::lib::Mocks::mock_preference('AutoCreateAuthorities', 0);
}
subtest 'deletedbiblio_metadata' => sub {
plan tests => 2;
- my $bgj_mock = Test::MockModule->new('Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue');
- $bgj_mock->mock( 'enqueue', undef );
+ t::lib::Mocks::mock_preference( 'RealTimeHoldsQueue', 0 );
my ($biblionumber, $biblioitemnumber) = AddBiblio(MARC::Record->new, '');
my $biblio_metadata = C4::Biblio::GetXmlBiblio( $biblionumber );
plan tests => 5;
- my $bgj_mock = Test::MockModule->new('Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue');
- $bgj_mock->mock( 'enqueue', undef );
+ t::lib::Mocks::mock_preference( 'RealTimeHoldsQueue', 0 );
my ($biblionumber, $biblioitemnumber) = C4::Biblio::AddBiblio(MARC::Record->new, '');
my $deleted = C4::Biblio::DelBiblio( $biblionumber );
my $record = MARC::Record->new();
my ($biblionumber) = C4::Biblio::AddBiblio($record, '');
- $record = GetMarcBiblio({biblionumber => $biblionumber});
+ my $biblio = Koha::Biblios->find($biblionumber);
+ $record = $biblio->metadata->record;
is($record->subfield('998', 'a'), 123, '998$a = 123');
is($record->subfield('998', 'b'), 'John Doe', '998$b = John Doe');
is($record->subfield('998', 'c'), 123, '998$c = 123');
$c4_context->mock('userenv', sub { return { number => 321, firstname => 'Jane', surname => 'Doe'}; });
C4::Biblio::ModBiblio($record, $biblionumber, '');
- $record = GetMarcBiblio({biblionumber => $biblionumber});
+ $record = $biblio->get_from_storage->metadata->record;
is($record->subfield('998', 'a'), 123, '998$a = 123');
is($record->subfield('998', 'b'), 'John Doe', '998$b = John Doe');
is($record->subfield('998', 'c'), 321, '998$c = 321');
subtest 'ModBiblio called from linker test' => sub {
plan tests => 2;
my $called = 0;
- t::lib::Mocks::mock_preference('BiblioAddsAuthorities', 1);
+ t::lib::Mocks::mock_preference('AutoLinkBiblios', 1);
my $biblio_mod = Test::MockModule->new( 'C4::Biblio' );
$biblio_mod->mock( 'LinkBibHeadingsToAuthorities', sub {
$called = 1;
);
};
+subtest 'autoControlNumber tests' => sub {
+
+ plan tests => 3;
+
+ t::lib::Mocks::mock_preference('autoControlNumber', 'OFF');
+
+ my $record = MARC::Record->new();
+ my ($biblio_id) = C4::Biblio::AddBiblio($record, '');
+ my $biblio = Koha::Biblios->find($biblio_id);
+
+ $record = $biblio->metadata->record;
+ is($record->field('001'), undef, '001 not set when pref is off');
+
+ t::lib::Mocks::mock_preference('autoControlNumber', 'biblionumber');
+ C4::Biblio::ModBiblio($record, $biblio_id, "", { skip_record_index => 1, disable_autolink => 1 });
+ $biblio->discard_changes;
+ $record = $biblio->metadata->record;
+ is($record->field('001')->as_string(), $biblio_id, '001 set to biblionumber when pref set and field is blank');
+
+ $record->field('001')->update('Not biblionumber');
+ C4::Biblio::ModBiblio($record, $biblio_id, "", { skip_record_index => 1, disable_autolink => 1 });
+ $biblio->discard_changes;
+ $record = $biblio->metadata->record;
+ is($record->field('001')->as_string(), 'Not biblionumber', '001 not set to biblionumber when pref set and field exists');
+
+};
+
+
# Cleanup
Koha::Caches->get_instance->clear_from_cache( "MarcSubfieldStructure-" );
$schema->storage->txn_rollback;