12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\MessageQueue\Topology;
- use Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface;
- /**
- * Test of queue topology configuration reading and parsing.
- *
- * @magentoCache config disabled
- */
- class ConfigTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \Magento\Framework\ObjectManagerInterface
- */
- private $objectManager;
- protected function setUp()
- {
- $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
- }
- public function testGetExchangeByName()
- {
- /** @var \Magento\Framework\MessageQueue\Topology\ConfigInterface $config */
- $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Topology\ConfigInterface::class);
- $exchange = $config->getExchange('magento-topic-based-exchange1', 'amqp');
- $this->assertEquals('magento-topic-based-exchange1', $exchange->getName());
- $this->assertEquals('topic', $exchange->getType());
- $this->assertEquals('amqp', $exchange->getConnection());
- $exchangeArguments = $exchange->getArguments();
- $expectedArguments = ['alternate-exchange' => 'magento-log-exchange'];
- $this->assertEquals($expectedArguments, $exchangeArguments);
- /** @var BindingInterface $binding */
- $binding = current($exchange->getBindings());
- $this->assertEquals('topicBasedRouting1', $binding->getId());
- $this->assertEquals('anotherTopic1', $binding->getTopic());
- $this->assertEquals('queue', $binding->getDestinationType());
- $this->assertEquals('topic-queue1', $binding->getDestination());
- $bindingArguments = $binding->getArguments();
- $expectedArguments = ['argument1' => 'value'];
- $this->assertEquals($expectedArguments, $bindingArguments);
- }
- public function testGetExchangeByNameWithDefaultValues()
- {
- /** @var \Magento\Framework\MessageQueue\Topology\ConfigInterface $config */
- $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Topology\ConfigInterface::class);
- $exchange = $config->getExchange('magento-topic-based-exchange2', 'amqp');
- $this->assertEquals('magento-topic-based-exchange2', $exchange->getName());
- $this->assertEquals('topic', $exchange->getType());
- $this->assertEquals('amqp', $exchange->getConnection());
- $exchangeArguments = $exchange->getArguments();
- $expectedArguments = [
- 'alternate-exchange' => 'magento-log-exchange',
- 'arrayValue' => [
- 'element01' => '10',
- 'element02' => '20',
- ]
- ];
- $this->assertEquals($expectedArguments, $exchangeArguments);
- /** @var BindingInterface $binding */
- $binding = current($exchange->getBindings());
- $this->assertEquals('topicBasedRouting2', $binding->getId());
- $this->assertEquals('anotherTopic2', $binding->getTopic());
- $this->assertEquals('queue', $binding->getDestinationType());
- $this->assertEquals('topic-queue2', $binding->getDestination());
- $bindingArguments = $binding->getArguments();
- $expectedArguments = ['argument1' => 'value', 'argument2' => true, 'argument3' => 150];
- $this->assertEquals($expectedArguments, $bindingArguments);
- }
- public function testGetAllExchanges()
- {
- /** @var \Magento\Framework\MessageQueue\Topology\ConfigInterface $config */
- $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Topology\ConfigInterface::class);
- $exchanges = $config->getExchanges();
- $expectedResults = ['magento-topic-based-exchange1', 'magento-topic-based-exchange2'];
- $actual = [];
- foreach ($exchanges as $exchange) {
- $actual[] = $exchange->getName();
- }
- $this->assertEmpty(array_diff($expectedResults, $actual));
- }
- }
|