@@ -, +, @@ --- Koha/Biblio.pm | 21 +++++++++++++ t/db_dependent/Koha/Biblio.t | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100755 t/db_dependent/Koha/Biblio.t --- a/Koha/Biblio.pm +++ a/Koha/Biblio.pm @@ -61,6 +61,27 @@ sub store { return $self->SUPER::store; } +=head3 marc + +my @marc = $biblio->marc($params); + +Returns a MARC::Record object for a record. + +This method accepts the same paramters as C4::Biblio::GetMarcBiblio, +but does not require the 'biblionumber' parameter. + +=cut + +sub marc { + my ( $self, $params ) = @_; + + $params->{biblionumber} = $self->id; + + my $marc = C4::Biblio::GetMarcBiblio($params); + + return $marc; +} + =head3 subtitles my @subtitles = $biblio->subtitles(); --- a/t/db_dependent/Koha/Biblio.t +++ a/t/db_dependent/Koha/Biblio.t @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Test::More tests => 3; +use Test::MockModule; +use MARC::Record; + +use t::lib::TestBuilder; + +use C4::Biblio; +use Koha::Database; + +BEGIN { + use_ok('Koha::Biblio'); + use_ok('Koha::Biblios'); +} + +my $schema = Koha::Database->new->schema; +$schema->storage->txn_begin; +my $dbh = C4::Context->dbh; + +subtest 'MarcFieldForCreatorAndModifier' => sub { + plan tests => 3; + + my $title = 'Oranges and Peaches'; + + my $record = MARC::Record->new(); + my $field = MARC::Field->new('245','','','a' => $title); + $record->append_fields( $field ); + my ($biblionumber) = C4::Biblio::AddBiblio($record, ''); + + my $biblio = Koha::Biblios->find( $biblionumber ); + is( ref $biblio, 'Koha::Biblio', 'Found a Koha::Biblio object' ); + + my $marc = $biblio->marc(); + is( ref $marc, 'MARC::Record', 'Method marc() returned a MARC::Record object' ); + + is( $marc->field('245')->subfield("a"), $title, 'Title in 245$a matches title from original record object' ); +}; + +$schema->storage->txn_rollback; --