ManagerTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Event\Test\Unit;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  8. use Magento\Framework\Event\InvokerInterface;
  9. use Magento\Framework\Event\ConfigInterface;
  10. use Magento\Framework\Event\Manager as EventManager;
  11. /**
  12. * Class ManagerTest
  13. *
  14. * @package Magento\Framework\Event
  15. */
  16. class ManagerTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /**
  19. * @var \PHPUnit_Framework_MockObject_MockObject
  20. */
  21. protected $invokerMock;
  22. /**
  23. * @var \PHPUnit_Framework_MockObject_MockObject
  24. */
  25. protected $eventFactory;
  26. /**
  27. * @var \PHPUnit_Framework_MockObject_MockObject
  28. */
  29. protected $event;
  30. /**
  31. * @var \PHPUnit_Framework_MockObject_MockObject
  32. */
  33. protected $wrapperFactory;
  34. /**
  35. * @var \PHPUnit_Framework_MockObject_MockObject
  36. */
  37. protected $observer;
  38. /**
  39. * @var \PHPUnit_Framework_MockObject_MockObject
  40. */
  41. protected $eventConfigMock;
  42. /**
  43. * @var \Magento\Framework\Event\Manager
  44. */
  45. protected $eventManager;
  46. /**
  47. * @var ObjectManagerHelper
  48. */
  49. protected $objectManagerHelper;
  50. protected function setUp()
  51. {
  52. $this->objectManagerHelper = new ObjectManagerHelper($this);
  53. $this->invokerMock = $this->createMock(InvokerInterface::class);
  54. $this->eventConfigMock = $this->createMock(ConfigInterface::class);
  55. $this->eventManager = $this->objectManagerHelper->getObject(
  56. EventManager::class,
  57. [
  58. 'invoker' => $this->invokerMock,
  59. 'eventConfig' => $this->eventConfigMock
  60. ]
  61. );
  62. }
  63. public function testDispatch()
  64. {
  65. $this->eventConfigMock->expects($this->once())
  66. ->method('getObservers')
  67. ->with('some_eventname')
  68. ->willReturn(['observer' => ['instance' => 'class', 'method' => 'method', 'name' => 'observer']]);
  69. $this->eventManager->dispatch('some_eventName', ['123']);
  70. }
  71. public function testDispatchWithEmptyEventObservers()
  72. {
  73. $this->eventConfigMock->expects($this->once())
  74. ->method('getObservers')
  75. ->with('some_event')
  76. ->willReturn([]);
  77. $this->invokerMock->expects($this->never())->method('dispatch');
  78. $this->eventManager->dispatch('some_event');
  79. }
  80. }