DeprecatedConfigTest.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\MessageQueue\Consumer;
  7. use Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\Handler\Iterator as HandlerIterator;
  8. /**
  9. * Test access to consumer configuration declared in deprecated queue.xml configs using Consumer\ConfigInterface.
  10. *
  11. * @magentoCache config disabled
  12. */
  13. class DeprecatedConfigTest extends \PHPUnit\Framework\TestCase
  14. {
  15. /**
  16. * @var \Magento\Framework\ObjectManagerInterface
  17. */
  18. private $objectManager;
  19. protected function setUp()
  20. {
  21. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  22. }
  23. public function testGetConsumerMultipleHandlersFromCommunicationConfig()
  24. {
  25. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  26. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  27. $consumer = $config->getConsumer('deprecatedConfigAsyncBoolConsumer');
  28. $this->assertEquals('deprecatedConfigAsyncBoolConsumer', $consumer->getName());
  29. $this->assertEquals('deprecated.config.queue.2', $consumer->getQueue());
  30. $this->assertEquals('db', $consumer->getConnection());
  31. $this->assertEquals(\Magento\Framework\MessageQueue\ConsumerInterface::class, $consumer->getConsumerInstance());
  32. $this->assertEquals(null, $consumer->getMaxMessages());
  33. $handlers = $consumer->getHandlers();
  34. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  35. $this->assertCount(2, $handlers);
  36. $this->assertEquals('methodWithBoolParam', $handlers[0]->getMethod());
  37. $this->assertEquals(\Magento\TestModuleMessageQueueConfiguration\AsyncHandler::class, $handlers[0]->getType());
  38. $this->assertEquals('methodWithMixedParam', $handlers[1]->getMethod());
  39. $this->assertEquals(\Magento\TestModuleMessageQueueConfiguration\AsyncHandler::class, $handlers[1]->getType());
  40. }
  41. public function testGetConsumerCustomHandler()
  42. {
  43. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  44. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  45. $consumer = $config->getConsumer('deprecatedConfigAsyncMixedConsumer');
  46. $this->assertEquals('deprecatedConfigAsyncMixedConsumer', $consumer->getName());
  47. $this->assertEquals('deprecated.config.queue.3', $consumer->getQueue());
  48. $this->assertEquals('amqp', $consumer->getConnection());
  49. $this->assertEquals(\Magento\Framework\MessageQueue\ConsumerInterface::class, $consumer->getConsumerInstance());
  50. $this->assertEquals(null, $consumer->getMaxMessages());
  51. $handlers = $consumer->getHandlers();
  52. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  53. $this->assertCount(1, $handlers);
  54. $this->assertEquals('methodWithMixedParam', $handlers[0]->getMethod());
  55. $this->assertEquals(\Magento\TestModuleMessageQueueConfiguration\AsyncHandler::class, $handlers[0]->getType());
  56. }
  57. public function testGetConsumerCustomConnectionSync()
  58. {
  59. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  60. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  61. $consumer = $config->getConsumer('deprecatedConfigSyncBoolConsumer');
  62. $this->assertEquals('deprecatedConfigSyncBoolConsumer', $consumer->getName());
  63. $this->assertEquals('deprecated.config.queue.4', $consumer->getQueue());
  64. $this->assertEquals('amqp', $consumer->getConnection());
  65. $this->assertEquals(\Magento\Framework\MessageQueue\ConsumerInterface::class, $consumer->getConsumerInstance());
  66. $this->assertEquals(null, $consumer->getMaxMessages());
  67. $handlers = $consumer->getHandlers();
  68. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  69. $this->assertCount(1, $handlers);
  70. $this->assertEquals('methodWithBoolParam', $handlers[0]->getMethod());
  71. $this->assertEquals(\Magento\TestModuleMessageQueueConfiguration\SyncHandler::class, $handlers[0]->getType());
  72. }
  73. public function testGetConsumerCustomConsumerAndMaxMessages()
  74. {
  75. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  76. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  77. $consumer = $config->getConsumer('deprecatedConfigAsyncStringConsumer');
  78. $this->assertEquals('deprecatedConfigAsyncStringConsumer', $consumer->getName());
  79. $this->assertEquals('deprecated.config.queue.1', $consumer->getQueue());
  80. $this->assertEquals('amqp', $consumer->getConnection());
  81. $this->assertEquals(\Magento\Framework\MessageQueue\BatchConsumer::class, $consumer->getConsumerInstance());
  82. $this->assertEquals(200, $consumer->getMaxMessages());
  83. $handlers = $consumer->getHandlers();
  84. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  85. $this->assertCount(0, $handlers);
  86. }
  87. public function testGetOverlapWithQueueConfig()
  88. {
  89. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  90. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  91. $consumer = $config->getConsumer('overlappingConsumerDeclaration');
  92. $this->assertEquals('overlappingConsumerDeclaration', $consumer->getName());
  93. $this->assertEquals('consumer.config.queue', $consumer->getQueue());
  94. $this->assertEquals('amqp', $consumer->getConnection());
  95. $this->assertEquals(\Magento\Framework\MessageQueue\ConsumerInterface::class, $consumer->getConsumerInstance());
  96. $this->assertEquals(null, $consumer->getMaxMessages());
  97. $handlers = $consumer->getHandlers();
  98. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  99. $this->assertCount(0, $handlers);
  100. }
  101. }