X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=t%2Fdb_dependent%2FBiblio.t;h=4725e5327c2139505617bb0aa1a289e176e015a5;hb=5248f12a0e48630cca6d877179bb86fde70f4929;hp=6012f5f80df2b8328d0e40ad951d68918f5bdcab;hpb=f098258e8cf2d616c6bbc35e44c6a1df47be8517;p=koha.git diff --git a/t/db_dependent/Biblio.t b/t/db_dependent/Biblio.t index 6012f5f80d..4725e5327c 100755 --- a/t/db_dependent/Biblio.t +++ b/t/db_dependent/Biblio.t @@ -5,12 +5,12 @@ use strict; use warnings; -use Test::More tests => 6; +use Test::More tests => 17; use MARC::Record; use C4::Biblio; BEGIN { - use_ok('C4::Biblio'); + use_ok('C4::Biblio'); } my $isbn = '0590353403'; @@ -34,6 +34,80 @@ my $itemdata = &GetBiblioItemData($biblioitemnumber); is($itemdata->{title},$title,'First test of GetBiblioItemData to get same result of previous two GetBiblioData tests.'); is($itemdata->{isbn},$isbn,'Second test checking it returns the correct isbn.'); +my $success = 0; +$field = MARC::Field->new( + 655, ' ', ' ', + 'a' => 'Auction catalogs', + '9' => '1' + ); +eval { + $marc_record->append_fields($field); + $success = ModBiblio($marc_record,$biblionumber,''); +} or do { + diag($@); + $success = 0; +}; +ok($success, "ModBiblio handles authority-linked 655"); + +eval { + $field->delete_subfields('a'); + $marc_record->append_fields($field); + $success = ModBiblio($marc_record,$biblionumber,''); +} or do { + diag($@); + $success = 0; +}; +ok($success, "ModBiblio handles 655 with authority link but no heading"); + +eval { + $field->delete_subfields('9'); + $marc_record->append_fields($field); + $success = ModBiblio($marc_record,$biblionumber,''); +} or do { + diag($@); + $success = 0; +}; +ok($success, "ModBiblio handles 655 with no subfields"); + +# Testing GetMarcISSN +my $issns; +$issns = GetMarcISSN( $marc_record, 'MARC21' ); +is( $issns->[0], undef, + 'GetMarcISSN handles records without 022 (list is empty)' ); +is( scalar @$issns, 0, 'GetMarcISSN handles records without 022 (number of elements correct)' ); + +my $issn = '1234-1234'; +$field = MARC::Field->new( '022', '', '', 'a', => $issn ); +$marc_record->append_fields($field); +$issns = GetMarcISSN( $marc_record, 'MARC21' ); +is( $issns->[0], $issn, + 'GetMarcISSN handles records with single 022 (first element is correct)' ); +is( scalar @$issns, 1, 'GetMARCISSN handles records with single 022 (number of elements correct)' +); + +my @more_issns = qw/1111-1111 2222-2222 3333-3333/; +foreach (@more_issns) { + $field = MARC::Field->new( '022', '', '', 'a', => $_ ); + $marc_record->append_fields($field); +} +$issns = GetMarcISSN( $marc_record, 'MARC21' ); +is( scalar @$issns, 4, 'GetMARCISSN handles records with multiple 022 (number of elements correct)' +); + +# Testing GetMarcControlnumber +my $controlnumber; +$controlnumber = GetMarcControlnumber( $marc_record, 'MARC21' ); +is( $controlnumber, '', 'GetMarcControlnumber handles records without 001' ); + +$field = MARC::Field->new( '001', '' ); +$marc_record->append_fields($field); +$controlnumber = GetMarcControlnumber( $marc_record, 'MARC21' ); +is( $controlnumber, '', 'GetMarcControlnumber handles records with empty 001' ); + +$field = $marc_record->field('001'); +$field->update('123456789X'); +$controlnumber = GetMarcControlnumber( $marc_record, 'MARC21' ); +is( $controlnumber, '123456789X', 'GetMarcControlnumber handles records with 001' ); # clean up after ourselves DelBiblio($biblionumber);