2009-05-29 01:34:35 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Doctrine\Tests\DBAL\Functional\Schema;
|
|
|
|
|
|
|
|
use Doctrine\DBAL\Schema;
|
|
|
|
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
|
2009-06-15 22:25:47 +04:00
|
|
|
class PostgreSqlSchemaManagerTest extends SchemaManagerFunctionalTestCase
|
2009-05-29 01:34:35 +04:00
|
|
|
{
|
|
|
|
public function testListSequences()
|
|
|
|
{
|
2009-05-30 06:27:50 +04:00
|
|
|
$this->createTestTable('list_sequences_test');
|
2009-05-29 01:34:35 +04:00
|
|
|
$sequences = $this->_sm->listSequences();
|
|
|
|
$this->assertEquals(true, in_array('list_sequences_test_id_seq', $sequences));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testListTableConstraints()
|
|
|
|
{
|
2009-05-30 06:27:50 +04:00
|
|
|
$this->createTestTable('list_table_constraints_test');
|
2009-05-29 01:34:35 +04:00
|
|
|
$tableConstraints = $this->_sm->listTableConstraints('list_table_constraints_test');
|
|
|
|
$this->assertEquals(array('list_table_constraints_test_pkey'), $tableConstraints);
|
|
|
|
}
|
|
|
|
|
2009-11-03 19:56:05 +03:00
|
|
|
/*public function testListTableColumns()
|
2009-05-29 01:34:35 +04:00
|
|
|
{
|
2009-05-30 06:27:50 +04:00
|
|
|
$this->createTestTable('list_tables_test');
|
2009-05-29 01:34:35 +04:00
|
|
|
$columns = $this->_sm->listTableColumns('list_tables_test');
|
|
|
|
|
|
|
|
$this->assertEquals('id', $columns[0]['name']);
|
|
|
|
$this->assertEquals(true, $columns[0]['primary']);
|
|
|
|
$this->assertEquals('Doctrine\DBAL\Types\IntegerType', get_class($columns[0]['type']));
|
2009-10-15 00:18:36 +04:00
|
|
|
$this->assertEquals(null, $columns[0]['length']);
|
2009-05-29 01:34:35 +04:00
|
|
|
$this->assertEquals(false, $columns[0]['fixed']);
|
|
|
|
$this->assertEquals(true, $columns[0]['notnull']);
|
|
|
|
$this->assertEquals(null, $columns[0]['default']);
|
|
|
|
|
|
|
|
$this->assertEquals('test', $columns[1]['name']);
|
|
|
|
$this->assertEquals(false, $columns[1]['primary']);
|
|
|
|
$this->assertEquals('Doctrine\DBAL\Types\StringType', get_class($columns[1]['type']));
|
|
|
|
$this->assertEquals(255, $columns[1]['length']);
|
|
|
|
$this->assertEquals(false, $columns[1]['fixed']);
|
|
|
|
$this->assertEquals(false, $columns[1]['notnull']);
|
|
|
|
$this->assertEquals(null, $columns[1]['default']);
|
2009-11-03 19:56:05 +03:00
|
|
|
}*/
|
2009-05-29 01:34:35 +04:00
|
|
|
|
|
|
|
public function testListUsers()
|
|
|
|
{
|
|
|
|
$users = $this->_sm->listUsers();
|
|
|
|
$this->assertEquals(true, is_array($users));
|
|
|
|
$params = $this->_conn->getParams();
|
|
|
|
$testUser = $params['user'];
|
|
|
|
$found = false;
|
|
|
|
foreach ($users as $user) {
|
|
|
|
if ($user['user'] == $testUser) {
|
|
|
|
$found = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->assertEquals(true, $found);
|
|
|
|
}
|
|
|
|
|
2009-11-03 19:56:05 +03:00
|
|
|
protected function getCreateExampleViewSql()
|
2009-05-29 01:34:35 +04:00
|
|
|
{
|
2009-11-03 19:56:05 +03:00
|
|
|
return 'SELECT usename, passwd FROM pg_user';
|
2009-05-29 01:34:35 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testListTableForeignKeys()
|
|
|
|
{
|
2009-05-30 06:27:50 +04:00
|
|
|
$data['options'] = array('type' => 'innodb');
|
|
|
|
$this->createTestTable('list_table_foreign_keys_test1', $data);
|
|
|
|
$this->createTestTable('list_table_foreign_keys_test2', $data);
|
2009-05-29 01:34:35 +04:00
|
|
|
|
|
|
|
$definition = array(
|
|
|
|
'name' => 'testing',
|
2009-05-30 06:27:50 +04:00
|
|
|
'local' => 'foreign_key_test',
|
2009-05-29 01:34:35 +04:00
|
|
|
'foreign' => 'id',
|
2009-05-30 06:27:50 +04:00
|
|
|
'foreignTable' => 'list_table_foreign_keys_test2'
|
2009-05-29 01:34:35 +04:00
|
|
|
);
|
2009-05-30 06:27:50 +04:00
|
|
|
$this->_sm->createForeignKey('list_table_foreign_keys_test1', $definition);
|
2009-05-29 01:34:35 +04:00
|
|
|
|
2009-05-30 06:27:50 +04:00
|
|
|
$tableForeignKeys = $this->_sm->listTableForeignKeys('list_table_foreign_keys_test1');
|
2009-05-29 01:34:35 +04:00
|
|
|
$this->assertEquals(1, count($tableForeignKeys));
|
2009-05-30 06:27:50 +04:00
|
|
|
$this->assertEquals('list_table_foreign_keys_test2', $tableForeignKeys[0]['table']);
|
|
|
|
$this->assertEquals('foreign_key_test', $tableForeignKeys[0]['local']);
|
2009-05-29 01:34:35 +04:00
|
|
|
$this->assertEquals('id', $tableForeignKeys[0]['foreign']);
|
|
|
|
}
|
|
|
|
}
|