You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.1 KiB
93 lines
3.1 KiB
11 years ago
|
<?php
|
||
|
|
||
8 years ago
|
namespace yii\tests\unit\framework\db\pgsql;
|
||
11 years ago
|
|
||
10 years ago
|
/**
|
||
|
* @group db
|
||
|
* @group pgsql
|
||
|
*/
|
||
8 years ago
|
class CommandTest extends \yiiunit\framework\db\CommandTest
|
||
11 years ago
|
{
|
||
|
public $driverName = 'pgsql';
|
||
11 years ago
|
|
||
|
public function testAutoQuoting()
|
||
|
{
|
||
|
$db = $this->getConnection(false);
|
||
|
|
||
|
$sql = 'SELECT [[id]], [[t.name]] FROM {{customer}} t';
|
||
|
$command = $db->createCommand($sql);
|
||
|
$this->assertEquals('SELECT "id", "t"."name" FROM "customer" t', $command->sql);
|
||
|
}
|
||
10 years ago
|
|
||
10 years ago
|
public function testBooleanValuesInsert()
|
||
10 years ago
|
{
|
||
10 years ago
|
$db = $this->getConnection();
|
||
|
$command = $db->createCommand();
|
||
|
$command->insert('bool_values', ['bool_col' => true]);
|
||
|
$this->assertEquals(1, $command->execute());
|
||
10 years ago
|
|
||
10 years ago
|
$command = $db->createCommand();
|
||
|
$command->insert('bool_values', ['bool_col' => false]);
|
||
|
$this->assertEquals(1, $command->execute());
|
||
|
|
||
|
$command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = TRUE;');
|
||
|
$this->assertEquals(1, $command->queryScalar());
|
||
|
$command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = FALSE;');
|
||
|
$this->assertEquals(1, $command->queryScalar());
|
||
|
}
|
||
|
|
||
|
public function testBooleanValuesBatchInsert()
|
||
|
{
|
||
|
$db = $this->getConnection();
|
||
|
$command = $db->createCommand();
|
||
10 years ago
|
$command->batchInsert('bool_values',
|
||
|
['bool_col'], [
|
||
|
[true],
|
||
|
[false],
|
||
|
]
|
||
|
);
|
||
|
$this->assertEquals(2, $command->execute());
|
||
10 years ago
|
|
||
|
$command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = TRUE;');
|
||
|
$this->assertEquals(1, $command->queryScalar());
|
||
|
$command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = FALSE;');
|
||
|
$this->assertEquals(1, $command->queryScalar());
|
||
10 years ago
|
}
|
||
10 years ago
|
|
||
|
public function testLastInsertId()
|
||
|
{
|
||
|
$db = $this->getConnection();
|
||
|
|
||
|
$sql = 'INSERT INTO {{profile}}([[description]]) VALUES (\'non duplicate\')';
|
||
|
$command = $db->createCommand($sql);
|
||
|
$command->execute();
|
||
9 years ago
|
$this->assertEquals(3, $db->getSchema()->getLastInsertID('public.profile_id_seq'));
|
||
|
|
||
|
$sql = 'INSERT INTO {{schema1.profile}}([[description]]) VALUES (\'non duplicate\')';
|
||
|
$command = $db->createCommand($sql);
|
||
|
$command->execute();
|
||
|
$this->assertEquals(3, $db->getSchema()->getLastInsertID('schema1.profile_id_seq'));
|
||
10 years ago
|
}
|
||
9 years ago
|
|
||
|
/**
|
||
|
* @see https://github.com/yiisoft/yii2/issues/11498
|
||
|
*/
|
||
|
public function testSaveSerializedObject()
|
||
|
{
|
||
|
$db = $this->getConnection();
|
||
|
|
||
|
$command = $db->createCommand()->insert('type', [
|
||
|
'int_col' => 1,
|
||
|
'char_col' => 'serialize',
|
||
|
'float_col' => 5.6,
|
||
|
'bool_col' => true,
|
||
|
'blob_col' => serialize($db),
|
||
|
]);
|
||
|
$this->assertEquals(1, $command->execute());
|
||
|
|
||
|
$command = $db->createCommand()->update('type', [
|
||
|
'blob_col' => serialize($db),
|
||
|
], ['char_col' => 'serialize']);
|
||
|
$this->assertEquals(1, $command->execute());
|
||
|
}
|
||
10 years ago
|
}
|