25 $this->status = $this->getMockBuilder(\
Magento\Framework\
Search\
Request\Aggregation\StatusInterface::class)
26 ->disableOriginalConstructor()
27 ->setMethods([
'isEnabled'])
28 ->getMockForAbstractClass();
30 $this->cleaner =
$helper->getObject(
32 [
'aggregationStatus' => $this->status]
38 $this->status->expects($this->once())
40 ->will($this->returnValue(
true));
42 'query' =>
'bool_query',
46 [
'ref' =>
'bool_query_rm'],
47 [
'ref' =>
'match_query'],
48 [
'ref' =>
'filtered_query_to_filter2'],
50 'type' =>
'boolQuery',
52 'match_query' => [
'value' =>
'ok',
'type' =>
'matchQuery',
'is_bind' =>
true],
55 [
'ref' =>
'match_query_rm'],
56 [
'ref' =>
'filtered_query_to_query'],
57 [
'ref' =>
'filtered_query_to_filter'],
59 'type' =>
'boolQuery',
61 'match_query_rm' => [
'value' =>
'$some$',
'type' =>
'matchQuery'],
62 'match_query_rm2' => [
'value' =>
'$some2$',
'type' =>
'matchQuery'],
63 'filtered_query_to_query' => [
64 'queryReference' => [[
'ref' =>
'match_query_rm2']],
65 'type' =>
'filteredQuery',
67 'filtered_query_to_filter' => [
68 'filterReference' => [[
'ref' =>
'bool_filter']],
69 'type' =>
'filteredQuery',
71 'filtered_query_to_filter2' => [
72 'filterReference' => [[
'ref' =>
'bool_filter2']],
73 'type' =>
'filteredQuery',
78 'filterReference' => [[
'ref' =>
'term_filter'], [
'ref' =>
'range_filter']],
79 'type' =>
'boolFilter',
81 'term_filter' => [
'value' =>
'$val$',
'type' =>
'termFilter'],
82 'range_filter' => [
'from' =>
'$from$',
'to' =>
'$to$',
'type' =>
'rangeFilter'],
84 'filterReference' => [[
'ref' =>
'term_filter2']],
85 'type' =>
'boolFilter',
87 'term_filter2' => [
'value' =>
'value_good',
'type' =>
'termFilter',
'is_bind' =>
true],
90 $exceptedRequestData = [
91 'query' =>
'bool_query',
94 'queryReference' => [[
'ref' =>
'match_query'], [
'ref' =>
'filtered_query_to_filter2']],
95 'type' =>
'boolQuery',
97 'match_query' => [
'value' =>
'ok',
'type' =>
'matchQuery',
'is_bind' =>
true],
98 'filtered_query_to_filter2' => [
99 'filterReference' => [[
'ref' =>
'bool_filter2']],
100 'type' =>
'filteredQuery',
105 'filterReference' => [[
'ref' =>
'term_filter2']],
106 'type' =>
'boolFilter',
108 'term_filter2' => [
'value' =>
'value_good',
'type' =>
'termFilter',
'is_bind' =>
true],
114 $this->assertEquals($exceptedRequestData,
$result);
119 $this->status->expects($this->once())
120 ->method(
'isEnabled')
121 ->will($this->returnValue(
false));
123 'query' =>
'bool_query',
126 'queryReference' => [
127 [
'ref' =>
'bool_query_rm'],
128 [
'ref' =>
'match_query'],
129 [
'ref' =>
'filtered_query_to_filter2'],
131 'type' =>
'boolQuery',
133 'match_query' => [
'value' =>
'ok',
'type' =>
'matchQuery',
'is_bind' =>
true],
135 'queryReference' => [
136 [
'ref' =>
'match_query_rm'],
137 [
'ref' =>
'filtered_query_to_query'],
138 [
'ref' =>
'filtered_query_to_filter'],
140 'type' =>
'boolQuery',
142 'match_query_rm' => [
'value' =>
'$some$',
'type' =>
'matchQuery'],
143 'match_query_rm2' => [
'value' =>
'$some2$',
'type' =>
'matchQuery'],
144 'filtered_query_to_query' => [
145 'queryReference' => [[
'ref' =>
'match_query_rm2']],
146 'type' =>
'filteredQuery',
148 'filtered_query_to_filter' => [
149 'filterReference' => [[
'ref' =>
'bool_filter']],
150 'type' =>
'filteredQuery',
152 'filtered_query_to_filter2' => [
153 'filterReference' => [[
'ref' =>
'bool_filter2']],
154 'type' =>
'filteredQuery',
159 'filterReference' => [[
'ref' =>
'term_filter'], [
'ref' =>
'range_filter']],
160 'type' =>
'boolFilter',
162 'term_filter' => [
'value' =>
'$val$',
'type' =>
'termFilter'],
163 'range_filter' => [
'from' =>
'$from$',
'to' =>
'$to$',
'type' =>
'rangeFilter'],
165 'filterReference' => [[
'ref' =>
'term_filter2']],
166 'type' =>
'boolFilter',
168 'term_filter2' => [
'value' =>
'value_good',
'type' =>
'termFilter',
'is_bind' =>
true],
171 $exceptedRequestData = [
172 'query' =>
'bool_query',
175 'queryReference' => [[
'ref' =>
'match_query'], [
'ref' =>
'filtered_query_to_filter2']],
176 'type' =>
'boolQuery',
178 'match_query' => [
'value' =>
'ok',
'type' =>
'matchQuery',
'is_bind' =>
true],
179 'filtered_query_to_filter2' => [
180 'filterReference' => [[
'ref' =>
'bool_filter2']],
181 'type' =>
'filteredQuery',
186 'filterReference' => [[
'ref' =>
'term_filter2']],
187 'type' =>
'boolFilter',
189 'term_filter2' => [
'value' =>
'value_good',
'type' =>
'termFilter',
'is_bind' =>
true],
191 'aggregations' => [],
196 $this->assertEquals($exceptedRequestData,
$result);
206 'query' =>
'filtered_query',
208 'filtered_query' => [
209 'type' =>
'filteredQuery',
225 'query' =>
'filtered_query',
227 'filtered_query' => [
244 'query' =>
'filtered_query',
246 'filtered_query' => [
247 'filterReference' => [[
'ref' =>
'filter']],
248 'type' =>
'filteredQuery',
268 'query' =>
'filtered_query',
270 'filtered_query' => [
271 'queryReference' => [[
'ref' =>
'filtered_query']],
272 'type' =>
'boolQuery',
287 'query' =>
'filtered_query',
289 'filtered_query' => [
290 'filterReference' => [[
'ref' =>
'bool_filter']],
291 'type' =>
'filteredQuery',
296 'filterReference' => [[
'ref' =>
'bool_filter']],
297 'type' =>
'boolFilter',
312 'query' =>
'filtered_query',
314 'filtered_query' => [
315 'filterReference' => [[
'ref' =>
'bool_filter']],
316 'type' =>
'filteredQuery',
346 $this->status->expects($this->once())
347 ->method(
'isEnabled')
348 ->will($this->returnValue(
true));
350 'query' =>
'bool_query',
353 'queryReference' => [
354 [
'ref' =>
'bool_query_rm'],
355 [
'ref' =>
'filtered_query_to_filter2'],
357 'type' =>
'boolQuery',
360 'queryReference' => [
361 [
'ref' =>
'match_query_rm'],
362 [
'ref' =>
'filtered_query_to_query'],
363 [
'ref' =>
'filtered_query_to_filter'],
365 'type' =>
'boolQuery',
367 'match_query_rm' => [
'value' =>
'$some$',
'type' =>
'matchQuery'],
368 'match_query_rm2' => [
'value' =>
'$some2$',
'type' =>
'matchQuery'],
369 'filtered_query_to_query' => [
370 'queryReference' => [[
'ref' =>
'match_query_rm2']],
371 'type' =>
'filteredQuery',
373 'filtered_query_to_filter' => [
374 'filterReference' => [[
'ref' =>
'bool_filter']],
375 'type' =>
'filteredQuery',
377 'filtered_query_to_filter2' => [
378 'filterReference' => [[
'ref' =>
'bool_filter2']],
379 'type' =>
'filteredQuery',
384 'filterReference' => [[
'ref' =>
'term_filter'], [
'ref' =>
'range_filter']],
385 'type' =>
'boolFilter',
387 'term_filter' => [
'value' =>
'$val$',
'type' =>
'termFilter'],
388 'range_filter' => [
'from' =>
'$from$',
'to' =>
'$to$',
'type' =>
'rangeFilter'],
390 'filterReference' => [[
'ref' =>
'term_filter2']],
391 'type' =>
'boolFilter',
393 'term_filter2' => [
'value' =>
'$val$',
'type' =>
'termFilter'],
testCleanFilterNotFound()
testCleanFilteredQueryType()
testCleanEmptyQueryAndFilter()
testCleanWithoutAggregations()
testCleanQueryNotExists()