|
Lines 438-465
subtest '_get_record_for_export MARC field conditions' => sub {
Link Here
|
| 438 |
|
438 |
|
| 439 |
subtest 'export csv with marc modification template' => sub { |
439 |
subtest 'export csv with marc modification template' => sub { |
| 440 |
plan tests => 1; |
440 |
plan tests => 1; |
| 441 |
my $csv_content = qq{Title=$title_field\$$title_subfield|Test=999\$9}; |
441 |
my $csv_content = "Title=$title_field_tag\$a|Test=998\$9"; |
| 442 |
$dbh->do(q|INSERT INTO export_format(profile, description, content, csv_separator, field_separator, subfield_separator, encoding, type) VALUES (?, ?, ?, ?, ?, ?, ?, ?)|, {}, "TEST_PROFILE_Records.t", "my useless desc", $csv_content, '|', ';', ',', 'utf8', 'marc'); |
442 |
$dbh->do( |
|
|
443 |
q|INSERT INTO export_format(profile, description, content, csv_separator, field_separator, subfield_separator, encoding, type) VALUES (?, ?, ?, ?, ?, ?, ?, ?)|, |
| 444 |
{}, "TEST_PROFILE_Records.t", "my useless desc", $csv_content, '|', ';', ',', 'utf8', 'marc' |
| 445 |
); |
| 443 |
my $csv_profile_id = $dbh->last_insert_id( undef, undef, 'export_format', undef ); |
446 |
my $csv_profile_id = $dbh->last_insert_id( undef, undef, 'export_format', undef ); |
| 444 |
|
447 |
|
| 445 |
my $template_id = C4::MarcModificationTemplates::AddModificationTemplate('test exporter'); |
448 |
my $template_id = C4::MarcModificationTemplates::AddModificationTemplate('test exporter'); |
| 446 |
C4::MarcModificationTemplates::AddModificationTemplateAction($template_id, 'add_field', 0, '999', '9', 'Foobar'); |
449 |
C4::MarcModificationTemplates::AddModificationTemplateAction( $template_id, 'add_field', 0, '998', '9', 'Foobar' ); |
| 447 |
|
450 |
|
| 448 |
my $generated_csv_file = '/tmp/test_export_1.csv'; |
451 |
my $generated_csv_file = '/tmp/test_export_1.csv'; |
| 449 |
Koha::Exporter::Record::export({ |
452 |
Koha::Exporter::Record::export( |
| 450 |
record_type => 'bibs', |
453 |
{ |
| 451 |
record_ids => [ $biblionumber_1 ], |
454 |
record_type => 'bibs', |
| 452 |
format => 'csv', |
455 |
record_ids => [$biblionumber_1], |
| 453 |
csv_profile_id => $csv_profile_id, |
456 |
format => 'csv', |
| 454 |
marc_modification_template_id => $template_id, |
457 |
csv_profile_id => $csv_profile_id, |
| 455 |
output_filepath => $generated_csv_file, |
458 |
marc_modification_template_id => $template_id, |
| 456 |
}); |
459 |
output_filepath => $generated_csv_file, |
|
|
460 |
} |
| 461 |
); |
| 457 |
|
462 |
|
| 458 |
my $expected_csv = <<EOF; |
463 |
my $expected_csv = <<EOF; |
| 459 |
Title|Test |
464 |
Title|Test |
| 460 |
"$biblio_1_title"|Foobar |
465 |
"$biblio_1_title"|Foobar |
| 461 |
EOF |
466 |
EOF |
| 462 |
my $generated_csv_content = read_file( $generated_csv_file ); |
467 |
my $generated_csv_content = read_file($generated_csv_file); |
| 463 |
is( $generated_csv_content, $expected_csv, "Export CSV: Modification template should have been applied" ); |
468 |
is( $generated_csv_content, $expected_csv, "Export CSV: Modification template should have been applied" ); |
| 464 |
}; |
469 |
}; |
| 465 |
|
470 |
|
|
Lines 467-484
subtest 'export xml with marc modification template' => sub {
Link Here
|
| 467 |
plan tests => 2; |
472 |
plan tests => 2; |
| 468 |
|
473 |
|
| 469 |
my $template_id = C4::MarcModificationTemplates::AddModificationTemplate('test exporter'); |
474 |
my $template_id = C4::MarcModificationTemplates::AddModificationTemplate('test exporter'); |
| 470 |
C4::MarcModificationTemplates::AddModificationTemplateAction($template_id, 'add_field', 0, '999', '9', 'Foobar'); |
475 |
C4::MarcModificationTemplates::AddModificationTemplateAction( $template_id, 'add_field', 0, '998', '9', 'Foobar' ); |
| 471 |
|
476 |
|
| 472 |
my $generated_xml_file = '/tmp/test_export.xml'; |
477 |
my $generated_xml_file = '/tmp/test_export.xml'; |
| 473 |
Koha::Exporter::Record::export({ |
478 |
Koha::Exporter::Record::export( |
| 474 |
record_type => 'bibs', |
479 |
{ |
| 475 |
record_ids => [ $biblionumber_1 ], |
480 |
record_type => 'bibs', |
| 476 |
format => 'xml', |
481 |
record_ids => [$biblionumber_1], |
| 477 |
marc_modification_template_id => $template_id, |
482 |
format => 'xml', |
| 478 |
output_filepath => $generated_xml_file, |
483 |
marc_modification_template_id => $template_id, |
| 479 |
}); |
484 |
output_filepath => $generated_xml_file, |
| 480 |
|
485 |
} |
| 481 |
my $generated_xml_content = read_file( $generated_xml_file ); |
486 |
); |
|
|
487 |
|
| 488 |
my $generated_xml_content = read_file($generated_xml_file); |
| 482 |
$MARC::File::XML::_load_args{BinaryEncoding} = 'utf-8'; |
489 |
$MARC::File::XML::_load_args{BinaryEncoding} = 'utf-8'; |
| 483 |
open my $fh, '<', $generated_xml_file; |
490 |
open my $fh, '<', $generated_xml_file; |
| 484 |
my $records = MARC::Batch->new( 'XML', $fh ); |
491 |
my $records = MARC::Batch->new( 'XML', $fh ); |
|
Lines 486-519
subtest 'export xml with marc modification template' => sub {
Link Here
|
| 486 |
while ( my $record = $records->next ) { |
493 |
while ( my $record = $records->next ) { |
| 487 |
push @records, $record; |
494 |
push @records, $record; |
| 488 |
} |
495 |
} |
| 489 |
is( scalar( @records ), 1, 'Export XML: 1 record should have been exported' ); |
496 |
is( scalar(@records), 1, 'Export XML: 1 record should have been exported' ); |
| 490 |
my $record = $records[0]; |
497 |
my $record = $records[0]; |
| 491 |
is( $record->subfield('999', '9'), 'Foobar', 'Export XML: marc modification template should have added 999$9' ); |
498 |
is( $record->subfield( '998', '9' ), 'Foobar', 'Export XML: marc modification template should have added 998$9' ); |
| 492 |
}; |
499 |
}; |
| 493 |
|
500 |
|
| 494 |
subtest 'export iso2709 with marc modification template' => sub { |
501 |
subtest 'export iso2709 with marc modification template' => sub { |
| 495 |
plan tests => 2; |
502 |
plan tests => 2; |
| 496 |
|
503 |
|
| 497 |
my $template_id = C4::MarcModificationTemplates::AddModificationTemplate('test exporter'); |
504 |
my $template_id = C4::MarcModificationTemplates::AddModificationTemplate('test exporter'); |
| 498 |
C4::MarcModificationTemplates::AddModificationTemplateAction($template_id, 'add_field', 0, '999', '9', 'Foobar'); |
505 |
C4::MarcModificationTemplates::AddModificationTemplateAction( $template_id, 'add_field', 0, '998', '9', 'Foobar' ); |
| 499 |
|
506 |
|
| 500 |
my $generated_mrc_file = '/tmp/test_export.mrc'; |
507 |
my $generated_mrc_file = '/tmp/test_export.mrc'; |
| 501 |
Koha::Exporter::Record::export({ |
508 |
Koha::Exporter::Record::export( |
| 502 |
record_type => 'bibs', |
509 |
{ |
| 503 |
record_ids => [ $biblionumber_1 ], |
510 |
record_type => 'bibs', |
| 504 |
format => 'iso2709', |
511 |
record_ids => [$biblionumber_1], |
| 505 |
marc_modification_template_id => $template_id, |
512 |
format => 'iso2709', |
| 506 |
output_filepath => $generated_mrc_file, |
513 |
marc_modification_template_id => $template_id, |
| 507 |
}); |
514 |
output_filepath => $generated_mrc_file, |
| 508 |
|
515 |
} |
| 509 |
my $records = MARC::File::USMARC->in( $generated_mrc_file ); |
516 |
); |
|
|
517 |
|
| 518 |
my $records = MARC::File::USMARC->in($generated_mrc_file); |
| 510 |
my @records; |
519 |
my @records; |
| 511 |
while ( my $record = $records->next ) { |
520 |
while ( my $record = $records->next ) { |
| 512 |
push @records, $record; |
521 |
push @records, $record; |
| 513 |
} |
522 |
} |
| 514 |
is( scalar( @records ), 1, 'Export ISO2709: 1 record should have been exported' ); |
523 |
is( scalar(@records), 1, 'Export ISO2709: 1 record should have been exported' ); |
| 515 |
my $record = $records[0]; |
524 |
my $record = $records[0]; |
| 516 |
is( $record->subfield('999', '9'), 'Foobar', 'Export ISO2709: marc modification template should have added 999$9' ); |
525 |
is( |
|
|
526 |
$record->subfield( '998', '9' ), 'Foobar', |
| 527 |
'Export ISO2709: marc modification template should have added 998$9' |
| 528 |
); |
| 517 |
}; |
529 |
}; |
| 518 |
|
530 |
|
| 519 |
$schema->storage->txn_rollback; |
531 |
$schema->storage->txn_rollback; |
| 520 |
- |
|
|