Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / Schema / IndexTest.php
diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Schema/IndexTest.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Schema/IndexTest.php
new file mode 100644 (file)
index 0000000..ed6b070
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+namespace Doctrine\Tests\DBAL\Schema;
+
+require_once __DIR__ . '/../../TestInit.php';
+
+use Doctrine\DBAL\Schema\Schema;
+use Doctrine\DBAL\Schema\Table;
+use Doctrine\DBAL\Schema\Column;
+use Doctrine\DBAL\Schema\Index;
+
+class IndexTest extends \PHPUnit_Framework_TestCase
+{
+    public function createIndex($unique=false, $primary=false)
+    {
+        return new Index("foo", array("bar", "baz"), $unique, $primary);
+    }
+
+    public function testCreateIndex()
+    {
+        $idx = $this->createIndex();
+        $this->assertEquals("foo", $idx->getName());
+        $columns = $idx->getColumns();
+        $this->assertEquals(2, count($columns));
+        $this->assertEquals(array("bar", "baz"), $columns);
+        $this->assertFalse($idx->isUnique());
+        $this->assertFalse($idx->isPrimary());
+    }
+
+    public function testCreatePrimary()
+    {
+        $idx = $this->createIndex(false, true);
+        $this->assertTrue($idx->isUnique());
+        $this->assertTrue($idx->isPrimary());
+    }
+
+    public function testCreateUnique()
+    {
+        $idx = $this->createIndex(true, false);
+        $this->assertTrue($idx->isUnique());
+        $this->assertFalse($idx->isPrimary());
+    }
+
+    /**
+     * @group DBAL-50
+     */
+    public function testFullfilledByUnique()
+    {
+        $idx1 = $this->createIndex(true, false);
+        $idx2 = $this->createIndex(true, false);
+        $idx3 = $this->createIndex();
+
+        $this->assertTrue($idx1->isFullfilledBy($idx2));
+        $this->assertFalse($idx1->isFullfilledBy($idx3));
+    }
+
+    /**
+     * @group DBAL-50
+     */
+    public function testFullfilledByPrimary()
+    {
+        $idx1 = $this->createIndex(true, true);
+        $idx2 = $this->createIndex(true, true);
+        $idx3 = $this->createIndex(true, false);
+
+        $this->assertTrue($idx1->isFullfilledBy($idx2));
+        $this->assertFalse($idx1->isFullfilledBy($idx3));
+    }
+
+    /**
+     * @group DBAL-50
+     */
+    public function testFullfilledByIndex()
+    {
+        $idx1 = $this->createIndex();
+        $idx2 = $this->createIndex();
+        $pri = $this->createIndex(true, true);
+        $uniq = $this->createIndex(true);
+
+        $this->assertTrue($idx1->isFullfilledBy($idx2));
+        $this->assertTrue($idx1->isFullfilledBy($pri));
+        $this->assertTrue($idx1->isFullfilledBy($uniq));
+    }
+
+    /**
+     * @group DBAL-220
+     */
+    public function testFlags()
+    {
+        $idx1 = $this->createIndex();
+        $this->assertFalse($idx1->hasFlag('clustered'));
+
+        $idx1->addFlag('clustered');
+        $this->assertTrue($idx1->hasFlag('clustered'));
+        $this->assertTrue($idx1->hasFlag('CLUSTERED'));
+
+        $idx1->removeFlag('clustered');
+        $this->assertFalse($idx1->hasFlag('clustered'));
+    }
+
+    /**
+     * @group DBAL-285
+     */
+    public function testIndexQuotes()
+    {
+        $index = new Index("foo", array("`bar`", "`baz`"));
+
+        $this->assertTrue($index->spansColumns(array("bar", "baz")));
+        $this->assertTrue($index->hasColumnAtPosition("bar", 0));
+        $this->assertTrue($index->hasColumnAtPosition("baz", 1));
+
+        $this->assertFalse($index->hasColumnAtPosition("bar", 1));
+        $this->assertFalse($index->hasColumnAtPosition("baz", 0));
+    }
+}