예제 #1
0
 public function testCleanWithoutAggregations()
 {
     $this->status->expects($this->once())->method('isEnabled')->will($this->returnValue(false));
     $requestData = ['query' => 'bool_query', 'queries' => ['bool_query' => ['queryReference' => [['ref' => 'bool_query_rm'], ['ref' => 'match_query'], ['ref' => 'filtered_query_to_filter2']], 'type' => 'boolQuery'], 'match_query' => ['value' => 'ok', 'type' => 'matchQuery', 'is_bind' => true], 'bool_query_rm' => ['queryReference' => [['ref' => 'match_query_rm'], ['ref' => 'filtered_query_to_query'], ['ref' => 'filtered_query_to_filter']], 'type' => 'boolQuery'], 'match_query_rm' => ['value' => '$some$', 'type' => 'matchQuery'], 'match_query_rm2' => ['value' => '$some2$', 'type' => 'matchQuery'], 'filtered_query_to_query' => ['queryReference' => [['ref' => 'match_query_rm2']], 'type' => 'filteredQuery'], 'filtered_query_to_filter' => ['filterReference' => [['ref' => 'bool_filter']], 'type' => 'filteredQuery'], 'filtered_query_to_filter2' => ['filterReference' => [['ref' => 'bool_filter2']], 'type' => 'filteredQuery']], 'filters' => ['bool_filter' => ['filterReference' => [['ref' => 'term_filter'], ['ref' => 'range_filter']], 'type' => 'boolFilter'], 'term_filter' => ['value' => '$val$', 'type' => 'termFilter'], 'range_filter' => ['from' => '$from$', 'to' => '$to$', 'type' => 'rangeFilter'], 'bool_filter2' => ['filterReference' => [['ref' => 'term_filter2']], 'type' => 'boolFilter'], 'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter', 'is_bind' => true]]];
     $exceptedRequestData = ['query' => 'bool_query', 'queries' => ['bool_query' => ['queryReference' => [['ref' => 'match_query'], ['ref' => 'filtered_query_to_filter2']], 'type' => 'boolQuery'], 'match_query' => ['value' => 'ok', 'type' => 'matchQuery', 'is_bind' => true], 'filtered_query_to_filter2' => ['filterReference' => [['ref' => 'bool_filter2']], 'type' => 'filteredQuery']], 'filters' => ['bool_filter2' => ['filterReference' => [['ref' => 'term_filter2']], 'type' => 'boolFilter'], 'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter', 'is_bind' => true]], 'aggregations' => []];
     $result = $this->cleaner->clean($requestData);
     $this->assertEquals($exceptedRequestData, $result);
 }
예제 #2
0
    /**
     * @expectedException \Magento\Framework\Search\Request\EmptyRequestDataException
     * @expectedExceptionMessage Request query and filter is not set
     */
    public function testCleanEmptyQueryAndFilter()
    {
        $this->status->expects($this->once())
            ->method('isEnabled')
            ->will($this->returnValue(true));
        $requestData = [
            'query' => 'bool_query',
            'queries' => [
                'bool_query' => [
                    'queryReference' => [
                        ['ref' => 'bool_query_rm'],
                        ['ref' => 'filtered_query_to_filter2'],
                    ],
                    'type' => 'boolQuery',
                ],
                'bool_query_rm' => [
                    'queryReference' => [
                        ['ref' => 'match_query_rm'],
                        ['ref' => 'filtered_query_to_query'],
                        ['ref' => 'filtered_query_to_filter'],
                    ],
                    'type' => 'boolQuery',
                ],
                'match_query_rm' => ['value' => '$some$', 'type' => 'matchQuery'],
                'match_query_rm2' => ['value' => '$some2$', 'type' => 'matchQuery'],
                'filtered_query_to_query' => [
                    'queryReference' => [['ref' => 'match_query_rm2']],
                    'type' => 'filteredQuery',
                ],
                'filtered_query_to_filter' => [
                    'filterReference' => [['ref' => 'bool_filter']],
                    'type' => 'filteredQuery',
                ],
                'filtered_query_to_filter2' => [
                    'filterReference' => [['ref' => 'bool_filter2']],
                    'type' => 'filteredQuery',
                ],
            ],
            'filters' => [
                'bool_filter' => [
                    'filterReference' => [['ref' => 'term_filter'], ['ref' => 'range_filter']],
                    'type' => 'boolFilter',
                ],
                'term_filter' => ['value' => '$val$', 'type' => 'termFilter'],
                'range_filter' => ['from' => '$from$', 'to' => '$to$', 'type' => 'rangeFilter'],
                'bool_filter2' => [
                    'filterReference' => [['ref' => 'term_filter2']],
                    'type' => 'boolFilter',
                ],
                'term_filter2' => ['value' => '$val$', 'type' => 'termFilter'],
            ],
        ];

        $this->cleaner->clean($requestData);
    }