Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
<?php
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria\Aggs\Aggs;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearch\Document\Property\Property;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
/**
* Тестирование агрегирующих функций для прямых свойств документов
*/
class AggsPropsTest extends AbstractTestCase
{
public function testCategoryAggs()
{
$criteria = new Criteria();
$criteria->getAggs()->add(
new Aggs(
new Property('new')
)
);
$q = new SearchQuery($criteria);
$handler = SearchClient::getInstance();
$result = $handler->handle($q)->result;
$expected = [
'hits' => [
'h1',
'h2',
'h3',
'p1',
's1',
's2',
's3',
's4',
],
'facets' => [
0 => [
'code' => 'new',
'label' => null,
'type' => 'list',
'items' => [
'list' => [
0 => [
'label' => null,
'value' => 0,
'count' => 3,
'active' => true
],
1 => [
'label' => null,
'value' => 1,
'count' => 5,
'active' => true
]
],
'range' => []
]
],
]
];
$this->assertEqualsCanonicalizing($expected, FormatData::formatDataWFacets($result));
}
public function testCategoryAggsWFilters()
{
$criteria = new Criteria();
$criteria->getAggs()->add(
new Aggs(
new Property('new')
)
);
$criteria->getAggs()->add(
new Aggs(
new Property('rating')
)
);
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
FilterOperator::GTE,
new FilterNumber(105)
)
]);
$criteria->getFilters()->add($filterCollectionPrice);
$q = new SearchQuery($criteria);
$handler = SearchClient::getInstance();
$result = $handler->handle($q)->result;
$expected = [
'hits' => [
'h2',
'h3',
'p1'
],
'facets' => [
0 => [
'code' => 'brand',
'label' => null,
'type' => 'list',
'items' => [
'list' => [
0 => [
'label' => null,
'value' => 'adidas',
'count' => 0,
'active' => false
],
1 => [
'label' => null,
'value' => 'nike',
'count' => 1,
'active' => true
],
3 => [
'label' => null,
'value' => 'rebook',
'count' => 2,
'active' => true
]
],
'range' => []
]
],
1 => [
'code' => 'color',
'label' => null,
'type' => 'list',
'items' => [
'list' => [
0 => [
'label' => null,
'value' => 'blue',
'count' => 0,
'active' => false
],
1 => [
'label' => null,
'value' => 'green',
'count' => 0,
'active' => false
],
2 => [
'label' => null,
'value' => 'red',
'count' => 0,
'active' => false
],
3 => [
'label' => null,
'value' => 'white',
'count' => 3,
'active' => true
]
],
'range' => []
]
],
2 => [
'code' => 'size',
'label' => null,
'type' => 'list',
'items' => [
'list' => [
0 => [
"label" => null,
"value" => "43",
"count" => 0,
"active" => false
],
1 => [
"label" => null,
"value" => "46",
"count" => 0,
"active" => false
],
2 => [
"label" => null,
"value" => "47",
"count" => 0,
"active" => false
],
3 => [
"label" => null,
"value" => "xl",
"count" => 2,
"active" => true
],
4 => [
"label" => null,
"value" => "xxl",
"count" => 1,
"active" => true
],
],
'range' => []
]
],
3 => [
'code' => 'price',
'label' => null,
'type' => 'range',
'items' => [
'list' => [],
'range' => [
0 => [
'label' => null,
'count' => 3,
'active' => true,
'fullRange' => [
'min' => 100.0,
'max' => 107.0
],
'activeRange' => [
'min' => 105.0,
'max' => 107.0
]
]
]
],
],
4 => [
'code' => 'new',
'label' => null,
'type' => 'list',
'items' => [
'list' => [
0 => [
'label' => null,
'value' => "0",
'count' => 1,
'active' => true
],
1 => [
'label' => null,
'value' => "1",
'count' => 2,
'active' => true
]
],
'range' => []
]
],
5 => [
'code' => 'rating',
'label' => null,
'type' => 'list',
'items' => [
'list' => [
0 => [
'label' => null,
'value' => "3",
'count' => 3,
'active' => true
],
],
'range' => []
]
],
]
];
$this->assertEqualsCanonicalizing($expected, FormatData::formatDataWFacets($result));
}
}
......@@ -2,16 +2,17 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Filter\Field;
use IQDEV\ElasticSearch\Filter\Filter;
use IQDEV\ElasticSearch\Filter\FilterOperator;
use IQDEV\ElasticSearch\Filter\FilterType;
use IQDEV\ElasticSearch\Filter\LogicOperator;
use IQDEV\ElasticSearch\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\LogicOperator;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Search\Search;
use IQDEV\ElasticSearch\Document\Property\Property;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
......@@ -24,16 +25,11 @@ class AggsTest extends AbstractTestCase
public function testEmptyFilterByCategory()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$q = new SearchQuery($criteria);
......@@ -146,22 +142,17 @@ class AggsTest extends AbstractTestCase
public function testEmptyKeywordFilter()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('white')
)
]));
......@@ -275,22 +266,16 @@ class AggsTest extends AbstractTestCase
public function testRangeFilter()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(104.50)
)
]));
......@@ -403,30 +388,25 @@ class AggsTest extends AbstractTestCase
public function testCombineFilter()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('black')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(104)
)
]));
......@@ -538,30 +518,25 @@ class AggsTest extends AbstractTestCase
public function testCombineFilterTwo()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(105)
)
]));
......@@ -675,38 +650,33 @@ class AggsTest extends AbstractTestCase
public function testKeywordFilter()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('white')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GT),
FilterOperator::GT,
new FilterNumber(100)
)
]));
......@@ -820,40 +790,35 @@ class AggsTest extends AbstractTestCase
public function testKeywordFilterTwo()
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('t-short')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
't-short',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('white')
)
]));
$criteria->filters()->add(
$criteria->getFilters()->add(
(new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('reebok')
)
]))
->setLogicalType(LogicOperator::or())
->setLogicOperator(LogicOperator::OR)
);
......
......@@ -2,14 +2,14 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Filter\Field;
use IQDEV\ElasticSearch\Filter\Filter;
use IQDEV\ElasticSearch\Filter\FilterOperator;
use IQDEV\ElasticSearch\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
......@@ -25,18 +25,18 @@ class CommonRangeKeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GT),
FilterOperator::GT,
new FilterNumber(102)
)
]));
......@@ -65,18 +65,18 @@ class CommonRangeKeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LT),
FilterOperator::LT,
new FilterNumber(102)
)
]));
......@@ -105,23 +105,23 @@ class CommonRangeKeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
)
]));
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(101)
),
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(104)
),
]));
......
......@@ -4,7 +4,7 @@ namespace IQDEV\ElasticSearchTests\Filter;
use Elastic\Elasticsearch\Client;
use IQDEV\ElasticSearch\Configuration;
use IQDEV\ElasticSearch\Converter\EsResponseToResult;
use IQDEV\ElasticSearch\Converter\Result\EsResponseToResult;
use IQDEV\ElasticSearch\Indexer\IndexRunner;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Config\ChangingStateConfiguration;
......@@ -69,7 +69,7 @@ class IndexesTest extends AbstractTestCase
]
]);
$esResponseToResult = new EsResponseToResult();
$result = $esResponseToResult->fromResponse($response);
$result = $esResponseToResult->fromResponse($response, $this->configuration);
unset($updateData['type']);
$expected = [
......@@ -80,4 +80,4 @@ class IndexesTest extends AbstractTestCase
$this->assertEqualsCanonicalizing($expected, FormatData::formatDataProducts($result));
}
}
\ No newline at end of file
}
......@@ -2,14 +2,15 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Filter\Field;
use IQDEV\ElasticSearch\Filter\Filter;
use IQDEV\ElasticSearch\Filter\FilterOperator;
use IQDEV\ElasticSearch\Filter\FilterType;
use IQDEV\ElasticSearch\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Search\Search;
use IQDEV\ElasticSearch\Document\Property\Property;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
......@@ -25,10 +26,10 @@ class KeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('')
)
]));
......@@ -55,10 +56,10 @@ class KeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
)
]));
......@@ -87,22 +88,17 @@ class KeywordsTest extends AbstractTestCase
public function testExistByFilterAndCategory(): void
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('shoes')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
'shoes',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
)
]));
......@@ -131,15 +127,15 @@ class KeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
),
new Filter(
new Field('size'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('xxl')
)
]));
......@@ -166,15 +162,15 @@ class KeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
),
new Filter(
new Field('size'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('xl')
)
]));
......@@ -203,26 +199,22 @@ class KeywordsTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(
(new FilterGroupCollection([
new Filter(
new Field('category_id'),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword('prices')
)
]))
->setFilterType(FilterType::query())
$criteria->getSearch()->add(
new Search(
new Property('category_id'),
'prices',
),
);
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
),
new Filter(
new Field('size'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('xl')
)
]));
......
......@@ -2,16 +2,16 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Filter\Field;
use IQDEV\ElasticSearch\Filter\Filter;
use IQDEV\ElasticSearch\Filter\FilterOperator;
use IQDEV\ElasticSearch\Filter\FilterType;
use IQDEV\ElasticSearch\Filter\LogicOperator;
use IQDEV\ElasticSearch\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\FilterType;
use IQDEV\ElasticSearch\Criteria\Filter\LogicOperator;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
......@@ -28,12 +28,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('not')
)
]);
$filterCollectionBrand->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
$filterCollectionBrand->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$q = new SearchQuery($criteria);
......@@ -59,12 +59,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('adidas')
)
]);
$filterCollectionBrand->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
$filterCollectionBrand->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$q = new SearchQuery($criteria);
......@@ -177,28 +177,28 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('adidas')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$criteria->filters()->add($filterCollectionBrand);
$criteria->getFilters()->add($filterCollectionBrand);
$q = new SearchQuery($criteria);
......@@ -342,23 +342,23 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionColor = new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('white')
),
]);
$criteria->filters()->add($filterCollectionColor);
$criteria->getFilters()->add($filterCollectionColor);
$q = new SearchQuery($criteria);
......@@ -482,38 +482,38 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('rebook')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionColor = new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('white')
),
]);
$filterCollectionColor->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionColor);
$filterCollectionColor->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionColor);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$criteria->filters()->add($filterCollectionBrand);
$criteria->getFilters()->add($filterCollectionBrand);
$q = new SearchQuery($criteria);
......@@ -625,39 +625,38 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('rebook')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$criteria->filters()->add($filterCollectionBrand);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionColor = new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
),
]);
$criteria->filters()->add($filterCollectionColor);
$criteria->getFilters()->add($filterCollectionColor);
$q = new SearchQuery($criteria);
$handler = SearchClient::getInstance();
......@@ -798,12 +797,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(108)
)
]);
$filterCollectionPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionPrice);
$filterCollectionPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionPrice);
$q = new SearchQuery($criteria);
......@@ -829,12 +828,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(105)
)
]);
$filterCollectionPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionPrice);
$filterCollectionPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionPrice);
$q = new SearchQuery($criteria);
......@@ -948,17 +947,17 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollection = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(104)
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$filterCollection->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollection);
$filterCollection->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollection);
$q = new SearchQuery($criteria);
$handler = SearchClient::getInstance();
......@@ -1070,26 +1069,26 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollection = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(104)
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$filterCollection->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollection);
$filterCollection->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollection);
$filterCollectionColor = new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('red')
),
]);
$criteria->filters()->add($filterCollectionColor);
$criteria->getFilters()->add($filterCollectionColor);
$q = new SearchQuery($criteria);
$handler = SearchClient::getInstance();
......@@ -1200,48 +1199,48 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(104)
),
]);
$filterCollectionPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionPrice);
$filterCollectionPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionPrice);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('adidas')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionColor = new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('green')
),
]);
$criteria->filters()->add($filterCollectionColor);
$criteria->getFilters()->add($filterCollectionColor);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
]);
$criteria->filters()->add($filterCollectionBrand);
$criteria->getFilters()->add($filterCollectionBrand);
$q = new SearchQuery($criteria);
......@@ -1371,39 +1370,39 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(104)
),
]);
$filterCollectionPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionPrice);
$filterCollectionPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionPrice);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('adidas')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(102)
),
]);
$criteria->filters()->add($filterCollectionPrice);
$criteria->getFilters()->add($filterCollectionPrice);
$q = new SearchQuery($criteria);
......@@ -1534,48 +1533,48 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(104)
),
]);
$filterCollectionPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionPrice);
$filterCollectionPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionPrice);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('nike')
),
new Filter(
new Field('brand'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('adidas')
),
]);
$filterCollectionBrand
->setLogicalType(LogicOperator::or())
->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionBrand);
->setLogicOperator(LogicOperator::OR)
->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionBrand);
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(101)
),
]);
$criteria->filters()->add($filterCollectionPrice);
$criteria->getFilters()->add($filterCollectionPrice);
$filterCollectionColor = new FilterGroupCollection([
new Filter(
new Field('color'),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword('green')
),
]);
$criteria->filters()->add($filterCollectionColor);
$criteria->getFilters()->add($filterCollectionColor);
$q = new SearchQuery($criteria);
......
......@@ -2,16 +2,19 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Converter\CriteriaToEsRequest;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Filter\Field;
use IQDEV\ElasticSearch\Filter\Filter;
use IQDEV\ElasticSearch\Filter\FilterOperator;
use IQDEV\ElasticSearch\Filter\FilterType;
use IQDEV\ElasticSearch\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Query\SearchQuery;
use IQDEV\ElasticSearch\Config\BaseConfiguration;
use IQDEV\ElasticSearch\Converter\Request\CriteriaToRequest;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\FilterType;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Search\Search;
use IQDEV\ElasticSearch\Document\Property\Property;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
......@@ -23,11 +26,14 @@ class QueryTest extends AbstractTestCase
{
public function testFilterChangeFromPostToQuery()
{
$filter = [
$search = [
'category' => [
'key' => 'category_id',
'value' => 'shoes',
],
];
$filter = [
'brand' => [
'key' => 'brand',
'value' => 'nike',
......@@ -40,22 +46,21 @@ class QueryTest extends AbstractTestCase
];
$criteria = new Criteria();
$criteria->getSearch()->add(
new Search(
new Property($search['category']['key']),
$search['category']['value'],
),
);
$filterCollectionCategory = new FilterGroupCollection([
new Filter(
new Field($filter['category']['key']),
new FilterOperator(FilterOperator::EQ),
new FilterKeyword($filter['category']['value'])
)
]);
$filterCollectionCategory->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionCategory);
$filterCollectionCategory = new FilterGroupCollection();
$filterCollectionCategory->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionCategory);
$filterCollectionBrand = new FilterGroupCollection([
new Filter(
new Field($filter['brand']['key']),
new FilterOperator(FilterOperator::EQ),
FilterOperator::EQ,
new FilterKeyword($filter['brand']['value'])
)
]);
......@@ -63,37 +68,36 @@ class QueryTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::LT),
FilterOperator::LT,
new FilterNumber($filter['price']['min'])
),
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::GT),
FilterOperator::GT,
new FilterNumber($filter['price']['max'])
),
]);
// Формирование фильтра для post
$criteriaPost = clone $criteria;
$criteriaPost->filters()->add(clone $filterCollectionPrice);
$criteriaPost->filters()->add(clone $filterCollectionBrand);
$criteriaPost->getFilters()->add(clone $filterCollectionPrice);
$criteriaPost->getFilters()->add(clone $filterCollectionBrand);
// Формирование фильтра для query
$criteriaQuery = clone $criteria;
$filterTypeQuery = FilterType::query();
$filterTypeQuery = FilterType::QUERY;
$filterCollectionPrice->setFilterType($filterTypeQuery);
$filterCollectionBrand->setFilterType($filterTypeQuery);
$criteriaQuery->filters()->add(clone $filterCollectionPrice);
$criteriaQuery->filters()->add(clone $filterCollectionBrand);
$criteriaQuery->getFilters()->add(clone $filterCollectionPrice);
$criteriaQuery->getFilters()->add(clone $filterCollectionBrand);
// Получение классов с данными для запроса в es
$criteriaToEsRequest = new CriteriaToEsRequest();
$requestPost = $criteriaToEsRequest->fromCriteria($criteriaPost);
$requestQuery = $criteriaToEsRequest->fromCriteria($criteriaQuery);
$criteriaToRequest = new CriteriaToRequest(new BaseConfiguration());
$requestPost = $criteriaToRequest->fromCriteria($criteriaPost);
$requestQuery = $criteriaToRequest->fromCriteria($criteriaQuery);
$expectedFilter = [
[
......@@ -104,18 +108,21 @@ class QueryTest extends AbstractTestCase
"filter" => [
[
"nested" => [
"path" => "search_data.keyword_facet",
"path" => "search_data.number_facet",
"query" => [
"bool" => [
"filter" => [
[
"term" => [
"search_data.keyword_facet.facet_code" => $filter['brand']['key']
"search_data.number_facet.facet_code" => $filter['price']['key']
]
],
[
"term" => [
"search_data.keyword_facet.facet_value" => $filter['brand']['value']
"range" => [
"search_data.number_facet.facet_value" => [
"lt" => $filter['price']['min'],
"gt" => $filter['price']['max'],
]
]
]
]
......@@ -136,21 +143,18 @@ class QueryTest extends AbstractTestCase
"filter" => [
[
"nested" => [
"path" => "search_data.number_facet",
"path" => "search_data.keyword_facet",
"query" => [
"bool" => [
"filter" => [
[
"term" => [
"search_data.number_facet.facet_code" => $filter['price']['key']
"search_data.keyword_facet.facet_code" => $filter['brand']['key']
]
],
[
"range" => [
"search_data.number_facet.facet_value" => [
"lt" => $filter['price']['min'],
"gt" => $filter['price']['max'],
]
"term" => [
"search_data.keyword_facet.facet_value" => $filter['brand']['value']
]
]
]
......@@ -162,7 +166,7 @@ class QueryTest extends AbstractTestCase
]
]
]
]
],
];
$expected = [
"query" => [
......@@ -170,7 +174,7 @@ class QueryTest extends AbstractTestCase
"must" => [
[
"term" => [
"category_id" => $filter['category']['value']
"category_id" => $search['category']['value']
]
],
]
......@@ -178,7 +182,6 @@ class QueryTest extends AbstractTestCase
],
];
$this->assertArray(
array_merge($expected, [
"query" => [
......@@ -222,31 +225,31 @@ class QueryTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::LT),
FilterOperator::LT,
new FilterNumber($filter['price']['min'])
),
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::GT),
FilterOperator::GT,
new FilterNumber($filter['price']['max'])
),
]);
$criteria->filters()->add($filterCollectionPrice);
$criteria->getFilters()->add($filterCollectionPrice);
$filterCollectionQueryPrice = new FilterGroupCollection([
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::LT),
FilterOperator::LT,
new FilterNumber($filter['price']['lower'])
),
]);
$filterCollectionQueryPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionQueryPrice);
$filterCollectionQueryPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionQueryPrice);
$criteriaToEsRequest = new CriteriaToEsRequest();
$request = $criteriaToEsRequest->fromCriteria($criteria);
$criteriaToRequest = new CriteriaToRequest(new BaseConfiguration());
$request = $criteriaToRequest->fromCriteria($criteria);
$expected = [
......@@ -352,22 +355,22 @@ class QueryTest extends AbstractTestCase
$filterCollectionPrice = new FilterGroupCollection([
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber($filter['price']['min'])
)
]);
$criteria->filters()->add($filterCollectionPrice);
$criteria->getFilters()->add($filterCollectionPrice);
$filterCollectionQueryPrice = new FilterGroupCollection([
new Filter(
new Field($filter['price']['key']),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber($filter['price']['lower'])
),
]);
$filterCollectionQueryPrice->setFilterType(FilterType::query());
$criteria->filters()->add($filterCollectionQueryPrice);
$filterCollectionQueryPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionQueryPrice);
$q = new SearchQuery($criteria);
......@@ -487,4 +490,147 @@ class QueryTest extends AbstractTestCase
$this->assertEqualsCanonicalizing($expected, FormatData::formatDataWFacets($result));
}
}
\ No newline at end of file
public function testGlobalFilterMinPrice()
{
$filter = [
'price' => [
'key' => 'price',
'lower' => 103,
]
];
$criteria = new Criteria();
$filterCollectionQueryPrice = new FilterGroupCollection([
new Filter(
new Field($filter['price']['key']),
FilterOperator::GTE,
new FilterNumber($filter['price']['lower'])
),
]);
$filterCollectionQueryPrice->setFilterType(FilterType::QUERY);
$criteria->getFilters()->add($filterCollectionQueryPrice);
$q = new SearchQuery($criteria);
$handler = SearchClient::getInstance();
$result = $handler->handle($q)->result;
$expected = [
'hits' => [
's4',
'h1',
'h2',
'h3',
'p1',
],
"facets" => [
0 => [
"code" => "brand",
"label" => null,
"type" => "list",
"items" => [
"list" => [
0 => [
"label" => null,
"value" => "nike",
"count" => 3,
"active" => true,
],
1 => [
"label" => null,
"value" => "rebook",
"count" => 2,
"active" => true,
]
],
"range" => [],
],
],
1 => [
"code" => "color",
"label" => null,
"type" => "list",
"items" => [
"list" => [
0 => [
"label" => null,
"value" => "green",
"count" => 1,
"active" => true,
],
1 => [
"label" => null,
"value" => "red",
"count" => 1,
"active" => true,
],
2 => [
"label" => null,
"value" => "white",
"count" => 3,
"active" => true,
],
],
"range" => [],
],
],
2 => [
"code" => "size",
"label" => null,
"type" => "list",
"items" => [
"list" => [
0 => [
"label" => null,
"count" => 1,
"value" => "43",
"active" => true,
],
1 => [
"label" => null,
"value" => "xl",
"count" => 3,
"active" => true,
],
2 => [
"label" => null,
"value" => "xxl",
"count" => 1,
"active" => true,
],
],
"range" => [],
],
],
3 => [
"code" => "price",
"label" => null,
"type" => "range",
"items" => [
"list" => [],
"range" => [
0 => [
"label" => null,
"count" => 5,
"active" => true,
"fullRange" => [
"min" => 103.0,
"max" => 107.0,
],
"activeRange" => [
"min" => 103.0,
"max" => 107.0,
]
]
]
]
]
]
];
$this->assertEqualsCanonicalizing($expected, FormatData::formatDataWFacets($result));
}
}
......@@ -2,13 +2,13 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Filter\Field;
use IQDEV\ElasticSearch\Filter\Filter;
use IQDEV\ElasticSearch\Filter\FilterOperator;
use IQDEV\ElasticSearch\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Query\SearchQuery;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection;
use IQDEV\ElasticSearch\Criteria\Filter\Field;
use IQDEV\ElasticSearch\Criteria\Filter\Filter;
use IQDEV\ElasticSearch\Criteria\Filter\FilterOperator;
use IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
......@@ -24,10 +24,10 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(103)
),
]));
......@@ -60,10 +60,10 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GT),
FilterOperator::GT,
new FilterNumber(103.01)
),
]));
......@@ -95,10 +95,10 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GT),
FilterOperator::GT,
new FilterNumber(102.99)
),
]));
......@@ -131,10 +131,10 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(102)
),
]));
......@@ -165,10 +165,10 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LT),
FilterOperator::LT,
new FilterNumber(102.99)
),
]));
......@@ -199,10 +199,10 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LT),
FilterOperator::LT,
new FilterNumber(101.99)
),
]));
......@@ -232,15 +232,15 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(101)
),
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(102)
),
]));
......@@ -270,15 +270,15 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(101.01)
),
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(102)
),
]));
......@@ -307,15 +307,15 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(101)
),
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(101.99)
),
]));
......@@ -344,15 +344,15 @@ class RangeTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->filters()->add(new FilterGroupCollection([
$criteria->getFilters()->add(new FilterGroupCollection([
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::GTE),
FilterOperator::GTE,
new FilterNumber(101.99)
),
new Filter(
new Field('price'),
new FilterOperator(FilterOperator::LTE),
FilterOperator::LTE,
new FilterNumber(101.99)
),
]));
......
This diff is collapsed.
......@@ -2,15 +2,15 @@
namespace IQDEV\ElasticSearchTests\Filter;
use IQDEV\ElasticSearch\Criteria\Criteria;
use IQDEV\ElasticSearch\Criteria\Order\OrderDirection;
use IQDEV\ElasticSearch\Criteria\Order\OrderFactory;
use IQDEV\ElasticSearch\Criteria\Query\SearchQuery;
use IQDEV\ElasticSearch\Document\Property\Property;
use IQDEV\ElasticSearch\Order\OrderDirection;
use IQDEV\ElasticSearch\Order\OrderFactory;
use IQDEV\ElasticSearch\Document\Property\PropertyType;
use IQDEV\ElasticSearchTests\AbstractTestCase;
use IQDEV\ElasticSearchTests\Helpers\FormatData;
use IQDEV\ElasticSearchTests\Service\SearchClient;
use IQDEV\ElasticSearch\Criteria;
use IQDEV\ElasticSearch\Document\Property\PropertyType;
use IQDEV\ElasticSearch\Query\SearchQuery;
class SortTest extends AbstractTestCase
{
......@@ -23,7 +23,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('category_id'), OrderDirection::ASC)
);
......@@ -58,7 +58,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('category_id'), OrderDirection::DESC)
);
......@@ -93,7 +93,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('color', PropertyType::KEYWORD), OrderDirection::ASC)
);
......@@ -128,7 +128,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('color', PropertyType::KEYWORD), OrderDirection::DESC)
);
......@@ -163,7 +163,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('price', PropertyType::NUMBER), OrderDirection::ASC)
);
......@@ -198,7 +198,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('price', PropertyType::NUMBER), OrderDirection::DESC)
);
......@@ -233,7 +233,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('size', PropertyType::KEYWORD), OrderDirection::ASC)
);
......@@ -268,7 +268,7 @@ class SortTest extends AbstractTestCase
{
$criteria = new Criteria();
$criteria->sorting()->add(
$criteria->getSorting()->add(
OrderFactory::createByProperty(new Property('size', PropertyType::KEYWORD), OrderDirection::DESC)
);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.