Add a solver test for provided virtual packages and circular dependencies
parent
d455eef82c
commit
85f88de59d
|
@ -213,6 +213,62 @@ class SolverTest extends \PHPUnit_Framework_TestCase
|
|||
));
|
||||
}
|
||||
|
||||
public function testInstallProvider()
|
||||
{
|
||||
$this->repo->addPackage($packageA = new MemoryPackage('A', '1.0'));
|
||||
$this->repo->addPackage($packageQ = new MemoryPackage('Q', '1.0'));
|
||||
$this->repo->addPackage($packageB = new MemoryPackage('B', '0.8'));
|
||||
$packageA->setRequires(array(new Link('A', 'B', new VersionConstraint('>=', '1.0'), 'requires')));
|
||||
$packageQ->setProvides(array(new Link('Q', 'B', new VersionConstraint('=', '1.0'), 'provides')));
|
||||
|
||||
$this->reposComplete();
|
||||
|
||||
$this->request->install('A');
|
||||
|
||||
$this->checkSolverResult(array(
|
||||
array('job' => 'install', 'package' => $packageQ),
|
||||
array('job' => 'install', 'package' => $packageA),
|
||||
));
|
||||
}
|
||||
|
||||
public function testInstallCircularRequire()
|
||||
{
|
||||
$this->repo->addPackage($packageA = new MemoryPackage('A', '1.0'));
|
||||
$this->repo->addPackage($packageB1 = new MemoryPackage('B', '0.9'));
|
||||
$this->repo->addPackage($packageB2 = new MemoryPackage('B', '1.1'));
|
||||
$packageA->setRequires(array(new Link('A', 'B', new VersionConstraint('>=', '1.0'), 'requires')));
|
||||
$packageB2->setRequires(array(new Link('B', 'A', new VersionConstraint('>=', '1.0'), 'requires')));
|
||||
|
||||
$this->reposComplete();
|
||||
|
||||
$this->request->install('A');
|
||||
|
||||
$this->checkSolverResult(array(
|
||||
array('job' => 'install', 'package' => $packageB2),
|
||||
array('job' => 'install', 'package' => $packageA),
|
||||
));
|
||||
}
|
||||
|
||||
/*
|
||||
public function testSolverWithComposerRepo()
|
||||
{
|
||||
$this->repoInstalled = new PlatformRepository;
|
||||
|
||||
// overwrite solver with custom installed repo
|
||||
$this->solver = new Solver($this->policy, $this->pool, $this->repoInstalled);
|
||||
|
||||
$this->repo = new ComposerRepository('http://packagist.org');
|
||||
list($monolog) = $this->repo->getPackages();
|
||||
|
||||
$this->reposComplete();
|
||||
|
||||
$this->request->install('Monolog');
|
||||
|
||||
$this->checkSolverResult(array(
|
||||
array('job' => 'install', 'package' => $monolog),
|
||||
));
|
||||
}*/
|
||||
|
||||
protected function reposComplete()
|
||||
{
|
||||
$this->pool->addRepository($this->repoInstalled);
|
||||
|
|
Loading…
Reference in New Issue