MessageProcessorLoaderTest.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  8. /**
  9. * Unit test for MessageProcessorLoader.
  10. */
  11. class MessageProcessorLoaderTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\MessageQueue\MessageProcessorInterface|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. private $mergedMessageProcessor;
  17. /**
  18. * @var \Magento\Framework\MessageQueue\MessageProcessorInterface|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. private $defaultMessageProcessor;
  21. /**
  22. * @var \Magento\Framework\MessageQueue\MessageProcessorLoader
  23. */
  24. private $messageProcessorLoader;
  25. /**
  26. * Set up.
  27. *
  28. * @return void
  29. */
  30. protected function setUp()
  31. {
  32. $this->mergedMessageProcessor = $this
  33. ->getMockBuilder(\Magento\Framework\MessageQueue\MessageProcessorInterface::class)
  34. ->disableOriginalConstructor()
  35. ->getMockForAbstractClass();
  36. $this->defaultMessageProcessor = $this
  37. ->getMockBuilder(\Magento\Framework\MessageQueue\MessageProcessorInterface::class)
  38. ->disableOriginalConstructor()
  39. ->getMockForAbstractClass();
  40. $objectManagerHelper = new ObjectManagerHelper($this);
  41. $this->messageProcessorLoader = $objectManagerHelper->getObject(
  42. \Magento\Framework\MessageQueue\MessageProcessorLoader::class,
  43. [
  44. 'mergedMessageProcessor' => $this->mergedMessageProcessor,
  45. 'defaultMessageProcessor' => $this->defaultMessageProcessor
  46. ]
  47. );
  48. }
  49. /**
  50. * Test for load().
  51. *
  52. * @param $message
  53. * @dataProvider loadDataProvider
  54. */
  55. public function testLoad($message)
  56. {
  57. $messageTopic = 'topic';
  58. $messages = [
  59. $messageTopic => [$message]
  60. ];
  61. $this->assertInstanceOf(
  62. \Magento\Framework\MessageQueue\MessageProcessorInterface::class,
  63. $this->messageProcessorLoader->load($messages)
  64. );
  65. }
  66. /**
  67. * DataProvider for load().
  68. *
  69. * @return array
  70. */
  71. public function loadDataProvider()
  72. {
  73. $mergedMessage = $this->getMockBuilder(\Magento\Framework\MessageQueue\MergedMessageInterface::class)
  74. ->disableOriginalConstructor()
  75. ->getMockForAbstractClass();
  76. $message = $this->getMockBuilder(\Magento\Framework\MessageQueue\EnvelopeInterface::class)
  77. ->disableOriginalConstructor()
  78. ->getMockForAbstractClass();
  79. return [
  80. [$mergedMessage],
  81. [$message]
  82. ];
  83. }
  84. }