repository = Bootstrap::getObjectManager()->create(AttributeRepositoryInterface::class); } /** * @magentoDataFixture Magento/Eav/_files/attribute_for_search.php */ public function testGetList() { /** @var FilterBuilder $filterBuilder */ $filterBuilder = Bootstrap::getObjectManager()->create(FilterBuilder::class); $filter1 = $filterBuilder->setField('backend_type') ->setValue('varchar') ->create(); $filter2 = $filterBuilder->setField('is_user_defined') ->setValue(true) ->create(); $filter3 = $filterBuilder->setField('is_required') ->setValue(true) ->create(); /** @var SearchCriteriaBuilder $searchCriteriaBuilder */ $searchCriteriaBuilder = Bootstrap::getObjectManager()->create(SearchCriteriaBuilder::class); $searchCriteriaBuilder->addFilters([$filter1, $filter2]); $searchCriteriaBuilder->addFilters([$filter3]); /** @var SortOrderBuilder $sortOrderBuilder */ $sortOrderBuilder = Bootstrap::getObjectManager()->create(SortOrderBuilder::class); /** @var SortOrder $sortOrder */ $sortOrder = $sortOrderBuilder->setField('attribute_code') ->setDirection(SortOrder::SORT_ASC) ->create(); $searchCriteriaBuilder->setSortOrders([$sortOrder]); $searchCriteriaBuilder->setPageSize(2); $searchCriteriaBuilder->setCurrentPage(2); $searchCriteria = $searchCriteriaBuilder->create(); $searchResult = $this->repository->getList('test', $searchCriteria); $this->assertEquals(3, $searchResult->getTotalCount()); $items = array_values($searchResult->getItems()); $this->assertEquals(1, count($items)); $this->assertEquals('attribute_for_search_3', $items[0]['attribute_code']); } }