EventTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace Composer\Test\Script;
  3. use Composer\Composer;
  4. use Composer\Config;
  5. use Composer\Script\Event;
  6. use Composer\Test\TestCase;
  7. class EventTest extends TestCase {
  8. public function testEventSetsOriginatingEvent() {
  9. $io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
  10. $composer = $this->createComposerInstance();
  11. $originatingEvent = new \Composer\EventDispatcher\Event('originatingEvent');
  12. $scriptEvent = new Event('test', $composer, $io, true);
  13. $this->assertNull(
  14. $scriptEvent->getOriginatingEvent(),
  15. 'originatingEvent is initialized as null'
  16. );
  17. $scriptEvent->setOriginatingEvent($originatingEvent);
  18. $this->assertSame(
  19. $originatingEvent,
  20. $scriptEvent->getOriginatingEvent(),
  21. 'getOriginatingEvent() SHOULD return test event'
  22. );
  23. }
  24. public function testEventCalculatesNestedOriginatingEvent() {
  25. $io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
  26. $composer = $this->createComposerInstance();
  27. $originatingEvent = new \Composer\EventDispatcher\Event('upperOriginatingEvent');
  28. $intermediateEvent = new Event('intermediate', $composer, $io, true);
  29. $intermediateEvent->setOriginatingEvent($originatingEvent);
  30. $scriptEvent = new Event('test', $composer, $io, true);
  31. $scriptEvent->setOriginatingEvent($intermediateEvent);
  32. $this->assertNotSame(
  33. $intermediateEvent,
  34. $scriptEvent->getOriginatingEvent(),
  35. 'getOriginatingEvent() SHOULD NOT return intermediate events'
  36. );
  37. $this->assertSame(
  38. $originatingEvent,
  39. $scriptEvent->getOriginatingEvent(),
  40. 'getOriginatingEvent() SHOULD return upper-most event'
  41. );
  42. }
  43. private function createComposerInstance()
  44. {
  45. $composer = new Composer;
  46. $config = new Config;
  47. $composer->setConfig($config);
  48. $package = $this->getMockBuilder('Composer\Package\RootPackageInterface')->getMock();
  49. $composer->setPackage($package);
  50. return $composer;
  51. }
  52. }