1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-09 00:22:53 +00:00

Make sure Transaction sorts operations correctly to begin with

This commit is contained in:
Jordi Boggiano 2020-10-25 14:06:45 +01:00
parent dc88236c07
commit 2d4e1e0dce
No known key found for this signature in database
GPG key ID: 7BBD42C429EC80BC
3 changed files with 55 additions and 2 deletions

View file

@ -42,8 +42,28 @@ class TransactionTest extends TestCase
$packageG = $this->getPackage('g/g', '1.0.0'),
$packageA0first = $this->getPackage('a0/first', '1.2.3'),
$packageFalias2 = $this->getAliasPackage($packageF, 'dev-bar'),
$plugin = $this->getPackage('x/plugin', '1.0.0'),
$plugin2Dep = $this->getPackage('x/plugin2-dep', '1.0.0'),
$plugin2 = $this->getPackage('x/plugin2', '1.0.0'),
$dlModifyingPlugin = $this->getPackage('x/downloads-modifying', '1.0.0'),
$dlModifyingPlugin2Dep = $this->getPackage('x/downloads-modifying2-dep', '1.0.0'),
$dlModifyingPlugin2 = $this->getPackage('x/downloads-modifying2', '1.0.0'),
);
$plugin->setType('composer-installer');
foreach (array($plugin2, $dlModifyingPlugin, $dlModifyingPlugin2) as $pluginPackage) {
$pluginPackage->setType('composer-plugin');
}
$plugin2->setRequires(array(
'x/plugin2-dep' => new Link('x/plugin2', 'x/plugin2-dep', $this->getVersionConstraint('=', '1.0.0'), Link::TYPE_REQUIRE),
));
$dlModifyingPlugin2->setRequires(array(
'x/downloads-modifying2-dep' => new Link('x/downloads-modifying2', 'x/downloads-modifying2-dep', $this->getVersionConstraint('=', '1.0.0'), Link::TYPE_REQUIRE),
));
$dlModifyingPlugin->setExtra(array('plugin-modifies-downloads' => true));
$dlModifyingPlugin2->setExtra(array('plugin-modifies-downloads' => true));
$packageD->setRequires(array(
'f/f' => new Link('d/d', 'f/f', $this->getVersionConstraint('>', '0.2'), Link::TYPE_REQUIRE),
'g/provider' => new Link('d/d', 'g/provider', $this->getVersionConstraint('>', '0.2'), Link::TYPE_REQUIRE),
@ -54,6 +74,12 @@ class TransactionTest extends TestCase
array('job' => 'uninstall', 'package' => $packageC),
array('job' => 'uninstall', 'package' => $packageE),
array('job' => 'markAliasUninstalled', 'package' => $packageEalias),
array('job' => 'install', 'package' => $dlModifyingPlugin),
array('job' => 'install', 'package' => $dlModifyingPlugin2Dep),
array('job' => 'install', 'package' => $dlModifyingPlugin2),
array('job' => 'install', 'package' => $plugin),
array('job' => 'install', 'package' => $plugin2Dep),
array('job' => 'install', 'package' => $plugin2),
array('job' => 'install', 'package' => $packageA0first),
array('job' => 'update', 'from' => $packageB, 'to' => $packageBnew),
array('job' => 'install', 'package' => $packageG),