|
Lines 1334-1340
subtest 'copy_and_replace_field' => sub {
Link Here
|
| 1334 |
subtest 'move_field' => sub { |
1334 |
subtest 'move_field' => sub { |
| 1335 |
plan tests => 2; |
1335 |
plan tests => 2; |
| 1336 |
subtest 'move subfield' => sub { |
1336 |
subtest 'move subfield' => sub { |
| 1337 |
plan tests => 7; |
1337 |
plan tests => 9; |
| 1338 |
my $record = new_record; |
1338 |
my $record = new_record; |
| 1339 |
my ( @fields_952d, @fields_952c, @fields_954c, @fields_954p ); |
1339 |
my ( @fields_952d, @fields_952c, @fields_954c, @fields_954p ); |
| 1340 |
$record->append_fields( |
1340 |
$record->append_fields( |
|
Lines 1414-1419
subtest 'move_field' => sub {
Link Here
|
| 1414 |
\@fields_9999, [], |
1414 |
\@fields_9999, [], |
| 1415 |
'move a nonexistent subfield does not create a new one' |
1415 |
'move a nonexistent subfield does not create a new one' |
| 1416 |
); |
1416 |
); |
|
|
1417 |
|
| 1418 |
# Test for bug 32950: Moving subfield can lose values for repeatable fields |
| 1419 |
$record = new_record; |
| 1420 |
$record->append_fields( |
| 1421 |
MARC::Field->new( |
| 1422 |
'020', ' ', ' ', |
| 1423 |
a => '123456789', |
| 1424 |
z => '987654321', |
| 1425 |
), |
| 1426 |
MARC::Field->new( |
| 1427 |
'020', ' ', ' ', |
| 1428 |
a => '111111111', |
| 1429 |
z => '222222222', |
| 1430 |
), |
| 1431 |
MARC::Field->new( |
| 1432 |
'020', ' ', ' ', |
| 1433 |
a => '333333333', |
| 1434 |
z => '444444444', |
| 1435 |
), |
| 1436 |
MARC::Field->new( |
| 1437 |
'024', ' ', ' ', |
| 1438 |
a => 'existing1', |
| 1439 |
), |
| 1440 |
MARC::Field->new( |
| 1441 |
'024', ' ', ' ', |
| 1442 |
a => 'existing2', |
| 1443 |
), |
| 1444 |
); |
| 1445 |
|
| 1446 |
# Test moving to a different field to reproduce the bug more clearly |
| 1447 |
move_field( |
| 1448 |
{ |
| 1449 |
record => $record, |
| 1450 |
from_field => '020', |
| 1451 |
from_subfield => 'z', |
| 1452 |
to_field => '024', |
| 1453 |
to_subfield => 'a' |
| 1454 |
} |
| 1455 |
); |
| 1456 |
|
| 1457 |
my @fields_020z = read_field( { record => $record, field => '020', subfield => 'z' } ); |
| 1458 |
my @fields_024a = read_field( { record => $record, field => '024', subfield => 'a' } ); |
| 1459 |
is_deeply( \@fields_020z, [], 'All 020$z subfields have been moved' ); |
| 1460 |
is_deeply( |
| 1461 |
\@fields_024a, |
| 1462 |
[ '987654321', '222222222', '444444444' ], |
| 1463 |
'Bug 32950: Move preserves values correctly in repeatable fields' |
| 1464 |
); |
| 1417 |
}; |
1465 |
}; |
| 1418 |
|
1466 |
|
| 1419 |
subtest 'move field' => sub { |
1467 |
subtest 'move field' => sub { |
| 1420 |
- |
|
|