LockTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\MessageQueue\Model\Plugin\ResourceModel;
  7. use Magento\TestFramework\Event\Magento;
  8. class LockTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \Magento\Framework\ObjectManagerInterface
  12. */
  13. protected $objectManager;
  14. /**
  15. * @var \Magento\Framework\MessageQueue\LockInterface
  16. */
  17. protected $lock;
  18. /**
  19. * @var \Magento\Framework\MessageQueue\Lock\WriterInterface
  20. */
  21. protected $writer;
  22. /**
  23. * @var \Magento\Framework\MessageQueue\Lock\ReaderInterface
  24. */
  25. protected $reader;
  26. protected function setUp()
  27. {
  28. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  29. $this->lock = $this->objectManager->get(\Magento\Framework\MessageQueue\LockInterface::class);
  30. $this->writer = $this->objectManager->get(\Magento\Framework\MessageQueue\Lock\WriterInterface::class);
  31. $this->reader = $this->objectManager->get(\Magento\Framework\MessageQueue\Lock\ReaderInterface::class);
  32. }
  33. /**
  34. * Test to ensure Queue Lock Table is cleared when maintenance mode transitions from on to off.
  35. *
  36. * @return void
  37. */
  38. public function testLockClearedByMaintenanceModeOff()
  39. {
  40. /** @var $maintenanceMode \Magento\Framework\App\MaintenanceMode */
  41. $maintenanceMode = $this->objectManager->get(\Magento\Framework\App\MaintenanceMode::class);
  42. $code = md5('consumer.name-1');
  43. $this->lock->setMessageCode($code);
  44. $this->writer->saveLock($this->lock);
  45. $this->reader->read($this->lock, $code);
  46. $id = $this->lock->getId();
  47. $maintenanceMode->set(true);
  48. $maintenanceMode->set(false);
  49. $this->reader->read($this->lock, $code);
  50. $emptyId = $this->lock->getId();
  51. $this->assertGreaterThanOrEqual('1', $id);
  52. $this->assertEmpty($emptyId);
  53. }
  54. }