mirror of
https://github.com/composer/composer
synced 2025-05-09 08:32:56 +00:00
Merge pull request #7625 from naderman/repository-set
Separate RepositorySet from Package Pool, load only metadata of packages directly required
This commit is contained in:
commit
5c491ecc9b
43 changed files with 826 additions and 507 deletions
|
@ -18,13 +18,15 @@ use Composer\DependencyResolver\DefaultPolicy;
|
|||
use Composer\DependencyResolver\Pool;
|
||||
use Composer\Package\Link;
|
||||
use Composer\Package\AliasPackage;
|
||||
use Composer\Repository\RepositorySet;
|
||||
use Composer\Semver\Constraint\Constraint;
|
||||
use Composer\TestCase;
|
||||
use http\Env\Request;
|
||||
|
||||
class DefaultPolicyTest extends TestCase
|
||||
{
|
||||
/** @var Pool */
|
||||
protected $pool;
|
||||
/** @var RepositorySet */
|
||||
protected $repositorySet;
|
||||
/** @var ArrayRepository */
|
||||
protected $repo;
|
||||
/** @var ArrayRepository */
|
||||
|
@ -34,7 +36,7 @@ class DefaultPolicyTest extends TestCase
|
|||
|
||||
public function setUp()
|
||||
{
|
||||
$this->pool = new Pool('dev');
|
||||
$this->repositorySet = new RepositorySet(array(), 'dev');
|
||||
$this->repo = new ArrayRepository;
|
||||
$this->repoInstalled = new ArrayRepository;
|
||||
|
||||
|
@ -44,12 +46,14 @@ class DefaultPolicyTest extends TestCase
|
|||
public function testSelectSingle()
|
||||
{
|
||||
$this->repo->addPackage($packageA = $this->getPackage('A', '1.0'));
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA->getId());
|
||||
$expected = array($packageA->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -58,12 +62,14 @@ class DefaultPolicyTest extends TestCase
|
|||
{
|
||||
$this->repo->addPackage($packageA1 = $this->getPackage('A', '1.0'));
|
||||
$this->repo->addPackage($packageA2 = $this->getPackage('A', '2.0'));
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA1->getId(), $packageA2->getId());
|
||||
$expected = array($packageA2->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -72,12 +78,14 @@ class DefaultPolicyTest extends TestCase
|
|||
{
|
||||
$this->repo->addPackage($packageA1 = $this->getPackage('A', '1.0.0'));
|
||||
$this->repo->addPackage($packageA2 = $this->getPackage('A', '1.0.1-alpha'));
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA1->getId(), $packageA2->getId());
|
||||
$expected = array($packageA2->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -86,13 +94,15 @@ class DefaultPolicyTest extends TestCase
|
|||
{
|
||||
$this->repo->addPackage($packageA1 = $this->getPackage('A', '1.0.0'));
|
||||
$this->repo->addPackage($packageA2 = $this->getPackage('A', '1.0.1-alpha'));
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA1->getId(), $packageA2->getId());
|
||||
$expected = array($packageA1->getId());
|
||||
|
||||
$policy = new DefaultPolicy(true);
|
||||
$selected = $policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -101,12 +111,14 @@ class DefaultPolicyTest extends TestCase
|
|||
{
|
||||
$this->repo->addPackage($packageA1 = $this->getPackage('A', 'dev-foo'));
|
||||
$this->repo->addPackage($packageA2 = $this->getPackage('A', '1.0.0'));
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA1->getId(), $packageA2->getId());
|
||||
$expected = array($packageA2->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -115,13 +127,15 @@ class DefaultPolicyTest extends TestCase
|
|||
{
|
||||
$this->repo->addPackage($packageA = $this->getPackage('A', '2.0'));
|
||||
$this->repoInstalled->addPackage($packageAInstalled = $this->getPackage('A', '1.0'));
|
||||
$this->pool->addRepository($this->repoInstalled);
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repoInstalled);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA->getId(), $packageAInstalled->getId());
|
||||
$expected = array($packageA->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, $this->mapFromRepo($this->repoInstalled), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, $this->mapFromRepo($this->repoInstalled), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -133,14 +147,16 @@ class DefaultPolicyTest extends TestCase
|
|||
$this->repo->addPackage($packageA = $this->getPackage('A', '1.0'));
|
||||
$otherRepository->addPackage($packageAImportant = $this->getPackage('A', '1.0'));
|
||||
|
||||
$this->pool->addRepository($this->repoInstalled);
|
||||
$this->pool->addRepository($otherRepository);
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repoInstalled);
|
||||
$this->repositorySet->addRepository($otherRepository);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA->getId(), $packageAImportant->getId());
|
||||
$expected = array($packageAImportant->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -155,21 +171,25 @@ class DefaultPolicyTest extends TestCase
|
|||
$repo2->addPackage($package3 = $this->getPackage('A', '1.1'));
|
||||
$repo2->addPackage($package4 = $this->getPackage('A', '1.2'));
|
||||
|
||||
$this->pool->addRepository($repo1);
|
||||
$this->pool->addRepository($repo2);
|
||||
$this->repositorySet->addRepository($repo1);
|
||||
$this->repositorySet->addRepository($repo2);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($package1->getId(), $package2->getId(), $package3->getId(), $package4->getId());
|
||||
$expected = array($package2->getId());
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
|
||||
$this->pool = new Pool('dev');
|
||||
$this->pool->addRepository($repo2);
|
||||
$this->pool->addRepository($repo1);
|
||||
$this->repositorySet = new RepositorySet(array(), 'dev');
|
||||
$this->repositorySet->addRepository($repo2);
|
||||
$this->repositorySet->addRepository($repo1);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$expected = array($package4->getId());
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -186,11 +206,13 @@ class DefaultPolicyTest extends TestCase
|
|||
$repoImportant->addPackage($packageA2AliasImportant = new AliasPackage($packageA2Important, '2.1.9999999.9999999-dev', '2.1.x-dev'));
|
||||
$packageAAliasImportant->setRootPackageAlias(true);
|
||||
|
||||
$this->pool->addRepository($this->repoInstalled);
|
||||
$this->pool->addRepository($repoImportant);
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repoInstalled);
|
||||
$this->repositorySet->addRepository($repoImportant);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$packages = $this->pool->whatProvides('a', new Constraint('=', '2.1.9999999.9999999-dev'));
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$packages = $pool->whatProvides('a', new Constraint('=', '2.1.9999999.9999999-dev'));
|
||||
$literals = array();
|
||||
foreach ($packages as $package) {
|
||||
$literals[] = $package->getId();
|
||||
|
@ -198,7 +220,7 @@ class DefaultPolicyTest extends TestCase
|
|||
|
||||
$expected = array($packageAAliasImportant->getId());
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -211,12 +233,14 @@ class DefaultPolicyTest extends TestCase
|
|||
$packageA->setProvides(array(new Link('A', 'X', new Constraint('==', '1.0'), 'provides')));
|
||||
$packageB->setProvides(array(new Link('B', 'X', new Constraint('==', '1.0'), 'provides')));
|
||||
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackages(array('A', 'B'));
|
||||
|
||||
$literals = array($packageA->getId(), $packageB->getId());
|
||||
$expected = $literals;
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -228,12 +252,14 @@ class DefaultPolicyTest extends TestCase
|
|||
|
||||
$packageB->setReplaces(array(new Link('B', 'A', new Constraint('==', '1.0'), 'replaces')));
|
||||
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackages(array('A', 'B'));
|
||||
|
||||
$literals = array($packageA->getId(), $packageB->getId());
|
||||
$expected = $literals;
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
@ -247,12 +273,14 @@ class DefaultPolicyTest extends TestCase
|
|||
$packageA->setReplaces(array(new Link('vendor-a/replacer', 'vendor-a/package', new Constraint('==', '1.0'), 'replaces')));
|
||||
$packageB->setReplaces(array(new Link('vendor-b/replacer', 'vendor-a/package', new Constraint('==', '1.0'), 'replaces')));
|
||||
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackages(array('vendor-a/replacer', 'vendor-b/replacer'));
|
||||
|
||||
$literals = array($packageA->getId(), $packageB->getId());
|
||||
$expected = $literals;
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals, 'vendor-a/package');
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals, 'vendor-a/package');
|
||||
$this->assertEquals($expected, $selected);
|
||||
|
||||
// test with reversed order in repo
|
||||
|
@ -260,13 +288,15 @@ class DefaultPolicyTest extends TestCase
|
|||
$repo->addPackage($packageA = clone $packageA);
|
||||
$repo->addPackage($packageB = clone $packageB);
|
||||
|
||||
$pool = new Pool('dev');
|
||||
$pool->addRepository($this->repo);
|
||||
$repositorySet = new RepositorySet(array(), 'dev');
|
||||
$repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackages(array('vendor-a/replacer', 'vendor-b/replacer'));
|
||||
|
||||
$literals = array($packageA->getId(), $packageB->getId());
|
||||
$expected = $literals;
|
||||
|
||||
$selected = $this->policy->selectPreferredPackages($this->pool, array(), $literals, 'vendor-a/package');
|
||||
$selected = $this->policy->selectPreferredPackages($pool, array(), $literals, 'vendor-a/package');
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
||||
|
@ -286,12 +316,14 @@ class DefaultPolicyTest extends TestCase
|
|||
|
||||
$this->repo->addPackage($packageA1 = $this->getPackage('A', '1.0'));
|
||||
$this->repo->addPackage($packageA2 = $this->getPackage('A', '2.0'));
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repositorySet->addRepository($this->repo);
|
||||
|
||||
$pool = $this->repositorySet->createPoolForPackage('A');
|
||||
|
||||
$literals = array($packageA1->getId(), $packageA2->getId());
|
||||
$expected = array($packageA1->getId());
|
||||
|
||||
$selected = $policy->selectPreferredPackages($this->pool, array(), $literals);
|
||||
$selected = $policy->selectPreferredPackages($pool, array(), $literals);
|
||||
|
||||
$this->assertSame($expected, $selected);
|
||||
}
|
||||
|
|
|
@ -21,91 +21,26 @@ class PoolTest extends TestCase
|
|||
{
|
||||
public function testPool()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$repo = new ArrayRepository;
|
||||
$pool = $this->createPool();
|
||||
$package = $this->getPackage('foo', '1');
|
||||
|
||||
$repo->addPackage($package);
|
||||
$pool->addRepository($repo);
|
||||
$pool->setPackages(array($package));
|
||||
|
||||
$this->assertEquals(array($package), $pool->whatProvides('foo'));
|
||||
$this->assertEquals(array($package), $pool->whatProvides('foo'));
|
||||
}
|
||||
|
||||
public function testPoolIgnoresIrrelevantPackages()
|
||||
{
|
||||
$pool = new Pool('stable', array('bar' => BasePackage::STABILITY_BETA));
|
||||
$repo = new ArrayRepository;
|
||||
$repo->addPackage($package = $this->getPackage('bar', '1'));
|
||||
$repo->addPackage($betaPackage = $this->getPackage('bar', '1-beta'));
|
||||
$repo->addPackage($alphaPackage = $this->getPackage('bar', '1-alpha'));
|
||||
$repo->addPackage($package2 = $this->getPackage('foo', '1'));
|
||||
$repo->addPackage($rcPackage2 = $this->getPackage('foo', '1rc'));
|
||||
|
||||
$pool->addRepository($repo);
|
||||
|
||||
$this->assertEquals(array($package, $betaPackage), $pool->whatProvides('bar'));
|
||||
$this->assertEquals(array($package2), $pool->whatProvides('foo'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \RuntimeException
|
||||
*/
|
||||
public function testGetPriorityForNotRegisteredRepository()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$repository = new ArrayRepository;
|
||||
|
||||
$pool->getPriority($repository);
|
||||
}
|
||||
|
||||
public function testGetPriorityWhenRepositoryIsRegistered()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$firstRepository = new ArrayRepository;
|
||||
$pool->addRepository($firstRepository);
|
||||
$secondRepository = new ArrayRepository;
|
||||
$pool->addRepository($secondRepository);
|
||||
|
||||
$firstPriority = $pool->getPriority($firstRepository);
|
||||
$secondPriority = $pool->getPriority($secondRepository);
|
||||
|
||||
$this->assertEquals(0, $firstPriority);
|
||||
$this->assertEquals(-1, $secondPriority);
|
||||
}
|
||||
|
||||
public function testWhatProvidesSamePackageForDifferentRepositories()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$firstRepository = new ArrayRepository;
|
||||
$secondRepository = new ArrayRepository;
|
||||
|
||||
$firstPackage = $this->getPackage('foo', '1');
|
||||
$secondPackage = $this->getPackage('foo', '1');
|
||||
$thirdPackage = $this->getPackage('foo', '2');
|
||||
|
||||
$firstRepository->addPackage($firstPackage);
|
||||
$secondRepository->addPackage($secondPackage);
|
||||
$secondRepository->addPackage($thirdPackage);
|
||||
|
||||
$pool->addRepository($firstRepository);
|
||||
$pool->addRepository($secondRepository);
|
||||
|
||||
$this->assertEquals(array($firstPackage, $secondPackage, $thirdPackage), $pool->whatProvides('foo'));
|
||||
}
|
||||
|
||||
public function testWhatProvidesPackageWithConstraint()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$repository = new ArrayRepository;
|
||||
$pool = $this->createPool();
|
||||
|
||||
$firstPackage = $this->getPackage('foo', '1');
|
||||
$secondPackage = $this->getPackage('foo', '2');
|
||||
|
||||
$repository->addPackage($firstPackage);
|
||||
$repository->addPackage($secondPackage);
|
||||
|
||||
$pool->addRepository($repository);
|
||||
$pool->setPackages(array(
|
||||
$firstPackage,
|
||||
$secondPackage,
|
||||
));
|
||||
|
||||
$this->assertEquals(array($firstPackage, $secondPackage), $pool->whatProvides('foo'));
|
||||
$this->assertEquals(array($secondPackage), $pool->whatProvides('foo', $this->getVersionConstraint('==', '2')));
|
||||
|
@ -113,20 +48,23 @@ class PoolTest extends TestCase
|
|||
|
||||
public function testPackageById()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$repository = new ArrayRepository;
|
||||
$pool = $this->createPool();
|
||||
$package = $this->getPackage('foo', '1');
|
||||
|
||||
$repository->addPackage($package);
|
||||
$pool->addRepository($repository);
|
||||
$pool->setPackages(array($package));
|
||||
|
||||
$this->assertSame($package, $pool->packageById(1));
|
||||
}
|
||||
|
||||
public function testWhatProvidesWhenPackageCannotBeFound()
|
||||
{
|
||||
$pool = new Pool;
|
||||
$pool = $this->createPool();
|
||||
|
||||
$this->assertEquals(array(), $pool->whatProvides('foo'));
|
||||
}
|
||||
|
||||
protected function createPool()
|
||||
{
|
||||
return new Pool(array('stable' => BasePackage::STABILITY_STABLE));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ use Composer\DependencyResolver\Rule;
|
|||
use Composer\DependencyResolver\RuleSet;
|
||||
use Composer\DependencyResolver\RuleSetIterator;
|
||||
use Composer\DependencyResolver\Pool;
|
||||
use Composer\Package\BasePackage;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class RuleSetIteratorTest extends TestCase
|
||||
|
@ -26,7 +27,7 @@ class RuleSetIteratorTest extends TestCase
|
|||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->pool = new Pool;
|
||||
$this->pool = new Pool(array('stable' => BasePackage::STABILITY_STABLE));
|
||||
|
||||
$this->rules = array(
|
||||
RuleSet::TYPE_JOB => array(
|
||||
|
|
|
@ -16,18 +16,12 @@ use Composer\DependencyResolver\GenericRule;
|
|||
use Composer\DependencyResolver\Rule;
|
||||
use Composer\DependencyResolver\RuleSet;
|
||||
use Composer\DependencyResolver\Pool;
|
||||
use Composer\Package\BasePackage;
|
||||
use Composer\Repository\ArrayRepository;
|
||||
use Composer\TestCase;
|
||||
|
||||
class RuleSetTest extends TestCase
|
||||
{
|
||||
protected $pool;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->pool = new Pool;
|
||||
}
|
||||
|
||||
public function testAdd()
|
||||
{
|
||||
$rules = array(
|
||||
|
@ -145,9 +139,11 @@ class RuleSetTest extends TestCase
|
|||
|
||||
public function testPrettyString()
|
||||
{
|
||||
$repo = new ArrayRepository;
|
||||
$repo->addPackage($p = $this->getPackage('foo', '2.1'));
|
||||
$this->pool->addRepository($repo);
|
||||
$pool = new Pool(array('stable' => BasePackage::STABILITY_STABLE));
|
||||
$pool->setPackages(array(
|
||||
$p = $this->getPackage('foo', '2.1'),
|
||||
));
|
||||
$p->setId(1);
|
||||
|
||||
$ruleSet = new RuleSet;
|
||||
$literal = $p->getId();
|
||||
|
@ -155,7 +151,7 @@ class RuleSetTest extends TestCase
|
|||
|
||||
$ruleSet->add($rule, RuleSet::TYPE_JOB);
|
||||
|
||||
$this->assertContains('JOB : Install command rule (install foo 2.1)', $ruleSet->getPrettyString($this->pool));
|
||||
$this->assertContains('JOB : Install command rule (install foo 2.1)', $ruleSet->getPrettyString($pool));
|
||||
}
|
||||
|
||||
private function getRuleMock()
|
||||
|
|
|
@ -16,18 +16,12 @@ use Composer\DependencyResolver\GenericRule;
|
|||
use Composer\DependencyResolver\Rule;
|
||||
use Composer\DependencyResolver\RuleSet;
|
||||
use Composer\DependencyResolver\Pool;
|
||||
use Composer\Package\BasePackage;
|
||||
use Composer\Repository\ArrayRepository;
|
||||
use Composer\TestCase;
|
||||
|
||||
class RuleTest extends TestCase
|
||||
{
|
||||
protected $pool;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->pool = new Pool;
|
||||
}
|
||||
|
||||
public function testGetHash()
|
||||
{
|
||||
$rule = new GenericRule(array(123), Rule::RULE_JOB_INSTALL, null);
|
||||
|
@ -99,13 +93,16 @@ class RuleTest extends TestCase
|
|||
|
||||
public function testPrettyString()
|
||||
{
|
||||
$repo = new ArrayRepository;
|
||||
$repo->addPackage($p1 = $this->getPackage('foo', '2.1'));
|
||||
$repo->addPackage($p2 = $this->getPackage('baz', '1.1'));
|
||||
$this->pool->addRepository($repo);
|
||||
$pool = new Pool(array('stable' => BasePackage::STABILITY_STABLE));
|
||||
$pool->setPackages(array(
|
||||
$p1 = $this->getPackage('foo', '2.1'),
|
||||
$p2 = $this->getPackage('baz', '1.1'),
|
||||
));
|
||||
$p1->setId(1);
|
||||
$p2->setId(2);
|
||||
|
||||
$rule = new GenericRule(array($p1->getId(), -$p2->getId()), Rule::RULE_JOB_INSTALL, null);
|
||||
|
||||
$this->assertEquals('Install command rule (don\'t install baz 1.1|install foo 2.1)', $rule->getPrettyString($this->pool));
|
||||
$this->assertEquals('Install command rule (don\'t install baz 1.1|install foo 2.1)', $rule->getPrettyString($pool));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,26 +20,28 @@ use Composer\DependencyResolver\Request;
|
|||
use Composer\DependencyResolver\Solver;
|
||||
use Composer\DependencyResolver\SolverProblemsException;
|
||||
use Composer\Package\Link;
|
||||
use Composer\Repository\InstalledArrayRepository;
|
||||
use Composer\Repository\RepositorySet;
|
||||
use Composer\TestCase;
|
||||
use Composer\Semver\Constraint\MultiConstraint;
|
||||
|
||||
class SolverTest extends TestCase
|
||||
{
|
||||
protected $pool;
|
||||
protected $repoSet;
|
||||
protected $repo;
|
||||
protected $repoInstalled;
|
||||
protected $request;
|
||||
protected $policy;
|
||||
protected $solver;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->pool = new Pool;
|
||||
$this->repoSet = new RepositorySet(array());
|
||||
$this->repo = new ArrayRepository;
|
||||
$this->repoInstalled = new ArrayRepository;
|
||||
$this->repoInstalled = new InstalledArrayRepository;
|
||||
|
||||
$this->request = new Request($this->pool);
|
||||
$this->request = new Request($this->repoSet);
|
||||
$this->policy = new DefaultPolicy;
|
||||
$this->solver = new Solver($this->policy, $this->pool, $this->repoInstalled, new NullIO());
|
||||
}
|
||||
|
||||
public function testSolverInstallSingle()
|
||||
|
@ -71,6 +73,7 @@ class SolverTest extends TestCase
|
|||
|
||||
$this->request->install('B', $this->getVersionConstraint('==', '1'));
|
||||
|
||||
$this->createSolver();
|
||||
try {
|
||||
$transaction = $this->solver->solve($this->request);
|
||||
$this->fail('Unsolvable conflict did not result in exception.');
|
||||
|
@ -90,9 +93,9 @@ class SolverTest extends TestCase
|
|||
$repo1->addPackage($foo1 = $this->getPackage('foo', '1'));
|
||||
$repo2->addPackage($foo2 = $this->getPackage('foo', '1'));
|
||||
|
||||
$this->pool->addRepository($this->repoInstalled);
|
||||
$this->pool->addRepository($repo1);
|
||||
$this->pool->addRepository($repo2);
|
||||
$this->repoSet->addRepository($this->repoInstalled);
|
||||
$this->repoSet->addRepository($repo1);
|
||||
$this->repoSet->addRepository($repo2);
|
||||
|
||||
$this->request->install('foo');
|
||||
|
||||
|
@ -445,6 +448,7 @@ class SolverTest extends TestCase
|
|||
|
||||
// must explicitly pick the provider, so error in this case
|
||||
$this->setExpectedException('Composer\DependencyResolver\SolverProblemsException');
|
||||
$this->createSolver();
|
||||
$this->solver->solve($this->request);
|
||||
}
|
||||
|
||||
|
@ -478,6 +482,7 @@ class SolverTest extends TestCase
|
|||
$this->request->install('A');
|
||||
|
||||
$this->setExpectedException('Composer\DependencyResolver\SolverProblemsException');
|
||||
$this->createSolver();
|
||||
$this->solver->solve($this->request);
|
||||
}
|
||||
|
||||
|
@ -650,6 +655,7 @@ class SolverTest extends TestCase
|
|||
|
||||
$this->setExpectedException('Composer\DependencyResolver\SolverProblemsException');
|
||||
|
||||
$this->createSolver();
|
||||
$this->solver->solve($this->request);
|
||||
}
|
||||
|
||||
|
@ -666,6 +672,7 @@ class SolverTest extends TestCase
|
|||
$this->request->install('A');
|
||||
$this->request->install('B');
|
||||
|
||||
$this->createSolver();
|
||||
try {
|
||||
$transaction = $this->solver->solve($this->request);
|
||||
$this->fail('Unsolvable conflict did not result in exception.');
|
||||
|
@ -695,6 +702,7 @@ class SolverTest extends TestCase
|
|||
|
||||
$this->request->install('A');
|
||||
|
||||
$this->createSolver();
|
||||
try {
|
||||
$transaction = $this->solver->solve($this->request);
|
||||
$this->fail('Unsolvable conflict did not result in exception.');
|
||||
|
@ -742,6 +750,7 @@ class SolverTest extends TestCase
|
|||
|
||||
$this->request->install('A');
|
||||
|
||||
$this->createSolver();
|
||||
try {
|
||||
$transaction = $this->solver->solve($this->request);
|
||||
$this->fail('Unsolvable conflict did not result in exception.');
|
||||
|
@ -839,12 +848,18 @@ class SolverTest extends TestCase
|
|||
|
||||
protected function reposComplete()
|
||||
{
|
||||
$this->pool->addRepository($this->repoInstalled);
|
||||
$this->pool->addRepository($this->repo);
|
||||
$this->repoSet->addRepository($this->repoInstalled);
|
||||
$this->repoSet->addRepository($this->repo);
|
||||
}
|
||||
|
||||
protected function createSolver()
|
||||
{
|
||||
$this->solver = new Solver($this->policy, $this->repoSet->createPool($this->request), $this->repoInstalled, new NullIO());
|
||||
}
|
||||
|
||||
protected function checkSolverResult(array $expected)
|
||||
{
|
||||
$this->createSolver();
|
||||
$transaction = $this->solver->solve($this->request);
|
||||
|
||||
$result = array();
|
||||
|
|
|
@ -411,12 +411,12 @@ class EventDispatcherTest extends TestCase
|
|||
->will($this->returnValue(array()));
|
||||
|
||||
$policy = $this->getMockBuilder('Composer\DependencyResolver\PolicyInterface')->getMock();
|
||||
$pool = $this->getMockBuilder('Composer\DependencyResolver\Pool')->disableOriginalConstructor()->getMock();
|
||||
$repositorySet = $this->getMockBuilder('Composer\Repository\RepositorySet')->disableOriginalConstructor()->getMock();
|
||||
$installedRepo = $this->getMockBuilder('Composer\Repository\CompositeRepository')->disableOriginalConstructor()->getMock();
|
||||
$request = $this->getMockBuilder('Composer\DependencyResolver\Request')->disableOriginalConstructor()->getMock();
|
||||
|
||||
$dispatcher->dispatchInstallerEvent(InstallerEvents::PRE_DEPENDENCIES_SOLVING, true, $policy, $pool, $installedRepo, $request);
|
||||
$dispatcher->dispatchInstallerEvent(InstallerEvents::POST_DEPENDENCIES_SOLVING, true, $policy, $pool, $installedRepo, $request, array());
|
||||
$dispatcher->dispatchInstallerEvent(InstallerEvents::PRE_DEPENDENCIES_SOLVING, true, $policy, $repositorySet, $installedRepo, $request);
|
||||
$dispatcher->dispatchInstallerEvent(InstallerEvents::POST_DEPENDENCIES_SOLVING, true, $policy, $repositorySet, $installedRepo, $request, array());
|
||||
}
|
||||
|
||||
public static function call()
|
||||
|
|
|
@ -22,18 +22,18 @@ class InstallerEventTest extends TestCase
|
|||
$composer = $this->getMockBuilder('Composer\Composer')->getMock();
|
||||
$io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
|
||||
$policy = $this->getMockBuilder('Composer\DependencyResolver\PolicyInterface')->getMock();
|
||||
$pool = $this->getMockBuilder('Composer\DependencyResolver\Pool')->disableOriginalConstructor()->getMock();
|
||||
$repositorySet = $this->getMockBuilder('Composer\Repository\RepositorySet')->disableOriginalConstructor()->getMock();
|
||||
$installedRepo = $this->getMockBuilder('Composer\Repository\CompositeRepository')->disableOriginalConstructor()->getMock();
|
||||
$request = $this->getMockBuilder('Composer\DependencyResolver\Request')->disableOriginalConstructor()->getMock();
|
||||
$operations = array($this->getMockBuilder('Composer\DependencyResolver\Operation\OperationInterface')->getMock());
|
||||
$event = new InstallerEvent('EVENT_NAME', $composer, $io, true, $policy, $pool, $installedRepo, $request, $operations);
|
||||
$event = new InstallerEvent('EVENT_NAME', $composer, $io, true, $policy, $repositorySet, $installedRepo, $request, $operations);
|
||||
|
||||
$this->assertSame('EVENT_NAME', $event->getName());
|
||||
$this->assertInstanceOf('Composer\Composer', $event->getComposer());
|
||||
$this->assertInstanceOf('Composer\IO\IOInterface', $event->getIO());
|
||||
$this->assertTrue($event->isDevMode());
|
||||
$this->assertInstanceOf('Composer\DependencyResolver\PolicyInterface', $event->getPolicy());
|
||||
$this->assertInstanceOf('Composer\DependencyResolver\Pool', $event->getPool());
|
||||
$this->assertInstanceOf('Composer\Repository\RepositorySet', $event->getRepositorySet());
|
||||
$this->assertInstanceOf('Composer\Repository\CompositeRepository', $event->getInstalledRepo());
|
||||
$this->assertInstanceOf('Composer\DependencyResolver\Request', $event->getRequest());
|
||||
$this->assertCount(1, $event->getOperations());
|
||||
|
|
|
@ -14,6 +14,7 @@ namespace Composer\Test;
|
|||
|
||||
use Composer\Installer;
|
||||
use Composer\Console\Application;
|
||||
use Composer\IO\BufferIO;
|
||||
use Composer\Json\JsonFile;
|
||||
use Composer\Util\Filesystem;
|
||||
use Composer\Repository\ArrayRepository;
|
||||
|
@ -30,7 +31,6 @@ use Symfony\Component\Console\Output\StreamOutput;
|
|||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
use Composer\TestCase;
|
||||
use Composer\IO\BufferIO;
|
||||
|
||||
class InstallerTest extends TestCase
|
||||
{
|
||||
|
@ -57,7 +57,7 @@ class InstallerTest extends TestCase
|
|||
*/
|
||||
public function testInstaller(RootPackageInterface $rootPackage, $repositories, array $options)
|
||||
{
|
||||
$io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
|
||||
$io = new BufferIO('', OutputInterface::VERBOSITY_NORMAL, new OutputFormatter(false));
|
||||
|
||||
$downloadManager = $this->getMockBuilder('Composer\Downloader\DownloadManager')
|
||||
->setConstructorArgs(array($io))
|
||||
|
@ -82,7 +82,9 @@ class InstallerTest extends TestCase
|
|||
|
||||
$installer = new Installer($io, $config, clone $rootPackage, $downloadManager, $repositoryManager, $locker, $installationManager, $eventDispatcher, $autoloadGenerator);
|
||||
$result = $installer->run();
|
||||
$this->assertSame(0, $result);
|
||||
|
||||
$output = str_replace("\r", '', $io->getOutput());
|
||||
$this->assertEquals(0, $result, $output);
|
||||
|
||||
$expectedInstalled = isset($options['install']) ? $options['install'] : array();
|
||||
$expectedUpdated = isset($options['update']) ? $options['update'] : array();
|
||||
|
|
|
@ -21,7 +21,7 @@ use PHPUnit\Framework\TestCase;
|
|||
class VersionSelectorTest extends TestCase
|
||||
{
|
||||
// A) multiple versions, get the latest one
|
||||
// B) targetPackageVersion will pass to pool
|
||||
// B) targetPackageVersion will pass to repo set
|
||||
// C) No results, throw exception
|
||||
|
||||
public function testLatestVersionIsReturned()
|
||||
|
@ -33,13 +33,13 @@ class VersionSelectorTest extends TestCase
|
|||
$package3 = $this->createPackage('1.2.0');
|
||||
$packages = array($package1, $package2, $package3);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName);
|
||||
|
||||
// 1.2.2 should be returned because it's the latest of the returned versions
|
||||
|
@ -57,13 +57,13 @@ class VersionSelectorTest extends TestCase
|
|||
$package2->setRequires(array('php' => new Link($packageName, 'php', $parser->parseConstraints('>=5.6'), 'requires', '>=5.6')));
|
||||
$packages = array($package1, $package2);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName, null, '5.5.0');
|
||||
|
||||
$this->assertSame($package1, $best, 'Latest version supporting php 5.5 should be returned (1.0.0)');
|
||||
|
@ -77,13 +77,13 @@ class VersionSelectorTest extends TestCase
|
|||
$package2 = $this->createPackage('1.1.0-beta');
|
||||
$packages = array($package1, $package2);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName);
|
||||
|
||||
$this->assertSame($package1, $best, 'Latest most stable version should be returned (1.0.0)');
|
||||
|
@ -97,18 +97,18 @@ class VersionSelectorTest extends TestCase
|
|||
$package2 = $this->createPackage('2.0.0-beta3');
|
||||
$packages = array($package1, $package2);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->at(0))
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->at(0))
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$pool->expects($this->at(1))
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet->expects($this->at(1))
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue(array_reverse($packages)));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName, null, null);
|
||||
$this->assertSame($package2, $best, 'Expecting 2.0.0-beta3, cause beta is more stable than dev');
|
||||
|
||||
|
@ -124,13 +124,13 @@ class VersionSelectorTest extends TestCase
|
|||
$package2 = $this->createPackage('1.1.0-beta');
|
||||
$packages = array($package1, $package2);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName, null, null, 'dev');
|
||||
|
||||
$this->assertSame($package2, $best, 'Latest version should be returned (1.1.0-beta)');
|
||||
|
@ -145,13 +145,13 @@ class VersionSelectorTest extends TestCase
|
|||
$package3 = $this->createPackage('1.2.0-alpha');
|
||||
$packages = array($package1, $package2, $package3);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName, null, null, 'beta');
|
||||
|
||||
$this->assertSame($package2, $best, 'Latest version should be returned (1.1.0-beta)');
|
||||
|
@ -165,13 +165,13 @@ class VersionSelectorTest extends TestCase
|
|||
$package3 = $this->createPackage('1.2.0-alpha');
|
||||
$packages = array($package2, $package3);
|
||||
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
->with($packageName, null, true)
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->with($packageName, null)
|
||||
->will($this->returnValue($packages));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate($packageName, null, null, 'stable');
|
||||
|
||||
$this->assertSame($package2, $best, 'Latest version should be returned (1.1.0-beta)');
|
||||
|
@ -179,12 +179,12 @@ class VersionSelectorTest extends TestCase
|
|||
|
||||
public function testFalseReturnedOnNoPackages()
|
||||
{
|
||||
$pool = $this->createMockPool();
|
||||
$pool->expects($this->once())
|
||||
->method('whatProvides')
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$repositorySet->expects($this->once())
|
||||
->method('findPackages')
|
||||
->will($this->returnValue(array()));
|
||||
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$best = $versionSelector->findBestCandidate('foobaz');
|
||||
$this->assertFalse($best, 'No versions are available returns false');
|
||||
}
|
||||
|
@ -194,8 +194,8 @@ class VersionSelectorTest extends TestCase
|
|||
*/
|
||||
public function testFindRecommendedRequireVersion($prettyVersion, $isDev, $stability, $expectedVersion, $branchAlias = null)
|
||||
{
|
||||
$pool = $this->createMockPool();
|
||||
$versionSelector = new VersionSelector($pool);
|
||||
$repositorySet = $this->createMockRepositorySet();
|
||||
$versionSelector = new VersionSelector($repositorySet);
|
||||
$versionParser = new VersionParser();
|
||||
|
||||
$package = $this->getMockBuilder('\Composer\Package\PackageInterface')->getMock();
|
||||
|
@ -273,8 +273,10 @@ class VersionSelectorTest extends TestCase
|
|||
return new Package('foo', $parser->normalize($version), $version);
|
||||
}
|
||||
|
||||
private function createMockPool()
|
||||
private function createMockRepositorySet()
|
||||
{
|
||||
return $this->getMockBuilder('Composer\DependencyResolver\Pool')->getMock();
|
||||
return $this->getMockBuilder('Composer\Repository\RepositorySet')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
"class": "Installer\\Plugin"
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0"
|
||||
"composer-plugin-api": "^2.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
"class": "Installer\\Plugin2"
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0"
|
||||
"composer-plugin-api": "^2.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
"class": "Installer\\Plugin2"
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0"
|
||||
"composer-plugin-api": "^2.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
]
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0"
|
||||
"composer-plugin-api": "^2.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
]
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "1.1.0"
|
||||
"composer-plugin-api": "2.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
"class": "Installer\\Plugin"
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0"
|
||||
"composer-plugin-api": "^2.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ class PluginInstallerTest extends TestCase
|
|||
public function testInstallNewPlugin()
|
||||
{
|
||||
$this->repository
|
||||
->expects($this->exactly(2))
|
||||
->expects($this->once())
|
||||
->method('getPackages')
|
||||
->will($this->returnValue(array()));
|
||||
$installer = new PluginInstaller($this->io, $this->composer);
|
||||
|
@ -145,7 +145,7 @@ class PluginInstallerTest extends TestCase
|
|||
public function testInstallMultiplePlugins()
|
||||
{
|
||||
$this->repository
|
||||
->expects($this->exactly(2))
|
||||
->expects($this->once())
|
||||
->method('getPackages')
|
||||
->will($this->returnValue(array($this->packages[3])));
|
||||
$installer = new PluginInstaller($this->io, $this->composer);
|
||||
|
@ -163,7 +163,7 @@ class PluginInstallerTest extends TestCase
|
|||
public function testUpgradeWithNewClassName()
|
||||
{
|
||||
$this->repository
|
||||
->expects($this->exactly(3))
|
||||
->expects($this->once())
|
||||
->method('getPackages')
|
||||
->will($this->returnValue(array($this->packages[0])));
|
||||
$this->repository
|
||||
|
@ -182,7 +182,7 @@ class PluginInstallerTest extends TestCase
|
|||
public function testUpgradeWithSameClassName()
|
||||
{
|
||||
$this->repository
|
||||
->expects($this->exactly(3))
|
||||
->expects($this->once())
|
||||
->method('getPackages')
|
||||
->will($this->returnValue(array($this->packages[1])));
|
||||
$this->repository
|
||||
|
@ -201,7 +201,7 @@ class PluginInstallerTest extends TestCase
|
|||
public function testRegisterPluginOnlyOneTime()
|
||||
{
|
||||
$this->repository
|
||||
->expects($this->exactly(2))
|
||||
->expects($this->once())
|
||||
->method('getPackages')
|
||||
->will($this->returnValue(array()));
|
||||
$installer = new PluginInstaller($this->io, $this->composer);
|
||||
|
@ -240,11 +240,11 @@ class PluginInstallerTest extends TestCase
|
|||
|
||||
// Add the plugins to the repo along with the internal Plugin package on which they all rely.
|
||||
$this->repository
|
||||
->expects($this->any())
|
||||
->method('getPackages')
|
||||
->will($this->returnCallback(function () use ($plugApiInternalPackage, $plugins) {
|
||||
return array_merge(array($plugApiInternalPackage), $plugins);
|
||||
}));
|
||||
->expects($this->any())
|
||||
->method('getPackages')
|
||||
->will($this->returnCallback(function () use ($plugApiInternalPackage, $plugins) {
|
||||
return array_merge(array($plugApiInternalPackage), $plugins);
|
||||
}));
|
||||
|
||||
$this->pm->loadInstalledPlugins();
|
||||
}
|
||||
|
@ -300,7 +300,7 @@ class PluginInstallerTest extends TestCase
|
|||
public function testCommandProviderCapability()
|
||||
{
|
||||
$this->repository
|
||||
->expects($this->exactly(2))
|
||||
->expects($this->once())
|
||||
->method('getPackages')
|
||||
->will($this->returnValue(array($this->packages[7])));
|
||||
$installer = new PluginInstaller($this->io, $this->composer);
|
||||
|
|
|
@ -142,11 +142,6 @@ class ComposerRepositoryTest extends TestCase
|
|||
),
|
||||
)));
|
||||
|
||||
$pool = $this->getMockBuilder('Composer\DependencyResolver\Pool')->getMock();
|
||||
$pool->expects($this->any())
|
||||
->method('isPackageAcceptable')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$versionParser = new VersionParser();
|
||||
$repo->setRootAliases(array(
|
||||
'a' => array(
|
||||
|
@ -155,7 +150,7 @@ class ComposerRepositoryTest extends TestCase
|
|||
),
|
||||
));
|
||||
|
||||
$packages = $repo->whatProvides($pool, 'a');
|
||||
$packages = $repo->whatProvides('a', false, array($this, 'isPackageAcceptableReturnTrue'));
|
||||
|
||||
$this->assertCount(7, $packages);
|
||||
$this->assertEquals(array('1', '1-alias', '2', '2-alias', '2-root', '3', '3-root'), array_keys($packages));
|
||||
|
@ -164,6 +159,11 @@ class ComposerRepositoryTest extends TestCase
|
|||
$this->assertSame($packages['2'], $packages['2-alias']->getAliasOf());
|
||||
}
|
||||
|
||||
public function isPackageAcceptableReturnTrue()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function testSearchWithType()
|
||||
{
|
||||
$repoConfig = array(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue