diff --git a/tests/Provider/SchemaProvider.php b/tests/Provider/SchemaProvider.php index 81f554c4..83422708 100644 --- a/tests/Provider/SchemaProvider.php +++ b/tests/Provider/SchemaProvider.php @@ -4,7 +4,15 @@ namespace Yiisoft\Db\Sqlite\Tests\Provider; +use Yiisoft\Db\Constant\ColumnType; use Yiisoft\Db\Expression\Expression; +use Yiisoft\Db\Schema\Column\BinaryColumn; +use Yiisoft\Db\Schema\Column\BitColumn; +use Yiisoft\Db\Schema\Column\BooleanColumn; +use Yiisoft\Db\Schema\Column\DoubleColumn; +use Yiisoft\Db\Schema\Column\IntegerColumn; +use Yiisoft\Db\Schema\Column\JsonColumn; +use Yiisoft\Db\Schema\Column\StringColumn; use Yiisoft\Db\Tests\Support\AnyValue; final class SchemaProvider extends \Yiisoft\Db\Tests\Provider\SchemaProvider @@ -14,292 +22,135 @@ public static function columns(): array return [ [ [ - 'int_col' => [ - 'type' => 'integer', - 'dbType' => 'integer', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => null, - ], - 'int_col2' => [ - 'type' => 'integer', - 'dbType' => 'integer', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => 1, - ], - 'tinyint_col' => [ - 'type' => 'tinyint', - 'dbType' => 'tinyint', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 3, - 'scale' => null, - 'defaultValue' => 1, - ], - 'smallint_col' => [ - 'type' => 'smallint', - 'dbType' => 'smallint', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 1, - 'scale' => null, - 'defaultValue' => 1, - ], - 'char_col' => [ - 'type' => 'char', - 'dbType' => 'char', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 100, - 'scale' => null, - 'defaultValue' => null, - ], - 'char_col2' => [ - 'type' => 'string', - 'dbType' => 'varchar', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 100, - 'scale' => null, - 'defaultValue' => 'something"', - ], - 'char_col3' => [ - 'type' => 'text', - 'dbType' => 'text', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => null, - ], - 'float_col' => [ - 'type' => 'double', - 'dbType' => 'double', - 'phpType' => 'float', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 4, - 'scale' => 3, - 'defaultValue' => null, - ], - 'float_col2' => [ - 'type' => 'double', - 'dbType' => 'double', - 'phpType' => 'float', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => 1.23, - ], - 'blob_col' => [ - 'type' => 'binary', - 'dbType' => 'blob', - 'phpType' => 'mixed', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => null, - ], - 'numeric_col' => [ - 'type' => 'decimal', - 'dbType' => 'decimal', - 'phpType' => 'float', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 5, - 'scale' => 2, - 'defaultValue' => 33.22, - ], - 'timestamp_col' => [ - 'type' => 'timestamp', - 'dbType' => 'timestamp', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => '2002-01-01 00:00:00', - ], - 'bool_col' => [ - 'type' => 'boolean', - 'dbType' => 'tinyint', - 'phpType' => 'bool', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 1, - 'scale' => null, - 'defaultValue' => null, - ], - 'bool_col2' => [ - 'type' => 'boolean', - 'dbType' => 'tinyint', - 'phpType' => 'bool', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 1, - 'scale' => null, - 'defaultValue' => true, - ], - 'ts_default' => [ - 'type' => 'timestamp', - 'dbType' => 'timestamp', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => new Expression('CURRENT_TIMESTAMP'), - ], - 'bit_col' => [ - 'type' => 'bit', - 'dbType' => 'bit', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 8, - 'scale' => null, - 'defaultValue' => 0b1000_0010, // 130 - ], - 'json_col' => [ - 'type' => 'json', - 'dbType' => 'json', - 'phpType' => 'mixed', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => ['number' => 10], - ], - 'json_text_col' => [ - 'type' => 'json', - 'dbType' => 'json', - 'phpType' => 'mixed', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => null, - ], + 'int_col' => new IntegerColumn( + dbType: 'integer', + notNull: true, + ), + 'int_col2' => new IntegerColumn( + dbType: 'integer', + defaultValue: 1, + ), + 'tinyint_col' => new IntegerColumn( + ColumnType::TINYINT, + dbType: 'tinyint', + size: 3, + defaultValue: 1, + ), + 'smallint_col' => new IntegerColumn( + ColumnType::SMALLINT, + dbType: 'smallint', + size: 1, + defaultValue: 1, + ), + 'char_col' => new StringColumn( + ColumnType::CHAR, + dbType: 'char', + notNull: true, + size: 100, + ), + 'char_col2' => new StringColumn( + dbType: 'varchar', + size: 100, + defaultValue: 'something"', + ), + 'char_col3' => new StringColumn( + ColumnType::TEXT, + dbType: 'text', + ), + 'float_col' => new DoubleColumn( + dbType: 'double', + notNull: true, + size: 4, + scale: 3, + ), + 'float_col2' => new DoubleColumn( + dbType: 'double', + defaultValue: 1.23, + ), + 'blob_col' => new BinaryColumn( + dbType: 'blob', + ), + 'numeric_col' => new DoubleColumn( + ColumnType::DECIMAL, + dbType: 'decimal', + size: 5, + scale: 2, + defaultValue: 33.22, + ), + 'timestamp_col' => new StringColumn( + ColumnType::TIMESTAMP, + dbType: 'timestamp', + notNull: true, + defaultValue: '2002-01-01 00:00:00', + ), + 'bool_col' => new BooleanColumn( + dbType: 'tinyint', + notNull: true, + size: 1, + ), + 'bool_col2' => new BooleanColumn( + dbType: 'tinyint', + size: 1, + defaultValue: true, + ), + 'ts_default' => new StringColumn( + ColumnType::TIMESTAMP, + dbType: 'timestamp', + notNull: true, + defaultValue: new Expression('CURRENT_TIMESTAMP'), + ), + 'bit_col' => new BitColumn( + dbType: 'bit', + notNull: true, + size: 8, + defaultValue: 0b1000_0010, // 130 + ), + 'json_col' => new JsonColumn( + dbType: 'json', + notNull: true, + defaultValue: ['number' => 10], + ), + 'json_text_col' => new JsonColumn( + dbType: 'json', + ), ], 'tableName' => 'type', ], [ [ - 'id' => [ - 'type' => 'integer', - 'dbType' => 'integer', - 'phpType' => 'int', - 'primaryKey' => true, - 'notNull' => true, - 'autoIncrement' => true, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => null, - ], - 'type' => [ - 'type' => 'string', - 'dbType' => 'varchar', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 255, - 'scale' => null, - 'defaultValue' => null, - ], + 'id' => new IntegerColumn( + dbType: 'integer', + primaryKey: true, + notNull: true, + autoIncrement: true, + ), + 'type' => new StringColumn( + dbType: 'varchar', + notNull: true, + size: 255, + ), ], 'animal', ], [ [ - 'id' => [ - 'type' => 'integer', - 'dbType' => 'integer', - 'phpType' => 'int', - 'primaryKey' => true, - 'notNull' => false, - 'autoIncrement' => true, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => null, - ], - 'text_col' => [ - 'type' => 'text', - 'dbType' => 'text', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => 'CURRENT_TIMESTAMP', - ], - 'timestamp_text' => [ - 'type' => 'text', - 'dbType' => 'text', - 'phpType' => 'string', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => null, - 'scale' => null, - 'defaultValue' => new Expression('CURRENT_TIMESTAMP'), - ], + 'id' => new IntegerColumn( + dbType: 'integer', + primaryKey: true, + autoIncrement: true, + ), + 'text_col' => new StringColumn( + ColumnType::TEXT, + dbType: 'text', + notNull: true, + defaultValue: 'CURRENT_TIMESTAMP', + ), + 'timestamp_text' => new StringColumn( + ColumnType::TEXT, + dbType: 'text', + notNull: true, + defaultValue: new Expression('CURRENT_TIMESTAMP'), + ), ], 'timestamp_default', ], @@ -311,78 +162,36 @@ public static function columnsTypeBit(): array return [ [ [ - 'bit_col_1' => [ - 'type' => 'boolean', - 'dbType' => 'bit', - 'phpType' => 'bool', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 1, - 'scale' => null, - 'defaultValue' => null, - ], - 'bit_col_2' => [ - 'type' => 'boolean', - 'dbType' => 'bit', - 'phpType' => 'bool', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 1, - 'scale' => null, - 'defaultValue' => true, - ], - 'bit_col_3' => [ - 'type' => 'bit', - 'dbType' => 'bit', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 32, - 'scale' => null, - 'defaultValue' => null, - ], - 'bit_col_4' => [ - 'type' => 'bit', - 'dbType' => 'bit', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 32, - 'scale' => null, - 'defaultValue' => 1, - ], - 'bit_col_5' => [ - 'type' => 'bit', - 'dbType' => 'bit', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => true, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 64, - 'scale' => null, - 'defaultValue' => null, - ], - 'bit_col_6' => [ - 'type' => 'bit', - 'dbType' => 'bit', - 'phpType' => 'int', - 'primaryKey' => false, - 'notNull' => false, - 'autoIncrement' => false, - 'enumValues' => null, - 'size' => 64, - 'scale' => null, - 'defaultValue' => 1, - ], + 'bit_col_1' => new BooleanColumn( + dbType: 'bit', + notNull: true, + size: 1, + ), + 'bit_col_2' => new BooleanColumn( + dbType: 'bit', + size: 1, + defaultValue: true, + ), + 'bit_col_3' => new BitColumn( + dbType: 'bit', + notNull: true, + size: 32, + ), + 'bit_col_4' => new BitColumn( + dbType: 'bit', + size: 32, + defaultValue: 1, + ), + 'bit_col_5' => new BitColumn( + dbType: 'bit', + notNull: true, + size: 64, + ), + 'bit_col_6' => new BitColumn( + dbType: 'bit', + size: 64, + defaultValue: 1, + ), ], ], ];