Example #1
0
 /**
  * Test for method `generate`
  */
 public function testGenerateMigrationSuccess()
 {
     $tableName = 'test_table';
     //Test empty diff
     $result = self::$manager->generateMigration(null, '', $tableName);
     $this->assertFalse($result);
     $db = new Mysql(self::$db);
     $db->createTable($tableName);
     $db->createColumn($tableName, 'col1', AbstractMigration::TYPE_INT);
     $db->createColumn($tableName, 'col2', AbstractMigration::TYPE_VARCHAR, 50);
     //Test diff
     $diff = self::$manager->generateMigration(null, '', $tableName, true);
     $compareTo = array('down' => array(Database::dropTable($tableName)), 'up' => array(Database::dropTable($tableName), Database::createTable($tableName)));
     $this->assertEquals($compareTo, $diff);
     //Test create
     $migrationPath = self::$manager->generateMigration(null, '', $tableName);
     $this->assertTrue(is_file($migrationPath));
     $migrationFile = file_get_contents($migrationPath);
     $this->assertContains('CREATE TABLE `' . $tableName . '`', $migrationFile);
     $this->assertContains('$this->query("DROP TABLE IF EXISTS `' . $tableName . '`");', $migrationFile);
     unlink($migrationPath);
     $db->dropTable($tableName);
 }
Example #2
0
 public function testCreateSuccess()
 {
     $db = new Mysql(self::$db);
     $db->query(Database::dropTable(self::TABLE_NAME));
     $db->createTable(self::TABLE_NAME);
     $db->createColumn(self::TABLE_NAME, 'col1', AbstractMigration::TYPE_INT);
     $db->createColumn(self::TABLE_NAME, 'col2', AbstractMigration::TYPE_TEXT);
     $db->query(Database::dropTable('test_black_table1'));
     $db->createTable('test_black_table1');
     $db->query(Database::dropTable('test_black_table2'));
     $db->createTable('test_black_table2');
     $testData = array('id' => '1', 'col1' => '11', 'col2' => '<p>ZFCTool - Zend Framework 2 command line Tool</p>');
     $db->insert(self::TABLE_NAME, $testData);
     $dumpName = self::$manager->create(self::FIXTURE_MODULE, self::DUMP_FILE_NAME, self::TABLE_NAME, 'test_black_table1,test_black_table2');
     $compareTo = Database::getDisableChecksNotation() . Database::dropTable(self::TABLE_NAME) . ';' . PHP_EOL . Database::createTable(self::TABLE_NAME) . ';' . PHP_EOL . Database::insert(self::TABLE_NAME, $testData) . ';' . PHP_EOL;
     $this->assertEquals(self::DUMP_FILE_NAME, $dumpName);
     $dumpFullPath = self::$manager->getDumpsDirectoryPath(self::FIXTURE_MODULE) . DIRECTORY_SEPARATOR . $dumpName;
     if (file_exists($dumpFullPath)) {
         $dump = file_get_contents($dumpFullPath);
         $this->assertEquals($compareTo, $dump);
     } else {
         $this->fail('Dump file not exist!');
     }
     //Test generate name and creating file
     $dumpName = self::$manager->create(null, null, self::TABLE_NAME, 'test_black_table1,test_black_table2');
     $dumpFullPath = self::$manager->getDumpsDirectoryPath() . DIRECTORY_SEPARATOR . $dumpName;
     if (file_exists($dumpFullPath)) {
         $dump = file_get_contents($dumpFullPath);
         $this->assertEquals($compareTo, $dump);
         unlink($dumpFullPath);
     } else {
         $this->fail('Dump file not exist!');
     }
     $db->dropTable(self::TABLE_NAME);
     $db->dropTable('test_black_table1');
     $db->dropTable('test_black_table2');
 }
Example #3
0
 /**
  * add drop creation action to "upgrade"
  * @param $tableName
  */
 protected function addDropTable($tableName)
 {
     $this->up(Database::dropTable($tableName));
     $this->down(Database::dropTable($tableName));
     $this->down(Database::createTable($tableName));
 }