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; } }