EventTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Test\Unit;
  7. use \Magento\Framework\Event;
  8. use Magento\Framework\Event\Observer;
  9. use Magento\Framework\Event\Observer\Collection;
  10. /**
  11. * Class Event
  12. *
  13. * @package Magento\Framework
  14. */
  15. class EventTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /**
  18. * @var \Magento\Framework\Event
  19. */
  20. protected $event;
  21. /**
  22. * @var Collection
  23. */
  24. protected $observers;
  25. /**
  26. * @var \Magento\Framework\Event\Observer
  27. */
  28. protected $observer;
  29. protected function setUp()
  30. {
  31. $data = [
  32. 'name' => 'ObserverName',
  33. 'block' => 'testBlockName',
  34. ];
  35. $this->event = new Event($data);
  36. $this->observers = new Collection();
  37. $this->observer = new Observer($data);
  38. $this->observers->addObserver($this->observer);
  39. }
  40. protected function tearDown()
  41. {
  42. unset($this->event);
  43. }
  44. public function testGetObservers()
  45. {
  46. $this->event->addObserver($this->observer);
  47. $expected = $this->observers;
  48. $result = $this->event->getObservers();
  49. $this->assertEquals($expected, $result);
  50. }
  51. public function testAddObservers()
  52. {
  53. $data = ['name' => 'Add New Observer'];
  54. $observer = new Observer($data);
  55. $this->event->addObserver($observer);
  56. $actual = $this->event->getObservers()->getObserverByName($data['name']);
  57. $this->assertSame($observer, $actual);
  58. }
  59. public function testRemoveObserverByName()
  60. {
  61. $data = [
  62. 'name' => 'ObserverName',
  63. ];
  64. $this->event->addObserver($this->observer);
  65. $expected = \Magento\Framework\Event\Observer\Collection::class;
  66. $actual = $this->event->getObservers()->removeObserverByName($data['name']);
  67. $this->assertInstanceOf($expected, $actual);
  68. }
  69. public function testDispatch()
  70. {
  71. $this->assertInstanceOf(\Magento\Framework\Event::class, $this->event->dispatch());
  72. }
  73. public function testGetName()
  74. {
  75. $data = 'ObserverName';
  76. $this->assertEquals($data, $this->event->getName());
  77. $this->event = new Event();
  78. $this->assertNull($this->event->getName());
  79. }
  80. public function testGetBlock()
  81. {
  82. $block = 'testBlockName';
  83. $this->assertEquals($block, $this->event->getBlock());
  84. }
  85. }