瀏覽代碼

Add a few proper tests for literals, all tests passing now

Nils Adermann 13 年之前
父節點
當前提交
db18e1b560
共有 1 個文件被更改,包括 41 次插入3 次删除
  1. 41 3
      tests/Composer/Test/DependencyResolver/LiteralTest.php

+ 41 - 3
tests/Composer/Test/DependencyResolver/LiteralTest.php

@@ -17,9 +17,47 @@ use Composer\Package\MemoryPackage;
 
 class LiteralTest extends \PHPUnit_Framework_TestCase
 {
-    public function testLiteral()
+    protected $package;
+
+    public function setUp()
     {
-        $literal = new Literal(new MemoryPackage('foo', '1'), true);
-        $this->markTestIncomplete('Eh?');
+        $this->package = new MemoryPackage('foo', '1');
+        $this->package->setId(12);
+    }
+
+    public function testLiteralWanted()
+    {
+        $literal = new Literal($this->package, true);
+
+        $this->assertEquals(12, $literal->getId());
+        $this->assertEquals('+'.(string) $this->package, (string) $literal);
+    }
+
+    public function testLiteralUnwanted()
+    {
+        $literal = new Literal($this->package, false);
+
+        $this->assertEquals(-12, $literal->getId());
+        $this->assertEquals('-'.(string) $this->package, (string) $literal);
+    }
+
+    public function testLiteralInverted()
+    {
+        $literal = new Literal($this->package, false);
+
+        $inverted = $literal->inverted();
+
+        $this->assertInstanceOf('\Composer\DependencyResolver\Literal', $inverted);
+        $this->assertTrue($inverted->isWanted());
+        $this->assertSame($this->package, $inverted->getPackage());
+        $this->assertFalse($literal->equals($inverted));
+
+        $doubleInverted = $inverted->inverted();
+
+        $this->assertInstanceOf('\Composer\DependencyResolver\Literal', $doubleInverted);
+        $this->assertFalse($doubleInverted->isWanted());
+        $this->assertSame($this->package, $doubleInverted->getPackage());
+
+        $this->assertTrue($literal->equals($doubleInverted));
     }
 }