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));
 }
예제 #2
0
 /**
  * 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));
 }
예제 #4
0
 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);
 }