Skip to content

Commit

Permalink
Renaming event stack to event list.
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Krämer committed May 31, 2016
1 parent 06af84b commit 75a9863
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 74 deletions.
8 changes: 4 additions & 4 deletions src/Event/EventList.php
Expand Up @@ -15,9 +15,9 @@
namespace Cake\Event;

/**
* The Event Stack
* The Event List
*/
class EventStack implements \ArrayAccess, \Countable
class EventList implements \ArrayAccess, \Countable
{

/**
Expand All @@ -38,7 +38,7 @@ public function flush()
}

/**
* Adds an event to the list when stacking is enabled.
* Adds an event to the list when event listing is enabled.
*
* @param \Cake\Event\Event $event An event to the list of dispatched events.
* @return void
Expand Down Expand Up @@ -112,7 +112,7 @@ public function count()
}

/**
* Checks if an event is in the stack.
* Checks if an event is in the list.
*
* @param string $name Event name.
* @return bool
Expand Down
48 changes: 24 additions & 24 deletions src/Event/EventManager.php
Expand Up @@ -56,16 +56,16 @@ class EventManager
/**
* The event stack object.
*
* @var \Cake\Event\EventStack|null
* @var \Cake\Event\EventList|null
*/
protected $_eventStack;
protected $_eventList;

/**
* Enables automatic adding of events to the event stack object if it is present.
*
* @param bool
*/
protected $_stackEvents = false;
protected $_listEvents = false;

/**
* Returns the globally available instance of a Cake\Event\EventManager
Expand Down Expand Up @@ -360,8 +360,8 @@ public function dispatch($event)

$listeners = $this->listeners($event->name());
if (empty($listeners)) {
if ($this->_stackEvents) {
$this->stackEvent($event);
if ($this->_listEvents) {
$this->listEvent($event);
}
return $event;
}
Expand All @@ -379,8 +379,8 @@ public function dispatch($event)
}
}

if ($this->_stackEvents) {
$this->stackEvent($event);
if ($this->_listEvents) {
$this->listEvent($event);
}
return $event;
}
Expand Down Expand Up @@ -482,13 +482,13 @@ public function matchingListeners($eventKeyPattern)
}

/**
* Returns the event stack.
* Returns the event list.
*
* @return array
*/
public function eventStack()
public function eventList()
{
return $this->_eventStack;
return $this->_eventList;
}

/**
Expand All @@ -497,10 +497,10 @@ public function eventStack()
* @param \Cake\Event\Event $event An event to add to the stack.
* @return void
*/
public function stackEvent(Event $event)
public function listEvent(Event $event)
{
if ($this->_eventStack) {
$this->_eventStack->add($event);
if ($this->_eventList) {
$this->_eventList->add($event);
}
}

Expand All @@ -510,32 +510,32 @@ public function stackEvent(Event $event)
* @param bool $enabled True or false to enable / disable it.
* @return void
*/
public function stackEvents($enabled)
public function listEvents($enabled)
{
$this->_stackEvents = (bool)$enabled;
$this->_listEvents = (bool)$enabled;
}

/**
* Enables the stacking of dispatched events.
*
* @param \Cake\Event\EventStack $eventStack The event stack object to use.
* @param \Cake\Event\EventList $eventList The event stack object to use.
* @return void
*/
public function attachEventStack(EventStack $eventStack)
public function attachEventList(EventList $eventList)
{
$this->_eventStack = $eventStack;
$this->_stackEvents = true;
$this->_eventList = $eventList;
$this->_listEvents = true;
}

/**
* Disables the stacking of dispatched events.
*
* @return void
*/
public function detachEventStack()
public function detachEventList()
{
$this->_eventStack = null;
$this->_stackEvents = false;
$this->_eventList = null;
$this->_listEvents = false;
}

/**
Expand All @@ -551,8 +551,8 @@ public function __debugInfo()
foreach ($this->_listeners as $key => $listeners) {
$properties['_listeners'][$key] = count($listeners) . ' listener(s)';
}
if ($this->_eventStack) {
foreach ($this->_eventStack as $event) {
if ($this->_eventList) {
foreach ($this->_eventList as $event) {
$properties['_dispatchedEvents'][] = $event->name() . ' with subject ' . get_class($event->subject());
}
}
Expand Down
52 changes: 26 additions & 26 deletions tests/TestCase/Event/EventListTest.php
Expand Up @@ -15,13 +15,13 @@
namespace Cake\Test\TestCase\Event;

use Cake\Event\Event;
use Cake\Event\EventStack;
use Cake\Event\EventList;
use Cake\TestSuite\TestCase;

/**
* Tests the Cake\Event\EvenStack class functionality
* Tests the Cake\Event\EvenList class functionality
*/
class EvenStackTest extends TestCase
class EvenListTest extends TestCase
{

/**
Expand All @@ -31,20 +31,20 @@ class EvenStackTest extends TestCase
*/
public function testAddEventAndFlush()
{
$eventStack = new EventStack();
$eventList = new EventList();
$event = new Event('my_event', $this);
$event2 = new Event('my_second_event', $this);

$eventStack->add($event);
$eventStack->add($event2);
$this->assertCount(2, $eventStack);
$eventList->add($event);
$eventList->add($event2);
$this->assertCount(2, $eventList);

$this->assertEquals($eventStack[0], $event);
$this->assertEquals($eventStack[1], $event2);
$this->assertEquals($eventList[0], $event);
$this->assertEquals($eventList[1], $event2);

$eventStack->flush();
$eventList->flush();

$this->assertCount(0, $eventStack);
$this->assertCount(0, $eventList);
}

/**
Expand All @@ -54,28 +54,28 @@ public function testAddEventAndFlush()
*/
public function testArrayAccess()
{
$eventStack = new EventStack();
$eventList = new EventList();
$event = new Event('my_event', $this);
$event2 = new Event('my_second_event', $this);

$eventStack->add($event);
$eventStack->add($event2);
$this->assertCount(2, $eventStack);
$eventList->add($event);
$eventList->add($event2);
$this->assertCount(2, $eventList);

$this->assertTrue($eventStack->hasEvent('my_event'));
$this->assertFalse($eventStack->hasEvent('does-not-exist'));
$this->assertTrue($eventList->hasEvent('my_event'));
$this->assertFalse($eventList->hasEvent('does-not-exist'));

$this->assertEquals($eventStack->offsetGet(0), $event);
$this->assertEquals($eventStack->offsetGet(1), $event2);
$this->assertTrue($eventStack->offsetExists(0));
$this->assertTrue($eventStack->offsetExists(1));
$this->assertFalse($eventStack->offsetExists(2));
$this->assertEquals($eventList->offsetGet(0), $event);
$this->assertEquals($eventList->offsetGet(1), $event2);
$this->assertTrue($eventList->offsetExists(0));
$this->assertTrue($eventList->offsetExists(1));
$this->assertFalse($eventList->offsetExists(2));

$eventStack->offsetUnset(1);
$this->assertCount(1, $eventStack);
$eventList->offsetUnset(1);
$this->assertCount(1, $eventList);

$eventStack->flush();
$eventList->flush();

$this->assertCount(0, $eventStack);
$this->assertCount(0, $eventList);
}
}
41 changes: 21 additions & 20 deletions tests/TestCase/Event/EventManagerTest.php
Expand Up @@ -15,9 +15,9 @@
namespace Cake\Test\TestCase\Event;

use Cake\Event\Event;
use Cake\Event\EventList;
use Cake\Event\EventListenerInterface;
use Cake\Event\EventManager;
use Cake\Event\EventStack;
use Cake\TestSuite\TestCase;

/**
Expand All @@ -26,7 +26,7 @@
class EventTestListener
{

public $callStack = [];
public $callList = [];

/**
* Test function to be used in event dispatching
Expand All @@ -35,7 +35,7 @@ class EventTestListener
*/
public function listenerFunction()
{
$this->callStack[] = __FUNCTION__;
$this->callList[] = __FUNCTION__;
}

/**
Expand All @@ -45,7 +45,7 @@ public function listenerFunction()
*/
public function secondListenerFunction()
{
$this->callStack[] = __FUNCTION__;
$this->callList[] = __FUNCTION__;
}

/**
Expand Down Expand Up @@ -85,7 +85,7 @@ public function implementedEvents()
*/
public function thirdListenerFunction()
{
$this->callStack[] = __FUNCTION__;
$this->callList[] = __FUNCTION__;
}
}

Expand Down Expand Up @@ -393,7 +393,7 @@ public function testDispatchWithKeyName()
$manager->dispatch($event);

$expected = ['listenerFunction'];
$this->assertEquals($expected, $listener->callStack);
$this->assertEquals($expected, $listener->callList);
}

/**
Expand Down Expand Up @@ -470,7 +470,7 @@ public function testDispatchPrioritized()
$manager->dispatch($event);

$expected = ['secondListenerFunction', 'listenerFunction'];
$this->assertEquals($expected, $listener->callStack);
$this->assertEquals($expected, $listener->callList);
}

/**
Expand All @@ -490,7 +490,7 @@ public function testAttachSubscriber()
$manager->dispatch($event);

$expected = ['listenerFunction'];
$this->assertEquals($expected, $listener->callStack);
$this->assertEquals($expected, $listener->callList);

$event = new Event('another.event', $this, ['some' => 'data']);
$listener->expects($this->at(0))
Expand Down Expand Up @@ -600,7 +600,7 @@ public function testStopPropagation()
$manager->dispatch($event);

$expected = ['secondListenerFunction'];
$this->assertEquals($expected, $listener->callStack);
$this->assertEquals($expected, $listener->callList);
EventManager::instance(new EventManager());
}

Expand Down Expand Up @@ -633,7 +633,7 @@ public function testDispatchPrioritizedWithGlobal()
$manager->dispatch($event);

$expected = ['listenerFunction', 'secondListenerFunction', 'thirdListenerFunction'];
$this->assertEquals($expected, $listener->callStack);
$this->assertEquals($expected, $listener->callList);
EventManager::instance(new EventManager());
}

Expand Down Expand Up @@ -665,7 +665,7 @@ public function testDispatchGlobalBeforeLocal()
$manager->dispatch($event);

$expected = ['listenerFunction', 'secondListenerFunction'];
$this->assertEquals($expected, $listener->callStack);
$this->assertEquals($expected, $listener->callList);
EventManager::instance(new EventManager());
}

Expand Down Expand Up @@ -708,8 +708,8 @@ public function testDispatchWithGlobalAndLocalEvents()
$manager->attach([$listener2, 'listenerFunction'], 'fake.event');

$manager->dispatch(new Event('fake.event', $this));
$this->assertEquals(['listenerFunction'], $listener->callStack);
$this->assertEquals(['listenerFunction'], $listener2->callStack);
$this->assertEquals(['listenerFunction'], $listener->callList);
$this->assertEquals(['listenerFunction'], $listener2->callList);
}

/**
Expand All @@ -721,29 +721,30 @@ public function testDispatchWithGlobalAndLocalEvents()
*/
public function testGetDispatchedEvents()
{
$eventStack = new EventStack();
$eventList = new EventList();
$event = new Event('my_event', $this);
$event2 = new Event('my_second_event', $this);

$manager = new EventManager();
$manager->attachEventStack($eventStack);
$manager->attachEventList($eventList);
$manager->dispatch($event);
$manager->dispatch($event2);

$result = $manager->eventStack();
$result = $manager->eventList();
$this->assertInstanceOf('\Cake\Event\EventList', $result);
$this->assertCount(2, $result);
$this->assertEquals($result[0], $event);
$this->assertEquals($result[1], $event2);

$manager->eventStack()->flush();
$result = $manager->eventStack();
$manager->eventList()->flush();
$result = $manager->eventList();
$this->assertCount(0, $result);

$manager->detachEventStack();
$manager->detachEventList();
$manager->dispatch($event);
$manager->dispatch($event2);

$result = $manager->eventStack();
$result = $manager->eventList();
$this->assertNull($result);
}
}

0 comments on commit 75a9863

Please sign in to comment.