Browse Source

added SchemaTest

tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
8abeed03bd
  1. 2
      framework/yii/db/cubrid/Schema.php
  2. 70
      tests/unit/framework/db/SchemaTest.php
  3. 31
      tests/unit/framework/db/cubrid/CubridSchemaTest.php
  4. 9
      tests/unit/framework/db/sqlite/SqliteSchemaTest.php

2
framework/yii/db/cubrid/Schema.php

@ -227,7 +227,7 @@ class Schema extends \yii\db\Schema
$tableNames = array(); $tableNames = array();
foreach($tables as $table) { foreach($tables as $table) {
// do not list system tables // do not list system tables
if ($table['TYPE'] !== 0) { if ($table['TYPE'] != 0) {
$tableNames[] = $table['NAME']; $tableNames[] = $table['NAME'];
} }
} }

70
tests/unit/framework/db/SchemaTest.php

@ -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

@ -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

@ -0,0 +1,9 @@
<?php
namespace yiiunit\framework\db\sqlite;
use yiiunit\framework\db\SchemaTest;
class SqliteSchemaTest extends SchemaTest
{
protected $driverName = 'sqlite';
}
Loading…
Cancel
Save