Lines 42-57
my $schema = $builder->schema();
Link Here
|
42 |
$schema->storage->txn_begin; |
42 |
$schema->storage->txn_begin; |
43 |
|
43 |
|
44 |
subtest 'Test caching in get_link and update_cache' => sub { |
44 |
subtest 'Test caching in get_link and update_cache' => sub { |
45 |
plan tests => 6; |
45 |
plan tests => 13; |
46 |
|
46 |
|
47 |
my @tags = C4::Context->preference('marcflavour') eq 'UNIMARC' ? (601,'j',602,'a') : (650,'a',655,'a'); |
47 |
my @tags = C4::Context->preference('marcflavour') eq 'UNIMARC' ? (601,'j',602,'a') : (650,'a',655,'a'); |
48 |
|
48 |
|
49 |
my $subject_field = MARC::Field->new($tags[0],0,2,$tags[1]=>'Science fiction'); |
49 |
my $subject_field = MARC::Field->new($tags[0],0,2,$tags[1]=>'Science fiction'); |
50 |
my $subject_field2 = MARC::Field->new($tags[0],0,2,$tags[1]=>'Science fiction'); |
50 |
my $subject_field2 = MARC::Field->new($tags[0],0,2,$tags[1]=>'Science fiction'); |
|
|
51 |
my $subject_field3 = MARC::Field->new($tags[0],0,0,$tags[1]=>'Science fiction'); |
52 |
my $subject_field4 = MARC::Field->new($tags[0],0,7,$tags[1]=>'Science fiction','2'=>'bnb'); |
53 |
my $subject_field5 = MARC::Field->new($tags[0],0,7,$tags[1]=>'Science fiction','2'=>'sao'); |
54 |
my $subject_field6 = MARC::Field->new($tags[0],0,7,$tags[1]=>'Science fiction','2'=>'sao'); |
55 |
my $subject_field7 = MARC::Field->new($tags[0],0,4,$tags[1]=>'Science fiction'); |
51 |
my $genre_field = MARC::Field->new($tags[2],0,2,$tags[3]=>'Science fiction'); |
56 |
my $genre_field = MARC::Field->new($tags[2],0,2,$tags[3]=>'Science fiction'); |
52 |
# Can we build a heading from it? |
57 |
# Can we build a heading from it? |
53 |
my $subject_heading = C4::Heading->new_from_field( $subject_field, q{} ); |
58 |
my $subject_heading = C4::Heading->new_from_field( $subject_field, q{} ); |
54 |
my $subject_heading2 = C4::Heading->new_from_field( $subject_field, q{} ); |
59 |
my $subject_heading2 = C4::Heading->new_from_field( $subject_field2, q{} ); |
|
|
60 |
my $subject_heading3 = C4::Heading->new_from_field( $subject_field3, q{} ); |
61 |
my $subject_heading4 = C4::Heading->new_from_field( $subject_field4, q{} ); |
62 |
my $subject_heading5 = C4::Heading->new_from_field( $subject_field5, q{} ); |
63 |
my $subject_heading6 = C4::Heading->new_from_field( $subject_field6, q{} ); |
64 |
my $subject_heading7 = C4::Heading->new_from_field( $subject_field7, q{} ); |
55 |
my $genre_heading = C4::Heading->new_from_field( $genre_field, q{} ); |
65 |
my $genre_heading = C4::Heading->new_from_field( $genre_field, q{} ); |
56 |
|
66 |
|
57 |
|
67 |
|
Lines 67-79
subtest 'Test caching in get_link and update_cache' => sub {
Link Here
|
67 |
$linker->get_link($subject_heading2); |
77 |
$linker->get_link($subject_heading2); |
68 |
is( keys %{$linker->{cache}},2, "Third (matching) term not added to cache because of matching type"); |
78 |
is( keys %{$linker->{cache}},2, "Third (matching) term not added to cache because of matching type"); |
69 |
|
79 |
|
|
|
80 |
$linker->get_link($subject_heading3); |
81 |
is( keys %{$linker->{cache}},3, "Fourth (matching) term added to cache because of different thesaurus (lcsh)"); |
82 |
|
83 |
$linker->get_link($subject_heading4); |
84 |
is( keys %{$linker->{cache}},4, "Fifth (matching) term added to cache because of different thesaurus (bnb)"); |
85 |
|
86 |
$linker->get_link($subject_heading5); |
87 |
is( keys %{$linker->{cache}},5, "Sixth (matching) term added to cache because of different thesaurus (sao)"); |
88 |
|
89 |
$linker->get_link($subject_heading6); |
90 |
is( keys %{$linker->{cache}},5, "Seventh (matching) term not added to cache because of matching type and thesaurus (sao)"); |
91 |
|
92 |
$linker->get_link($subject_heading7); |
93 |
is( keys %{$linker->{cache}},6, "Eigth (matching) term added to cache because of thesaurus source not specified (2nd indicator is 4)"); |
70 |
|
94 |
|
71 |
$linker->update_cache($subject_heading,32); |
95 |
$linker->update_cache($subject_heading,32); |
72 |
is( $linker->{cache}->{$subject_heading->search_form.$subject_heading->auth_type}->{authid}, 32, "Linker cache is correctly updated by 'update_cache'"); |
96 |
is( $linker->{cache}->{$subject_heading->search_form.$subject_heading->auth_type.$subject_heading->{'thesaurus'}}->{authid}, 32, "Linker cache is correctly updated by 'update_cache'"); |
73 |
my ( $authid, undef ) = $linker->get_link($subject_heading); |
97 |
my ( $authid, undef ) = $linker->get_link($subject_heading); |
74 |
is( $authid, 32, "Correct id is retrieved from the cache" ); |
98 |
is( $authid, 32, "Correct id is retrieved from the cache" ); |
75 |
( $authid, undef ) = $linker->get_link($genre_heading); |
99 |
( $authid, undef ) = $linker->get_link($genre_heading); |
76 |
isnt( $authid, 32, "Genre term is not updated by update_cache"); |
100 |
isnt( $authid, 32, "Genre term is not updated by update_cache"); |
|
|
101 |
( $authid, undef ) = $linker->get_link($subject_heading5); |
102 |
is( $authid, 4, "Correct id for sao term is retrieved from the cache" ); |
103 |
$linker->update_cache($subject_heading4,78); |
104 |
is( $linker->{cache}->{$subject_heading4->search_form.$subject_heading4->auth_type.$subject_heading4->{'thesaurus'}}->{authid}, 78, "Linker cache for the bnb record is correctly updated by 'update_cache'"); |
77 |
}; |
105 |
}; |
78 |
|
106 |
|
79 |
$schema->storage->txn_rollback; |
107 |
$schema->storage->txn_rollback; |
80 |
- |
|
|