. */ /** * Doctrine_Migration_Mysql_TestCase * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.org * @since 1.0 * @version $Revision$ */ class Doctrine_Migration_Mysql_TestCase extends Doctrine_UnitTestCase { protected $serverExists = false; public function setUp() { parent::setUp(); try { $dsn = 'mysql://doctrine_tester:d0cTrynR0x!@localhost/doctrine_unit_test'; $this->conn = $this->manager->openConnection($dsn, 'unit_test', true); $this->conn->connect(); $this->serverExists = true; } catch (Exception $e){ $this->serverExists = false; } } public function testMigration() { if ($this->serverExists){ // Clean up any left over tables from broken test runs. try { $this->conn->export->dropTable('migration_test'); $this->conn->export->dropTable('migration_version'); } catch(Exception $e) { } // New migration for the 'migration_classes' directory $migration = new Doctrine_Migration('mysql_migration_classes'); // Make sure the current version is 0 $this->assertEqual($migration->getCurrentVersion(), 0); // migrate to version latest version $migration->migrate($migration->getLatestVersion()); // Make sure the current version is latest version $this->assertEqual($migration->getCurrentVersion(), $migration->getLatestVersion()); // now migrate back to original version $migration->migrate(0); // Make sure the current version is 0 $this->assertEqual($migration->getCurrentVersion(), 0); } else { $this->fail('server does not exist.'); } } }