Browse Source

Test a replace link with a null constraint between packages

Nils Adermann 14 years ago
parent
commit
b1d16a88b7

+ 1 - 1
src/Composer/Package/Link.php

@@ -34,7 +34,7 @@ class Link
      * @param LinkConstraintInterface $constraint  Constraint applying to the target of this link
      * @param string                  $description Used to create a descriptive string representation
      */
-    public function __construct($source, $target, LinkConstraintInterface $constraint, $description = 'relates to')
+    public function __construct($source, $target, LinkConstraintInterface $constraint = null, $description = 'relates to')
     {
         $this->source = $source;
         $this->target = $target;

+ 15 - 0
tests/Composer/Test/DependencyResolver/SolverTest.php

@@ -184,6 +184,21 @@ class SolverTest extends \PHPUnit_Framework_TestCase
         ));
     }
 
+    public function testSolverObsolete()
+    {
+        $this->repoInstalled->addPackage($packageA = new MemoryPackage('A', '1.0'));
+        $this->repo->addPackage($packageB = new MemoryPackage('B', '1.0'));
+        $packageB->setReplaces(array(new Link('B', 'A', null)));
+
+        $this->reposComplete();
+
+        $this->request->install('B');
+
+        $this->checkSolverResult(array(
+            array('job' => 'update', 'from' => $packageA, 'to' => $packageB),
+        ));
+    }
+
     public function testInstallOneOfTwoAlternatives()
     {
         $this->repo->addPackage($packageA = new MemoryPackage('A', '1.0'));