mirror of
https://github.com/composer/composer
synced 2025-05-08 16:17:37 +00:00
return the upper-most event in chain
This commit is contained in:
parent
81a4f74b5b
commit
b51cfce8e6
2 changed files with 95 additions and 7 deletions
73
tests/Composer/Test/Script/EventTest.php
Normal file
73
tests/Composer/Test/Script/EventTest.php
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace Composer\Test\Script;
|
||||
|
||||
|
||||
use Composer\Composer;
|
||||
use Composer\Config;
|
||||
use Composer\Script\Event;
|
||||
use Composer\Test\TestCase;
|
||||
|
||||
class EventTest extends TestCase {
|
||||
|
||||
public function testEventSetsOriginatingEvent() {
|
||||
$io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
|
||||
$composer = $this->createComposerInstance();
|
||||
|
||||
$originatingEvent = new \Composer\EventDispatcher\Event('originatingEvent');
|
||||
|
||||
$scriptEvent = new Event('test', $composer, $io, true);
|
||||
|
||||
$this->assertNull(
|
||||
$scriptEvent->getOriginatingEvent(),
|
||||
'originatingEvent is initialized as null'
|
||||
);
|
||||
|
||||
$scriptEvent->setOriginatingEvent($originatingEvent);
|
||||
|
||||
$this->assertSame(
|
||||
$originatingEvent,
|
||||
$scriptEvent->getOriginatingEvent(),
|
||||
'getOriginatingEvent() SHOULD return test event'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
public function testEventCalculatesNestedOriginatingEvent() {
|
||||
$io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
|
||||
$composer = $this->createComposerInstance();
|
||||
|
||||
|
||||
$originatingEvent = new \Composer\EventDispatcher\Event('upperOriginatingEvent');
|
||||
$intermediateEvent = new Event('intermediate', $composer, $io, true);
|
||||
$intermediateEvent->setOriginatingEvent($originatingEvent);
|
||||
|
||||
$scriptEvent = new Event('test', $composer, $io, true);
|
||||
$scriptEvent->setOriginatingEvent($intermediateEvent);
|
||||
|
||||
$this->assertNotSame(
|
||||
$intermediateEvent,
|
||||
$scriptEvent->getOriginatingEvent(),
|
||||
'getOriginatingEvent() SHOULD NOT return intermediate events'
|
||||
);
|
||||
|
||||
$this->assertSame(
|
||||
$originatingEvent,
|
||||
$scriptEvent->getOriginatingEvent(),
|
||||
'getOriginatingEvent() SHOULD return upper-most event'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
private function createComposerInstance()
|
||||
{
|
||||
$composer = new Composer;
|
||||
$config = new Config;
|
||||
$composer->setConfig($config);
|
||||
$package = $this->getMockBuilder('Composer\Package\RootPackageInterface')->getMock();
|
||||
$composer->setPackage($package);
|
||||
|
||||
return $composer;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue