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
4eb1060b
Commit
4eb1060b
authored
Oct 01, 2006
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added new tests
parent
00cbc5d1
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
168 additions
and
42 deletions
+168
-42
Hydrate.php
lib/Doctrine/Hydrate.php
+1
-1
QueryMultiJoinTestCase.php
tests/QueryMultiJoinTestCase.php
+145
-0
QueryTestCase.php
tests/QueryTestCase.php
+1
-39
classes.php
tests/classes.php
+16
-0
run.php
tests/run.php
+5
-2
No files found.
lib/Doctrine/Hydrate.php
View file @
4eb1060b
...
...
@@ -315,7 +315,7 @@ abstract class Doctrine_Hydrate extends Doctrine_Access {
$array
=
$this
->
parseData
(
$stmt
);
if
(
$return
==
Doctrine
::
FETCH_VHOLDER
)
{
return
$this
->
hydrateHolders
(
$array
);
}
elseif
(
$return
==
Doctrine
::
FETCH_ARRAY
)
...
...
tests/QueryMultiJoinTestCase.php
0 → 100644
View file @
4eb1060b
<?php
class
Doctrine_Query_MultiJoin_TestCase
extends
Doctrine_UnitTestCase
{
public
function
testInitializeData
()
{
$query
=
new
Doctrine_Query
(
$this
->
connection
);
$user
=
$this
->
connection
->
getTable
(
'User'
)
->
find
(
4
);
$album
=
$this
->
connection
->
create
(
"Album"
);
$album
->
Song
[
0
];
$user
->
Album
[
0
]
->
name
=
"Damage Done"
;
$user
->
Album
[
1
]
->
name
=
"Haven"
;
$user
->
Album
[
0
]
->
Song
[
0
]
->
title
=
"Damage Done"
;
$user
->
Album
[
0
]
->
Song
[
1
]
->
title
=
"The Treason Wall"
;
$user
->
Album
[
0
]
->
Song
[
2
]
->
title
=
"Monochromatic Stains"
;
$this
->
assertEqual
(
count
(
$user
->
Album
[
0
]
->
Song
),
3
);
$user
->
Album
[
1
]
->
Song
[
0
]
->
title
=
"Not Built To Last"
;
$user
->
Album
[
1
]
->
Song
[
1
]
->
title
=
"The Wonders At Your Feet"
;
$user
->
Album
[
1
]
->
Song
[
2
]
->
title
=
"Feast Of Burden"
;
$user
->
Album
[
1
]
->
Song
[
3
]
->
title
=
"Fabric"
;
$this
->
assertEqual
(
count
(
$user
->
Album
[
1
]
->
Song
),
4
);
$user
->
save
();
$user
=
$this
->
objTable
->
find
(
4
);
$this
->
assertEqual
(
count
(
$user
->
Album
[
0
]
->
Song
),
3
);
$this
->
assertEqual
(
count
(
$user
->
Album
[
1
]
->
Song
),
4
);
$user
=
$this
->
connection
->
getTable
(
'User'
)
->
find
(
5
);
$user
->
Album
[
0
]
->
name
=
"Clayman"
;
$user
->
Album
[
1
]
->
name
=
"Colony"
;
$user
->
Album
[
1
]
->
Song
[
0
]
->
title
=
"Colony"
;
$user
->
Album
[
1
]
->
Song
[
1
]
->
title
=
"Ordinary Story"
;
$user
->
save
();
$this
->
assertEqual
(
count
(
$user
->
Album
[
0
]
->
Song
),
0
);
$this
->
assertEqual
(
count
(
$user
->
Album
[
1
]
->
Song
),
2
);
}
public
function
testMultipleOneToManyFetching
()
{
$this
->
connection
->
clear
();
$query
=
new
Doctrine_Query
();
$users
=
$query
->
query
(
"FROM User.Album.Song, User.Phonenumber WHERE User.id IN (4,5)"
);
$this
->
assertEqual
(
$users
->
count
(),
2
);
$this
->
assertEqual
(
$users
[
0
]
->
id
,
4
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
name
,
'Damage Done'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
Song
[
0
]
->
title
,
'Damage Done'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
Song
[
1
]
->
title
,
'The Treason Wall'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
Song
[
2
]
->
title
,
'Monochromatic Stains'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
name
,
'Haven'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
0
]
->
title
,
'Not Built To Last'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
1
]
->
title
,
'The Wonders At Your Feet'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
2
]
->
title
,
'Feast Of Burden'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
3
]
->
title
,
'Fabric'
);
$this
->
assertEqual
(
$users
[
1
]
->
id
,
5
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
0
]
->
name
,
'Clayman'
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
1
]
->
name
,
'Colony'
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
1
]
->
Song
[
0
]
->
title
,
'Colony'
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
1
]
->
Song
[
1
]
->
title
,
'Ordinary Story'
);
$this
->
assertEqual
(
$users
[
0
]
->
Phonenumber
[
0
]
->
phonenumber
,
'123 123'
);
$this
->
assertEqual
(
$users
[
1
]
->
Phonenumber
[
0
]
->
phonenumber
,
'123 123'
);
$this
->
assertEqual
(
$users
[
1
]
->
Phonenumber
[
1
]
->
phonenumber
,
'456 456'
);
$this
->
assertEqual
(
$users
[
1
]
->
Phonenumber
[
2
]
->
phonenumber
,
'789 789'
);
}
public
function
testInitializeMoreData
()
{
$user
=
$this
->
connection
->
getTable
(
'User'
)
->
find
(
4
);
$user
->
Book
[
0
]
->
name
=
'The Prince'
;
$user
->
Book
[
0
]
->
Author
[
0
]
->
name
=
'Niccolo Machiavelli'
;
$user
->
Book
[
1
]
->
Author
[
1
]
->
name
=
'Someone'
;
$user
->
Book
[
1
]
->
name
=
'The Art of War'
;
$user
->
Book
[
1
]
->
Author
[
0
]
->
name
=
'Someone'
;
$user
->
Book
[
0
]
->
Author
[
1
]
->
name
=
'Niccolo Machiavelli'
;
$user
->
save
();
$user
=
$this
->
connection
->
getTable
(
'User'
)
->
find
(
5
);
$user
->
Book
[
0
]
->
name
=
'Zadig'
;
$user
->
Book
[
0
]
->
Author
[
0
]
->
name
=
'Voltaire'
;
$user
->
Book
[
1
]
->
Author
[
1
]
->
name
=
'Someone'
;
$user
->
Book
[
1
]
->
name
=
'Candide'
;
$user
->
Book
[
1
]
->
Author
[
0
]
->
name
=
'Someone'
;
$user
->
Book
[
0
]
->
Author
[
1
]
->
name
=
'Voltaire'
;
$user
->
save
();
$this
->
connection
->
clear
();
}
public
function
testMultipleOneToManyFetching2
()
{
$query
=
new
Doctrine_Query
();
$users
=
$query
->
query
(
"FROM User.Album.Song, User.Book.Author WHERE User.id IN (4,5)"
);
$this
->
assertEqual
(
$users
->
count
(),
2
);
$this
->
assertEqual
(
$users
[
0
]
->
id
,
4
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
name
,
'Damage Done'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
Song
[
0
]
->
title
,
'Damage Done'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
Song
[
1
]
->
title
,
'The Treason Wall'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
0
]
->
Song
[
2
]
->
title
,
'Monochromatic Stains'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
name
,
'Haven'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
0
]
->
title
,
'Not Built To Last'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
1
]
->
title
,
'The Wonders At Your Feet'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
2
]
->
title
,
'Feast Of Burden'
);
$this
->
assertEqual
(
$users
[
0
]
->
Album
[
1
]
->
Song
[
3
]
->
title
,
'Fabric'
);
$this
->
assertEqual
(
$users
[
0
]
->
Book
[
0
]
->
Author
[
0
]
->
name
,
'Niccolo Machiavelli'
);
$this
->
assertEqual
(
$users
[
0
]
->
Book
[
1
]
->
Author
[
1
]
->
name
,
'Someone'
);
$this
->
assertEqual
(
$users
[
0
]
->
Book
[
1
]
->
name
,
'The Art of War'
);
$this
->
assertEqual
(
$users
[
0
]
->
Book
[
1
]
->
Author
[
0
]
->
name
,
'Someone'
);
$this
->
assertEqual
(
$users
[
0
]
->
Book
[
0
]
->
Author
[
1
]
->
name
,
'Niccolo Machiavelli'
);
$this
->
assertEqual
(
$users
[
1
]
->
id
,
5
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
0
]
->
name
,
'Clayman'
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
1
]
->
name
,
'Colony'
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
1
]
->
Song
[
0
]
->
title
,
'Colony'
);
$this
->
assertEqual
(
$users
[
1
]
->
Album
[
1
]
->
Song
[
1
]
->
title
,
'Ordinary Story'
);
$this
->
assertEqual
(
$users
[
1
]
->
Book
[
0
]
->
name
,
'Zadig'
);
$this
->
assertEqual
(
$users
[
1
]
->
Book
[
0
]
->
Author
[
0
]
->
name
,
'Voltaire'
);
$this
->
assertEqual
(
$users
[
1
]
->
Book
[
1
]
->
Author
[
1
]
->
name
,
'Someone'
);
$this
->
assertEqual
(
$users
[
1
]
->
Book
[
1
]
->
name
,
'Candide'
);
$this
->
assertEqual
(
$users
[
1
]
->
Book
[
1
]
->
Author
[
0
]
->
name
,
'Someone'
);
$this
->
assertEqual
(
$users
[
1
]
->
Book
[
0
]
->
Author
[
1
]
->
name
,
'Voltaire'
);
}
}
tests/QueryTestCase.php
View file @
4eb1060b
...
...
@@ -1117,46 +1117,8 @@ class Doctrine_QueryTestCase extends Doctrine_UnitTestCase {
}
public
function
testAlbumManager
()
{
$query
=
new
Doctrine_Query
(
$this
->
connection
);
$this
->
graph
=
$query
;
$user
=
$this
->
objTable
->
find
(
5
);
$album
=
$this
->
connection
->
create
(
"Album"
);
$album
->
Song
[
0
];
$user
->
Album
[
0
]
->
name
=
"Damage Done"
;
$user
->
Album
[
1
]
->
name
=
"Haven"
;
$user
->
Album
[
0
]
->
Song
[
0
]
->
title
=
"Damage Done"
;
$user
->
Album
[
0
]
->
Song
[
1
]
->
title
=
"The Treason Wall"
;
$user
->
Album
[
0
]
->
Song
[
2
]
->
title
=
"Monochromatic Stains"
;
$this
->
assertEqual
(
count
(
$user
->
Album
[
0
]
->
Song
),
3
);
$user
->
Album
[
1
]
->
Song
[
0
]
->
title
=
"Not Built To Last"
;
$user
->
Album
[
1
]
->
Song
[
1
]
->
title
=
"The Wonders At Your Feet"
;
$user
->
Album
[
1
]
->
Song
[
2
]
->
title
=
"Feast Of Burden"
;
$user
->
Album
[
1
]
->
Song
[
3
]
->
title
=
"Fabric"
;
$this
->
assertEqual
(
count
(
$user
->
Album
[
1
]
->
Song
),
4
);
$user
->
save
();
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assertEqual
(
count
(
$user
->
Album
[
0
]
->
Song
),
3
);
$this
->
assertEqual
(
count
(
$user
->
Album
[
1
]
->
Song
),
4
);
$users
=
$query
->
query
(
"FROM User WHERE User.Album.name like '%Damage%'"
);
}
function
testQuery
()
{
function
testFetchingWithCollectionExpanding
()
{
// DYNAMIC COLLECTION EXPANDING
$query
=
new
Doctrine_Query
(
$this
->
connection
);
...
...
tests/classes.php
View file @
4eb1060b
...
...
@@ -93,6 +93,7 @@ class User extends Entity {
parent
::
setUp
();
$this
->
hasMany
(
"Address"
,
"Entityaddress.address_id"
);
$this
->
ownsMany
(
"Album"
,
"Album.user_id"
);
$this
->
ownsMany
(
"Book"
,
"Book.user_id"
);
$this
->
hasMany
(
"Group"
,
"Groupuser.group_id"
);
$this
->
setInheritanceMap
(
array
(
"type"
=>
0
));
}
...
...
@@ -129,6 +130,21 @@ class Email extends Doctrine_Record {
$this
->
hasColumn
(
"address"
,
"string"
,
150
,
"email|unique"
);
}
}
class
Book
extends
Doctrine_Record
{
public
function
setUp
()
{
$this
->
ownsMany
(
"Author"
,
"Author.book_id"
);
}
public
function
setTableDefinition
()
{
$this
->
hasColumn
(
"user_id"
,
"integer"
);
$this
->
hasColumn
(
"name"
,
"string"
,
20
);
}
}
class
Author
extends
Doctrine_Record
{
public
function
setTableDefinition
()
{
$this
->
hasColumn
(
"book_id"
,
"integer"
);
$this
->
hasColumn
(
"name"
,
"string"
,
20
);
}
}
class
Album
extends
Doctrine_Record
{
public
function
setUp
()
{
$this
->
ownsMany
(
"Song"
,
"Song.album_id"
);
...
...
tests/run.php
View file @
4eb1060b
...
...
@@ -26,6 +26,7 @@ require_once("CustomPrimaryKeyTestCase.php");
require_once
(
"FilterTestCase.php"
);
require_once
(
"ValueHolderTestCase.php"
);
require_once
(
"QueryLimitTestCase.php"
);
require_once
(
"QueryMultiJoinTestCase.php"
);
require_once
(
"QueryReferenceModelTestCase.php"
);
require_once
(
"DBTestCase.php"
);
require_once
(
"SchemaTestCase.php"
);
...
...
@@ -41,7 +42,9 @@ error_reporting(E_ALL);
$test
=
new
GroupTest
(
"Doctrine Framework Unit Tests"
);
$test
->
addTestCase
(
new
Doctrine_Relation_TestCase
());
/**
$test
->
addTestCase
(
new
Doctrine_Query_MultiJoin_TestCase
());
$test
->
addTestCase
(
new
Doctrine_EventListenerTestCase
());
$test
->
addTestCase
(
new
Doctrine_RecordTestCase
());
...
...
@@ -101,7 +104,7 @@ $test->addTestCase(new Doctrine_BooleanTestCase());
$test
->
addTestCase
(
new
Doctrine_QueryTestCase
());
$test
->
addTestCase
(
new
Doctrine_EventListener_Chain_TestCase
());
*/
//$test->addTestCase(new Doctrine_Cache_FileTestCase());
//$test->addTestCase(new Doctrine_Cache_SqliteTestCase());
...
...
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