public function testGetter() { $composer = $this->getMock('Composer\\Composer'); $io = $this->getMock('Composer\\IO\\IOInterface'); $policy = $this->getMock('Composer\\DependencyResolver\\PolicyInterface'); $pool = $this->getMockBuilder('Composer\\DependencyResolver\\Pool')->disableOriginalConstructor()->getMock(); $installedRepo = $this->getMockBuilder('Composer\\Repository\\CompositeRepository')->disableOriginalConstructor()->getMock(); $request = $this->getMockBuilder('Composer\\DependencyResolver\\Request')->disableOriginalConstructor()->getMock(); $operations = array($this->getMock('Composer\\DependencyResolver\\Operation\\OperationInterface')); $event = new InstallerEvent('EVENT_NAME', $composer, $io, $policy, $pool, $installedRepo, $request, $operations); $this->assertSame('EVENT_NAME', $event->getName()); $this->assertInstanceOf('Composer\\Composer', $event->getComposer()); $this->assertInstanceOf('Composer\\IO\\IOInterface', $event->getIO()); $this->assertInstanceOf('Composer\\DependencyResolver\\PolicyInterface', $event->getPolicy()); $this->assertInstanceOf('Composer\\DependencyResolver\\Pool', $event->getPool()); $this->assertInstanceOf('Composer\\Repository\\CompositeRepository', $event->getInstalledRepo()); $this->assertInstanceOf('Composer\\DependencyResolver\\Request', $event->getRequest()); $this->assertCount(1, $event->getOperations()); }
/** * Check that there is only 1 core package required */ public function checkCoreDependencies(InstallerEvent $event) { $installedCorePackages = array(); foreach ($event->getInstalledRepo()->getPackages() as $package) { if ($package->getType() === $this->type) { $installedCorePackages[$package->getName()] = $package; } } $operations = array_filter($event->getOperations(), function (OperationInterface $o) { return in_array($o->getJobType(), array('install', 'uninstall')); }); foreach ($operations as $operation) { $p = $operation->getPackage(); if ($p->getType() === $this->type) { switch ($operation->getJobType()) { case "uninstall": unset($installedCorePackages[$p->getName()]); break; case "install": $installedCorePackages[$p->getName()] = $p; break; } } } if (count($installedCorePackages) > 1) { throw new \RuntimeException("Cannot use more than 1 core package"); } }