Esempio n. 1
0
 public function testReinstallPackagesWithChangedEnvironment()
 {
     $event = new CommandEvent(ScriptEvents::POST_INSTALL_CMD, $this->composer, $this->io);
     $this->rootPackage->setRequires(array('vendor/package2' => new Link('vendor/root', 'vendor/package2')));
     $this->io->expects($this->at(1))->method('write')->with('Reinstalling <info>vendor/package1</info> (<comment>package1</comment>) in <comment>dev</comment>');
     $this->io->expects($this->never())->method('writeError');
     $this->puliRunner->expects($this->at(0))->method('run')->with('package --list --format "%name%;%installer%;%install_path%;%state%;%env%"')->willReturn("vendor/root;;{$this->tempDir};enabled;prod\n" . "vendor/package1;composer;{$this->tempDir}/package1;enabled;prod\n" . "vendor/package2;composer;{$this->tempDir}/package2;enabled;prod\n");
     $this->puliRunner->expects($this->at(1))->method('run')->with("package --delete 'vendor/package1'");
     $this->puliRunner->expects($this->at(2))->method('run')->with("package --install --dev '{$this->tempDir}/package1' 'vendor/package1' --installer 'composer'");
     $this->puliRunner->expects($this->at(3))->method('run')->with('build');
     $this->plugin->postInstall($event);
 }
 /**
  * Update the root package definition
  *
  * @param \Composer\Package\RootPackage $package
  * @param Collection $packagesToInstall
  * @return \Composer\Package\RootPackage
  */
 private function updateRootPackage($package, Collection $packagesToInstall)
 {
     $this->io->write('<info>Updating root package</info>');
     $package->setRequires($packagesToInstall->reduce(function ($requires, $package) {
         return $this->addRootPackageRequirement($requires, $package);
     }, $package->getRequires()));
     return $package;
 }
 /**
  * Test the conversion of a complete repository.
  *
  * @return void
  */
 public function testConvertRepositoryToArrayOnlyRequired()
 {
     $repository = new ArrayRepository([$package1 = new CompletePackage('test/dependency1', '1.0.0.0', '1.0.0.0'), $package2 = new CompletePackage('test/non-dependency2', '2.0.0.0', '2.0.0.0')]);
     $package1->setType('project');
     $package1->setLicense(['LGPL-3']);
     $package2->setType('project');
     $package2->setLicense(['GPL-3']);
     $converter = new PackageConverter($rootPackage = new RootPackage('root/package', 'dev-master', 'dev-master'));
     $rootPackage->setRequires(['test/dependency1' => new Link('root/package', 'test/dependency1', new Constraint('<', '2.0'))]);
     $converted = $converter->convertRepositoryToArray($repository, true);
     $this->assertEquals(['test\\/dependency1'], $converted->getEntries('/'));
     $this->assertEquals(['test\\/dependency1/name', 'test\\/dependency1/version', 'test\\/dependency1/constraint', 'test\\/dependency1/type', 'test\\/dependency1/locked', 'test\\/dependency1/license', 'test\\/dependency1/abandoned'], $converted->getEntries('/test\\/dependency1'));
     $this->assertEquals($package1->getName(), $converted->get('test\\/dependency1/name'));
     $this->assertEquals($package1->getPrettyVersion(), $converted->get('test\\/dependency1/version'));
     $this->assertEquals($converted->get('test\\/dependency1/constraint'), '< 2.0');
     $this->assertEquals($package1->getType(), $converted->get('test\\/dependency1/type'));
     $this->assertFalse($converted->get('test\\/dependency1/locked'));
     $this->assertEquals($package1->getLicense(), $converted->get('test\\/dependency1/license'));
     $this->assertFalse($converted->get('test\\/dependency1/abandoned'));
 }