<?php namespace Doctrine\Tests\DBAL\Functional\Schema; use Doctrine\DBAL\Schema; use Doctrine\Tests\TestUtil; require_once __DIR__ . '/../../../TestInit.php'; class OracleSchemaManagerTest extends SchemaManagerFunctionalTestCase { public function setUp() { parent::setUp(); if(!isset($GLOBALS['db_username'])) { $this->markTestSkipped('Foo'); } $username = $GLOBALS['db_username']; $query = "GRANT ALL PRIVILEGES TO ".$username; $conn = \Doctrine\Tests\TestUtil::getTempConnection(); $conn->executeUpdate($query); } public function testRenameTable() { $this->_sm->tryMethod('DropTable', 'list_tables_test'); $this->_sm->tryMethod('DropTable', 'list_tables_test_new_name'); $this->createTestTable('list_tables_test'); $this->_sm->renameTable('list_tables_test', 'list_tables_test_new_name'); $tables = $this->_sm->listTables(); $this->assertHasTable($tables, 'list_tables_test_new_name'); } public function testListTableWithBinary() { $tableName = 'test_binary_table'; $table = new \Doctrine\DBAL\Schema\Table($tableName); $table->addColumn('id', 'integer'); $table->addColumn('column_varbinary', 'binary', array()); $table->addColumn('column_binary', 'binary', array('fixed' => true)); $table->setPrimaryKey(array('id')); $this->_sm->createTable($table); $table = $this->_sm->listTableDetails($tableName); $this->assertInstanceOf('Doctrine\DBAL\Types\BinaryType', $table->getColumn('column_varbinary')->getType()); $this->assertFalse($table->getColumn('column_varbinary')->getFixed()); $this->assertInstanceOf('Doctrine\DBAL\Types\BinaryType', $table->getColumn('column_binary')->getType()); $this->assertFalse($table->getColumn('column_binary')->getFixed()); } /** * @group DBAL-472 */ public function testAlterTableColumnNotNull() { $comparator = new Schema\Comparator(); $tableName = 'list_table_column_notnull'; $table = new Schema\Table($tableName); $table->addColumn('id', 'integer'); $table->addColumn('foo', 'integer'); $table->setPrimaryKey(array('id')); $this->_sm->dropAndCreateTable($table); $columns = $this->_sm->listTableColumns($tableName); $this->assertTrue($columns['id']->getNotnull()); $this->assertTrue($columns['foo']->getNotnull()); $diffTable = clone $table; $diffTable->changeColumn('foo', array('notnull' => false)); $this->_sm->alterTable($comparator->diffTable($table, $diffTable)); $columns = $this->_sm->listTableColumns($tableName); $this->assertTrue($columns['id']->getNotnull()); $this->assertFalse($columns['foo']->getNotnull()); } public function testListDatabases() { // We need the temp connection that has privileges to create a database. $sm = TestUtil::getTempConnection()->getSchemaManager(); $sm->dropAndCreateDatabase('c##test_create_database'); $databases = $this->_sm->listDatabases(); $databases = array_map('strtolower', $databases); $this->assertContains('c##test_create_database', $databases); } }