Skip to content

Commit 9c046e7

Browse files
committed
B2B-2155: Use Redis as message queue
- fix ImportExport module integration tests
1 parent ebce95b commit 9c046e7

File tree

2 files changed

+36
-22
lines changed

2 files changed

+36
-22
lines changed

dev/tests/integration/testsuite/Magento/ImportExport/Controller/Adminhtml/Export/ExportTest.php

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99

1010
use Magento\Catalog\Api\Data\ProductAttributeInterface;
1111
use Magento\Framework\App\Request\Http;
12+
use Magento\Framework\MessageQueue\DefaultValueProvider;
13+
use Magento\Framework\MessageQueue\Envelope;
14+
use Magento\Framework\MessageQueue\QueueRepository;
1215
use Magento\Framework\Serialize\SerializerInterface;
13-
use Magento\MysqlMq\Model\QueueManagement;
14-
use Magento\MysqlMq\Model\ResourceModel\Message;
1516
use Magento\TestFramework\MysqlMq\DeleteTopicRelatedMessages;
1617
use Magento\TestFramework\TestCase\AbstractBackendController;
1718

@@ -27,30 +28,33 @@ class ExportTest extends AbstractBackendController
2728
{
2829
private const TOPIC_NAME = 'import_export.export';
2930

30-
/** @var QueueManagement */
31-
private $queueManagement;
32-
33-
/** @var Message */
34-
private $queueMessageResource;
35-
3631
/** @var SerializerInterface */
3732
private $json;
3833

3934
/** @var DeleteTopicRelatedMessages */
4035
private $deleteTopicRelatedMessages;
4136

37+
/**
38+
* @var QueueRepository
39+
*/
40+
private $queueRepository;
41+
42+
/**
43+
* @var DefaultValueProvider
44+
*/
45+
private $defaultValueProvider;
46+
4247
/**
4348
* @inheridoc
4449
*/
4550
protected function setUp(): void
4651
{
4752
parent::setUp();
48-
49-
$this->queueManagement = $this->_objectManager->get(QueueManagement::class);
50-
$this->queueMessageResource = $this->_objectManager->get(Message::class);
5153
$this->json = $this->_objectManager->get(SerializerInterface::class);
5254
$this->deleteTopicRelatedMessages = $this->_objectManager->get(DeleteTopicRelatedMessages::class);
5355
$this->deleteTopicRelatedMessages->execute(self::TOPIC_NAME);
56+
$this->queueRepository = $this->_objectManager->get(QueueRepository::class);
57+
$this->defaultValueProvider = $this->_objectManager->get(DefaultValueProvider::class);
5458
}
5559

5660
/**
@@ -85,11 +89,11 @@ public function testExecute(): void
8589
$this->dispatch('backend/admin/export/export');
8690
$this->assertSessionMessages($this->containsEqual($expectedSessionMessage));
8791
$this->assertRedirect($this->stringContains('/export/index/key/'));
88-
$messages = $this->queueManagement->readMessages('export');
89-
$this->assertCount(1, $messages);
90-
$message = reset($messages);
91-
$this->assertEquals(self::TOPIC_NAME, $message[QueueManagement::MESSAGE_TOPIC]);
92-
$body = $this->json->unserialize($message[QueueManagement::MESSAGE_BODY]);
92+
$queue = $this->queueRepository->get($this->defaultValueProvider->getConnection(), 'export');
93+
/** @var Envelope $message */
94+
$message = $queue->dequeue();
95+
$this->assertEquals(self::TOPIC_NAME, $message->getProperties()['topic_name']);
96+
$body = $this->json->unserialize($message->getBody());
9397
$this->assertStringContainsString(ProductAttributeInterface::ENTITY_TYPE_CODE, $body['file_name']);
9498
$this->assertEquals($fileFormat, $body['file_format']);
9599
$actualFilter = $this->json->unserialize($body['export_filter']);

dev/tests/integration/testsuite/Magento/ImportExport/Model/Export/ConsumerTest.php

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111
use Magento\Framework\App\Filesystem\DirectoryList;
1212
use Magento\Framework\Filesystem;
1313
use Magento\Framework\Filesystem\Directory\WriteInterface;
14+
use Magento\Framework\MessageQueue\DefaultValueProvider;
1415
use Magento\Framework\MessageQueue\MessageEncoder;
16+
use Magento\Framework\MessageQueue\QueueRepository;
1517
use Magento\Framework\ObjectManagerInterface;
16-
use Magento\MysqlMq\Model\Driver\Queue;
1718
use Magento\TestFramework\Helper\Bootstrap;
1819
use PHPUnit\Framework\TestCase;
1920

@@ -36,15 +37,22 @@ class ConsumerTest extends TestCase
3637
/** @var Consumer */
3738
private $consumer;
3839

39-
/** @var Queue */
40-
private $queue;
41-
4240
/** @var WriteInterface */
4341
private $directory;
4442

4543
/** @var string */
4644
private $filePath;
4745

46+
/**
47+
* @var QueueRepository
48+
*/
49+
private $queueRepository;
50+
51+
/**
52+
* @var DefaultValueProvider
53+
*/
54+
private $defaultValueProvider;
55+
4856
/**
4957
* @inheritdoc
5058
*/
@@ -53,11 +61,12 @@ protected function setUp(): void
5361
parent::setUp();
5462

5563
$this->objectManager = Bootstrap::getObjectManager();
56-
$this->queue = $this->objectManager->create(Queue::class, ['queueName' => 'export']);
5764
$this->messageEncoder = $this->objectManager->get(MessageEncoder::class);
5865
$this->consumer = $this->objectManager->get(Consumer::class);
5966
$filesystem = $this->objectManager->get(Filesystem::class);
6067
$this->directory = $filesystem->getDirectoryWrite(DirectoryList::VAR_IMPORT_EXPORT);
68+
$this->queueRepository = $this->objectManager->get(QueueRepository::class);
69+
$this->defaultValueProvider = $this->objectManager->get(DefaultValueProvider::class);
6170
}
6271

6372
/**
@@ -82,7 +91,8 @@ protected function tearDown(): void
8291
*/
8392
public function testProcess(): void
8493
{
85-
$envelope = $this->queue->dequeue();
94+
$queue = $this->queueRepository->get($this->defaultValueProvider->getConnection(), 'export');
95+
$envelope = $queue->dequeue();
8696
$decodedMessage = $this->messageEncoder->decode('import_export.export', $envelope->getBody());
8797
$this->consumer->process($decodedMessage);
8898
$this->filePath = 'export/' . $decodedMessage->getFileName();

0 commit comments

Comments
 (0)