Skip to content

Commit 5abfc6d

Browse files
committed
B2B-2155: Use Redis as message queue
- enable the test to run with different queue connection.
1 parent 81340cb commit 5abfc6d

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ImportWithNotExistImagesTest.php

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,23 @@
77

88
namespace Magento\CatalogImportExport\Model\Import;
99

10+
use Magento\Catalog\Api\Data\ProductAttributeInterface;
11+
use Magento\Catalog\Api\Data\ProductInterface;
1012
use Magento\Catalog\Api\ProductRepositoryInterface;
1113
use Magento\Catalog\Model\Product;
1214
use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface;
1315
use Magento\CatalogImportExport\Model\Import\ProductImport;
1416
use Magento\Framework\App\Filesystem\DirectoryList;
15-
use Magento\Framework\File\Csv;
1617
use Magento\Framework\Filesystem;
1718
use Magento\Framework\Filesystem\Directory\Write;
18-
use Magento\Framework\MessageQueue\MessageEncoder;
19+
use Magento\Framework\MessageQueue\ConsumerFactory;
20+
use Magento\Framework\MessageQueue\PublisherInterface;
1921
use Magento\Framework\ObjectManagerInterface;
20-
use Magento\ImportExport\Model\Export\Consumer;
22+
use Magento\ImportExport\Model\Export\Entity\ExportInfo;
23+
use Magento\ImportExport\Model\Export\Entity\ExportInfoFactory;
2124
use Magento\ImportExport\Model\Import as ImportModel;
2225
use Magento\ImportExport\Model\Import\Source\Csv as CsvSource;
2326
use Magento\ImportExport\Model\Import\Source\CsvFactory;
24-
use Magento\MysqlMq\Model\Driver\Queue;
2527
use Magento\TestFramework\Helper\Bootstrap;
2628
use Magento\TestFramework\MysqlMq\DeleteTopicRelatedMessages;
2729
use PHPUnit\Framework\TestCase;
@@ -42,17 +44,8 @@ class ImportWithNotExistImagesTest extends TestCase
4244
/** @var ObjectManagerInterface */
4345
private $objectManager;
4446

45-
/** @var MessageEncoder */
46-
private $messageEncoder;
47-
48-
/** @var Consumer */
49-
private $consumer;
50-
51-
/** @var Queue */
52-
private $queue;
53-
54-
/** @var Csv */
55-
private $csvReader;
47+
/** @var ConsumerFactory */
48+
private $consumerFactory;
5649

5750
/** @var Write */
5851
private $directory;
@@ -93,10 +86,7 @@ protected function setUp(): void
9386
parent::setUp();
9487

9588
$this->objectManager = Bootstrap::getObjectManager();
96-
$this->queue = $this->objectManager->create(Queue::class, ['queueName' => 'export']);
97-
$this->messageEncoder = $this->objectManager->get(MessageEncoder::class);
98-
$this->consumer = $this->objectManager->get(Consumer::class);
99-
$this->csvReader = $this->objectManager->get(Csv::class);
89+
$this->consumerFactory = $this->objectManager->get(ConsumerFactory::class);
10090
$this->import = $this->objectManager->get(ProductFactory::class)->create();
10191
$this->csvFactory = $this->objectManager->get(CsvFactory::class);
10292
$this->fileSystem = $this->objectManager->get(Filesystem::class);
@@ -118,13 +108,27 @@ protected function tearDown(): void
118108
}
119109

120110
/**
121-
* @magentoDataFixture Magento/CatalogImportExport/_files/export_queue_product_with_images.php
111+
* @magentoDataFixture Magento/Catalog/_files/product_with_image.php
122112
*
123113
* @return void
124114
*/
125115
public function testImportWithUnexistingImages(): void
126116
{
117+
$cache = $this->objectManager->get(\Magento\Framework\App\Cache::class);
118+
$cache->clean();
119+
/** @var ExportInfoFactory $exportInfoFactory */
120+
$exportInfoFactory = $this->objectManager->get(ExportInfoFactory::class);
121+
$messagePublisher = $this->objectManager->get(PublisherInterface::class);
122+
/** @var ExportInfo $dataObject */
123+
$dataObject = $exportInfoFactory->create(
124+
'csv',
125+
ProductAttributeInterface::ENTITY_TYPE_CODE,
126+
[ProductInterface::SKU => 'simple'],
127+
[]
128+
);
129+
$messagePublisher->publish(self::TOPIC, $dataObject);
127130
$this->exportProducts();
131+
$this->filePath = 'export/' . $dataObject->getFileName();
128132
$this->assertTrue($this->directory->isExist($this->filePath), 'Products were not imported to file');
129133
$fileContent = $this->getCsvData($this->directory->getAbsolutePath($this->filePath));
130134
$this->assertCount(2, $fileContent);
@@ -147,10 +151,8 @@ public function testImportWithUnexistingImages(): void
147151
*/
148152
private function exportProducts(): void
149153
{
150-
$envelope = $this->queue->dequeue();
151-
$decodedMessage = $this->messageEncoder->decode(self::TOPIC, $envelope->getBody());
152-
$this->consumer->process($decodedMessage);
153-
$this->filePath = 'export/' . $decodedMessage->getFileName();
154+
$consumer = $this->consumerFactory->get('exportProcessor');
155+
$consumer->process(1);
154156
}
155157

156158
/**

0 commit comments

Comments
 (0)