Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
d712605a
Commit
d712605a
authored
May 09, 2013
by
Rusinov Maxim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added and resolved Sqlite tests #15.
parent
aad6d7d9
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
269 additions
and
284 deletions
+269
-284
.travis.yml
.travis.yml
+1
-0
Schema.php
framework/db/sqlite/Schema.php
+1
-1
DatabaseTestCase.php
tests/unit/DatabaseTestCase.php
+51
-0
config.php
tests/unit/data/config.php
+12
-6
mysql.sql
tests/unit/data/mysql.sql
+1
-5
sqlite.sql
tests/unit/data/sqlite.sql
+89
-262
DbCacheTest.php
tests/unit/framework/caching/DbCacheTest.php
+2
-1
ActiveRecordTest.php
tests/unit/framework/db/ActiveRecordTest.php
+2
-1
CommandTest.php
tests/unit/framework/db/CommandTest.php
+1
-1
ConnectionTest.php
tests/unit/framework/db/ConnectionTest.php
+5
-6
QueryTest.php
tests/unit/framework/db/QueryTest.php
+1
-1
SqliteActiveRecordTest.php
tests/unit/framework/db/sqlite/SqliteActiveRecordTest.php
+13
-0
SqliteCommandTest.php
tests/unit/framework/db/sqlite/SqliteCommandTest.php
+22
-0
SqliteConnectionTest.php
tests/unit/framework/db/sqlite/SqliteConnectionTest.php
+47
-0
SqliteQueryTest.php
tests/unit/framework/db/sqlite/SqliteQueryTest.php
+21
-0
No files found.
.travis.yml
View file @
d712605a
...
@@ -7,6 +7,7 @@ php:
...
@@ -7,6 +7,7 @@ php:
env
:
env
:
-
DB=mysql
-
DB=mysql
-
DB=sqlite
before_script
:
before_script
:
-
sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'create database IF NOT EXISTS yiitest;'; fi"
-
sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'create database IF NOT EXISTS yiitest;'; fi"
...
...
framework/db/sqlite/Schema.php
View file @
d712605a
...
@@ -169,7 +169,7 @@ class Schema extends \yii\db\Schema
...
@@ -169,7 +169,7 @@ class Schema extends \yii\db\Schema
}
}
}
}
}
}
$column
->
phpType
=
$this
->
getColumnPhpType
(
$
this
->
type
);
$column
->
phpType
=
$this
->
getColumnPhpType
(
$
column
);
$value
=
$info
[
'dflt_value'
];
$value
=
$info
[
'dflt_value'
];
if
(
$column
->
type
===
'string'
)
{
if
(
$column
->
type
===
'string'
)
{
...
...
tests/unit/DatabaseTestCase.php
0 → 100644
View file @
d712605a
<?php
namespace
yiiunit
;
class
DatabaseTestCase
extends
TestCase
{
protected
$database
;
protected
$driverName
=
'mysql'
;
protected
$db
;
protected
function
setUp
()
{
$databases
=
$this
->
getParam
(
'databases'
);
$this
->
database
=
$databases
[
$this
->
driverName
];
$pdo_database
=
'pdo_'
.
$this
->
driverName
;
if
(
!
extension_loaded
(
'pdo'
)
||
!
extension_loaded
(
$pdo_database
))
{
$this
->
markTestSkipped
(
'pdo and pdo_'
.
$pdo_database
.
' extension are required.'
);
}
}
/**
* @param bool $reset whether to clean up the test database
* @param bool $open whether to open and populate test database
* @return \yii\db\Connection
*/
public
function
getConnection
(
$reset
=
true
,
$open
=
true
)
{
if
(
!
$reset
&&
$this
->
db
)
{
return
$this
->
db
;
}
$db
=
new
\yii\db\Connection
;
$db
->
dsn
=
$this
->
database
[
'dsn'
];
if
(
isset
(
$this
->
database
[
'username'
]))
{
$db
->
username
=
$this
->
database
[
'username'
];
$db
->
password
=
$this
->
database
[
'password'
];
}
if
(
$open
)
{
$db
->
open
();
$lines
=
explode
(
';'
,
file_get_contents
(
$this
->
database
[
'fixture'
]));
foreach
(
$lines
as
$line
)
{
if
(
trim
(
$line
)
!==
''
)
{
$db
->
pdo
->
exec
(
$line
);
}
}
}
$this
->
db
=
$db
;
return
$db
;
}
}
\ No newline at end of file
tests/unit/data/config.php
View file @
d712605a
<?php
<?php
return
array
(
return
array
(
'mysql'
=>
array
(
'databases'
=>
array
(
'dsn'
=>
'mysql:host=127.0.0.1;dbname=yiitest'
,
'mysql'
=>
array
(
'username'
=>
'travis'
,
'dsn'
=>
'mysql:host=127.0.0.1;dbname=yiitest'
,
'password'
=>
''
,
'username'
=>
'travis'
,
'fixture'
=>
__DIR__
.
'/mysql.sql'
,
'password'
=>
''
,
),
'fixture'
=>
__DIR__
.
'/mysql.sql'
,
),
'sqlite'
=>
array
(
'dsn'
=>
'sqlite::memory:'
,
'fixture'
=>
__DIR__
.
'/sqlite.sql'
,
),
)
);
);
tests/unit/data/mysql.sql
View file @
d712605a
/**
/**
* This is the database schema for testing MySQL support of Yii DAO and Active Record.
* This is the database schema for testing MySQL support of Yii DAO and Active Record.
* The following database setup is required to perform then relevant tests:
* The database setup in config.php is required to perform then relevant tests:
* Database name: yiitest
* username: test
* password: test
* charset: utf8
*/
*/
DROP
TABLE
IF
EXISTS
tbl_order_item
CASCADE
;
DROP
TABLE
IF
EXISTS
tbl_order_item
CASCADE
;
...
...
tests/unit/data/sqlite.sql
View file @
d712605a
CREATE
TABLE
users
/**
(
* This is the database schema for testing Sqlite support of Yii DAO and Active Record.
id
INTEGER
NOT
NULL
PRIMARY
KEY
,
* The database setup in config.php is required to perform then relevant tests:
username
VARCHAR
(
128
)
NOT
NULL
,
*/
password
VARCHAR
(
128
)
NOT
NULL
,
email
VARCHAR
(
128
)
NOT
NULL
DROP
TABLE
IF
EXISTS
tbl_order_item
;
);
DROP
TABLE
IF
EXISTS
tbl_item
;
DROP
TABLE
IF
EXISTS
tbl_order
;
INSERT
INTO
users
(
id
,
username
,
password
,
email
)
VALUES
(
1
,
'user1'
,
'pass1'
,
'email1'
);
DROP
TABLE
IF
EXISTS
tbl_category
;
INSERT
INTO
users
(
id
,
username
,
password
,
email
)
VALUES
(
2
,
'user2'
,
'pass2'
,
'email2'
);
DROP
TABLE
IF
EXISTS
tbl_customer
;
INSERT
INTO
users
(
id
,
username
,
password
,
email
)
VALUES
(
3
,
'user3'
,
'pass3'
,
'email3'
);
DROP
TABLE
IF
EXISTS
tbl_type
;
INSERT
INTO
users
(
id
,
username
,
password
,
email
)
VALUES
(
4
,
'user4'
,
'pass4'
,
'email4'
);
CREATE
TABLE
tbl_customer
(
CREATE
TABLE
groups
id
INTEGER
NOT
NULL
,
(
email
varchar
(
128
)
NOT
NULL
,
id
INTEGER
NOT
NULL
PRIMARY
KEY
,
name
varchar
(
128
)
NOT
NULL
,
name
VARCHAR
(
128
)
NOT
NULL
address
text
,
);
status
INTEGER
DEFAULT
0
,
PRIMARY
KEY
(
id
)
INSERT
INTO
groups
(
id
,
name
)
VALUES
(
1
,
'group1'
);
);
INSERT
INTO
groups
(
id
,
name
)
VALUES
(
2
,
'group2'
);
INSERT
INTO
groups
(
id
,
name
)
VALUES
(
3
,
'group3'
);
CREATE
TABLE
tbl_category
(
INSERT
INTO
groups
(
id
,
name
)
VALUES
(
4
,
'group4'
);
id
INTEGER
NOT
NULL
,
INSERT
INTO
groups
(
id
,
name
)
VALUES
(
5
,
'group5'
);
name
varchar
(
128
)
NOT
NULL
,
INSERT
INTO
groups
(
id
,
name
)
VALUES
(
6
,
'group6'
);
PRIMARY
KEY
(
id
)
);
CREATE
TABLE
groups_descriptions
(
CREATE
TABLE
tbl_item
(
group_id
INTEGER
NOT
NULL
PRIMARY
KEY
,
id
INTEGER
NOT
NULL
,
name
VARCHAR
(
128
)
NOT
NULL
name
varchar
(
128
)
NOT
NULL
,
);
category_id
INTEGER
NOT
NULL
,
PRIMARY
KEY
(
id
)
INSERT
INTO
groups_descriptions
(
group_id
,
name
)
VALUES
(
1
,
'room1'
);
);
INSERT
INTO
groups_descriptions
(
group_id
,
name
)
VALUES
(
2
,
'room2'
);
INSERT
INTO
groups_descriptions
(
group_id
,
name
)
VALUES
(
3
,
'room3'
);
CREATE
TABLE
tbl_order
(
INSERT
INTO
groups_descriptions
(
group_id
,
name
)
VALUES
(
4
,
'room4'
);
id
INTEGER
NOT
NULL
,
customer_id
INTEGER
NOT
NULL
,
CREATE
TABLE
roles
create_time
INTEGER
NOT
NULL
,
(
total
decimal
(
10
,
0
)
NOT
NULL
,
user_id
INTEGER
NOT
NULL
,
PRIMARY
KEY
(
id
)
group_id
INTEGER
NOT
NULL
,
);
name
VARCHAR
(
128
)
NOT
NULL
,
PRIMARY
KEY
(
user_id
,
group_id
)
CREATE
TABLE
tbl_order_item
(
);
order_id
INTEGER
NOT
NULL
,
item_id
INTEGER
NOT
NULL
,
INSERT
INTO
roles
(
user_id
,
group_id
,
name
)
VALUES
(
1
,
1
,
'dev'
);
quantity
INTEGER
NOT
NULL
,
INSERT
INTO
roles
(
user_id
,
group_id
,
name
)
VALUES
(
1
,
2
,
'user'
);
subtotal
decimal
(
10
,
0
)
NOT
NULL
,
INSERT
INTO
roles
(
user_id
,
group_id
,
name
)
VALUES
(
2
,
1
,
'dev'
);
PRIMARY
KEY
(
order_id
,
item_id
)
INSERT
INTO
roles
(
user_id
,
group_id
,
name
)
VALUES
(
2
,
3
,
'user'
);
);
CREATE
TABLE
mentorships
CREATE
TABLE
tbl_type
(
(
int_col
INTEGER
NOT
NULL
,
teacher_id
INTEGER
NOT
NULL
,
int_col2
INTEGER
DEFAULT
'1'
,
student_id
INTEGER
NOT
NULL
,
char_col
char
(
100
)
NOT
NULL
,
progress
VARCHAR
(
128
)
NOT
NULL
,
char_col2
varchar
(
100
)
DEFAULT
'something'
,
PRIMARY
KEY
(
teacher_id
,
student_id
)
char_col3
text
,
);
float_col
double
(
4
,
3
)
NOT
NULL
,
float_col2
double
DEFAULT
'1.23'
,
INSERT
INTO
mentorships
(
teacher_id
,
student_id
,
progress
)
VALUES
(
1
,
3
,
'good'
);
blob_col
blob
,
INSERT
INTO
mentorships
(
teacher_id
,
student_id
,
progress
)
VALUES
(
2
,
4
,
'average'
);
numeric_col
decimal
(
5
,
2
)
DEFAULT
'33.22'
,
time
timestamp
NOT
NULL
DEFAULT
'2002-01-01 00:00:00'
,
CREATE
TABLE
profiles
bool_col
tinyint
(
1
)
NOT
NULL
,
(
bool_col2
tinyint
(
1
)
DEFAULT
'1'
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
);
first_name
VARCHAR
(
128
)
NOT
NULL
,
last_name
VARCHAR
(
128
)
NOT
NULL
,
INSERT
INTO
tbl_customer
(
email
,
name
,
address
,
status
)
VALUES
(
'user1@example.com'
,
'user1'
,
'address1'
,
1
);
user_id
INTEGER
NOT
NULL
,
INSERT
INTO
tbl_customer
(
email
,
name
,
address
,
status
)
VALUES
(
'user2@example.com'
,
'user2'
,
'address2'
,
1
);
CONSTRAINT
FK_profile_user
FOREIGN
KEY
(
user_id
)
INSERT
INTO
tbl_customer
(
email
,
name
,
address
,
status
)
VALUES
(
'user3@example.com'
,
'user3'
,
'address3'
,
2
);
REFERENCES
users
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
tbl_category
(
name
)
VALUES
(
'Books'
);
INSERT
INTO
tbl_category
(
name
)
VALUES
(
'Movies'
);
INSERT
INTO
profiles
(
first_name
,
last_name
,
user_id
)
VALUES
(
'first 1'
,
'last 1'
,
1
);
INSERT
INTO
profiles
(
first_name
,
last_name
,
user_id
)
VALUES
(
'first 2'
,
'last 2'
,
2
);
INSERT
INTO
tbl_item
(
name
,
category_id
)
VALUES
(
'Agile Web Application Development with Yii1.1 and PHP5'
,
1
);
INSERT
INTO
tbl_item
(
name
,
category_id
)
VALUES
(
'Yii 1.1 Application Development Cookbook'
,
1
);
CREATE
TABLE
posts
INSERT
INTO
tbl_item
(
name
,
category_id
)
VALUES
(
'Ice Age'
,
2
);
(
INSERT
INTO
tbl_item
(
name
,
category_id
)
VALUES
(
'Toy Story'
,
2
);
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
INSERT
INTO
tbl_item
(
name
,
category_id
)
VALUES
(
'Cars'
,
2
);
title
VARCHAR
(
128
)
NOT
NULL
,
create_time
TIMESTAMP
NOT
NULL
,
INSERT
INTO
tbl_order
(
customer_id
,
create_time
,
total
)
VALUES
(
1
,
1325282384
,
110
.
0
);
author_id
INTEGER
NOT
NULL
,
INSERT
INTO
tbl_order
(
customer_id
,
create_time
,
total
)
VALUES
(
2
,
1325334482
,
33
.
0
);
content
TEXT
,
INSERT
INTO
tbl_order
(
customer_id
,
create_time
,
total
)
VALUES
(
2
,
1325502201
,
40
.
0
);
CONSTRAINT
FK_post_author
FOREIGN
KEY
(
author_id
)
REFERENCES
users
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
INSERT
INTO
tbl_order_item
(
order_id
,
item_id
,
quantity
,
subtotal
)
VALUES
(
1
,
1
,
1
,
30
.
0
);
);
INSERT
INTO
tbl_order_item
(
order_id
,
item_id
,
quantity
,
subtotal
)
VALUES
(
1
,
2
,
2
,
40
.
0
);
INSERT
INTO
tbl_order_item
(
order_id
,
item_id
,
quantity
,
subtotal
)
VALUES
(
2
,
4
,
1
,
10
.
0
);
INSERT
INTO
posts
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 1'
,
100000
,
1
,
'content 1'
);
INSERT
INTO
tbl_order_item
(
order_id
,
item_id
,
quantity
,
subtotal
)
VALUES
(
2
,
5
,
1
,
15
.
0
);
INSERT
INTO
posts
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 2'
,
100001
,
2
,
'content 2'
);
INSERT
INTO
tbl_order_item
(
order_id
,
item_id
,
quantity
,
subtotal
)
VALUES
(
2
,
3
,
1
,
8
.
0
);
INSERT
INTO
posts
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 3'
,
100002
,
2
,
'content 3'
);
INSERT
INTO
tbl_order_item
(
order_id
,
item_id
,
quantity
,
subtotal
)
VALUES
(
3
,
2
,
1
,
40
.
0
);
INSERT
INTO
posts
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 4'
,
100003
,
2
,
'content 4'
);
\ No newline at end of file
INSERT
INTO
posts
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 5'
,
100004
,
3
,
'content 5'
);
CREATE
TABLE
posts_nofk
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
title
VARCHAR
(
128
)
NOT
NULL
,
create_time
TIMESTAMP
NOT
NULL
,
author_id
INTEGER
NOT
NULL
,
content
TEXT
);
INSERT
INTO
posts_nofk
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 1'
,
100000
,
1
,
'content 1'
);
INSERT
INTO
posts_nofk
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 2'
,
100001
,
2
,
'content 2'
);
INSERT
INTO
posts_nofk
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 3'
,
100002
,
2
,
'content 3'
);
INSERT
INTO
posts_nofk
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 4'
,
100003
,
2
,
'content 4'
);
INSERT
INTO
posts_nofk
(
title
,
create_time
,
author_id
,
content
)
VALUES
(
'post 5'
,
100004
,
3
,
'content 5'
);
CREATE
TABLE
comments
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
content
TEXT
NOT
NULL
,
post_id
INTEGER
NOT
NULL
,
author_id
INTEGER
NOT
NULL
,
CONSTRAINT
FK_post_comment
FOREIGN
KEY
(
post_id
)
REFERENCES
posts
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
,
CONSTRAINT
FK_user_comment
FOREIGN
KEY
(
author_id
)
REFERENCES
users
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 1'
,
1
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 2'
,
1
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 3'
,
1
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 4'
,
2
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 5'
,
2
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 6'
,
3
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 7'
,
3
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 8'
,
3
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 9'
,
3
,
2
);
INSERT
INTO
comments
(
content
,
post_id
,
author_id
)
VALUES
(
'comment 10'
,
5
,
3
);
CREATE
TABLE
categories
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
name
VARCHAR
(
128
)
NOT
NULL
,
parent_id
INTEGER
,
CONSTRAINT
FK_category_category
FOREIGN
KEY
(
parent_id
)
REFERENCES
categories
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 1'
,
NULL
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 2'
,
NULL
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 3'
,
NULL
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 4'
,
1
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 5'
,
1
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 6'
,
5
);
INSERT
INTO
categories
(
name
,
parent_id
)
VALUES
(
'cat 7'
,
5
);
CREATE
TABLE
post_category
(
category_id
INTEGER
NOT
NULL
,
post_id
INTEGER
NOT
NULL
,
PRIMARY
KEY
(
category_id
,
post_id
),
CONSTRAINT
FK_post_category_post
FOREIGN
KEY
(
post_id
)
REFERENCES
posts
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
,
CONSTRAINT
FK_post_category_category
FOREIGN
KEY
(
category_id
)
REFERENCES
categories
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
post_category
(
category_id
,
post_id
)
VALUES
(
1
,
1
);
INSERT
INTO
post_category
(
category_id
,
post_id
)
VALUES
(
2
,
1
);
INSERT
INTO
post_category
(
category_id
,
post_id
)
VALUES
(
3
,
1
);
INSERT
INTO
post_category
(
category_id
,
post_id
)
VALUES
(
4
,
2
);
INSERT
INTO
post_category
(
category_id
,
post_id
)
VALUES
(
1
,
2
);
INSERT
INTO
post_category
(
category_id
,
post_id
)
VALUES
(
1
,
3
);
CREATE
TABLE
orders
(
key1
INTEGER
NOT
NULL
,
key2
INTEGER
NOT
NULL
,
name
VARCHAR
(
128
),
PRIMARY
KEY
(
key1
,
key2
)
);
INSERT
INTO
orders
(
key1
,
key2
,
name
)
VALUES
(
1
,
2
,
'order 12'
);
INSERT
INTO
orders
(
key1
,
key2
,
name
)
VALUES
(
1
,
3
,
'order 13'
);
INSERT
INTO
orders
(
key1
,
key2
,
name
)
VALUES
(
2
,
1
,
'order 21'
);
INSERT
INTO
orders
(
key1
,
key2
,
name
)
VALUES
(
2
,
2
,
'order 22'
);
CREATE
TABLE
items
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
name
VARCHAR
(
128
),
col1
INTEGER
NOT
NULL
,
col2
INTEGER
NOT
NULL
,
CONSTRAINT
FK_order_item
FOREIGN
KEY
(
col1
,
col2
)
REFERENCES
orders
(
key1
,
key2
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
items
(
name
,
col1
,
col2
)
VALUES
(
'item 1'
,
1
,
2
);
INSERT
INTO
items
(
name
,
col1
,
col2
)
VALUES
(
'item 2'
,
1
,
2
);
INSERT
INTO
items
(
name
,
col1
,
col2
)
VALUES
(
'item 3'
,
1
,
3
);
INSERT
INTO
items
(
name
,
col1
,
col2
)
VALUES
(
'item 4'
,
2
,
2
);
INSERT
INTO
items
(
name
,
col1
,
col2
)
VALUES
(
'item 5'
,
2
,
2
);
CREATE
TABLE
types
(
int_col
INT
NOT
NULL
,
int_col2
INTEGER
DEFAULT
1
,
char_col
CHAR
(
100
)
NOT
NULL
,
char_col2
VARCHAR
(
100
)
DEFAULT
'something'
,
char_col3
TEXT
,
float_col
REAL
(
4
,
3
)
NOT
NULL
,
float_col2
DOUBLE
DEFAULT
1
.
23
,
blob_col
BLOB
,
numeric_col
NUMERIC
(
5
,
2
)
DEFAULT
33
.
22
,
time
TIMESTAMP
DEFAULT
123
,
bool_col
BOOL
NOT
NULL
,
bool_col2
BOOLEAN
DEFAULT
1
,
null_col
INTEGER
DEFAULT
NULL
);
CREATE
TABLE
Content
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
AUTOINCREMENT
,
class
VARCHAR
(
128
),
parentID
INTEGER
NOT
NULL
,
ownerID
INTEGER
NOT
NULL
,
title
VARCHAR
(
100
),
CONSTRAINT
FK_content_user
FOREIGN
KEY
(
ownerID
)
REFERENCES
users
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
CONSTRAINT
FK_content_parent
FOREIGN
KEY
(
parentID
)
REFERENCES
Content
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
Content
(
class
,
parentID
,
ownerID
,
title
)
VALUES
(
'Article'
,
-
1
,
1
,
'article 1'
);
INSERT
INTO
Content
(
class
,
parentID
,
ownerID
,
title
)
VALUES
(
'Article'
,
-
1
,
2
,
'article 2'
);
INSERT
INTO
Content
(
class
,
parentID
,
ownerID
,
title
)
VALUES
(
'Comment'
,
1
,
1
,
'comment 1'
);
INSERT
INTO
Content
(
class
,
parentID
,
ownerID
,
title
)
VALUES
(
'Article'
,
-
1
,
2
,
'article 3'
);
INSERT
INTO
Content
(
class
,
parentID
,
ownerID
,
title
)
VALUES
(
'Comment'
,
4
,
2
,
'comment 2'
);
INSERT
INTO
Content
(
class
,
parentID
,
ownerID
,
title
)
VALUES
(
'Comment'
,
4
,
1
,
'comment 3'
);
CREATE
TABLE
Article
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
,
authorID
INTEGER
NOT
NULL
,
body
TEXT
,
CONSTRAINT
FK_article_content
FOREIGN
KEY
(
id
)
REFERENCES
Content
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
CONSTRAINT
FK_article_author
FOREIGN
KEY
(
authorID
)
REFERENCES
users
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
Article
(
id
,
authorID
,
body
)
VALUES
(
1
,
1
,
'content for article 1'
);
INSERT
INTO
Article
(
id
,
authorID
,
body
)
VALUES
(
2
,
2
,
'content for article 2'
);
INSERT
INTO
Article
(
id
,
authorID
,
body
)
VALUES
(
4
,
1
,
'content for article 3'
);
CREATE
TABLE
Comment
(
id
INTEGER
NOT
NULL
PRIMARY
KEY
,
authorID
INTEGER
NOT
NULL
,
body
TEXT
,
CONSTRAINT
FK_comment_content
FOREIGN
KEY
(
id
)
REFERENCES
Content
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
CONSTRAINT
FK_article_author
FOREIGN
KEY
(
authorID
)
REFERENCES
users
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
);
INSERT
INTO
Comment
(
id
,
authorID
,
body
)
VALUES
(
3
,
1
,
'content for comment 1'
);
INSERT
INTO
Comment
(
id
,
authorID
,
body
)
VALUES
(
5
,
1
,
'content for comment 2'
);
INSERT
INTO
Comment
(
id
,
authorID
,
body
)
VALUES
(
6
,
1
,
'content for comment 3'
);
tests/unit/framework/caching/DbCacheTest.php
View file @
d712605a
...
@@ -35,7 +35,8 @@ class DbCacheTest extends CacheTest
...
@@ -35,7 +35,8 @@ class DbCacheTest extends CacheTest
function
getConnection
(
$reset
=
true
)
function
getConnection
(
$reset
=
true
)
{
{
if
(
$this
->
_connection
===
null
)
{
if
(
$this
->
_connection
===
null
)
{
$params
=
$this
->
getParam
(
'mysql'
);
$databases
=
$this
->
getParam
(
'databases'
);
$params
=
$databases
[
'mysql'
];
$db
=
new
\yii\db\Connection
;
$db
=
new
\yii\db\Connection
;
$db
->
dsn
=
$params
[
'dsn'
];
$db
->
dsn
=
$params
[
'dsn'
];
$db
->
username
=
$params
[
'username'
];
$db
->
username
=
$params
[
'username'
];
...
...
tests/unit/framework/db/ActiveRecordTest.php
View file @
d712605a
...
@@ -10,10 +10,11 @@ use yiiunit\data\ar\OrderItem;
...
@@ -10,10 +10,11 @@ use yiiunit\data\ar\OrderItem;
use
yiiunit\data\ar\Order
;
use
yiiunit\data\ar\Order
;
use
yiiunit\data\ar\Item
;
use
yiiunit\data\ar\Item
;
class
ActiveRecordTest
extends
\yiiunit\
Mysql
TestCase
class
ActiveRecordTest
extends
\yiiunit\
Database
TestCase
{
{
public
function
setUp
()
public
function
setUp
()
{
{
parent
::
setUp
();
ActiveRecord
::
$db
=
$this
->
getConnection
();
ActiveRecord
::
$db
=
$this
->
getConnection
();
}
}
...
...
tests/unit/framework/db/CommandTest.php
View file @
d712605a
...
@@ -7,7 +7,7 @@ use yii\db\Command;
...
@@ -7,7 +7,7 @@ use yii\db\Command;
use
yii\db\Query
;
use
yii\db\Query
;
use
yii\db\DataReader
;
use
yii\db\DataReader
;
class
CommandTest
extends
\yiiunit\
Mysql
TestCase
class
CommandTest
extends
\yiiunit\
Database
TestCase
{
{
function
testConstruct
()
function
testConstruct
()
{
{
...
...
tests/unit/framework/db/ConnectionTest.php
View file @
d712605a
...
@@ -4,12 +4,12 @@ namespace yiiunit\framework\db;
...
@@ -4,12 +4,12 @@ namespace yiiunit\framework\db;
use
yii\db\Connection
;
use
yii\db\Connection
;
class
ConnectionTest
extends
\yiiunit\
Mysql
TestCase
class
ConnectionTest
extends
\yiiunit\
Database
TestCase
{
{
function
testConstruct
()
function
testConstruct
()
{
{
$connection
=
$this
->
getConnection
(
false
);
$connection
=
$this
->
getConnection
(
false
);
$params
=
$this
->
getParam
(
'mysql'
)
;
$params
=
$this
->
database
;
$this
->
assertEquals
(
$params
[
'dsn'
],
$connection
->
dsn
);
$this
->
assertEquals
(
$params
[
'dsn'
],
$connection
->
dsn
);
$this
->
assertEquals
(
$params
[
'username'
],
$connection
->
username
);
$this
->
assertEquals
(
$params
[
'username'
],
$connection
->
username
);
...
@@ -18,7 +18,7 @@ class ConnectionTest extends \yiiunit\MysqlTestCase
...
@@ -18,7 +18,7 @@ class ConnectionTest extends \yiiunit\MysqlTestCase
function
testOpenClose
()
function
testOpenClose
()
{
{
$connection
=
$this
->
getConnection
(
false
);
$connection
=
$this
->
getConnection
(
false
,
false
);
$this
->
assertFalse
(
$connection
->
isActive
);
$this
->
assertFalse
(
$connection
->
isActive
);
$this
->
assertEquals
(
null
,
$connection
->
pdo
);
$this
->
assertEquals
(
null
,
$connection
->
pdo
);
...
@@ -39,9 +39,8 @@ class ConnectionTest extends \yiiunit\MysqlTestCase
...
@@ -39,9 +39,8 @@ class ConnectionTest extends \yiiunit\MysqlTestCase
function
testGetDriverName
()
function
testGetDriverName
()
{
{
$connection
=
$this
->
getConnection
(
false
);
$connection
=
$this
->
getConnection
(
false
,
false
);
$this
->
assertEquals
(
'mysql'
,
$connection
->
driverName
);
$this
->
assertEquals
(
$this
->
driverName
,
$connection
->
driverName
);
$this
->
assertFalse
(
$connection
->
isActive
);
}
}
function
testQuoteValue
()
function
testQuoteValue
()
...
...
tests/unit/framework/db/QueryTest.php
View file @
d712605a
...
@@ -7,7 +7,7 @@ use yii\db\Command;
...
@@ -7,7 +7,7 @@ use yii\db\Command;
use
yii\db\Query
;
use
yii\db\Query
;
use
yii\db\DataReader
;
use
yii\db\DataReader
;
class
QueryTest
extends
\yiiunit\
Mysql
TestCase
class
QueryTest
extends
\yiiunit\
Database
TestCase
{
{
function
testSelect
()
function
testSelect
()
{
{
...
...
tests/unit/framework/db/sqlite/SqliteActiveRecordTest.php
0 → 100644
View file @
d712605a
<?php
namespace
yiiunit\framework\db\sqlite
;
class
SqliteActiveRecordTest
extends
\yiiunit\framework\db\ActiveRecordTest
{
public
function
setUp
()
{
$this
->
driverName
=
'sqlite'
;
parent
::
setUp
();
}
}
\ No newline at end of file
tests/unit/framework/db/sqlite/SqliteCommandTest.php
0 → 100644
View file @
d712605a
<?php
namespace
yiiunit\framework\db\sqlite
;
class
SqliteCommandTest
extends
\yiiunit\framework\db\CommandTest
{
public
function
setUp
()
{
$this
->
driverName
=
'sqlite'
;
parent
::
setUp
();
}
function
testAutoQuoting
()
{
$db
=
$this
->
getConnection
(
false
);
$sql
=
'SELECT [[id]], [[t.name]] FROM {{tbl_customer}} t'
;
$command
=
$db
->
createCommand
(
$sql
);
$this
->
assertEquals
(
"SELECT
\"
id
\"
, 't'.
\"
name
\"
FROM 'tbl_customer' t"
,
$command
->
sql
);
}
}
\ No newline at end of file
tests/unit/framework/db/sqlite/SqliteConnectionTest.php
0 → 100644
View file @
d712605a
<?php
namespace
yiiunit\framework\db\sqlite
;
class
SqliteConnectionTest
extends
\yiiunit\framework\db\ConnectionTest
{
public
function
setUp
()
{
$this
->
driverName
=
'sqlite'
;
parent
::
setUp
();
}
function
testConstruct
()
{
$connection
=
$this
->
getConnection
(
false
);
$params
=
$this
->
database
;
$this
->
assertEquals
(
$params
[
'dsn'
],
$connection
->
dsn
);
}
function
testQuoteValue
()
{
$connection
=
$this
->
getConnection
(
false
);
$this
->
assertEquals
(
123
,
$connection
->
quoteValue
(
123
));
$this
->
assertEquals
(
"'string'"
,
$connection
->
quoteValue
(
'string'
));
$this
->
assertEquals
(
"'It''s interesting'"
,
$connection
->
quoteValue
(
"It's interesting"
));
}
function
testQuoteTableName
()
{
$connection
=
$this
->
getConnection
(
false
);
$this
->
assertEquals
(
"'table'"
,
$connection
->
quoteTableName
(
'table'
));
$this
->
assertEquals
(
"'schema'.'table'"
,
$connection
->
quoteTableName
(
'schema.table'
));
$this
->
assertEquals
(
'{{table}}'
,
$connection
->
quoteTableName
(
'{{table}}'
));
$this
->
assertEquals
(
'(table)'
,
$connection
->
quoteTableName
(
'(table)'
));
}
function
testQuoteColumnName
()
{
$connection
=
$this
->
getConnection
(
false
);
$this
->
assertEquals
(
'"column"'
,
$connection
->
quoteColumnName
(
'column'
));
$this
->
assertEquals
(
"'table'.
\"
column
\"
"
,
$connection
->
quoteColumnName
(
'table.column'
));
$this
->
assertEquals
(
'[[column]]'
,
$connection
->
quoteColumnName
(
'[[column]]'
));
$this
->
assertEquals
(
'{{column}}'
,
$connection
->
quoteColumnName
(
'{{column}}'
));
$this
->
assertEquals
(
'(column)'
,
$connection
->
quoteColumnName
(
'(column)'
));
}
}
tests/unit/framework/db/sqlite/SqliteQueryTest.php
0 → 100644
View file @
d712605a
<?php
/**
* Created by JetBrains PhpStorm.
* User: RusMaxim
* Date: 09.05.13
* Time: 21:41
* To change this template use File | Settings | File Templates.
*/
namespace
yiiunit\framework\db\sqlite
;
class
SqliteQueryTest
extends
\yiiunit\framework\db\QueryTest
{
public
function
setUp
()
{
$this
->
driverName
=
'sqlite'
;
parent
::
setUp
();
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment