Lines 18-24
Link Here
|
18 |
|
18 |
|
19 |
use Modern::Perl; |
19 |
use Modern::Perl; |
20 |
|
20 |
|
21 |
use Test::More tests => 144; |
21 |
use Test::More tests => 146; |
22 |
use Test::MockModule; |
22 |
use Test::MockModule; |
23 |
use Test::Warn; |
23 |
use Test::Warn; |
24 |
use MARC::Record; |
24 |
use MARC::Record; |
Lines 587-590
UpdateOAISetsBiblio($biblionumberNotVH, $record);
Link Here
|
587 |
my @setsNotEq = CalcOAISetsBiblio($record); |
587 |
my @setsNotEq = CalcOAISetsBiblio($record); |
588 |
is_deeply(@setsNotEq, $setNotVH_id, 'The $record only belongs to $setNotVH'); |
588 |
is_deeply(@setsNotEq, $setNotVH_id, 'The $record only belongs to $setNotVH'); |
589 |
|
589 |
|
|
|
590 |
# ---------- Testing CalcOAISetsBiblio with repeated field ---------- |
591 |
|
592 |
# Delete all existing sets to avoid false positives |
593 |
my $all_sets = GetOAISets; |
594 |
foreach my $set ( @$all_sets ) { |
595 |
DelOAISet( $set->{'id'} ); |
596 |
} |
597 |
|
598 |
# Create a MARC record with a repeated field 374 |
599 |
my $record_rep = MARC::Record->new; |
600 |
$record_rep->add_fields( |
601 |
[ '001', '1234' ], |
602 |
[ '100', ' ', ' ', a => 'N., N.' ], |
603 |
[ '374', ' ', ' ', a => 'A' ], |
604 |
[ '374', ' ', ' ', a => 'B' ] |
605 |
); |
606 |
|
607 |
# Create a set |
608 |
my $setRep = { |
609 |
'spec' => 'Set where 374a equals a given letter', |
610 |
'name' => 'Rep' |
611 |
}; |
612 |
my $setRep_id = AddOAISet($setRep); |
613 |
# Create a mapping : 374$a should be "A" |
614 |
my $mappingRepA = [ |
615 |
{ |
616 |
marcfield => '374', |
617 |
marcsubfield => 'a', |
618 |
operator => 'equal', |
619 |
marcvalue => 'A', |
620 |
}, |
621 |
]; |
622 |
# Add the mapping to the set |
623 |
ModOAISetMappings($setRep_id, $mappingRepA); |
624 |
|
625 |
# Get a list of set ids the record belongs to |
626 |
my @setsRepA = CalcOAISetsBiblio($record_rep); |
627 |
is_deeply(\@setsRepA, [$setRep_id], 'The $record belongs to $setRep_id (matching on first field)'); |
628 |
|
629 |
# Create another mapping : 374$a should now be "B" |
630 |
my $mappingRepB = [ |
631 |
{ |
632 |
marcfield => '374', |
633 |
marcsubfield => 'a', |
634 |
operator => 'equal', |
635 |
marcvalue => 'B', |
636 |
}, |
637 |
]; |
638 |
# Replace the first mapping with the second one |
639 |
ModOAISetMappings($setRep_id, $mappingRepB); |
640 |
|
641 |
# Get a list of set ids the record belongs to |
642 |
my @setsRepB = CalcOAISetsBiblio($record_rep); |
643 |
is_deeply(\@setsRepB, [$setRep_id], 'The $record belongs to $setRep_id (matching on second field)'); |
644 |
|
590 |
$schema->storage->txn_rollback; |
645 |
$schema->storage->txn_rollback; |
591 |
- |
|
|