|
Lines 17-24
Link Here
|
| 17 |
|
17 |
|
| 18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
| 19 |
|
19 |
|
| 20 |
use Test::More tests => 2; |
20 |
use Test::More tests => 3; |
| 21 |
use MARC::Record; |
21 |
use MARC::Record; |
|
|
22 |
use MARC::Field; |
| 22 |
|
23 |
|
| 23 |
BEGIN { use_ok('Koha::Util::MARC'); } |
24 |
BEGIN { use_ok('Koha::Util::MARC'); } |
| 24 |
|
25 |
|
|
Lines 41-43
subtest 'set_marc_field' => sub {
Link Here
|
| 41 |
is(scalar @subfields, 1, 'No additional subfield created'); |
42 |
is(scalar @subfields, 1, 'No additional subfield created'); |
| 42 |
is($subfields[0], 'foobaz', 'Subfield value has been changed'); |
43 |
is($subfields[0], 'foobaz', 'Subfield value has been changed'); |
| 43 |
}; |
44 |
}; |
| 44 |
- |
45 |
|
|
|
46 |
subtest 'find_marc_info, strip_orgcode, oclc_number' => sub { |
| 47 |
plan tests => 9; |
| 48 |
|
| 49 |
my $record = MARC::Record->new; |
| 50 |
$record->append_fields( |
| 51 |
MARC::Field->new( '003', 'some_data' ), |
| 52 |
MARC::Field->new( '035', '', '', a => '(test)123', a => '(change)456' ), |
| 53 |
MARC::Field->new( '035', '', '', a => '(test) 567', a => '(change) 567' ), |
| 54 |
); |
| 55 |
is( scalar Koha::Util::MARC::find_marc_info({ |
| 56 |
record => $record, field => '003', |
| 57 |
}), 'some_data', 'control field, scalar' ); |
| 58 |
is( ( Koha::Util::MARC::find_marc_info({ |
| 59 |
record => $record, field => '003', |
| 60 |
}))[0], 'some_data', 'control field, list' ); |
| 61 |
|
| 62 |
is( scalar Koha::Util::MARC::find_marc_info({ |
| 63 |
record => $record, field => '035', subfield => 'a', match => qr/56/, |
| 64 |
}), '(change)456', '035a, match, scalar' ); |
| 65 |
my @list = Koha::Util::MARC::find_marc_info({ |
| 66 |
record => $record, field => '035', subfield => 'a', match => qr/c.*56/, |
| 67 |
}); |
| 68 |
is_deeply( \@list, [ '(change)456', '(change) 567' ], '035a, match, list' ); |
| 69 |
|
| 70 |
@list = map { Koha::Util::MARC::strip_orgcode($_) } @list; |
| 71 |
is_deeply( \@list, [ '456', '567' ], 'strip the orgcodes' ); |
| 72 |
@list = map { Koha::Util::MARC::strip_orgcode($_) } ( '() a', '(a)(b) c', '(abc', ' (a)b' ); |
| 73 |
is_deeply( \@list, [ 'a', '(b) c', '(abc', ' (a)b' ], 'edge cases for strip_orgcode' ); |
| 74 |
|
| 75 |
is( Koha::Util::MARC::oclc_number(), undef, 'No arg for oclc_number' ); |
| 76 |
$record->append_fields( |
| 77 |
MARC::Field->new( '035', '', '', a => '(OCoLC) 678' ), |
| 78 |
); |
| 79 |
is( Koha::Util::MARC::oclc_number($record), '678', 'orgcode mixed case' ); |
| 80 |
$record->insert_fields_ordered( |
| 81 |
MARC::Field->new( '035', '', '', a => '(ocolc) 789' ), |
| 82 |
); |
| 83 |
is( Koha::Util::MARC::oclc_number($record), '789', 'orgcode lower case' ); |
| 84 |
|
| 85 |
}; |