public function testFromLockReturnsComposerObject() { $factory = new ComposerFactory(); $root = vfsStream::setup('root'); $file = vfsStream::newFile('composer.lock'); $file->setContent('{"_readme": [],"hash": "ac82fae1f7095370dc4c7299aa637a30","content-hash": "3faf23edaf51060bfe1830506104ec83","packages": [{"name": "vendor/lib","version": "v2.7.6"}], "packages-dev": [{"name": "vendor/devlib","version": "v0.0.6"}]}'); $root->addChild($file); $this->assertInstanceOf('SensioLabs\\DeprecationDetector\\RuleSet\\Loader\\Composer\\Composer', $composer = $factory->fromLock(vfsStream::url('root/composer.lock'))); }
/** * {@inheritdoc} */ public function loadRuleSet($lock) { try { $composer = $this->factory->fromLock($lock); } catch (ComposerException $e) { throw new CouldNotLoadRuleSetException($e->getMessage()); } $ruleSet = new RuleSet(); foreach ($composer->getPackages() as $package) { $ruleSet->merge($this->loadPackageRuleSet($package)); } return $ruleSet; }