mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-13 12:49:04 +08:00
added SchemaTest
This commit is contained in:
@@ -227,7 +227,7 @@ class Schema extends \yii\db\Schema
|
||||
$tableNames = array();
|
||||
foreach($tables as $table) {
|
||||
// do not list system tables
|
||||
if ($table['TYPE'] !== 0) {
|
||||
if ($table['TYPE'] != 0) {
|
||||
$tableNames[] = $table['NAME'];
|
||||
}
|
||||
}
|
||||
|
||||
70
tests/unit/framework/db/SchemaTest.php
Normal file
70
tests/unit/framework/db/SchemaTest.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace yiiunit\framework\db;
|
||||
|
||||
use yii\caching\FileCache;
|
||||
use yii\db\Schema;
|
||||
|
||||
class SchemaTest extends DatabaseTestCase
|
||||
{
|
||||
|
||||
public function testGetPDOType()
|
||||
{
|
||||
$values = array(
|
||||
array(null, \PDO::PARAM_NULL),
|
||||
array('', \PDO::PARAM_STR),
|
||||
array('hello', \PDO::PARAM_STR),
|
||||
array(0, \PDO::PARAM_INT),
|
||||
array(1, \PDO::PARAM_INT),
|
||||
array(1337, \PDO::PARAM_INT),
|
||||
array(true, \PDO::PARAM_BOOL),
|
||||
array(false, \PDO::PARAM_BOOL),
|
||||
array($fp=fopen(__FILE__, 'rb'), \PDO::PARAM_LOB),
|
||||
);
|
||||
|
||||
$schema = $this->getConnection()->schema;
|
||||
|
||||
foreach($values as $value) {
|
||||
$this->assertEquals($value[1], $schema->getPdoType($value[0]));
|
||||
}
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
public function testFindTableNames()
|
||||
{
|
||||
/** @var Schema $schema */
|
||||
$schema = $this->getConnection()->schema;
|
||||
|
||||
$tables = $schema->getTableNames();
|
||||
$this->assertTrue(in_array('tbl_customer', $tables));
|
||||
$this->assertTrue(in_array('tbl_category', $tables));
|
||||
$this->assertTrue(in_array('tbl_item', $tables));
|
||||
$this->assertTrue(in_array('tbl_order', $tables));
|
||||
$this->assertTrue(in_array('tbl_order_item', $tables));
|
||||
$this->assertTrue(in_array('tbl_type', $tables));
|
||||
}
|
||||
|
||||
public function testGetTableSchemas()
|
||||
{
|
||||
/** @var Schema $schema */
|
||||
$schema = $this->getConnection()->schema;
|
||||
|
||||
$tables = $schema->getTableSchemas();
|
||||
$this->assertEquals(count($schema->getTableNames()), count($tables));
|
||||
foreach($tables as $table) {
|
||||
$this->assertInstanceOf('yii\db\TableSchema', $table);
|
||||
}
|
||||
}
|
||||
|
||||
public function testSchemaCache()
|
||||
{
|
||||
/** @var Schema $schema */
|
||||
$schema = $this->getConnection()->schema;
|
||||
|
||||
$schema->db->enableSchemaCache = true;
|
||||
$schema->db->schemaCache = new FileCache();
|
||||
$noCacheTable = $schema->getTableSchema('tbl_type', true);
|
||||
$cachedTable = $schema->getTableSchema('tbl_type', true);
|
||||
$this->assertEquals($noCacheTable, $cachedTable);
|
||||
}
|
||||
}
|
||||
31
tests/unit/framework/db/cubrid/CubridSchemaTest.php
Normal file
31
tests/unit/framework/db/cubrid/CubridSchemaTest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
namespace yiiunit\framework\db\cubrid;
|
||||
|
||||
use yiiunit\framework\db\SchemaTest;
|
||||
|
||||
class CubridSchemaTest extends SchemaTest
|
||||
{
|
||||
public $driverName = 'cubrid';
|
||||
|
||||
public function testGetPDOType()
|
||||
{
|
||||
$values = array(
|
||||
null => \PDO::PARAM_NULL,
|
||||
'' => \PDO::PARAM_STR,
|
||||
'hello' => \PDO::PARAM_STR,
|
||||
0 => \PDO::PARAM_INT,
|
||||
1 => \PDO::PARAM_INT,
|
||||
1337 => \PDO::PARAM_INT,
|
||||
true => \PDO::PARAM_INT, // CUBRID PDO does not support PARAM_BOOL
|
||||
false => \PDO::PARAM_INT, // CUBRID PDO does not support PARAM_BOOL
|
||||
);
|
||||
|
||||
$schema = $this->getConnection()->schema;
|
||||
|
||||
foreach($values as $value => $type) {
|
||||
$this->assertEquals($type, $schema->getPdoType($value));
|
||||
}
|
||||
$this->assertEquals(\PDO::PARAM_LOB, $schema->getPdoType($fp=fopen(__FILE__, 'rb')));
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
9
tests/unit/framework/db/sqlite/SqliteSchemaTest.php
Normal file
9
tests/unit/framework/db/sqlite/SqliteSchemaTest.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
namespace yiiunit\framework\db\sqlite;
|
||||
|
||||
use yiiunit\framework\db\SchemaTest;
|
||||
|
||||
class SqliteSchemaTest extends SchemaTest
|
||||
{
|
||||
protected $driverName = 'sqlite';
|
||||
}
|
||||
Reference in New Issue
Block a user