public function testUpdate() { $db = Database::get(); $this->assertTrue($db->tableExists('Files')); $sm = $db->getSchemaManager(); $directory = dirname(__FILE__) . '/fixtures/'; $configuration = new \Concrete\Core\Updater\Migrations\Configuration(); $configuration->setMigrationsDirectory($directory); $configuration->registerMigrationsFromDirectory($directory); $migrations = $configuration->getMigrations(); $originalLogs = $sm->listTableDetails('Logs'); $this->assertEquals(2, count($migrations)); $this->assertTrue(array_key_exists('20140908071333', $migrations)); $this->assertInstanceOf('\\Doctrine\\DBAL\\Migrations\\Version', $migrations['20140908071333']); $migrations = $configuration->getMigrationsToExecute('up', '20140908095447'); $this->assertEquals(2, count($migrations)); $migrations = $configuration->getMigrationsToExecute('up', '20140908071333'); $this->assertEquals(1, count($migrations)); $migration = $migrations['20140908071333']; $migration->execute('up'); $newLogs = $sm->listTableDetails('Logs'); $fPassword = $sm->listTableDetails('Files')->getColumn('fPassword'); $this->assertFalse($originalLogs->hasColumn('testcolumn')); $this->assertTrue($newLogs->hasColumn('testcolumn')); $this->assertInstanceof('\\Doctrine\\DBAL\\Types\\TextType', $fPassword->getType()); $migration->execute('down'); $fPassword = $sm->listTableDetails('Files')->getColumn('fPassword'); $newLogs = $sm->listTableDetails('Logs'); $this->assertInstanceof('\\Doctrine\\DBAL\\Types\\StringType', $fPassword->getType()); $this->assertFalse($newLogs->hasColumn('testcolumn')); $migrations = $configuration->getMigrationsToExecute('up', '20140908095447'); foreach ($migrations as $migration) { $migration->execute('up'); } $this->assertTrue($db->tableExists('Widgets')); $bt = BlockType::getByHandle('file'); $this->assertInstanceOf('\\Concrete\\Core\\Block\\BlockType\\BlockType', $bt); $this->assertEquals(2, $bt->getBlockTypeID()); // because we cleared it out once already. $ids = $db->GetOne('select count(btID) from BlockTypes'); $this->assertEquals(1, $ids); }