Lines 4-10
use Modern::Perl;
Link Here
|
4 |
use Data::Dumper qw/Dumper/; |
4 |
use Data::Dumper qw/Dumper/; |
5 |
use MARC::Record; |
5 |
use MARC::Record; |
6 |
use MARC::Field; |
6 |
use MARC::Field; |
7 |
use Test::More tests => 1; |
7 |
use Test::More tests => 2; |
8 |
|
8 |
|
9 |
use t::lib::Mocks; |
9 |
use t::lib::Mocks; |
10 |
use Koha::Authority::ControlledIndicators; |
10 |
use Koha::Authority::ControlledIndicators; |
Lines 61-63
marc21,700,ind1:auth2
Link Here
|
61 |
}); |
61 |
}); |
62 |
is_deeply( $res, {}, 'Cache cleared' ); |
62 |
is_deeply( $res, {}, 'Cache cleared' ); |
63 |
}; |
63 |
}; |
64 |
- |
64 |
|
|
|
65 |
subtest "Tests for sub _thesaurus_info" => sub { |
66 |
plan tests => 10; |
67 |
|
68 |
t::lib::Mocks::mock_preference('AuthorityControlledIndicators', q|marc21,600,ignored,ind2:thesaurus|); |
69 |
my $oInd = Koha::Authority::ControlledIndicators->new; |
70 |
|
71 |
my $record = MARC::Record->new; |
72 |
$record->append_fields( |
73 |
MARC::Field->new( '008', (' 'x11).'a' ), |
74 |
MARC::Field->new( '040', '', '', f => 'very_special' ), |
75 |
); |
76 |
|
77 |
# Case 1: LOC code a in auth record should become 0 in 6XX ind2 |
78 |
my $res = $oInd->get({ |
79 |
flavour => "MARC21", |
80 |
report_tag => '100', |
81 |
auth_record => $record, |
82 |
biblio_tag => '600', |
83 |
}); |
84 |
is( $res->{ind2}, '0', 'Indicator matched for LOC headings' ); |
85 |
is( $res->{sub2}, undef, 'No subfield 2' ); |
86 |
|
87 |
# Case 2: Code n (Not applicable) should become 4 (source not specified) |
88 |
$record->field('008')->update( (' 'x11).'n' ); |
89 |
$res = $oInd->get({ |
90 |
flavour => "MARC21", |
91 |
report_tag => '100', |
92 |
auth_record => $record, |
93 |
biblio_tag => '600', |
94 |
}); |
95 |
is( $res->{ind2}, '4', 'Source not specified' ); |
96 |
is( $res->{sub2}, undef, 'No subfield 2' ); |
97 |
|
98 |
# Case 3: AAT thesaurus (and subfield $2) |
99 |
$record->field('008')->update( (' 'x11).'r' ); |
100 |
$res = $oInd->get({ |
101 |
flavour => "MARC21", |
102 |
report_tag => '100', |
103 |
auth_record => $record, |
104 |
biblio_tag => '600', |
105 |
}); |
106 |
is( $res->{ind2}, '7', 'AAT, see subfield 2' ); |
107 |
is( $res->{sub2}, 'aat', 'Subfield 2 verified' ); |
108 |
|
109 |
# Case 4: Code z triggers a fetch from 040$f (and subfield $2) |
110 |
$record->field('008')->update( (' 'x11).'z' ); |
111 |
$res = $oInd->get({ |
112 |
flavour => "MARC21", |
113 |
report_tag => '100', |
114 |
auth_record => $record, |
115 |
biblio_tag => '600', |
116 |
}); |
117 |
is( $res->{ind2}, '7', 'Code z, see subfield 2' ); |
118 |
is( $res->{sub2}, 'very_special', 'Subfield 2 from 040$f' ); |
119 |
|
120 |
# Case 5: Code e does not belong in 008/11 |
121 |
$record->field('008')->update( (' 'x11).'e' ); |
122 |
$res = $oInd->get({ |
123 |
flavour => "MARC21", |
124 |
report_tag => '100', |
125 |
auth_record => $record, |
126 |
biblio_tag => '600', |
127 |
}); |
128 |
is( $res->{ind2}, '4', 'Code e triggers not specified' ); |
129 |
is( $res->{sub2}, undef, 'No subfield 2' ); |
130 |
}; |