filterBuilder = Bootstrap::getObjectManager()->get(FilterBuilder::class); $this->filterGroupBuilder = Bootstrap::getObjectManager()->get(FilterGroupBuilder::class); $this->searchCriteriaBuilder = Bootstrap::getObjectManager()->get(SearchCriteriaBuilder::class); $this->searchAssets = Bootstrap::getObjectManager()->get(SearchAssetsInterface::class); } /** * Verify search asstes by searching with search criteria * * @dataProvider searchCriteriaProvider * @magentoDataFixture Magento/MediaGallery/_files/media_asset.php */ public function testExecute(array $searchCriteriaData): void { $titleFilter = $this->filterBuilder->setField($searchCriteriaData['field']) ->setConditionType($searchCriteriaData['conditionType']) ->setValue($searchCriteriaData['value']) ->create(); $searchCriteria = $this->searchCriteriaBuilder ->setFilterGroups([$this->filterGroupBuilder->setFilters([$titleFilter])->create()]) ->create(); $assets = $this->searchAssets->execute($searchCriteria); $this->assertCount(1, $assets); $this->assertEquals($assets[0]->getPath(), self::FIXTURE_ASSET_PATH); } /** * Search criteria params provider * * @return array */ public function searchCriteriaProvider(): array { return [ [ ['field' => 'id', 'conditionType' => 'eq', 'value' => 2020], ], [ ['field' => 'title', 'conditionType' => 'fulltext', 'value' => 'Img'], ], [ ['field' => 'content_type', 'conditionType' => 'eq', 'value' => 'image'] ], [ ['field' => 'description', 'conditionType' => 'fulltext', 'value' => 'description'] ] ]; } }