vendor/doctrine-migrations/tests/Doctrine/DBAL/Migrations/Tests/ConfigurationTest.php
changeset 39 03b14b0fe101
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/doctrine-migrations/tests/Doctrine/DBAL/Migrations/Tests/ConfigurationTest.php	Fri Nov 25 18:55:43 2011 +0100
@@ -0,0 +1,143 @@
+<?php
+
+namespace Doctrine\DBAL\Migrations\Tests;
+
+use Doctrine\DBAL\Migrations\Configuration\Configuration;
+use Doctrine\DBAL\Schema\Schema;
+
+class ConfigurationTest extends MigrationTestCase
+{
+    public function testGetConnection()
+    {
+        $conn = $this->getSqliteConnection();
+        $config = new Configuration($conn);
+
+        $this->assertSame($conn, $config->getConnection());
+    }
+
+    public function testValidateMigrationsNamespaceRequired()
+    {
+        $config = new Configuration($this->getSqliteConnection());
+
+        $this->setExpectedException("Doctrine\DBAL\Migrations\MigrationException", "Migrations namespace must be configured in order to use Doctrine migrations.");
+        $config->validate();
+    }
+
+    public function testValidateMigrationsDirectoryRequired()
+    {
+        $config = new Configuration($this->getSqliteConnection());
+        $config->setMigrationsNamespace("DoctrineMigrations\\");
+
+        $this->setExpectedException("Doctrine\DBAL\Migrations\MigrationException", "Migrations directory must be configured in order to use Doctrine migrations.");
+        $config->validate();
+    }
+
+    public function testValidateMigrations()
+    {
+        $config = new Configuration($this->getSqliteConnection());
+        $config->setMigrationsNamespace("DoctrineMigrations\\");
+        $config->setMigrationsDirectory(sys_get_temp_dir());
+
+        $config->validate();
+    }
+
+    public function testSetGetName()
+    {
+        $config = new Configuration($this->getSqliteConnection());
+        $config->setName('Test');
+
+        $this->assertEquals('Test', $config->getName());
+    }
+
+    public function testMigrationsTable()
+    {
+        $config = new Configuration($this->getSqliteConnection());
+
+        $this->assertEquals("doctrine_migration_versions", $config->getMigrationsTableName());
+    }
+
+    public function testEmptyProjectDefaults()
+    {
+        $config = $this->getSqliteConfiguration();
+        $this->assertEquals(0, $config->getCurrentVersion(), "current version 0");
+        $this->assertEquals(0, $config->getLatestVersion(), "latest version 0");
+        $this->assertEquals(0, $config->getNumberOfAvailableMigrations(), "number of available migrations 0");
+        $this->assertEquals(0, $config->getNumberOfExecutedMigrations(), "number of executed migrations 0");
+        $this->assertEquals(array(), $config->getMigrations());
+    }
+
+    public function testGetUnknownVersion()
+    {
+        $config = $this->getSqliteConfiguration();
+
+        $this->setExpectedException('Doctrine\DBAL\Migrations\MigrationException', 'Could not find migration version 1234');
+        $config->getVersion(1234);
+    }
+
+    public function testRegisterMigration()
+    {
+        $config = $this->getSqliteConfiguration();
+        $config->registerMigration(1234, 'Doctrine\DBAL\Migrations\Tests\ConfigMigration');
+
+        $this->assertEquals(1, count($config->getMigrations()), "One Migration registered.");
+        $this->assertTrue($config->hasVersion(1234));
+
+        $version = $config->getVersion(1234);
+        $this->assertInstanceOf('Doctrine\DBAL\Migrations\Version', $version);
+        $this->assertEquals(1234, $version->getVersion());
+        $this->assertFalse($version->isMigrated());
+    }
+
+    public function testRegisterMigrations()
+    {
+        $config = $this->getSqliteConfiguration();
+        $config->registerMigrations(array(
+            1234 => 'Doctrine\DBAL\Migrations\Tests\ConfigMigration',
+            1235 => 'Doctrine\DBAL\Migrations\Tests\Config2Migration',
+        ));
+
+        $this->assertEquals(2, count($config->getMigrations()), "Two Migration registered.");
+
+        $version = $config->getVersion(1234);
+        $this->assertInstanceOf('Doctrine\DBAL\Migrations\Version', $version);
+
+        $version = $config->getVersion(1235);
+        $this->assertInstanceOf('Doctrine\DBAL\Migrations\Version', $version);
+    }
+
+    public function testRegisterDuplicateVersion()
+    {
+        $config = $this->getSqliteConfiguration();
+
+        $config->registerMigration(1234, 'Doctrine\DBAL\Migrations\Tests\ConfigMigration');
+
+        $this->setExpectedException('Doctrine\DBAL\Migrations\MigrationException', 'Migration version 1234 already registered with class Doctrine\DBAL\Migrations\Version');
+        $config->registerMigration(1234, 'Doctrine\DBAL\Migrations\Tests\ConfigMigration');
+    }
+}
+
+class ConfigMigration extends \Doctrine\DBAL\Migrations\AbstractMigration
+{
+    public function down(Schema $schema)
+    {
+        
+    }
+    
+    public function up(Schema $schema)
+    {
+
+    }
+}
+
+class Config2Migration extends \Doctrine\DBAL\Migrations\AbstractMigration
+{
+    public function down(Schema $schema)
+    {
+
+    }
+
+    public function up(Schema $schema)
+    {
+
+    }
+}
\ No newline at end of file