diff -r bbdc7f9aa25e -r 03b14b0fe101 vendor/doctrine-migrations/tests/Doctrine/DBAL/Migrations/Tests/ConfigurationTest.php --- /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 @@ +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