2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\EventDispatcher\Tests ;
2017-04-13 15:53:35 +01:00
use PHPUnit\Framework\TestCase ;
2015-08-17 17:00:26 -07:00
use Symfony\Component\EventDispatcher\Event ;
use Symfony\Component\EventDispatcher\ImmutableEventDispatcher ;
/**
* @ author Bernhard Schussek < bschussek @ gmail . com >
*/
2017-04-13 15:53:35 +01:00
class ImmutableEventDispatcherTest extends TestCase
2015-08-17 17:00:26 -07:00
{
/**
* @ var \PHPUnit_Framework_MockObject_MockObject
*/
private $innerDispatcher ;
/**
* @ var ImmutableEventDispatcher
*/
private $dispatcher ;
protected function setUp ()
{
2017-02-02 16:28:38 -08:00
$this -> innerDispatcher = $this -> getMockBuilder ( 'Symfony\Component\EventDispatcher\EventDispatcherInterface' ) -> getMock ();
2015-08-17 17:00:26 -07:00
$this -> dispatcher = new ImmutableEventDispatcher ( $this -> innerDispatcher );
}
public function testDispatchDelegates ()
{
$event = new Event ();
$this -> innerDispatcher -> expects ( $this -> once ())
-> method ( 'dispatch' )
-> with ( 'event' , $event )
-> will ( $this -> returnValue ( 'result' ));
$this -> assertSame ( 'result' , $this -> dispatcher -> dispatch ( 'event' , $event ));
}
public function testGetListenersDelegates ()
{
$this -> innerDispatcher -> expects ( $this -> once ())
-> method ( 'getListeners' )
-> with ( 'event' )
-> will ( $this -> returnValue ( 'result' ));
$this -> assertSame ( 'result' , $this -> dispatcher -> getListeners ( 'event' ));
}
public function testHasListenersDelegates ()
{
$this -> innerDispatcher -> expects ( $this -> once ())
-> method ( 'hasListeners' )
-> with ( 'event' )
-> will ( $this -> returnValue ( 'result' ));
$this -> assertSame ( 'result' , $this -> dispatcher -> hasListeners ( 'event' ));
}
/**
* @ expectedException \BadMethodCallException
*/
public function testAddListenerDisallowed ()
{
$this -> dispatcher -> addListener ( 'event' , function () { return 'foo' ; });
}
/**
* @ expectedException \BadMethodCallException
*/
public function testAddSubscriberDisallowed ()
{
2017-02-02 16:28:38 -08:00
$subscriber = $this -> getMockBuilder ( 'Symfony\Component\EventDispatcher\EventSubscriberInterface' ) -> getMock ();
2015-08-17 17:00:26 -07:00
$this -> dispatcher -> addSubscriber ( $subscriber );
}
/**
* @ expectedException \BadMethodCallException
*/
public function testRemoveListenerDisallowed ()
{
$this -> dispatcher -> removeListener ( 'event' , function () { return 'foo' ; });
}
/**
* @ expectedException \BadMethodCallException
*/
public function testRemoveSubscriberDisallowed ()
{
2017-02-02 16:28:38 -08:00
$subscriber = $this -> getMockBuilder ( 'Symfony\Component\EventDispatcher\EventSubscriberInterface' ) -> getMock ();
2015-08-17 17:00:26 -07:00
$this -> dispatcher -> removeSubscriber ( $subscriber );
}
}