Lines 24-29
use Koha::Database;
Link Here
|
24 |
use Koha::SearchEngine::Elasticsearch::QueryBuilder |
24 |
use Koha::SearchEngine::Elasticsearch::QueryBuilder |
25 |
|
25 |
|
26 |
subtest 'build_authorities_query_compat() tests' => sub { |
26 |
subtest 'build_authorities_query_compat() tests' => sub { |
|
|
27 |
plan tests => 37; |
27 |
|
28 |
|
28 |
my $qb; |
29 |
my $qb; |
29 |
|
30 |
|
Lines 34-48
subtest 'build_authorities_query_compat() tests' => sub {
Link Here
|
34 |
|
35 |
|
35 |
my $koha_to_index_name = $Koha::SearchEngine::Elasticsearch::QueryBuilder::koha_to_index_name; |
36 |
my $koha_to_index_name = $Koha::SearchEngine::Elasticsearch::QueryBuilder::koha_to_index_name; |
36 |
my $search_term = 'a'; |
37 |
my $search_term = 'a'; |
|
|
38 |
foreach my $koha_name ( keys %{ $koha_to_index_name } ) { |
39 |
my $query = $qb->build_authorities_query_compat( [ $koha_name ], undef, undef, ['contains'], [$search_term], 'AUTH_TYPE', 'asc' ); |
40 |
if ( $koha_name eq 'all' ) { |
41 |
is( $query->{query}->{bool}->{must}[0]->{wildcard}->{"_all.phrase"}, |
42 |
"*a*"); |
43 |
} else { |
44 |
is( $query->{query}->{bool}->{must}[0]->{wildcard}->{$koha_to_index_name->{$koha_name}.".phrase"}, |
45 |
"*a*"); |
46 |
} |
47 |
} |
37 |
|
48 |
|
|
|
49 |
$search_term = 'Donald Duck'; |
38 |
foreach my $koha_name ( keys %{ $koha_to_index_name } ) { |
50 |
foreach my $koha_name ( keys %{ $koha_to_index_name } ) { |
39 |
my $query = $qb->build_authorities_query_compat( [ $koha_name ], undef, undef, ['contains'], [$search_term], 'AUTH_TYPE', 'asc' ); |
51 |
my $query = $qb->build_authorities_query_compat( [ $koha_name ], undef, undef, ['contains'], [$search_term], 'AUTH_TYPE', 'asc' ); |
40 |
if ( $koha_name eq 'all' ) { |
52 |
if ( $koha_name eq 'all' ) { |
41 |
is( $query->{query}->{bool}->{should}[0]->{match}->{_all}, |
53 |
is( $query->{query}->{bool}->{must}[0]->{wildcard}->{"_all.phrase"}, |
42 |
$search_term); |
54 |
"*donald*"); |
|
|
55 |
is( $query->{query}->{bool}->{must}[1]->{wildcard}->{"_all.phrase"}, |
56 |
"*duck*"); |
57 |
} else { |
58 |
is( $query->{query}->{bool}->{must}[0]->{wildcard}->{$koha_to_index_name->{$koha_name}.".phrase"}, |
59 |
"*donald*"); |
60 |
is( $query->{query}->{bool}->{must}[1]->{wildcard}->{$koha_to_index_name->{$koha_name}.".phrase"}, |
61 |
"*duck*"); |
62 |
} |
63 |
} |
64 |
|
65 |
foreach my $koha_name ( keys %{ $koha_to_index_name } ) { |
66 |
my $query = $qb->build_authorities_query_compat( [ $koha_name ], undef, undef, ['is'], [$search_term], 'AUTH_TYPE', 'asc' ); |
67 |
if ( $koha_name eq 'all' ) { |
68 |
is( $query->{query}->{bool}->{must}[0]->{term}->{"_all.phrase"}, |
69 |
"donald duck"); |
70 |
} else { |
71 |
is( $query->{query}->{bool}->{must}[0]->{term}->{$koha_to_index_name->{$koha_name}.".phrase"}, |
72 |
"donald duck"); |
73 |
} |
74 |
} |
75 |
|
76 |
foreach my $koha_name ( keys %{ $koha_to_index_name } ) { |
77 |
my $query = $qb->build_authorities_query_compat( [ $koha_name ], undef, undef, ['start'], [$search_term], 'AUTH_TYPE', 'asc' ); |
78 |
if ( $koha_name eq 'all' ) { |
79 |
is( $query->{query}->{bool}->{must}[0]->{prefix}->{"_all.lc_raw"}, |
80 |
"donald duck"); |
43 |
} else { |
81 |
} else { |
44 |
is( $query->{query}->{bool}->{should}[0]->{match}->{$koha_to_index_name->{$koha_name}}, |
82 |
is( $query->{query}->{bool}->{must}[0]->{prefix}->{$koha_to_index_name->{$koha_name}.".lc_raw"}, |
45 |
$search_term); |
83 |
"donald duck"); |
46 |
} |
84 |
} |
47 |
} |
85 |
} |
48 |
|
86 |
|
Lines 65-79
subtest 'build query from form subtests' => sub {
Link Here
|
65 |
|
103 |
|
66 |
my $query = $builder->build_authorities_query_compat( \@marclist, undef, |
104 |
my $query = $builder->build_authorities_query_compat( \@marclist, undef, |
67 |
undef, \@operator , \@values, 'AUTH_TYPE', 'asc' ); |
105 |
undef, \@operator , \@values, 'AUTH_TYPE', 'asc' ); |
68 |
is($query->{query}->{bool}->{should}[0]->{match}->{'Heading'}, "Hamilton","Expected search is populated"); |
106 |
is($query->{query}->{bool}->{must}[0]->{wildcard}->{'Heading.phrase'}, "*hamilton*","Expected search is populated"); |
69 |
is( scalar @{ $query->{query}->{bool}->{should} }, 1,"Only defined search is populated"); |
107 |
is( scalar @{ $query->{query}->{bool}->{must} }, 1,"Only defined search is populated"); |
70 |
|
108 |
|
71 |
@values[2] = 'Jefferson'; |
109 |
@values[2] = 'Jefferson'; |
72 |
$query = $builder->build_authorities_query_compat( \@marclist, undef, |
110 |
$query = $builder->build_authorities_query_compat( \@marclist, undef, |
73 |
undef, \@operator , \@values, 'AUTH_TYPE', 'asc' ); |
111 |
undef, \@operator , \@values, 'AUTH_TYPE', 'asc' ); |
74 |
is($query->{query}->{bool}->{should}[0]->{match}->{'Heading'}, "Hamilton","First index searched as expected"); |
112 |
is($query->{query}->{bool}->{must}[0]->{wildcard}->{'Heading.phrase'}, "*hamilton*","First index searched as expected"); |
75 |
is($query->{query}->{bool}->{should}[1]->{match}->{'Match'}, "Jefferson","Second index searched when populated"); |
113 |
is($query->{query}->{bool}->{must}[1]->{wildcard}->{'Match.phrase'}, "*jefferson*","Second index searched when populated"); |
76 |
is( scalar @{ $query->{query}->{bool}->{should} }, 2,"Only defined searches are populated"); |
114 |
is( scalar @{ $query->{query}->{bool}->{must} }, 2,"Only defined searches are populated"); |
77 |
|
115 |
|
78 |
|
116 |
|
79 |
}; |
117 |
}; |
80 |
- |
|
|