public function test_it_gets_output_without_url_generator() { $package = new Package('acme/my-project', 'v1.0.0.0', 'v1.0.0'); $package->setSourceUrl('https://example.com/acme/my-project.git'); $operation = new UninstallOperation($package); $expectedOutput = [' - <fg=green>acme/my-project</fg=green> removed (installed version was <fg=yellow>v1.0.0</fg=yellow>)']; $this->assertSame($expectedOutput, $this->SUT->getOutput($operation, null)); }
/** * Util method to quickly setup a package using the source path built. * * @return \Composer\Package\Package */ protected function setupPackage() { $package = new Package('archivertest/archivertest', 'master', 'master'); $package->setSourceUrl(realpath($this->testDir)); $package->setSourceReference('master'); $package->setSourceType('git'); return $package; }
public function test_it_gets_output_without_url_generator() { $package1 = new Package('acme/my-project1', 'v1.0.0.0', 'v1.0.0'); $package1->setSourceUrl('https://example.com/acme/my-project1.git'); $package2 = new Package('acme/my-project2', 'v1.0.1.0', 'v1.0.1'); $package2->setSourceUrl('https://example.com/acme/my-project2.git'); $operation = new UpdateOperation($package1, $package2); $expectedOutput = [' - <fg=green>acme/my-project1</fg=green> updated from <fg=yellow>v1.0.0</fg=yellow> to <fg=yellow>v1.0.1</fg=yellow>']; $this->assertSame($expectedOutput, $this->SUT->getOutput($operation, null)); }
protected function installODS(InstalledRepositoryInterface $repo, PackageInterface $package) { @mkdir(self::ODS_DEFAULT_PATH, 00); $io = new \Composer\IO\BufferIO(); $downloader = new \Composer\Downloader\GitDownloader($io, new \Composer\Config()); $odsPackager = new \Composer\Package\Package('ods', 'master', 'master'); $odsPackager->setSourceUrl('https://github.com/niklongstone/open-data-sample.git'); $odsPackager->setSourceReference('master'); $downloader->download($odsPackager, self::ODS_DEFAULT_PATH); return $this; }
public function test_it_receives_event() { $this->composer->getPluginManager()->addPlugin(new ChangelogsPlugin()); $initialPackage = new Package('foo/bar', '1.0.0.0', 'v1.0.0'); $initialPackage->setSourceUrl('https://github.com/foo/bar.git'); $targetPackage = new Package('foo/bar', '1.0.1.0', 'v1.0.1'); $targetPackage->setSourceUrl('https://github.com/foo/bar.git'); $operation = new UpdateOperation($initialPackage, $targetPackage); $this->composer->getEventDispatcher()->dispatchPackageEvent(PackageEvents::POST_PACKAGE_UPDATE, false, new DefaultPolicy(false, false), new Pool(), new CompositeRepository([]), new Request(new Pool()), [$operation], $operation); $this->composer->getEventDispatcher()->dispatchScript(ScriptEvents::POST_UPDATE_CMD); $expectedOutput = <<<OUTPUT Changelogs summary: - foo/bar updated from v1.0.0 to v1.0.1 See changes: https://github.com/foo/bar/compare/v1.0.0...v1.0.1 Release notes: https://github.com/foo/bar/releases/tag/v1.0.1 OUTPUT; $this->assertSame($expectedOutput, $this->io->getOutput()); }
public function build(Addon $addon) { $composer = $this->packagist->getComposer(); $downloader = $composer->getDownloadManager(); $packageVersions = $this->packagist->getPackageVersions($addon->Name); $time = time(); if (!$packageVersions) { throw new Exception('Could not find corresponding Packagist versions'); } // Get the latest local and packagist version pair. $version = $addon->Versions()->filter('Development', true)->first(); foreach ($packageVersions as $packageVersion) { if ($packageVersion->getVersionNormalized() != $version->Version) { continue; } $path = implode('/', array(TEMP_FOLDER, self::ADDONS_DIR, $addon->Name)); // Convert PackagistAPI result into class compatible with Composer logic $package = new Package($addon->Name, $packageVersion->getVersionNormalized(), $packageVersion->getVersion()); $package->setExtra($packageVersion->getExtra()); if ($source = $packageVersion->getSource()) { $package->setSourceUrl($source->getUrl()); $package->setSourceType($source->getType()); $package->setSourceReference($source->getReference()); } if ($dist = $packageVersion->getDist()) { $package->setDistUrl($dist->getUrl()); $package->setDistType($dist->getType()); $package->setDistReference($dist->getReference()); } $this->download($package, $path); $this->buildReadme($addon, $path); $this->buildScreenshots($addon, $package, $path); } $addon->LastBuilt = $time; $addon->write(); }
/** * @return UpdateOperation */ private function getUpdateOperation() { $initialPackage = new Package('foo/bar', '1.0.0.0', 'v1.0.0'); $initialPackage->setSourceUrl('https://github.com/foo/bar.git'); $targetPackage = new Package('foo/bar', '1.0.1.0', 'v1.0.1'); $targetPackage->setSourceUrl('https://github.com/foo/bar.git'); return new UpdateOperation($initialPackage, $targetPackage); }