MessageControllerTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. /**
  8. * Unit test for MessageController class.
  9. *
  10. */
  11. class MessageControllerTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\MessageQueue\LockInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. private $lockFactory;
  17. /**
  18. * @var \Magento\Framework\MessageQueue\MessageController
  19. */
  20. private $messageController;
  21. /**
  22. * Set up.
  23. *
  24. * @return void
  25. */
  26. protected function setUp()
  27. {
  28. $this->lockFactory = $this->getMockBuilder(\Magento\Framework\MessageQueue\LockInterfaceFactory::class)
  29. ->disableOriginalConstructor()->setMethods(['create'])->getMock();
  30. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  31. $this->messageController = $objectManager->getObject(
  32. \Magento\Framework\MessageQueue\MessageController::class,
  33. [
  34. 'lockFactory' => $this->lockFactory
  35. ]
  36. );
  37. }
  38. /**
  39. * Test for lock method with NotFoundException.
  40. *
  41. * @return void
  42. */
  43. public function testLockWithNotFoundException()
  44. {
  45. $properties = [];
  46. $consumerName = '';
  47. $this->expectException(\Magento\Framework\Exception\NotFoundException::class);
  48. $this->expectExceptionMessage("Property 'message_id' not found in properties.");
  49. $this->lockFactory->expects($this->once())->method('create');
  50. $envelope = $this->getMockBuilder(\Magento\Framework\MessageQueue\EnvelopeInterface::class)
  51. ->disableArgumentCloning()->getMock();
  52. $envelope->expects($this->once())->method('getProperties')->willReturn($properties);
  53. $this->messageController->lock($envelope, $consumerName);
  54. }
  55. }