ObserverTest.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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\Event\Observer;
  8. /**
  9. * Class ConfigTest
  10. *
  11. * @package Magento\Framework\Event
  12. */
  13. class ObserverTest extends \PHPUnit\Framework\TestCase
  14. {
  15. /**
  16. * @var Observer
  17. */
  18. protected $observer;
  19. protected function setUp()
  20. {
  21. $this->observer = new Observer();
  22. }
  23. public function testIsValidFor()
  24. {
  25. $eventName = 'eventName';
  26. $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getName']);
  27. $eventMock->expects($this->once())
  28. ->method('getName')
  29. ->will($this->returnValue($eventName));
  30. $this->observer->setData('event_name', $eventName);
  31. $this->assertTrue($this->observer->isValidFor($eventMock));
  32. }
  33. public function testGetName()
  34. {
  35. $name = 'some_name';
  36. $this->observer->setData('name', $name);
  37. $this->assertEquals($name, $this->observer->getName());
  38. }
  39. public function testSetName()
  40. {
  41. $name = 'some_name';
  42. $this->observer->setName($name);
  43. $result = $this->observer->getData('name');
  44. $this->assertEquals($result, $this->observer->getName($name));
  45. }
  46. public function testGetEventName()
  47. {
  48. $name = 'eventName';
  49. $this->observer->setData('event_name', $name);
  50. $this->assertEquals($name, $this->observer->getEventName());
  51. }
  52. public function testSetEventName()
  53. {
  54. $name = 'eventName';
  55. $this->observer->setEventName($name);
  56. $result = $this->observer->getData('event_name');
  57. $this->assertEquals($result, $this->observer->getEventName($name));
  58. }
  59. public function testGetCallback()
  60. {
  61. $callback = 'callbackName';
  62. $this->observer->setData('callback', $callback);
  63. $this->assertEquals($callback, $this->observer->getCallback());
  64. }
  65. public function testSetCallback()
  66. {
  67. $callback = 'callbackName';
  68. $this->observer->setCallback($callback);
  69. $result = $this->observer->getData('callback');
  70. $this->assertEquals($result, $this->observer->getCallback($callback));
  71. }
  72. public function testGetEvent()
  73. {
  74. $event = 'someEvent';
  75. $this->observer->setData('event', $event);
  76. $this->assertEquals($event, $this->observer->getEvent());
  77. }
  78. public function testSetEvent()
  79. {
  80. $event = 'someEvent';
  81. $this->observer->setEvent($event);
  82. $result = $this->observer->getData('event');
  83. $this->assertEquals($result, $this->observer->getEvent($event));
  84. }
  85. public function testDispatch()
  86. {
  87. $eventName = 'eventName';
  88. $callbackName = 'testCallback';
  89. $callbackMock = [$this->createPartialMock(\stdClass::class, [$callbackName]), $callbackName];
  90. $callbackMock[0]->expects($this->once())
  91. ->method('testCallback')
  92. ->will($this->returnValue(true));
  93. $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getName']);
  94. $eventMock->expects($this->once())
  95. ->method('getName')
  96. ->will($this->returnValue($eventName));
  97. $this->observer->setData('event_name', $eventName);
  98. $this->observer->setData('callback', $callbackMock);
  99. $this->observer->dispatch($eventMock);
  100. }
  101. public function testDispatchNotValidEvent()
  102. {
  103. $eventName = 'eventName';
  104. $notValidName = 'event_name_2';
  105. $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getName']);
  106. $eventMock->expects($this->once())
  107. ->method('getName')
  108. ->will($this->returnValue($eventName));
  109. $this->observer->setData('event_name', $notValidName);
  110. $this->observer->dispatch($eventMock);
  111. }
  112. }