Skip to content

Commit de0de18

Browse files
committed
Merge remote-tracking branch 'origin/MC-16244' into 2.3.2-develop-pr51
2 parents af6495d + 9af244c commit de0de18

File tree

2 files changed

+105
-1
lines changed

2 files changed

+105
-1
lines changed

app/code/Magento/Elasticsearch/Model/ResourceModel/Fulltext/Collection/SearchCriteriaResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public function resolve(): SearchCriteria
7979
$this->builder->setPageSize($this->size);
8080
$searchCriteria = $this->builder->create();
8181
$searchCriteria->setRequestName($this->searchRequestName);
82-
$searchCriteria->setSortOrders(array_merge(['relevance' => 'DESC'], $this->orders));
82+
$searchCriteria->setSortOrders($this->orders);
8383
$searchCriteria->setCurrentPage($this->currentPage - 1);
8484

8585
return $searchCriteria;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Elasticsearch\Test\Unit\Model\ResourceModel\Fulltext\Collection;
9+
10+
use Magento\Elasticsearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolver;
11+
use Magento\Framework\Api\Search\SearchCriteriaBuilder;
12+
use Magento\Framework\Api\Search\SearchCriteria;
13+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
14+
15+
/**
16+
* Unit test for SearchCriteriaResolver
17+
*/
18+
class SearchCriteriaResolverTest extends \PHPUnit\Framework\TestCase
19+
{
20+
/**
21+
* @var SearchCriteriaBuilder|\PHPUnit_Framework_MockObject_MockObject
22+
*/
23+
private $searchCriteriaBuilder;
24+
25+
/**
26+
* @inheritdoc
27+
*/
28+
protected function setUp()
29+
{
30+
$this->searchCriteriaBuilder = $this->getMockBuilder(SearchCriteriaBuilder::class)
31+
->disableOriginalConstructor()
32+
->setMethods(['setPageSize', 'create'])
33+
->getMock();
34+
}
35+
36+
/**
37+
* @param array|null $orders
38+
* @param array|null $expected
39+
* @dataProvider resolveSortOrderDataProvider
40+
*/
41+
public function testResolve($orders, $expected)
42+
{
43+
$searchRequestName = 'test';
44+
$currentPage = 1;
45+
$size = 10;
46+
47+
$searchCriteria = $this->getMockBuilder(SearchCriteria::class)
48+
->disableOriginalConstructor()
49+
->setMethods(['setRequestName', 'setSortOrders', 'setCurrentPage'])
50+
->getMock();
51+
$searchCriteria->expects($this->once())
52+
->method('setRequestName')
53+
->with($searchRequestName)
54+
->willReturn($searchCriteria);
55+
$searchCriteria->expects($this->once())
56+
->method('setSortOrders')
57+
->with($expected)
58+
->willReturn($searchCriteria);
59+
$searchCriteria->expects($this->once())
60+
->method('setCurrentPage')
61+
->with($currentPage - 1)
62+
->willReturn($searchCriteria);
63+
64+
$this->searchCriteriaBuilder->expects($this->once())
65+
->method('create')
66+
->willReturn($searchCriteria);
67+
$this->searchCriteriaBuilder->expects($this->once())
68+
->method('setPageSize')
69+
->with($size)
70+
->willReturn($this->searchCriteriaBuilder);
71+
72+
$objectManager = new ObjectManagerHelper($this);
73+
/** @var SearchCriteriaResolver $model */
74+
$model = $objectManager->getObject(
75+
SearchCriteriaResolver::class,
76+
[
77+
'builder' => $this->searchCriteriaBuilder,
78+
'searchRequestName' => $searchRequestName,
79+
'currentPage' => $currentPage,
80+
'size' => $size,
81+
'orders' => $orders,
82+
]
83+
);
84+
85+
$model->resolve();
86+
}
87+
88+
/**
89+
* @return array
90+
*/
91+
public function resolveSortOrderDataProvider()
92+
{
93+
return [
94+
[
95+
null,
96+
null,
97+
],
98+
[
99+
['test' => 'ASC'],
100+
['test' => 'ASC'],
101+
],
102+
];
103+
}
104+
}

0 commit comments

Comments
 (0)