|
Lines 1-6
Link Here
|
| 1 |
use Modern::Perl; |
1 |
use Modern::Perl; |
| 2 |
|
2 |
|
| 3 |
use Test::More tests => 125; |
3 |
use Test::More tests => 126; |
| 4 |
|
4 |
|
| 5 |
use Koha::Database; |
5 |
use Koha::Database; |
| 6 |
use Koha::SimpleMARC; |
6 |
use Koha::SimpleMARC; |
|
Lines 415-420
subtest "not_equals" => sub {
Link Here
|
| 415 |
is_deeply( $record, $expected_record, 'None 650 have been moved, no $650$b exists' ); |
415 |
is_deeply( $record, $expected_record, 'None 650 have been moved, no $650$b exists' ); |
| 416 |
}; |
416 |
}; |
| 417 |
|
417 |
|
|
|
418 |
subtest "when conditional field doesn't match the from field" => sub { |
| 419 |
plan tests => 3; |
| 420 |
$dbh->do(q|DELETE FROM marc_modification_templates|); |
| 421 |
my $template_id = AddModificationTemplate("template_name"); |
| 422 |
AddModificationTemplateAction( |
| 423 |
$template_id, 'delete_field', 0, |
| 424 |
'650', '9', '', '', '', |
| 425 |
'', '', '', |
| 426 |
'if', '245', 'a', 'equals', 'Bad title', '', |
| 427 |
'Delete fields 650$9 if 245$a == "Bad title"' |
| 428 |
); |
| 429 |
my $record = new_record(); |
| 430 |
ModifyRecordWithTemplate( $template_id, $record ); |
| 431 |
my $expected_record = expected_record_3(); |
| 432 |
is_deeply( $record, $expected_record, '650$9 fields have been deleted when 245$a == "Bad title"' ); |
| 433 |
|
| 434 |
$dbh->do(q|DELETE FROM marc_modification_templates|); |
| 435 |
$template_id = AddModificationTemplate("template_name"); |
| 436 |
AddModificationTemplateAction( |
| 437 |
$template_id, 'delete_field', 0, |
| 438 |
'650', '9', '', '', '', |
| 439 |
'', '', '', |
| 440 |
'if', '245', 'a', 'exists', '', '', |
| 441 |
'Delete fields 650$9 if 245$a exists' |
| 442 |
); |
| 443 |
$record = new_record(); |
| 444 |
ModifyRecordWithTemplate( $template_id, $record ); |
| 445 |
$expected_record = expected_record_3(); |
| 446 |
is_deeply( $record, $expected_record, '650$9 fields have been deleted because 245$a exists' ); |
| 447 |
|
| 448 |
$dbh->do(q|DELETE FROM marc_modification_templates|); |
| 449 |
$template_id = AddModificationTemplate("template_name"); |
| 450 |
AddModificationTemplateAction( |
| 451 |
$template_id, 'delete_field', 1, |
| 452 |
'650', '', '', '', '', |
| 453 |
'', '', '', |
| 454 |
'if', '245', 'a', 'exists', '', '', |
| 455 |
'Delete 1st field 650 if 245$a exists' |
| 456 |
); |
| 457 |
$record = new_record(); |
| 458 |
ModifyRecordWithTemplate( $template_id, $record ); |
| 459 |
$expected_record = expected_record_4(); |
| 460 |
is_deeply( $record, $expected_record, '1st 650 field has been deleted because 245$a exists' ); |
| 461 |
}; |
| 462 |
|
| 418 |
sub new_record { |
463 |
sub new_record { |
| 419 |
my $record = MARC::Record->new; |
464 |
my $record = MARC::Record->new; |
| 420 |
$record->leader('03174nam a2200445 a 4500'); |
465 |
$record->leader('03174nam a2200445 a 4500'); |
|
Lines 547-552
sub expected_record_2 {
Link Here
|
| 547 |
return $record; |
592 |
return $record; |
| 548 |
} |
593 |
} |
| 549 |
|
594 |
|
|
|
595 |
sub expected_record_3 { |
| 596 |
my $record = MARC::Record->new; |
| 597 |
$record->leader('03174nam a2200445 a 4500'); |
| 598 |
my @fields = ( |
| 599 |
MARC::Field->new( |
| 600 |
100, '1', ' ', |
| 601 |
a => 'Knuth, Donald Ervin', |
| 602 |
d => '1938', |
| 603 |
), |
| 604 |
MARC::Field->new( |
| 605 |
245, '1', '4', |
| 606 |
a => 'The art of computer programming', |
| 607 |
c => 'Donald E. Knuth.', |
| 608 |
), |
| 609 |
MARC::Field->new( |
| 610 |
245, '1', '4', |
| 611 |
a => 'Bad title', |
| 612 |
c => 'Donald E. Knuth.', |
| 613 |
), |
| 614 |
MARC::Field->new( |
| 615 |
650, ' ', '0', |
| 616 |
a => 'Computer programming.', |
| 617 |
), |
| 618 |
MARC::Field->new( |
| 619 |
650, ' ', '0', |
| 620 |
a => 'Computer programming.', |
| 621 |
), |
| 622 |
MARC::Field->new( |
| 623 |
952, ' ', ' ', |
| 624 |
p => '3010023917', |
| 625 |
y => 'BK', |
| 626 |
c => 'GEN', |
| 627 |
d => '2001-06-25', |
| 628 |
), |
| 629 |
); |
| 630 |
$record->append_fields(@fields); |
| 631 |
return $record; |
| 632 |
} |
| 633 |
|
| 634 |
sub expected_record_4 { |
| 635 |
my $record = MARC::Record->new; |
| 636 |
$record->leader('03174nam a2200445 a 4500'); |
| 637 |
my @fields = ( |
| 638 |
MARC::Field->new( |
| 639 |
100, '1', ' ', |
| 640 |
a => 'Knuth, Donald Ervin', |
| 641 |
d => '1938', |
| 642 |
), |
| 643 |
MARC::Field->new( |
| 644 |
245, '1', '4', |
| 645 |
a => 'The art of computer programming', |
| 646 |
c => 'Donald E. Knuth.', |
| 647 |
), |
| 648 |
MARC::Field->new( |
| 649 |
245, '1', '4', |
| 650 |
a => 'Bad title', |
| 651 |
c => 'Donald E. Knuth.', |
| 652 |
), |
| 653 |
MARC::Field->new( |
| 654 |
650, ' ', '0', |
| 655 |
a => 'Computer programming.', |
| 656 |
9 => '499', |
| 657 |
), |
| 658 |
MARC::Field->new( |
| 659 |
952, ' ', ' ', |
| 660 |
p => '3010023917', |
| 661 |
y => 'BK', |
| 662 |
c => 'GEN', |
| 663 |
d => '2001-06-25', |
| 664 |
), |
| 665 |
); |
| 666 |
$record->append_fields(@fields); |
| 667 |
return $record; |
| 668 |
} |
| 669 |
|
| 550 |
# Tests related to use of subfield 0 ($0) |
670 |
# Tests related to use of subfield 0 ($0) |
| 551 |
|
671 |
|
| 552 |
sub new_record_0 { |
672 |
sub new_record_0 { |
| 553 |
- |
|
|