|
7 | 7 |
|
8 | 8 | namespace Magento\CatalogSearch\Model\Indexer\Fulltext\Action;
|
9 | 9 |
|
| 10 | +use Magento\Catalog\Model\Product; |
| 11 | +use Magento\Catalog\Model\ProductRepository as ProductRepository; |
| 12 | +use Magento\CatalogSearch\Model\Indexer\Fulltext; |
| 13 | +use Magento\Framework\Api\Search\Document as SearchDocument; |
| 14 | +use Magento\Framework\Indexer\IndexerRegistry; |
| 15 | +use Magento\Framework\Search\AdapterInterface as AdapterInterface; |
| 16 | +use Magento\Framework\Search\Request\Builder as SearchRequestBuilder; |
| 17 | +use Magento\Framework\Search\Request\Config as SearchRequestConfig; |
| 18 | +use Magento\Search\Model\AdapterFactory as AdapterFactory; |
| 19 | +use Magento\TestFramework\Helper\Bootstrap; |
| 20 | +use Magento\TestFramework\ObjectManager; |
| 21 | + |
10 | 22 | class DataProviderTest extends \PHPUnit\Framework\TestCase
|
11 | 23 | {
|
| 24 | + /** |
| 25 | + * @inheritdoc |
| 26 | + */ |
| 27 | + public static function setUpBeforeClass() |
| 28 | + { |
| 29 | + /* |
| 30 | + * Due to insufficient search engine isolation for Elasticsearch, this class must explicitly perform |
| 31 | + * a fulltext reindex prior to running its tests. |
| 32 | + * |
| 33 | + * This should be removed upon completing MC-19455. |
| 34 | + */ |
| 35 | + $indexRegistry = Bootstrap::getObjectManager()->get(IndexerRegistry::class); |
| 36 | + $fulltextIndexer = $indexRegistry->get(Fulltext::INDEXER_ID); |
| 37 | + $fulltextIndexer->reindexAll(); |
| 38 | + } |
| 39 | + |
12 | 40 | /**
|
13 | 41 | * @magentoDataFixture Magento/CatalogSearch/_files/product_for_search.php
|
14 | 42 | * @magentoDbIsolation disabled
|
15 | 43 | */
|
16 | 44 | public function testSearchProductByAttribute()
|
17 | 45 | {
|
18 |
| - /** @var $objectManager \Magento\TestFramework\ObjectManager */ |
19 |
| - $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); |
| 46 | + /** @var ObjectManager $objectManager */ |
| 47 | + $objectManager = Bootstrap::getObjectManager(); |
| 48 | + |
| 49 | + /** @var SearchRequestConfig $config */ |
| 50 | + $config = $objectManager->create(SearchRequestConfig::class); |
20 | 51 |
|
21 |
| - $config = $objectManager->create(\Magento\Framework\Search\Request\Config::class); |
22 |
| - /** @var \Magento\Framework\Search\Request\Builder $requestBuilder */ |
| 52 | + /** @var SearchRequestBuilder $requestBuilder */ |
23 | 53 | $requestBuilder = $objectManager->create(
|
24 |
| - \Magento\Framework\Search\Request\Builder::class, |
| 54 | + SearchRequestBuilder::class, |
25 | 55 | ['config' => $config]
|
26 | 56 | );
|
| 57 | + |
27 | 58 | $requestBuilder->bind('search_term', 'VALUE1');
|
28 | 59 | $requestBuilder->setRequestName('quick_search_container');
|
29 | 60 | $queryRequest = $requestBuilder->create();
|
30 |
| - /** @var \Magento\Framework\Search\Adapter\Mysql\Adapter $adapter */ |
31 |
| - $adapterFactory = $objectManager->create(\Magento\Search\Model\AdapterFactory::class); |
| 61 | + |
| 62 | + /** @var AdapterInterface $adapter */ |
| 63 | + $adapterFactory = $objectManager->create(AdapterFactory::class); |
32 | 64 | $adapter = $adapterFactory->create();
|
33 | 65 | $queryResponse = $adapter->query($queryRequest);
|
34 | 66 | $actualIds = [];
|
| 67 | + |
35 | 68 | foreach ($queryResponse as $document) {
|
36 |
| - /** @var \Magento\Framework\Api\Search\Document $document */ |
| 69 | + /** @var SearchDocument $document */ |
37 | 70 | $actualIds[] = $document->getId();
|
38 | 71 | }
|
39 | 72 |
|
40 |
| - /** @var \Magento\Catalog\Model\Product $product */ |
41 |
| - $product = $objectManager->create(\Magento\Catalog\Model\ProductRepository::class)->get('simple'); |
| 73 | + /** @var Product $product */ |
| 74 | + $product = $objectManager->create(ProductRepository::class)->get('simple'); |
42 | 75 | $this->assertContains($product->getId(), $actualIds, 'Product not found by searchable attribute.');
|
43 | 76 | }
|
44 | 77 | }
|
0 commit comments