/** * @dataProvider providerRollbackSuccess * @param $module * @param $step * @param $tableFilter * @param $expected */ public function testRollbackSuccess($module, $step, $tableFilter, $expected) { self::$manager->up($module); $result = self::$db->query("SHOW TABLES LIKE '" . $tableFilter . "';", Adapter::QUERY_MODE_EXECUTE); $this->assertEquals(5, $result->count()); self::$manager->rollback($module, $step); $result = self::$db->query("SHOW TABLES LIKE '" . $tableFilter . "';", Adapter::QUERY_MODE_EXECUTE); $this->assertEquals($expected, $result->count()); foreach ($result->toArray() as $data) { foreach ($data as $tableName) { self::$db->query("DROP TABLE `" . $tableName . "`", Adapter::QUERY_MODE_EXECUTE); } } }
public function testCommitMigration() { $migration = '99999999_100000_00'; // dispatch url $this->dispatch('ci migration ' . $migration . ' --module=' . self::FIXTURE_MODULE); $this->assertActionName('commit'); $this->assertControllerName('ZFCTool\\Controller\\Migration'); $this->assertControllerClass('MigrationController'); $this->assertMatchedRouteName('commit-migration'); $response = ob_get_contents(); preg_match("/\\d\\d\\d\\d\\d\\d\\d\\d_\\d\\d\\d\\d\\d\\d_\\d\\d/i", $response, $matches); $this->assertNotEmpty($matches); $this->assertEquals($migration, $matches[0]); $lastMigration = self::$manager->getLastMigration(self::FIXTURE_MODULE); $this->assertArrayHasKey('migration', $lastMigration); $this->assertNotEquals(0, $lastMigration['migration']); $this->assertEquals($lastMigration['migration'], $migration); self::$db->query("DROP TABLE `" . self::$manager->getMigrationsSchemaTable() . "`", Adapter::QUERY_MODE_EXECUTE); }
/** * */ public function rollbackAction() { $module = $this->request->getParam('module'); if ($module) { $this->console->writeLine('Only for module "' . $module . '":'); } $step = $this->request->getParam('step'); if (!$step) { $step = 1; } $includeModules = $this->request->getParam('includemodules'); try { $this->getManager()->rollback($module, $step, $includeModules); foreach ($this->manager->getMessages() as $message) { $this->console->writeLine($message, Color::GREEN); } } catch (ZFCToolException $e) { $this->console->writeLine($e->getMessage(), Color::RED); } catch (\Exception $e) { $this->console->writeLine($e->getMessage(), Color::RED); } }