From 078d93800d7a4eed3ca0b0bfbe3bd9597d2a4557 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 14 Jan 2016 12:27:32 +0000 Subject: [PATCH] [3.22.x] Bug 15578: Insert authority records before processing tests --- t/db_dependent/Koha_Authority.t | 57 ++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/t/db_dependent/Koha_Authority.t b/t/db_dependent/Koha_Authority.t index 92c3998..61d59e0 100755 --- a/t/db_dependent/Koha_Authority.t +++ b/t/db_dependent/Koha_Authority.t @@ -17,18 +17,37 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; use C4::Context; +use C4::Charset; +use C4::AuthoritiesMarc; +use Koha::Database; use Test::More; +use File::Basename; +use MARC::Batch; +use MARC::File; +use IO::File; BEGIN { - use_ok('Koha::Authority'); + use_ok('Koha::Authority'); } -my $record = MARC::Record->new; +my $schema = Koha::Database->new->schema; +$schema->storage->txn_begin; + +# TODO Move this part to a t/lib packages +my $sourcedir = dirname(__FILE__) . "/data"; +my $input_marc_file = "$sourcedir/marc21/zebraexport/authority/exported_records"; + +my $fh = IO::File->new($input_marc_file); +my $batch = MARC::Batch->new( 'USMARC', $fh ); +while ( my $record = $batch->next ) { + C4::Charset::MarcToUTF8Record($record, 'MARC21'); + AddAuthority($record, '', ''); +} +my $record = MARC::Record->new; $record->add_fields( [ '001', '1234' ], [ '150', ' ', ' ', a => 'Cooking' ], @@ -42,28 +61,24 @@ is($authority->authorized_heading(), 'Cooking', 'Authorized heading was correct' is_deeply($authority->record, $record, 'Saved record'); -SKIP: -{ - my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare("SELECT authid FROM auth_header LIMIT 1;"); - $sth->execute(); +my $dbh = C4::Context->dbh; +my $sth = $dbh->prepare("SELECT authid FROM auth_header LIMIT 1;"); +$sth->execute(); - my $authid; - for my $row ($sth->fetchrow_hashref) { - $authid = $row->{'authid'}; - } - skip 'No authorities', 3 unless $authid; - $authority = Koha::Authority->get_from_authid($authid); +my $authid; +for my $row ($sth->fetchrow_hashref) { + $authid = $row->{'authid'}; +} +$authority = Koha::Authority->get_from_authid($authid); - is(ref($authority), 'Koha::Authority', 'Retrieved valid Koha::Authority object'); +is(ref($authority), 'Koha::Authority', 'Retrieved valid Koha::Authority object'); - is($authority->authid, $authid, 'Object authid is correct'); +is($authority->authid, $authid, 'Object authid is correct'); - is($authority->record->field('001')->data(), $authid, 'Retrieved correct record'); +is($authority->record->field('001')->data(), $authid, 'Retrieved correct record'); - $authority = Koha::Authority->get_from_authid('alphabetsoup'); - is($authority, undef, 'No invalid record is retrieved'); -} +$authority = Koha::Authority->get_from_authid('alphabetsoup'); +is($authority, undef, 'No invalid record is retrieved'); SKIP: { -- 2.1.4