Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CollectionTest.php
Go to the documentation of this file.
1 <?php
10 
11 use \Magento\Framework\Event\Collection;
12 
14 
20 class CollectionTest extends \PHPUnit\Framework\TestCase
21 {
25  protected $collection;
26 
27  /*
28  * Array of events in the collection
29  *
30  * @var array
31  */
32  protected $events;
33 
37  protected $observers;
38 
39  protected function setUp()
40  {
41  $this->events = [
42  'eventName1' => 'someEvent1',
43  'eventName2' => 'someEvent2',
44  'eventName3' => 'some_event_3',
45  ];
46  $this->observers = new \Magento\Framework\Event\Observer\Collection();
47  $this->collection = new Collection($this->events, $this->observers);
48  }
49 
50  public function testGetAllEvents()
51  {
52  $this->assertEquals($this->events, $this->collection->getAllEvents());
53  }
54 
55  public function testGetGlobalObservers()
56  {
57  $this->assertEquals($this->observers, $this->collection->getGlobalObservers());
58  }
59 
60  public function testGetEventByName()
61  {
62  $eventName = 'eventName1';
63  $this->assertEquals($this->events[$eventName], $this->collection->getEventByName($eventName));
64  }
65 
66  public function testGetEventByNameNotSet()
67  {
68  $eventName = 'eventName';
69  $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getName']);
70  $eventMock->setData('name', $eventName);
71  $eventObj = $this->collection->getEventByName($eventName);
72  $this->assertEquals($eventMock->getData('name'), $eventObj->getName());
73  }
74 
75  public function testAddEvent()
76  {
77  $eventName = 'eventName';
78  $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getName']);
79  $eventMock->expects($this->once())
80  ->method('getName')
81  ->will($this->returnValue($eventName));
82  $this->collection->addEvent($eventMock);
83  }
84 
85  public function testAddObserver()
86  {
87  $testEvent = 'testEvent';
88  $observer = new \Magento\Framework\Event\Observer();
89  $observer->setData('event_name', $testEvent);
90 
91  $eventName = 'eventName';
92  $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getName']);
93  $eventMock->setData('name', $eventName);
94 
95  $this->collection->addObserver($observer);
96  $this->assertNotEmpty($this->collection->getEventByName($testEvent)->getObservers());
97  }
98 
99  public function testAddObserverNoEventName()
100  {
101  $observer = new \Magento\Framework\Event\Observer();
102  $this->collection->addObserver($observer);
103  $this->assertNotEmpty($this->collection->getGlobalObservers());
104  }
105 
106  public function testDispatch()
107  {
108  $data = ['someData'];
109  $eventName = 'eventName';
110  $event = new \Magento\Framework\Event($data);
111  $event->setData('name', $eventName);
112  $this->collection->dispatch($eventName, $data);
113  }
114 }