ensure postgres boolean values are handled correctly

also fixed an issue with default value loading of bool columns.

fixes #3489, fixes #4085, fixes #3920
related to #4672
This commit is contained in:
Carsten Brandt
2014-08-12 02:15:57 +02:00
parent 92d65ab78b
commit c6274acf6c
6 changed files with 90 additions and 1 deletions

View File

@@ -3,6 +3,7 @@
namespace yiiunit\framework\db\pgsql;
use yii\db\pgsql\Schema;
use yii\db\Query;
use yiiunit\framework\db\QueryTest;
use yiiunit\framework\db\SchemaTest;
@@ -13,4 +14,27 @@ use yiiunit\framework\db\SchemaTest;
class PostgreSQLQueryTest extends QueryTest
{
public $driverName = 'pgsql';
public function testBooleanValues()
{
$db = $this->getConnection();
$command = $db->createCommand();
$command->batchInsert('bool_values',
['bool_col'], [
[true],
[false],
]
)->execute();
$this->assertEquals(1, (new Query())->from('bool_values')->where('bool_col = TRUE')->count('*', $db));
$this->assertEquals(1, (new Query())->from('bool_values')->where('bool_col = FALSE')->count('*', $db));
$this->assertEquals(2, (new Query())->from('bool_values')->where('bool_col IN (TRUE, FALSE)')->count('*', $db));
$this->assertEquals(1, (new Query())->from('bool_values')->where(['bool_col' => true])->count('*', $db));
$this->assertEquals(1, (new Query())->from('bool_values')->where(['bool_col' => false])->count('*', $db));
$this->assertEquals(2, (new Query())->from('bool_values')->where(['bool_col' => [true, false]])->count('*', $db));
$this->assertEquals(1, (new Query())->from('bool_values')->where('bool_col = :bool_col', ['bool_col' => true])->count('*', $db));
$this->assertEquals(1, (new Query())->from('bool_values')->where('bool_col = :bool_col', ['bool_col' => false])->count('*', $db));
}
}