示例#1
0
 /**
  * @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);
         }
     }
 }
示例#2
0
 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);
 }
示例#3
0
 /**
  *
  */
 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);
     }
 }