80 lines
2.6 KiB
PHP
Executable File
80 lines
2.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Ui\Api;
|
|
|
|
use Magento\Ui\Model\ResourceModel\BookmarkRepository;
|
|
use Magento\Framework\Api\FilterBuilder;
|
|
use Magento\Framework\Api\SearchCriteriaBuilder;
|
|
use Magento\Framework\Api\SortOrderBuilder;
|
|
|
|
/**
|
|
* Class CarrierTest
|
|
* @package Magento\Ups\Model
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
class BookmarkRepositoryTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/** @var BookmarkRepository */
|
|
private $repository;
|
|
|
|
/** @var SortOrderBuilder */
|
|
private $sortOrderBuilder;
|
|
|
|
/** @var FilterBuilder */
|
|
private $filterBuilder;
|
|
|
|
/** @var SearchCriteriaBuilder */
|
|
private $searchCriteriaBuilder;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
|
|
$this->repository = $objectManager->create(BookmarkRepository::class);
|
|
$this->searchCriteriaBuilder = $objectManager->create(
|
|
\Magento\Framework\Api\SearchCriteriaBuilder::class
|
|
);
|
|
$this->filterBuilder = $objectManager->get(
|
|
\Magento\Framework\Api\FilterBuilder::class
|
|
);
|
|
$this->sortOrderBuilder = $objectManager->get(
|
|
\Magento\Framework\Api\SortOrderBuilder::class
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Ui/_files/bookmarks.php
|
|
*/
|
|
public function testGetListWithMultipleFiltersAndSorting()
|
|
{
|
|
$filter1 = $this->filterBuilder
|
|
->setField('namespace')
|
|
->setValue('bm_namespace')
|
|
->create();
|
|
$filter2 = $this->filterBuilder
|
|
->setField('namespace')
|
|
->setValue('new_namespace')
|
|
->create();
|
|
$filter3 = $this->filterBuilder
|
|
->setField('current')
|
|
->setValue(1)
|
|
->create();
|
|
$sortOrder = $this->sortOrderBuilder
|
|
->setField('title')
|
|
->setDirection('DESC')
|
|
->create();
|
|
|
|
$this->searchCriteriaBuilder->addFilters([$filter1, $filter2]);
|
|
$this->searchCriteriaBuilder->addFilters([$filter3]);
|
|
$this->searchCriteriaBuilder->addSortOrder($sortOrder);
|
|
$searchCriteria = $this->searchCriteriaBuilder->create();
|
|
/** @var \Magento\Ui\Api\Data\BookmarkSearchResultsInterface $result */
|
|
$result = $this->repository->getList($searchCriteria);
|
|
$this->assertCount(2, $result->getItems());
|
|
$this->assertEquals('Default View', $result->getItems()[0]->getTitle());
|
|
$this->assertEquals('Bb', $result->getItems()[1]->getTitle());
|
|
}
|
|
}
|