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
bb1a3968
Commit
bb1a3968
authored
Jul 10, 2006
by
doctrine
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Core changes: getID() now returns array for better composite primary key support
parent
267bdfa2
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
181 additions
and
134 deletions
+181
-134
Collection.php
Doctrine/Collection.php
+8
-7
Batch.php
Doctrine/Collection/Batch.php
+1
-1
DB.php
Doctrine/DB.php
+8
-3
DataDict.php
Doctrine/DataDict.php
+3
-4
Pessimistic.php
Doctrine/Locking/Manager/Pessimistic.php
+5
-3
Query.php
Doctrine/Query.php
+1
-1
Record.php
Doctrine/Record.php
+57
-33
Session.php
Doctrine/Session.php
+9
-14
QueryTestCase.php
tests/QueryTestCase.php
+42
-39
RecordTestCase.php
tests/RecordTestCase.php
+36
-18
SessionTestCase.php
tests/SessionTestCase.php
+11
-11
No files found.
Doctrine/Collection.php
View file @
bb1a3968
...
...
@@ -234,7 +234,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
if
(
isset
(
$this
->
relation
))
{
if
(
$this
->
relation
instanceof
Doctrine_ForeignKey
)
{
$params
=
array
(
$this
->
reference
->
getID
()
);
$params
[]
=
$this
->
reference
->
getIncremented
(
);
$where
[]
=
$this
->
reference_field
.
" = ?"
;
if
(
!
isset
(
$offset
))
{
...
...
@@ -252,7 +252,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
}
elseif
(
$this
->
relation
instanceof
Doctrine_Association
)
{
$asf
=
$this
->
relation
->
getAssociationFactory
();
$query
=
"SELECT "
.
$foreign
.
" FROM "
.
$asf
->
getTableName
()
.
" WHERE "
.
$local
.
"="
.
$this
->
getI
D
();
$query
=
"SELECT "
.
$foreign
.
" FROM "
.
$asf
->
getTableName
()
.
" WHERE "
.
$local
.
"="
.
$this
->
getI
ncremented
();
$table
=
$fk
->
getTable
();
$graph
=
new
Doctrine_DQL_Parser
(
$table
->
getSession
());
...
...
@@ -344,6 +344,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
if
(
$value
!==
null
)
{
$this
->
data
[
$key
]
->
rawSet
(
$this
->
reference_field
,
$value
);
}
else
{
$this
->
data
[
$key
]
->
rawSet
(
$this
->
reference_field
,
$this
->
reference
);
}
}
...
...
@@ -363,7 +364,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
if
(
is_array
(
$record
)
&&
isset
(
$record
[
$name
]))
{
$list
[]
=
$record
[
$name
];
}
else
{
$list
[]
=
$record
->
getI
D
();
$list
[]
=
$record
->
getI
ncremented
();
}
endforeach
;
return
$list
;
...
...
@@ -407,6 +408,10 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
if
(
isset
(
$this
->
reference_field
))
$record
->
rawSet
(
$this
->
reference_field
,
$this
->
reference
);
if
(
in_array
(
$record
,
$this
->
data
))
{
return
false
;
}
if
(
isset
(
$key
))
{
if
(
isset
(
$this
->
data
[
$key
]))
return
false
;
...
...
@@ -414,10 +419,6 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
$this
->
data
[
$key
]
=
$record
;
return
true
;
}
if
(
in_array
(
$record
,
$this
->
data
))
{
return
false
;
}
if
(
isset
(
$this
->
generator
))
{
$key
=
$this
->
generator
->
getIndex
(
$record
);
...
...
Doctrine/Collection/Batch.php
View file @
bb1a3968
...
...
@@ -81,7 +81,7 @@ class Doctrine_Collection_Batch extends Doctrine_Collection {
for
(
$i
=
$e
;
$i
<
$e2
&&
$i
<
$this
->
count
();
$i
++
)
:
if
(
$this
->
data
[
$i
]
instanceof
Doctrine_Record
)
$id
=
$this
->
data
[
$i
]
->
getI
D
();
$id
=
$this
->
data
[
$i
]
->
getI
ncremented
();
elseif
(
is_array
(
$this
->
data
[
$i
]))
$id
=
$this
->
data
[
$i
][
$identifier
];
...
...
Doctrine/DB.php
View file @
bb1a3968
...
...
@@ -129,12 +129,17 @@ class Doctrine_DBStatement extends PDOStatement {
/**
* @param array $params
*/
public
function
execute
(
array
$params
=
null
)
{
$time
=
microtime
();
$result
=
parent
::
execute
(
$params
);
public
function
execute
(
array
$params
=
array
())
{
$time
=
microtime
();
try
{
$result
=
parent
::
execute
(
$params
);
}
catch
(
PDOException
$e
)
{
throw
new
Doctrine_Exception
(
$this
->
queryString
.
" "
.
$e
->
__toString
());
}
$exectime
=
(
microtime
()
-
$time
);
$this
->
dbh
->
addExecTime
(
$exectime
);
return
$result
;
}
}
...
...
Doctrine/DataDict.php
View file @
bb1a3968
...
...
@@ -37,10 +37,9 @@ class Doctrine_DataDict {
$return
=
true
;
foreach
(
$a
as
$sql
)
{
try
{
try
{
$this
->
dbh
->
query
(
$sql
);
}
catch
(
PDOException
$e
)
{
}
catch
(
Exception
$e
)
{
$return
=
$e
;
}
}
...
...
@@ -71,7 +70,7 @@ class Doctrine_DataDict {
case
"mbstring"
:
if
(
$length
<=
255
)
return
"C2(
$length
)"
;
return
"X2"
;
case
"clob"
:
return
"XL"
;
...
...
Doctrine/Locking/Manager/Pessimistic.php
View file @
bb1a3968
...
...
@@ -86,7 +86,9 @@ class Doctrine_Locking_Manager_Pessimistic
try
{
$stmt
->
execute
();
$gotLock
=
true
;
}
catch
(
PDOException
$pkviolation
)
{
// we catch an Exception here instead of PDOException since we might also be catching Doctrine_Exception
}
catch
(
Exception
$pkviolation
)
{
// PK violation occured => existing lock!
}
...
...
@@ -112,9 +114,9 @@ class Doctrine_Locking_Manager_Pessimistic
$dbh
->
commit
();
}
catch
(
PDO
Exception
$pdoe
)
catch
(
Exception
$pdoe
)
{
$dbh
->
roll
B
ack
();
$dbh
->
roll
b
ack
();
throw
new
Doctrine_Locking_Exception
(
$pdoe
->
getMessage
());
}
...
...
Doctrine/Query.php
View file @
bb1a3968
...
...
@@ -551,7 +551,7 @@ class Doctrine_Query extends Doctrine_Access {
// one-to-one relation
$last
->
internalSet
(
$fk
->
getLocal
(),
$record
->
getI
D
());
$last
->
internalSet
(
$fk
->
getLocal
(),
$record
->
getI
ncremented
());
$last
->
initSingleReference
(
$record
,
$fk
);
...
...
Doctrine/Record.php
View file @
bb1a3968
...
...
@@ -65,9 +65,9 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
*/
protected
$table
;
/**
* @var integer $id the primary key of this object
* @var integer $id the primary key
s
of this object
*/
protected
$id
;
protected
$id
=
array
()
;
/**
* @var array $data the record data
*/
...
...
@@ -266,7 +266,7 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
if
(
$exists
)
{
if
(
isset
(
$this
->
data
[
$name
])
&&
$this
->
data
[
$name
]
!==
self
::
$null
)
$this
->
id
=
$this
->
data
[
$name
];
$this
->
id
[
$name
]
=
$this
->
data
[
$name
];
}
unset
(
$this
->
data
[
$name
]);
...
...
@@ -300,10 +300,9 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
unset
(
$vars
[
'originals'
]);
unset
(
$vars
[
'table'
]);
if
(
!
is_array
(
$this
->
id
))
{
$name
=
$this
->
table
->
getIdentifier
();
$this
->
data
=
array_merge
(
$this
->
data
,
array
(
$name
=>
$this
->
id
));
}
$name
=
$this
->
table
->
getIdentifier
();
$this
->
data
=
array_merge
(
$this
->
data
,
$this
->
id
);
foreach
(
$this
->
data
as
$k
=>
$v
)
{
if
(
$v
instanceof
Doctrine_Record
)
...
...
@@ -441,17 +440,17 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
*/
final
public
function
factoryRefresh
()
{
$data
=
$this
->
table
->
getData
();
$id
=
$this
->
id
;
$old
=
$this
->
id
;
$this
->
cleanData
();
$this
->
prepareIdentifiers
();
if
(
$this
->
id
!=
$
i
d
)
if
(
$this
->
id
!=
$
ol
d
)
throw
new
Doctrine_Record_Exception
();
$this
->
data
=
$data
;
$this
->
cleanData
();
$this
->
state
=
Doctrine_Record
::
STATE_CLEAN
;
$this
->
modified
=
array
();
...
...
@@ -521,8 +520,11 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
return
$this
->
data
[
$name
];
}
if
(
isset
(
$this
->
id
[
$name
]))
return
$this
->
id
[
$name
];
if
(
$name
===
$this
->
table
->
getIdentifier
())
return
$this
->
id
;
return
null
;
if
(
!
isset
(
$this
->
references
[
$name
]))
...
...
@@ -549,9 +551,9 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
*/
final
public
function
rawSet
(
$name
,
$value
)
{
if
(
$value
instanceof
Doctrine_Record
)
$id
=
$value
->
getI
D
();
$id
=
$value
->
getI
ncremented
();
if
(
!
empty
(
$id
))
if
(
isset
(
$id
))
$value
=
$id
;
if
(
isset
(
$this
->
data
[
$name
]))
{
...
...
@@ -585,13 +587,16 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
* @return void
*/
public
function
set
(
$name
,
$value
)
{
if
(
is_array
(
$value
))
throw
new
Exception
(
$value
);
if
(
isset
(
$this
->
data
[
$name
]))
{
if
(
$value
instanceof
Doctrine_Record
)
{
$id
=
$value
->
getI
D
();
$id
=
$value
->
getI
ncremented
();
if
(
!
empty
(
$id
))
$value
=
$
value
->
getID
()
;
if
(
$id
!==
null
)
$value
=
$
id
;
}
$old
=
$this
->
get
(
$name
);
...
...
@@ -747,9 +752,10 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
continue
;
}
if
(
$this
->
data
[
$v
]
instanceof
Doctrine_Record
)
$this
->
data
[
$v
]
=
$this
->
data
[
$v
]
->
getID
();
if
(
$this
->
data
[
$v
]
instanceof
Doctrine_Record
)
{
$this
->
data
[
$v
]
=
$this
->
data
[
$v
]
->
getIncremented
();
}
$a
[
$v
]
=
$this
->
data
[
$v
];
}
...
...
@@ -811,13 +817,14 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
foreach
(
$r
[
"delete"
]
as
$record
)
{
$query
=
"DELETE FROM "
.
$asf
->
getTableName
()
.
" WHERE "
.
$fk
->
getForeign
()
.
" = ?"
.
" AND "
.
$fk
->
getLocal
()
.
" = ?"
;
$this
->
table
->
getSession
()
->
execute
(
$query
,
array
(
$record
->
getI
D
(),
$this
->
getID
()));
$this
->
table
->
getSession
()
->
execute
(
$query
,
array
(
$record
->
getI
ncremented
(),
$this
->
getIncremented
()));
}
foreach
(
$r
[
"add"
]
as
$record
)
{
$reldao
=
$asf
->
create
();
$reldao
->
set
(
$fk
->
getForeign
(),
$record
);
$reldao
->
set
(
$fk
->
getLocal
(),
$this
);
$reldao
->
save
();
}
$this
->
originals
[
$alias
]
=
clone
$this
->
references
[
$alias
];
}
...
...
@@ -825,7 +832,7 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
endswitch
;
}
elseif
(
$fk
instanceof
Doctrine_ForeignKey
||
$fk
instanceof
Doctrine_LocalKey
)
{
switch
(
$fk
->
getType
())
:
case
Doctrine_Relation
::
ONE_COMPOSITE
:
if
(
isset
(
$this
->
originals
[
$alias
])
&&
$this
->
originals
[
$alias
]
->
getID
()
!=
$this
->
references
[
$alias
]
->
getID
())
...
...
@@ -877,9 +884,10 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
$found
=
false
;
if
(
$record
->
getID
()
!==
null
)
{
$id
=
$record
->
getIncremented
();
if
(
!
empty
(
$id
))
{
foreach
(
$this
->
originals
[
$name
]
as
$k2
=>
$record2
)
{
if
(
$record2
->
getI
D
()
==
$record
->
getID
())
{
if
(
$record2
->
getI
ncremented
()
===
$record
->
getIncremented
())
{
$found
=
true
;
break
;
}
...
...
@@ -892,12 +900,14 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
}
foreach
(
$this
->
originals
[
$name
]
as
$k
=>
$record
)
{
if
(
$record
->
getID
()
===
null
)
$id
=
$record
->
getIncremented
();
if
(
empty
(
$id
))
continue
;
$found
=
false
;
foreach
(
$new
as
$k2
=>
$record2
)
{
if
(
$record2
->
getI
D
()
==
$record
->
getID
())
{
foreach
(
$new
as
$k2
=>
$record2
)
{
if
(
$record2
->
getI
ncremented
()
===
$record
->
getIncremented
())
{
$found
=
true
;
break
;
}
...
...
@@ -944,7 +954,7 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
*/
final
public
function
setID
(
$id
=
false
)
{
if
(
$id
===
false
)
{
$this
->
id
=
false
;
$this
->
id
=
array
()
;
$this
->
cleanData
();
$this
->
state
=
Doctrine_Record
::
STATE_TCLEAN
;
$this
->
modified
=
array
();
...
...
@@ -954,18 +964,32 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
$this
->
modified
=
array
();
}
else
{
$name
=
$this
->
table
->
getIdentifier
();
$this
->
id
=
$id
;
$this
->
id
[
$name
]
=
$id
;
$this
->
state
=
Doctrine_Record
::
STATE_CLEAN
;
$this
->
modified
=
array
();
}
}
/**
* return the primary key(s) this object is pointing at
* @return mixed id
* returns the primary keys of this object
*
* @return array
*/
final
public
function
getID
()
{
return
$this
->
id
;
}
/**
* returns the value of autoincremented primary key of this object (if any)
*
* @return integer
*/
final
public
function
getIncremented
()
{
$id
=
current
(
$this
->
id
);
if
(
$id
===
false
)
return
null
;
return
$id
;
}
/**
* getLast
* this method is used internally be Doctrine_Query
...
...
@@ -1134,7 +1158,7 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
$graph
=
new
Doctrine_Query
(
$table
->
getSession
());
$query
=
"FROM "
.
$table
->
getComponentName
()
.
" WHERE "
.
$table
->
getComponentName
()
.
"."
.
$table
->
getIdentifier
()
.
" IN (
$query
)"
;
$coll
=
$graph
->
query
(
$query
,
array
(
$this
->
getI
D
()));
$coll
=
$graph
->
query
(
$query
,
array
(
$this
->
getI
ncremented
()));
$this
->
references
[
$name
]
=
$coll
;
$this
->
originals
[
$name
]
=
clone
$coll
;
...
...
Doctrine/Session.php
View file @
bb1a3968
...
...
@@ -446,7 +446,7 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
$this
->
transaction_level
--
;
if
(
$this
->
transaction_level
==
0
)
{
if
(
$this
->
getAttribute
(
Doctrine
::
ATTR_LOCKMODE
)
==
Doctrine
::
LOCK_OPTIMISTIC
)
{
$this
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onPreTransactionBegin
(
$this
);
...
...
@@ -477,7 +477,7 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
}
catch
(
PDOException
$e
)
{
$this
->
rollback
();
throw
new
Doctrine_Exception
(
$e
->
getMessage
());
throw
new
Doctrine_Exception
(
$e
->
__toString
());
}
$this
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onTransactionCommit
(
$this
);
...
...
@@ -534,9 +534,9 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
}
foreach
(
$inserts
as
$k
=>
$record
)
{
$
record
->
getTable
()
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onPreSave
(
$record
);
$
table
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onPreSave
(
$record
);
// listen the onPreInsert event
$
record
->
getTable
()
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onPreInsert
(
$record
);
$
table
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onPreInsert
(
$record
);
$this
->
insert
(
$record
);
...
...
@@ -556,9 +556,9 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
$record
->
setID
(
true
);
// listen the onInsert event
$
record
->
getTable
()
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onInsert
(
$record
);
$
table
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onInsert
(
$record
);
$
record
->
getTable
()
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onSave
(
$record
);
$
table
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onSave
(
$record
);
}
}
$this
->
insert
=
array
();
...
...
@@ -610,11 +610,7 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
$record
->
getTable
()
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onUpdate
(
$record
);
$record
->
getTable
()
->
getAttribute
(
Doctrine
::
ATTR_LISTENER
)
->
onSave
(
$record
);
$ids
[]
=
$record
->
getID
();
}
if
(
isset
(
$record
))
$record
->
getTable
()
->
getCache
()
->
deleteMultiple
(
$ids
);
}
$this
->
update
=
array
();
}
...
...
@@ -629,7 +625,7 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
$record
=
false
;
$ids
=
array
();
foreach
(
$deletes
as
$k
=>
$record
)
{
$ids
[]
=
$record
->
getI
D
();
$ids
[]
=
$record
->
getI
ncremented
();
$record
->
setID
(
false
);
}
if
(
$record
instanceof
Doctrine_Record
)
{
...
...
@@ -745,7 +741,6 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
*/
private
function
update
(
Doctrine_Record
$record
)
{
$array
=
$record
->
getPrepared
();
if
(
empty
(
$array
))
return
false
;
...
...
@@ -760,8 +755,8 @@ abstract class Doctrine_Session extends Doctrine_Configurable implements Countab
case
Doctrine_Record
::
STATE_TDIRTY
:
$record
->
save
();
default
:
$array
[
$name
]
=
$value
->
getI
D
();
$record
->
set
(
$name
,
$value
->
getI
D
());
$array
[
$name
]
=
$value
->
getI
ncremented
();
$record
->
set
(
$name
,
$value
->
getI
ncremented
());
endswitch
;
}
endforeach
;
...
...
tests/QueryTestCase.php
View file @
bb1a3968
...
...
@@ -34,6 +34,46 @@ class Doctrine_QueryTestCase extends Doctrine_UnitTestCase {
$this->assertEqual($users->count(), 8);
}
*/
public
function
testMultipleFetching
()
{
$count
=
$this
->
dbh
->
count
();
$this
->
session
->
getTable
(
'User'
)
->
clear
();
$this
->
session
->
getTable
(
'Email'
)
->
clear
();
$this
->
session
->
getTable
(
'Phonenumber'
)
->
clear
();
$users
=
$this
->
query
->
from
(
"User-l.Phonenumber-i, User-l:Email-i"
)
->
execute
();
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
count
(
$users
),
8
);
$this
->
assertEqual
(
$users
[
0
]
->
Phonenumber
->
count
(),
1
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
0
]
->
Phonenumber
[
0
]
->
phonenumber
,
"123 123"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
1
]
->
Phonenumber
->
count
(),
3
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$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"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
7
]
->
Phonenumber
->
count
(),
1
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
7
]
->
Phonenumber
[
0
]
->
phonenumber
,
"111 567 333"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertTrue
(
$users
[
0
]
->
Email
instanceof
Email
);
$this
->
assertEqual
(
$users
[
0
]
->
Email
->
address
,
"zYne@example.com"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
0
]
->
email_id
,
$users
[
0
]
->
Email
->
id
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertTrue
(
$users
[
1
]
->
Email
instanceof
Email
);
$this
->
assertEqual
(
$users
[
1
]
->
Email
->
address
,
"arnold@example.com"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
1
]
->
email_id
,
$users
[
1
]
->
Email
->
id
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
}
public
function
testConditionParser
()
{
$query
=
new
Doctrine_Query
(
$this
->
session
);
...
...
@@ -698,45 +738,7 @@ class Doctrine_QueryTestCase extends Doctrine_UnitTestCase {
$this
->
assertEqual
(
$count
,
count
(
$this
->
dbh
));
}
public
function
testMultipleFetching
()
{
$count
=
$this
->
dbh
->
count
();
$this
->
session
->
getTable
(
'User'
)
->
clear
();
$this
->
session
->
getTable
(
'Email'
)
->
clear
();
$this
->
session
->
getTable
(
'Phonenumber'
)
->
clear
();
$users
=
$this
->
query
->
from
(
"User-l.Phonenumber-i, User-l:Email-i"
)
->
execute
();
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
count
(
$users
),
8
);
$this
->
assertEqual
(
$users
[
0
]
->
Phonenumber
->
count
(),
1
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
0
]
->
Phonenumber
[
0
]
->
phonenumber
,
"123 123"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
1
]
->
Phonenumber
->
count
(),
3
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$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"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
7
]
->
Phonenumber
->
count
(),
1
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
7
]
->
Phonenumber
[
0
]
->
phonenumber
,
"111 567 333"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertTrue
(
$users
[
0
]
->
Email
instanceof
Email
);
$this
->
assertEqual
(
$users
[
0
]
->
Email
->
address
,
"zYne@example.com"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
0
]
->
email_id
,
$users
[
0
]
->
Email
->
id
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertTrue
(
$users
[
1
]
->
Email
instanceof
Email
);
$this
->
assertEqual
(
$users
[
1
]
->
Email
->
address
,
"arnold@example.com"
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
$this
->
assertEqual
(
$users
[
1
]
->
email_id
,
$users
[
1
]
->
Email
->
id
);
$this
->
assertEqual
((
$count
+
1
),
$this
->
dbh
->
count
());
}
public
function
testForeignKeyRelationFetching
()
{
$count
=
$this
->
dbh
->
count
();
...
...
@@ -870,7 +872,7 @@ class Doctrine_QueryTestCase extends Doctrine_UnitTestCase {
$board
->
getTable
()
->
clear
();
$board
=
$board
->
getTable
()
->
find
(
$board
->
getID
()
);
$board
=
$board
->
getTable
()
->
find
(
$board
->
id
);
$this
->
assertEqual
(
$board
->
Threads
->
count
(),
1
);
$this
->
assertEqual
(
$board
->
name
,
"Doctrine Forum"
);
$this
->
assertEqual
(
$board
->
Category
->
name
,
"General discussion"
);
...
...
@@ -1189,5 +1191,6 @@ class Doctrine_QueryTestCase extends Doctrine_UnitTestCase {
//$this->assertTrue(isset($values['max']));
}
}
?>
tests/RecordTestCase.php
View file @
bb1a3968
...
...
@@ -7,6 +7,12 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
parent
::
prepareTables
();
}
public
function
testReferences2
()
{
$user
=
new
User
();
$user
->
Phonenumber
[
0
]
->
phonenumber
=
'123 123'
;
$this
->
assertEqual
(
$user
->
Phonenumber
[
0
]
->
entity_id
,
$user
);
}
public
function
testJoinTableSelfReferencing
()
{
$e
=
new
Entity
();
$e
->
name
=
"Entity test"
;
...
...
@@ -54,8 +60,9 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$this
->
assertEqual
(
$e
->
Entity
[
0
]
->
getState
(),
Doctrine_Record
::
STATE_CLEAN
);
$this
->
assertEqual
(
$e
->
Entity
[
1
]
->
getState
(),
Doctrine_Record
::
STATE_CLEAN
);
$e
=
$e
->
getTable
()
->
find
(
$e
->
getID
()
);
$e
=
$e
->
getTable
()
->
find
(
$e
->
id
);
$this
->
assertTrue
(
$e
->
Entity
[
0
]
instanceof
Entity
);
$this
->
assertTrue
(
$e
->
Entity
[
1
]
instanceof
Entity
);
...
...
@@ -256,7 +263,7 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$account
=
$user
->
Account
;
$this
->
assertTrue
(
$account
instanceof
Account
);
$this
->
assertEqual
(
$account
->
getState
(),
Doctrine_Record
::
STATE_CLEAN
);
$this
->
assertEqual
(
$account
->
entity_id
,
$user
->
getID
()
);
$this
->
assertEqual
(
$account
->
entity_id
,
$user
->
id
);
$this
->
assertEqual
(
$account
->
amount
,
1000
);
$this
->
assertEqual
(
$user
->
name
,
"Richard Linklater"
);
...
...
@@ -272,11 +279,11 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$this
->
assertTrue
(
$account
instanceof
Account
);
$this
->
assertEqual
(
$account
->
getTable
()
->
getColumnNames
(),
array
(
"id"
,
"entity_id"
,
"amount"
));
$this
->
assertEqual
(
$account
->
entity_id
,
$user
->
getID
()
);
$this
->
assertEqual
(
$account
->
entity_id
,
$user
->
id
);
$this
->
assertEqual
(
$account
->
amount
,
2000
);
$user
=
$user
->
getTable
()
->
find
(
$user
->
getID
()
);
$user
=
$user
->
getTable
()
->
find
(
$user
->
id
);
$this
->
assertEqual
(
$user
->
getState
(),
Doctrine_Record
::
STATE_CLEAN
);
...
...
@@ -286,7 +293,7 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$this
->
assertEqual
(
$account
->
getState
(),
Doctrine_Record
::
STATE_CLEAN
);
$this
->
assertEqual
(
$account
->
getTable
()
->
getColumnNames
(),
array
(
"id"
,
"entity_id"
,
"amount"
));
$this
->
assertEqual
(
$account
->
entity_id
,
$user
->
getID
()
);
$this
->
assertEqual
(
$account
->
entity_id
,
$user
->
id
);
$this
->
assertEqual
(
$account
->
amount
,
2000
);
$this
->
assertEqual
(
$user
->
name
,
"John Rambo"
);
...
...
@@ -512,22 +519,32 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$coll
=
new
Doctrine_Collection
(
$pf
);
$user
->
Phonenumber
=
$coll
;
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
0
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
0
);
$user
->
save
();
unset
(
$user
);
$user
->
getTable
()
->
clear
();
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assertEqual
(
$user
->
Phonenumber
->
count
(),
0
);
$this
->
assertEqual
(
get_class
(
$user
->
Phonenumber
),
"Doctrine_Collection_Immediate"
);
$user
->
Phonenumber
[
0
]
->
phonenumber
;
$this
->
assertEqual
(
$user
->
Phonenumber
->
count
(),
1
);
// ADDING REFERENCES
$user
->
Phonenumber
[
0
]
->
phonenumber
=
"123 123"
;
$this
->
assertEqual
(
$user
->
Phonenumber
->
count
(),
1
);
$user
->
Phonenumber
[
1
]
->
phonenumber
=
"123 123"
;
$this
->
assertEqual
(
$user
->
Phonenumber
->
count
(),
2
);
$user
->
save
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
2
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
2
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
...
...
@@ -536,30 +553,30 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$user
->
Phonenumber
[
3
]
->
phonenumber
=
"123 123"
;
$user
->
save
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
3
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
3
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
3
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
3
);
// DELETING REFERENCES
$user
->
Phonenumber
->
delete
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
0
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
0
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
0
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
0
);
// ADDING REFERENCES WITH STRING KEYS
$user
->
Phonenumber
[
"home"
]
->
phonenumber
=
"123 123"
;
$user
->
Phonenumber
[
"work"
]
->
phonenumber
=
"444 444"
;
$user
->
save
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
2
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
2
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
2
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
2
);
// REPLACING ONE-TO-MANY REFERENCE
unset
(
$coll
);
...
...
@@ -586,15 +603,15 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$this
->
assertTrue
(
$user
->
Email
instanceof
Email
);
$this
->
assertEqual
(
$user
->
Email
->
address
,
"drinker@drinkmore.info"
);
$this
->
assertEqual
(
$user
->
Email
->
getID
()
,
$user
->
email_id
);
$this
->
assertEqual
(
$user
->
Email
->
id
,
$user
->
email_id
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assertTrue
(
$user
->
Email
instanceof
Email
);
$this
->
assertEqual
(
$user
->
Email
->
getID
()
,
$user
->
email_id
);
$this
->
assertEqual
(
$user
->
Email
->
id
,
$user
->
email_id
);
$this
->
assertEqual
(
$user
->
Email
->
getState
(),
Doctrine_Record
::
STATE_CLEAN
);
$this
->
assertEqual
(
$user
->
Email
->
address
,
"drinker@drinkmore.info"
);
$id
=
$user
->
Email
->
getID
()
;
$id
=
$user
->
Email
->
id
;
// REPLACING ONE-TO-ONE REFERENCES
...
...
@@ -744,5 +761,6 @@ class Doctrine_RecordTestCase extends Doctrine_UnitTestCase {
$user
=
$this
->
session
->
getTable
(
"User"
)
->
find
(
4
);
$this
->
assertTrue
(
$user
->
getIterator
()
instanceof
ArrayIterator
);
}
}
?>
tests/SessionTestCase.php
View file @
bb1a3968
...
...
@@ -136,11 +136,11 @@ class Doctrine_SessionTestCase extends Doctrine_UnitTestCase {
$this
->
assertEqual
(
count
(
$user
->
Group
),
2
);
$user2
=
$user
;
$user
=
$this
->
objTable
->
find
(
$user
->
getID
()
);
$user
=
$this
->
objTable
->
find
(
$user
->
id
);
$this
->
assertEqual
(
$user
->
getID
(),
$user2
->
getID
()
);
$this
->
assertEqual
(
$user
->
id
,
$user2
->
id
);
$this
->
assertTrue
(
is_numeric
(
$user
->
getID
()
));
$this
->
assertTrue
(
is_numeric
(
$user
->
id
));
$this
->
assertTrue
(
is_numeric
(
$user
->
email_id
));
$this
->
assertTrue
(
is_numeric
(
$user
->
Phonenumber
[
0
]
->
entity_id
));
...
...
@@ -176,7 +176,7 @@ class Doctrine_SessionTestCase extends Doctrine_UnitTestCase {
$this
->
session
->
flush
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
2
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
2
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
...
...
@@ -185,19 +185,19 @@ class Doctrine_SessionTestCase extends Doctrine_UnitTestCase {
$user
->
Phonenumber
[
3
]
->
phonenumber
=
"123 123"
;
$this
->
session
->
flush
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
3
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
3
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
3
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
3
);
// DELETING REFERENCES
$user
->
Phonenumber
->
delete
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
0
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
0
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
0
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
0
);
// ADDING REFERENCES WITH STRING KEYS
...
...
@@ -207,10 +207,10 @@ class Doctrine_SessionTestCase extends Doctrine_UnitTestCase {
$this
->
assertEqual
(
$user
->
Phonenumber
->
count
(),
2
);
$this
->
session
->
flush
();
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
2
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
2
);
unset
(
$user
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assert
True
(
$user
->
Phonenumber
->
count
()
==
2
);
$this
->
assert
Equal
(
$user
->
Phonenumber
->
count
(),
2
);
// REPLACING ONE-TO-MANY REFERENCE
...
...
@@ -238,7 +238,7 @@ class Doctrine_SessionTestCase extends Doctrine_UnitTestCase {
$this
->
assertTrue
(
$user
->
Email
instanceof
Email
);
$user
=
$this
->
objTable
->
find
(
5
);
$this
->
assertEqual
(
$user
->
Email
->
address
,
"drinker@drinkmore.info"
);
$id
=
$user
->
Email
->
getID
()
;
$id
=
$user
->
Email
->
id
;
// REPLACING ONE-TO-ONE REFERENCES
...
...
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