ConfigReaderPluginTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\MessageQueue\Test\Unit\Config\Consumer;
  7. use Magento\Framework\MessageQueue\Config\Consumer\ConfigReaderPlugin as ConsumerConfigReaderPlugin;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. use Magento\Framework\MessageQueue\ConfigInterface;
  10. use Magento\Framework\MessageQueue\Consumer\Config\CompositeReader as ConsumerConfigCompositeReader;
  11. class ConfigReaderPluginTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var ConsumerConfigReaderPlugin
  15. */
  16. private $plugin;
  17. /**
  18. * @var ObjectManagerHelper
  19. */
  20. private $objectManagerHelper;
  21. /**
  22. * @var ConfigInterface|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. private $configMock;
  25. /**
  26. * @var ConsumerConfigCompositeReader|\PHPUnit_Framework_MockObject_MockObject
  27. */
  28. private $subjectMock;
  29. protected function setUp()
  30. {
  31. $this->configMock = $this->getMockBuilder(ConfigInterface::class)
  32. ->getMockForAbstractClass();
  33. $this->subjectMock = $this->getMockBuilder(ConsumerConfigCompositeReader::class)
  34. ->disableOriginalConstructor()
  35. ->getMock();
  36. $this->objectManagerHelper = new ObjectManagerHelper($this);
  37. $this->plugin = $this->objectManagerHelper->getObject(
  38. ConsumerConfigReaderPlugin::class,
  39. ['config' => $this->configMock]
  40. );
  41. }
  42. public function testAfterRead()
  43. {
  44. $result = ['consumer0' => []];
  45. $consumers = [
  46. [
  47. 'name' => 'consumer1',
  48. 'handlers' => [
  49. ['handlerConfig1_1_1', 'handlerConfig1_1_2'],
  50. ['handlerConfig1_2_1']
  51. ],
  52. 'queue' => ['item1_1', 'item1_2'],
  53. 'instance_type' => 'type1',
  54. 'connection' => 'connection1',
  55. 'max_messages' => 100
  56. ],
  57. [
  58. 'name' => 'consumer2',
  59. 'handlers' => [],
  60. 'queue' => ['item2_1'],
  61. 'instance_type' => 'type2',
  62. 'connection' => 'connection2',
  63. 'max_messages' => 2
  64. ]
  65. ];
  66. $finalResult = [
  67. 'consumer1' => [
  68. 'name' => 'consumer1',
  69. 'queue' => ['item1_1', 'item1_2'],
  70. 'consumerInstance' => 'type1',
  71. 'handlers' => ['handlerConfig1_1_1', 'handlerConfig1_1_2', 'handlerConfig1_2_1'],
  72. 'connection' => 'connection1',
  73. 'maxMessages' => 100
  74. ],
  75. 'consumer2' => [
  76. 'name' => 'consumer2',
  77. 'queue' => ['item2_1'],
  78. 'consumerInstance' => 'type2',
  79. 'handlers' => [],
  80. 'connection' => 'connection2',
  81. 'maxMessages' => 2
  82. ],
  83. 'consumer0' => []
  84. ];
  85. $this->configMock->expects(static::atLeastOnce())
  86. ->method('getConsumers')
  87. ->willReturn($consumers);
  88. $this->assertEquals($finalResult, $this->plugin->afterRead($this->subjectMock, $result));
  89. }
  90. }