Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
Tomáš Trávníček
doctrine-dbal
Commits
a28c399c
Commit
a28c399c
authored
Jun 13, 2007
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ticket 330 closed.
parent
e1fb5e53
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
60 additions
and
68 deletions
+60
-68
Ticket330TestCase.php
tests/Ticket330TestCase.php
+60
-68
No files found.
tests/Ticket330TestCase.php
View file @
a28c399c
<?php
/**
* Doctrine_Ticket330_TestCase
*
...
...
@@ -15,41 +15,41 @@
class
stNode
extends
Doctrine_Record
{
public
function
setTableDefinition
()
{
$this
->
setTableName
(
'node_node'
);
$this
->
hasColumn
(
'title'
,
'string'
,
255
,
array
());
}
public
function
setUp
()
{
$this
->
hasOne
(
'stNodeDetail as detail'
,
'stNodeDetail.node_id'
,
array
(
'onDelete'
=>
'cascade'
));
}
public
function
setTableDefinition
()
{
$this
->
setTableName
(
'node_node'
);
$this
->
hasColumn
(
'title'
,
'string'
,
255
,
array
());
}
public
function
setUp
()
{
$this
->
hasOne
(
'stNodeDetail as detail'
,
'stNodeDetail.node_id'
,
array
(
'onDelete'
=>
'cascade'
));
}
}
class
stNodeDetail
extends
Doctrine_Record
{
public
function
setTableDefinition
()
{
$this
->
setTableName
(
'node_detail'
);
$this
->
hasColumn
(
'node_id'
,
'integer'
,
10
,
array
(
'unique'
=>
true
,));
$this
->
hasColumn
(
'null_column'
,
'string'
,
255
,
array
(
'default'
=>
null
));
$this
->
hasColumn
(
'is_bool'
,
'boolean'
,
null
,
array
(
'default'
=>
0
,));
$this
->
option
(
'type'
,
'MyISAM'
);
}
public
function
setTableDefinition
()
{
$this
->
setTableName
(
'node_detail'
);
$this
->
hasColumn
(
'node_id'
,
'integer'
,
10
,
array
(
'unique'
=>
true
,));
$this
->
hasColumn
(
'null_column'
,
'string'
,
255
,
array
(
'default'
=>
null
));
$this
->
hasColumn
(
'is_bool'
,
'boolean'
,
null
,
array
(
'default'
=>
0
,));
$this
->
option
(
'type'
,
'MyISAM'
);
}
public
function
setUp
()
{
$this
->
hasOne
(
'stNode as node'
,
'stNodeDetail.article_id'
,
array
(
'foreign'
=>
'id'
,
'onDelete'
=>
'cascade'
));
}
public
function
setUp
()
{
$this
->
hasOne
(
'stNode as node'
,
'stNodeDetail.article_id'
,
array
(
'foreign'
=>
'id'
,
'onDelete'
=>
'cascade'
));
}
}
class
Doctrine_Ticket330_TestCase
extends
Doctrine_UnitTestCase
{
public
function
prepareData
()
public
function
prepareData
()
{
}
public
function
prepareTables
()
...
...
@@ -57,47 +57,39 @@ class Doctrine_Ticket330_TestCase extends Doctrine_UnitTestCase
public
function
testUnnecessaryQueries
()
{
$node1
=
new
stNode
();
$node1
->
set
(
'title'
,
'first node'
);
$node1
->
detail
->
set
(
'is_bool'
,
true
);
$node1
->
save
();
$node2
=
new
stNode
();
$node2
->
set
(
'title'
,
'second node'
);
$node2
->
detail
->
set
(
'null_column'
,
'value'
);
$node2
->
detail
->
set
(
'is_bool'
,
false
);
$node2
->
save
();
$nodes
=
Doctrine_Query
::
create
()
->
select
(
'n.title, d.null_column, d.is_bool'
)
->
from
(
'stNode n, n.detail d'
)
->
execute
();
$prevCount
=
$this
->
dbh
->
count
();
foreach
(
$nodes
as
$node
)
{
if
(
$node
->
get
(
'title'
)
==
'first node'
)
{
$this
->
assertEqual
(
$node
->
detail
->
get
(
'is_bool'
),
true
);
$this
->
assertEqual
(
$node
->
detail
->
get
(
'null_column'
),
null
);
// Unnecessary query is triggered on line before due to null value column.
$this
->
assertEqual
(
$this
->
dbh
->
count
(),
$prevCount
);
$prevCount
=
$this
->
dbh
->
count
();
}
else
{
$this
->
assertEqual
(
$node
->
detail
->
get
(
'null_column'
),
'value'
);
$this
->
assertEqual
(
$node
->
detail
->
get
(
'is_bool'
),
false
);
// Unecessary query is triggered on line before due to false value column
$this
->
assertEqual
(
$this
->
dbh
->
count
(),
$prevCount
);
}
}
$this
->
assertEqual
(
$this
->
dbh
->
count
(),
$prevCount
);
$node1
=
new
stNode
();
$node1
->
set
(
'title'
,
'first node'
);
$node1
->
detail
->
set
(
'is_bool'
,
true
);
$node1
->
save
();
$node2
=
new
stNode
();
$node2
->
set
(
'title'
,
'second node'
);
$node2
->
detail
->
set
(
'null_column'
,
'value'
);
$node2
->
detail
->
set
(
'is_bool'
,
false
);
$node2
->
save
();
$nodes
=
Doctrine_Query
::
create
()
->
select
(
'n.title, d.*'
)
->
from
(
'stNode n, n.detail d'
)
->
orderby
(
'n.id'
)
->
execute
();
$prevCount
=
$this
->
dbh
->
count
();
$this
->
assertEqual
(
$nodes
[
0
]
->
detail
->
get
(
'is_bool'
),
true
);
$this
->
assertEqual
(
$nodes
[
0
]
->
detail
->
get
(
'null_column'
),
null
);
// Unnecessary query is triggered on line before due to null value column.
$this
->
assertEqual
(
$this
->
dbh
->
count
(),
$prevCount
);
$prevCount
=
$this
->
dbh
->
count
();
$this
->
assertEqual
(
$nodes
[
1
]
->
detail
->
get
(
'null_column'
),
'value'
);
$this
->
assertEqual
(
$nodes
[
1
]
->
detail
->
get
(
'is_bool'
),
false
);
// Unecessary query is triggered on line before due to false value column
$this
->
assertEqual
(
$this
->
dbh
->
count
(),
$prevCount
);
}
}
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