From 40e8c0c9d97b0e580a1398b06d4aabfe6eb20d78 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 7 Apr 2015 12:29:53 +0200 Subject: [PATCH] Bug 6520: Add unit test for C4::ImportBatch::GetRecordFromImportBiblio --- t/db_dependent/ImportBatch.t | 49 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/ImportBatch.t b/t/db_dependent/ImportBatch.t index 95e20cd..661cd33 100644 --- a/t/db_dependent/ImportBatch.t +++ b/t/db_dependent/ImportBatch.t @@ -4,7 +4,7 @@ use Modern::Perl; use C4::Context; -use Test::More tests => 5; +use Test::More tests => 7; BEGIN { use_ok('C4::ImportBatch'); @@ -70,3 +70,50 @@ delete $importbatch1->{num_items}; is_deeply( $importbatch1, $sample_import_batch1, "GetImportBatch returns the right informations about $sample_import_batch1" ); + +my $record = MARC::Record->new; +# FIXME Create another MARC::Record which won't be modified +# AddItemsToImportBiblio will remove the items field from the record passed in parameter. +my $original_record = MARC::Record->new; +$record->leader('03174nam a2200445 a 4500'); +$original_record->leader('03174nam a2200445 a 4500'); +my ($item_tag, $item_subfield) = C4::Biblio::GetMarcFromKohaField('items.itemnumber',''); +my @fields = ( + MARC::Field->new( + 100, '1', ' ', + a => 'Knuth, Donald Ervin', + d => '1938', + ), + MARC::Field->new( + 245, '1', '4', + a => 'The art of computer programming', + c => 'Donald E. Knuth.', + ), + MARC::Field->new( + 650, ' ', '0', + a => 'Computer programming.', + 9 => '462', + ), + MARC::Field->new( + $item_tag, ' ', ' ', + e => 'my edition', + i => 'my item part', + ), + MARC::Field->new( + $item_tag, ' ', ' ', + e => 'my edition 2', + i => 'my item part 2', + ), +); +$record->append_fields(@fields); +$original_record->append_fields(@fields); +my $import_record_id = AddBiblioToBatch( $id_import_batch1, 0, $record, 'utf8', int(rand(99999)), 0 ); +AddItemsToImportBiblio( $id_import_batch1, $import_record_id, $record, 0 ); + +my $record_from_import_biblio_with_items = C4::ImportBatch::GetRecordFromImportBiblio( $import_record_id, 'embed_items' ); +$original_record->leader($record_from_import_biblio_with_items->leader()); +is_deeply( $record_from_import_biblio_with_items, $original_record, 'GetRecordFromImportBiblio should return the record with items if specified' ); +$original_record->delete_fields($original_record->field($item_tag)); #Remove items fields +my $record_from_import_biblio_without_items = C4::ImportBatch::GetRecordFromImportBiblio( $import_record_id ); +$original_record->leader($record_from_import_biblio_without_items->leader()); +is_deeply( $record_from_import_biblio_without_items, $original_record, 'GetRecordFromImportBiblio should return the record without items by default' ); -- 2.1.0