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