ConfigTest.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 of queue consumer configuration reading and parsing.
  10. *
  11. * @magentoCache config disabled
  12. */
  13. class ConfigTest 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 testGetConsumers()
  24. {
  25. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  26. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  27. $consumers = $config->getConsumers();
  28. $consumer = $config->getConsumer('consumer1');
  29. $this->assertEquals(
  30. $consumer,
  31. $consumers['consumer1'],
  32. 'Consumers received from collection and via getter must be the same'
  33. );
  34. $this->assertEquals('consumer1', $consumer->getName());
  35. $this->assertEquals('queue1', $consumer->getQueue());
  36. $this->assertEquals('amqp', $consumer->getConnection());
  37. $this->assertEquals(\Magento\Framework\MessageQueue\BatchConsumer::class, $consumer->getConsumerInstance());
  38. $this->assertEquals('100', $consumer->getMaxMessages());
  39. $handlers = $consumer->getHandlers();
  40. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  41. $this->assertCount(1, $handlers);
  42. $this->assertEquals('handlerMethodOne', $handlers[0]->getMethod());
  43. $this->assertEquals('Magento\TestModuleMessageQueueConfiguration\HandlerOne', $handlers[0]->getType());
  44. }
  45. public function testGetConsumerWithDefaultValues()
  46. {
  47. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  48. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  49. $consumer = $config->getConsumer('consumer5');
  50. $this->assertEquals('consumer5', $consumer->getName());
  51. $this->assertEquals('queue5', $consumer->getQueue());
  52. $this->assertEquals('amqp', $consumer->getConnection());
  53. $this->assertEquals(\Magento\Framework\MessageQueue\ConsumerInterface::class, $consumer->getConsumerInstance());
  54. $this->assertEquals(null, $consumer->getMaxMessages());
  55. $handlers = $consumer->getHandlers();
  56. $this->assertInstanceOf(HandlerIterator::class, $handlers);
  57. $this->assertCount(0, $handlers);
  58. }
  59. /**
  60. * @expectedException \Magento\Framework\Exception\LocalizedException
  61. * @expectedExceptionMessage Consumer 'undeclaredConsumer' is not declared.
  62. */
  63. public function testGetUndeclaredConsumer()
  64. {
  65. /** @var \Magento\Framework\MessageQueue\Consumer\ConfigInterface $config */
  66. $config = $this->objectManager->create(\Magento\Framework\MessageQueue\Consumer\ConfigInterface::class);
  67. $config->getConsumer('undeclaredConsumer');
  68. }
  69. }