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
daaab94c
Commit
daaab94c
authored
Oct 23, 2006
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Developed Doctrine_Import, changed Doctrine_Schema objects to have unified constructor
parent
0c0e6fd6
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
315 additions
and
349 deletions
+315
-349
Import.php
lib/Doctrine/Import.php
+15
-32
Builder.php
lib/Doctrine/Import/Builder.php
+79
-11
BaseClass.php
lib/Doctrine/Import/Builder/BaseClass.php
+2
-48
Exception.php
lib/Doctrine/Import/Builder/Exception.php
+2
-19
Record.tpl
lib/Doctrine/Import/Builder/Record.tpl
+13
-0
Exception.php
lib/Doctrine/Import/Exception.php
+32
-0
Schema.php
lib/Doctrine/Schema.php
+5
-21
Column.php
lib/Doctrine/Schema/Column.php
+4
-7
Database.php
lib/Doctrine/Schema/Database.php
+14
-67
Exception.php
lib/Doctrine/Schema/Exception.php
+2
-17
Object.php
lib/Doctrine/Schema/Object.php
+29
-11
Relation.php
lib/Doctrine/Schema/Relation.php
+8
-21
Table.php
lib/Doctrine/Schema/Table.php
+7
-44
ImportTestCase.php
tests/ImportTestCase.php
+57
-28
RelationTestCase.php
tests/RelationTestCase.php
+26
-4
SchemaTestCase.php
tests/SchemaTestCase.php
+13
-13
run.php
tests/run.php
+7
-6
No files found.
lib/Doctrine/Import.php
View file @
daaab94c
...
...
@@ -35,22 +35,13 @@
* reading to a reader object and passes the result to a builder object which
* builds a Doctrine data model.
*/
class
Doctrine_Import
{
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
class
Doctrine_Import
{
/**
* @
access private
* @
var Doctrine_Import_Reader $reader
*/
private
$reader
;
/**
* @
access private
* @
var Doctrine_Import_Builder $builder
*/
private
$builder
;
...
...
@@ -62,29 +53,21 @@ class Doctrine_Import
*/
public
function
import
(
)
{
}
// end of member function import
}
/**
*
* @param Doctrine_Import_Reader reader
* @return
* @
access public
* @param Doctrine_Import_Reader reader
* @
return void
*/
public
function
setReader
(
$reader
)
{
}
// end of member function setReader
public
function
setReader
(
Doctrine_Import_Reader
$reader
)
{
$this
->
reader
=
$reader
;
}
/**
*
* @param Doctrine_Import_Builder builder
* @return
* @
access public
* @param Doctrine_Import_Builder builder
* @
return void
*/
public
function
setBuilder
(
$builder
)
{
}
// end of member function setBuilder
}
// end of Doctrine_Import
public
function
setBuilder
(
Doctrine_Import_Builder
$builder
)
{
$this
->
builder
=
$builder
;
}
}
lib/Doctrine/Import/Builder.php
View file @
daaab94c
...
...
@@ -33,28 +33,96 @@
* class Doctrine_Import_Builder
* Is responsible of building Doctrine structure based on a database schema.
*/
abstract
class
Doctrine_Import_Builder
{
class
Doctrine_Import_Builder
{
private
$path
=
''
;
private
$suffix
=
'.php'
;
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
private
static
$tpl
;
public
function
__construct
()
{
if
(
!
isset
(
self
::
$tpl
))
self
::
$tpl
=
file_get_contents
(
Doctrine
::
getPath
()
.
DIRECTORY_SEPARATOR
.
'Doctrine'
.
DIRECTORY_SEPARATOR
.
'Import'
.
DIRECTORY_SEPARATOR
.
'Builder'
.
DIRECTORY_SEPARATOR
.
'Record.tpl'
);
}
/**
*
* @param
Doctrine_Schema schema
* @param
string path
* @return
* @abstract
* @access public
*/
abstract
public
function
build
(
Doctrine_Schema
$schema
);
public
function
setTargetPath
(
$path
)
{
if
(
!
file_exists
(
$path
))
{
mkdir
(
$path
,
0777
);
}
$this
->
path
=
$path
;
}
public
function
getTargetPath
()
{
return
$this
->
path
;
}
/**
*
* @param string path
* @return
* @access public
*/
public
function
setFileSuffix
(
$suffix
)
{
$this
->
suffix
=
$suffix
;
}
public
function
getFileSuffix
()
{
return
$this
->
suffix
;
}
public
function
buildRecord
(
Doctrine_Schema_Table
$table
)
{
if
(
empty
(
$this
->
path
))
throw
new
Doctrine_Import_Builder_Exception
(
'No build target directory set.'
);
if
(
is_writable
(
$this
->
path
)
===
false
)
throw
new
Doctrine_Import_Builder_Exception
(
'Build target directory '
.
$this
->
path
.
' is not writable.'
);
$created
=
date
(
'l dS \of F Y h:i:s A'
);
$className
=
Doctrine
::
classify
(
$table
->
get
(
'name'
));
$fileName
=
$this
->
path
.
DIRECTORY_SEPARATOR
.
$className
.
$this
->
suffix
;
$columns
=
array
();
$i
=
0
;
foreach
(
$table
as
$name
=>
$column
)
{
$columns
[
$i
]
=
' $this->hasColumn(\''
.
$column
[
'name'
]
.
'\', \''
.
$column
[
'type'
]
.
'\''
;
if
(
$column
[
'length'
])
$columns
[
$i
]
.=
', '
.
$column
[
'length'
];
$columns
[
$i
]
.=
');'
;
if
(
$i
<
(
count
(
$table
)
-
1
))
$columns
[
$i
]
.=
'
'
;
$i
++
;
}
$content
=
sprintf
(
self
::
$tpl
,
$created
,
$className
,
implode
(
''
,
$columns
));
$bytes
=
file_put_contents
(
$fileName
,
$content
);
if
(
$bytes
===
false
)
throw
new
Doctrine_Import_Builder_Exception
(
"Couldn't write file "
.
$fileName
);
}
/**
*
* @param Doctrine_Schema_Object $schema
* @return
* @access public
* @throws Doctrine_Import_Exception
*/
public
function
build
(
Doctrine_Schema_Object
$schema
)
{
}
// end of Doctrine_Import_Builder
}
}
lib/Doctrine/Import/Builder/BaseClass.php
View file @
daaab94c
...
...
@@ -33,51 +33,5 @@
* class Doctrine_Import_Builder_BaseClass
* Builds a Doctrine_Record base class definition based on a schema.
*/
class
Doctrine_Import_Builder_BaseClass
extends
Doctrine_Import_Builder
{
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
private
$path
=
''
;
private
$suffix
=
'.php'
;
/**
*
* @param string path
* @return
* @access public
*/
public
function
setOutputPath
(
$path
)
{
$this
->
path
=
$path
;
}
// end of member function setOuputPath
/**
*
* @param string path
* @return
* @access public
*/
public
function
setFileSuffix
(
$suffix
)
{
$this
->
suffix
=
$suffix
;
}
// end of member function setOuputPath
/**
*
* @param Doctrine_Schema schema
* @return
* @access public
* @throws Doctrine_Import_Exception
*/
public
function
build
(
Doctrine_Schema
$schema
)
{
/* @todo FIXME i am incomplete*/
}
}
// end of Doctrine_Import_Builder_BaseClass
class
Doctrine_Import_Builder_BaseClass
extends
Doctrine_Import_Builder
{
}
lib/Doctrine/Import/Builder/Exception.php
View file @
daaab94c
...
...
@@ -18,7 +18,7 @@
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Import_Exception'
);
/**
* @package Doctrine
* @url http://www.phpdoctrine.com
...
...
@@ -27,24 +27,7 @@
* @version $Id$
*/
/**
* class Doctrine_Import_Builder_Exception
*/
class
Doctrine_Import_Builder_Exception
{
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
}
// end of Doctrine_Import_Builder_Exception
class
Doctrine_Import_Builder_Exception
extends
Doctrine_Import_Exception
{
}
lib/Doctrine/Import/Builder/Record.tpl
0 → 100644
View file @
daaab94c
<
?
php
/**
*
This
class
has
been
auto-generated
by
the
Doctrine
ORM
Framework
*
Created:
%
s
*/
class
%
s
extends
Doctrine_Record
{
public
function
setTableDefinition
()
{
%
s
}
public
function
setUp
()
{
}
}
lib/Doctrine/Import/Exception.php
0 → 100644
View file @
daaab94c
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Exception'
);
/**
* @package Doctrine
* @url http://www.phpdoctrine.com
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @version $Id$
*/
/**
* class Doctrine_Import_Exception
*/
class
Doctrine_Import_Exception
extends
Doctrine_Exception
{
}
lib/Doctrine/Schema.php
View file @
daaab94c
...
...
@@ -33,16 +33,7 @@
* class Doctrine_Schema
* Holds information on one to many databases
*/
class
Doctrine_Schema
extends
Doctrine_Schema_Object
implements
Countable
,
IteratorAggregate
{
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
class
Doctrine_Schema
extends
Doctrine_Schema_Object
implements
Countable
,
IteratorAggregate
{
/**
* Holds any number of databases contained in the schema
* @access private
...
...
@@ -57,7 +48,7 @@ class Doctrine_Schema extends Doctrine_Schema_Object
*/
public
function
addDatabase
(
$database
)
{
}
// end of member function addDatabase
}
/**
*
...
...
@@ -66,8 +57,7 @@ class Doctrine_Schema extends Doctrine_Schema_Object
*/
public
function
__toString
(
)
{
}
// end of member function __toString
}
/**
*
* @return bool
...
...
@@ -75,11 +65,5 @@ class Doctrine_Schema extends Doctrine_Schema_Object
*/
public
function
isValid
(
)
{
}
// end of member function isValid
}
// end of Doctrine_Schema
}
}
lib/Doctrine/Schema/Column.php
View file @
daaab94c
...
...
@@ -40,18 +40,15 @@ class Doctrine_Schema_Column extends Doctrine_Schema_Object implements IteratorA
*/
protected
$definition
=
array
(
'name'
=>
''
,
'type'
=>
''
,
'length'
=>
0
,
'unique'
=>
false
,
'primary'
=>
false
,
'notnull'
=>
false
,
'default'
=>
null
,
'default'
=>
false
,
'autoinc'
=>
false
);
public
function
__construct
(
array
$definition
)
{
foreach
(
$this
->
definition
as
$key
=>
$val
)
{
if
(
isset
(
$definition
[
$key
]))
$this
->
definition
[
$key
]
=
$definition
[
$key
];
}
}
public
function
getName
()
{
return
$this
->
definition
[
'name'
];
}
...
...
lib/Doctrine/Schema/Database.php
View file @
daaab94c
...
...
@@ -26,65 +26,21 @@
* @author Jukka Hassinen <Jukka.Hassinen@BrainAlliance.com>
* @version $Id$
*/
/**
* class Doctrine_Schema_Database
* Holds information on a database
*/
class
Doctrine_Schema_Database
extends
Doctrine_Schema_Object
implements
Countable
,
IteratorAggregate
{
/** Aggregations: */
/** Compositions: */
var
$m_
;
/*** Attributes: ***/
/**
* Database name
* @access public
*/
public
$name
;
/**
* Database driver type
* @access public
*/
public
$type
;
/**
* Database server version
* @access public
*/
public
$version
;
/**
* The underlaying engine in the database e.g. InnoDB or MyISAM in MySQL.
* @access public
*/
public
$engine
;
/**
* Character encoding e.g. ISO-8859-1 or UTF-8 etc.
* @access public
*/
public
$charset
;
class
Doctrine_Schema_Database
extends
Doctrine_Schema_Object
{
protected
$definition
=
array
(
'name'
=>
null
,
'type'
=>
null
,
'charset'
=>
null
,
'description'
=>
null
,
'version'
=>
null
,
'engine'
=>
null
);
/**
* Foreign key constraints in the database
* @access public
*/
public
$foreignKeyRelations
;
/**
* Tables in the database
* @access private
*/
private
$childs
;
/**
...
...
@@ -94,8 +50,7 @@ class Doctrine_Schema_Database extends Doctrine_Schema_Object
*/
public
function
__clone
(
)
{
}
// end of member function __clone
}
/**
*
* @return
...
...
@@ -103,8 +58,7 @@ class Doctrine_Schema_Database extends Doctrine_Schema_Object
*/
public
function
__toString
(
)
{
}
// end of member function __toString
}
/**
*
* @return bool
...
...
@@ -112,8 +66,7 @@ class Doctrine_Schema_Database extends Doctrine_Schema_Object
*/
public
function
isValid
(
)
{
}
// end of member function isValid
}
/**
*
* @param Doctrine_Schema_Table table * @return Doctrine_Schema_Table
...
...
@@ -121,11 +74,5 @@ class Doctrine_Schema_Database extends Doctrine_Schema_Object
*/
public
function
addTable
(
$table
=
null
)
{
}
// end of member function addTable
}
// end of Doctrine_Schema_Database
}
}
lib/Doctrine/Schema/Exception.php
View file @
daaab94c
...
...
@@ -18,7 +18,7 @@
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Exception'
);
/**
* @package Doctrine
* @url http://www.phpdoctrine.com
...
...
@@ -32,19 +32,4 @@
/**
* class Doctrine_Schema_Exception
*/
class
Doctrine_Schema_Exception
extends
Exception
{
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
}
// end of Doctrine_Schema_Exception
class
Doctrine_Schema_Exception
extends
Exception
{
}
lib/Doctrine/Schema/Object.php
View file @
daaab94c
...
...
@@ -18,36 +18,54 @@
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Access'
);
/**
* @package Doctrine
* @url http://www.phpdoctrine.com
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @author Jukka Hassinen <Jukka.Hassinen@BrainAlliance.com>
* @author Konsta Vesterinen
* @version $Id$
*/
/**
* class Doctrine_Schema_Object
* Catches any non-property call from child classes and throws an exception.
*/
abstract
class
Doctrine_Schema_Object
implements
IteratorAggregate
,
Countable
{
abstract
class
Doctrine_Schema_Object
extends
Doctrine_Access
implements
IteratorAggregate
,
Countable
{
protected
$children
=
array
();
protected
$definition
=
array
(
'name'
=>
''
);
public
function
__construct
(
array
$definition
)
{
public
function
__construct
(
array
$definition
=
array
()
)
{
foreach
(
$this
->
definition
as
$key
=>
$val
)
{
if
(
isset
(
$definition
[
$key
]))
$this
->
definition
[
$key
]
=
$definition
[
$key
];
}
}
public
function
get
(
$name
)
{
if
(
!
array_key_exists
(
$name
,
$this
->
definition
))
throw
new
Doctrine_Schema_Exception
(
'Unknown definition '
.
$name
);
return
$this
->
definition
[
$name
];
}
public
function
set
(
$name
,
$value
)
{
if
(
!
array_key_exists
(
$name
,
$this
->
definition
))
throw
new
Doctrine_Schema_Exception
(
'Unknown definition '
.
$name
);
$this
->
definition
[
$name
]
=
$value
;
}
public
function
contains
(
$name
)
{
return
array_key_exists
(
$name
,
$this
->
definition
);
}
public
function
getName
()
{
return
$this
->
definition
[
'name'
];
public
function
toArray
()
{
return
$this
->
definition
;
}
/**
*
...
...
@@ -55,8 +73,8 @@ abstract class Doctrine_Schema_Object implements IteratorAggregate, Countable {
* @access public
*/
public
function
count
()
{
if
(
!
empty
(
$this
->
child
s
))
return
count
(
$this
->
child
s
);
if
(
!
empty
(
$this
->
child
ren
))
return
count
(
$this
->
child
ren
);
return
count
(
$this
->
definition
);
}
...
...
@@ -68,8 +86,8 @@ abstract class Doctrine_Schema_Object implements IteratorAggregate, Countable {
* @access public
*/
public
function
getIterator
()
{
if
(
!
empty
(
$this
->
child
s
))
return
new
ArrayIterator
(
$this
->
child
s
);
if
(
!
empty
(
$this
->
child
ren
))
return
new
ArrayIterator
(
$this
->
child
ren
);
return
new
ArrayIterator
(
$this
->
definition
);
}
...
...
lib/Doctrine/Schema/Relation.php
View file @
daaab94c
...
...
@@ -33,14 +33,7 @@
* class Doctrine_Schema_Relation
* Holds information on a foreign key relation.
*/
class
Doctrine_Schema_Relation
extends
Doctrine_Schema_Object
{
/** Aggregations: */
/** Compositions: */
/*** Attributes: ***/
class
Doctrine_Schema_Relation
extends
Doctrine_Schema_Object
{
/**
* Columns that refer to another table
...
...
@@ -92,13 +85,14 @@ class Doctrine_Schema_Relation extends Doctrine_Schema_Object
/**
*
* @param Doctrine_Schema_Column referringColumns * @param Doctrine_Schema_Column referencedColumns * @return
* @param Doctrine_Schema_Column referringColumns
* @param Doctrine_Schema_Column referencedColumns
* @return
* @access public
*/
public
function
setRelationBetween
(
$referringColumns
,
$referencedColumns
)
{
}
// end of member function setRelationBetween
}
/**
*
* @return
...
...
@@ -106,8 +100,7 @@ class Doctrine_Schema_Relation extends Doctrine_Schema_Object
*/
public
function
__toString
(
)
{
}
// end of member function __toString
}
/**
*
* @return bool
...
...
@@ -115,11 +108,5 @@ class Doctrine_Schema_Relation extends Doctrine_Schema_Object
*/
public
function
isValid
(
)
{
}
// end of member function isValid
}
// end of Doctrine_Schema_Relation
}
}
lib/Doctrine/Schema/Table.php
View file @
daaab94c
...
...
@@ -33,50 +33,13 @@
* class Doctrine_Schema_Table
* Holds information on a database table
*/
class
Doctrine_Schema_Table
extends
Doctrine_Schema_Object
implements
Countable
,
Countable
,
IteratorAggregate
{
class
Doctrine_Schema_Table
extends
Doctrine_Schema_Object
implements
Countable
,
IteratorAggregate
{
protected
$definition
=
array
(
'name'
=>
''
,
'check'
=>
''
,
'charset'
=>
''
,
'description'
=>
''
);
/**
* Unique key fields
* @access public
*/
public
$uniqueKeys
;
/**
* Indexed columns
* @access public
*/
public
$indexes
;
/**
* Table name
* @access public
*/
public
$name
;
/**
* @access public
*/
public
$primaryKeys
;
/**
* Check constraint definition
* @access public
*/
public
$check
;
/**
* Character encoding e.g. ISO-8859-1 or UTF-8 etc.
* @access public
*/
public
$charset
;
/**
* Description or comment given in the schema
* @access public
*/
public
$description
;
/**
*
* @return bool
...
...
@@ -109,7 +72,7 @@ class Doctrine_Schema_Table extends Doctrine_Schema_Object
* @access public
*/
public
function
addColumn
(
Doctrine_Schema_Column
$column
)
{
$name
=
$column
->
get
Name
(
);
$name
=
$column
->
get
(
'name'
);
$this
->
children
[
$name
]
=
$column
;
return
$this
;
...
...
tests/ImportTestCase.php
View file @
daaab94c
...
...
@@ -3,13 +3,13 @@
* ImportTestCase.php - 24.8.2006 2.37.14
*
* Note that some shortcuts maybe used here
* i.e. these tests depends that exporting is working
* i.e. these tests depends that exporting is working
*
* @author Jukka Hassinen <Jukka.Hassinen@BrainAlliance.com>
* @version $Id$
* @package Doctrine
*/
class
Doctrine_Import
TestCase
extends
Doctrine_UnitTestCase
class
Doctrine_Import
_TestCase
extends
Doctrine_UnitTestCase
{
private
$tmpdir
;
...
...
@@ -25,17 +25,50 @@ class Doctrine_ImportTestCase extends Doctrine_UnitTestCase
$reader
=
new
Doctrine_Import_Reader_Db
();
$reader
->
setPdo
(
$this
->
dbh
);
$this
->
schema
=
$reader
->
read
();
}
public
function
testBadImport
()
{
$builder
=
new
Doctrine_Import_Builder
();
try
{
$builder
->
buildRecord
(
new
Doctrine_Schema_Table
());
//and building
$this
->
tmpdir
=
$this
->
getTempDir
();
$this
->
suffix
=
'__Base'
;
$this
->
fail
();
}
catch
(
Doctrine_Import_Builder_Exception
$e
)
{
$this
->
pass
();
}
$builder
=
new
Doctrine_Import_Builder_BaseClass
();
$builder
->
setOutputPath
(
$this
->
tmpdir
);
$builder
->
setFileSuffix
(
$this
->
suffix
.
'.php'
);
$builder
->
build
(
$this
->
schema
);
}
public
function
testImportTable
()
{
$definition
=
array
(
'name'
=>
'user'
);
$table
=
new
Doctrine_Schema_Table
(
$definition
);
$def
=
array
(
'name'
=>
'name'
,
'type'
=>
'string'
,
'length'
=>
20
);
$table
->
addColumn
(
new
Doctrine_Schema_Column
(
$def
));
$def
=
array
(
'name'
=>
'created'
,
'type'
=>
'integer'
);
$table
->
addColumn
(
new
Doctrine_Schema_Column
(
$def
));
$builder
=
new
Doctrine_Import_Builder
();
$builder
->
setTargetPath
(
'tmp'
);
try
{
$builder
->
buildRecord
(
$table
);
$this
->
pass
();
}
catch
(
Doctrine_Import_Builder_Exception
$e
)
{
$this
->
fail
();
}
unlink
(
'tmp'
.
DIRECTORY_SEPARATOR
.
'User.php'
);
}
/**
public function testDatabaseConnectionIsReverseEngineeredToSchema()
{
...
...
@@ -62,9 +95,9 @@ class Doctrine_ImportTestCase extends Doctrine_UnitTestCase
{
$transArr = array();
/* From SQLite column types */
$transArr['sqlite'] = array(
/
* array(native type, native length, doctrine type, doctrine length), */
/
/ array(native type, native length, doctrine type, doctrine length),
array('int', 11, 'int', 11),
//array('varchar', 255, 'string', 255),
);
...
...
@@ -103,21 +136,16 @@ class Doctrine_ImportTestCase extends Doctrine_UnitTestCase
}
}
public
function
tearDown
()
{
@
unlink
(
$this
->
tmpdir
);
@
rmdir
(
$this
->
tmpdir
);
}
*/
// Gets the system temporary directory name
// @return null on failure to resolve the system temp dir
/**
* Gets the system temporary directory name
* @return null on failure to resolve the system temp dir
*/
private
function
getTempDir
()
{
/**
if(function_exists('sys_get_temp_dir')) {
$tempdir
=
sys_get_temp_dir
();
$tempdir = sys_get_temp_dir();
} elseif (!empty($_ENV['TMP'])) {
$tempdir = $_ENV['TMP'];
} elseif (!empty($_ENV['TMPDIR'])) {
...
...
@@ -130,21 +158,22 @@ class Doctrine_ImportTestCase extends Doctrine_UnitTestCase
}
if (empty($tempdir)) { return null; }
$tempdir = rtrim($tempdir, '/');
$tempdir .= DIRECTORY_SEPARATOR;
if (is_writable($tempdir) == false) {
return null;
}
$dir = tempnam($tempdir, 'doctrine_tests');
@unlink($dir);
@rmdir($dir);
mkdir($dir);
$dir .= DIRECTORY_SEPARATOR;
return
$dir
;
return $dir;
*/
}
}
\ No newline at end of file
}
tests/RelationTestCase.php
View file @
daaab94c
<?php
class
RelationTest
extends
Doctrine_Record
{
public
function
setTableDefinition
()
{
$this
->
hasColumn
(
'name'
,
'string'
,
200
);
$this
->
hasColumn
(
"child_id"
,
"integer"
);
}
public
function
setUp
()
{
...
...
@@ -10,7 +12,7 @@ class RelationTest extends Doctrine_Record {
}
class
RelationTestChild
extends
RelationTest
{
public
function
setUp
()
{
$this
->
hasOne
(
'RelationTest as Parent'
,
'RelationTestChild.child_id'
);
$this
->
hasOne
(
'RelationTest as Parent'
,
'RelationTestChild.child_id'
);
$this
->
ownsMany
(
'RelationTestChild as Children'
,
'RelationTestChild.child_id'
);
}
...
...
@@ -40,7 +42,9 @@ class OwnsOneToManyWithAlias extends Doctrine_Record {
}
}
class
HasManyToManyWithAlias
extends
Doctrine_Record
{
public
function
setTableDefinition
()
{
}
public
function
setTableDefinition
()
{
$this
->
hasColumn
(
'name'
,
'string'
,
200
);
}
public
function
setUp
()
{
$this
->
hasMany
(
'RelationTest as AliasM2M'
,
'JoinTable.c2_id'
);
}
...
...
@@ -48,7 +52,9 @@ class HasManyToManyWithAlias extends Doctrine_Record {
class
Doctrine_Relation_TestCase
extends
Doctrine_UnitTestCase
{
public
function
prepareData
()
{
}
public
function
prepareTables
()
{
$this
->
tables
=
array
();
$this
->
tables
=
array
(
'HasManyToManyWithAlias'
,
'RelationTest'
,
'JoinTable'
);
parent
::
prepareTables
();
}
public
function
testOneToManyTreeRelationWithConcreteInheritance
()
{
$component
=
new
RelationTestChild
();
...
...
@@ -78,7 +84,7 @@ class Doctrine_Relation_TestCase extends Doctrine_UnitTestCase {
$this
->
assertTrue
(
$rel
instanceof
Doctrine_Relation_LocalKey
);
}
public
function
testOneToManyOwnsRelationWithAliases
()
{
$this
->
manager
->
setAttribute
(
Doctrine
::
ATTR_CREATE_TABLES
,
false
);
$component
=
new
RelationTest
();
...
...
@@ -104,10 +110,26 @@ class Doctrine_Relation_TestCase extends Doctrine_UnitTestCase {
$this
->
assertTrue
(
$component
->
AliasM2M
instanceof
Doctrine_Collection
);
$component
->
AliasM2M
[
0
]
->
name
=
'1'
;
$component
->
AliasM2M
[
1
]
->
name
=
'2'
;
$component
->
name
=
'2'
;
$count
=
$this
->
dbh
->
count
();
$component
->
save
();
$this
->
assertEqual
(
$this
->
dbh
->
count
(),
(
$count
+
5
));
$this
->
assertEqual
(
$component
->
AliasM2M
->
count
(),
2
);
$component
=
$component
->
getTable
()
->
find
(
$component
->
id
);
$this
->
assertEqual
(
$component
->
AliasM2M
->
count
(),
2
);
}
public
function
testManyToManyRelation
()
{
$this
->
manager
->
setAttribute
(
Doctrine
::
ATTR_CREATE_TABLES
,
false
);
$user
=
new
User
();
// test that join table relations can be initialized even before the association have been initialized
...
...
tests/SchemaTestCase.php
View file @
daaab94c
...
...
@@ -9,7 +9,7 @@
class
Doctrine_SchemaTestCase
extends
Doctrine_UnitTestCase
{
function
testEverySchemaObjectIsThrowingExceptionOnNonPropertyAssignment
()
public
function
testEverySchemaObjectIsThrowingExceptionOnNonPropertyAssignment
()
{
$isException
=
false
;
$obj
=
new
Doctrine_Schema
();
...
...
@@ -62,7 +62,7 @@ class Doctrine_SchemaTestCase extends Doctrine_UnitTestCase
$this
->
assertTrue
(
$isException
);
}
function
testEverySchemaObjectIsThrowingExceptionOnNonPropertyAccess
()
public
function
testEverySchemaObjectIsThrowingExceptionOnNonPropertyAccess
()
{
$isException
=
false
;
$obj
=
new
Doctrine_Schema
();
...
...
@@ -115,7 +115,7 @@ class Doctrine_SchemaTestCase extends Doctrine_UnitTestCase
$this
->
assertTrue
(
$isException
);
}
function
testSchemaDatabasePropertiesAreAssignableAndAccessible
()
public
function
testSchemaDatabasePropertiesAreAssignableAndAccessible
()
{
$obj
=
new
Doctrine_Schema_Database
();
$vars
=
array
(
...
...
@@ -135,7 +135,7 @@ class Doctrine_SchemaTestCase extends Doctrine_UnitTestCase
}
function
testSchemaTablePropertiesAreAssignableAndAccessible
()
public
function
testSchemaTablePropertiesAreAssignableAndAccessible
()
{
$obj
=
new
Doctrine_Schema_Table
();
$vars
=
array
(
...
...
@@ -152,19 +152,19 @@ class Doctrine_SchemaTestCase extends Doctrine_UnitTestCase
}
}
function
testSchemaColumnPropertiesAreAssignableAndAccessible
()
public
function
testSchemaColumnPropertiesAreAssignableAndAccessible
()
{
$obj
=
new
Doctrine_Schema_Column
();
$vars
=
array
(
'name'
=>
'id'
,
'type'
=>
'int'
,
'length'
=>
10
,
'autoinc
rement'
=>
true
,
'autoinc
'
=>
true
,
'default'
=>
null
,
'not
Null'
=>
true
,
'description'
=>
'user id'
,
'check'
=>
'id > 0'
,
'charset'
=>
'UTF-8'
'not
null'
=>
true
,
//
'description' => 'user id',
//
'check' => 'id > 0',
// 'charset' => 'UTF-8'
);
foreach
(
$vars
as
$key
=>
$val
)
...
...
@@ -174,12 +174,12 @@ class Doctrine_SchemaTestCase extends Doctrine_UnitTestCase
}
}
function
testSchemaDatabaseIsCloneable
()
public
function
testSchemaDatabaseIsCloneable
()
{
}
function
testSchemaIsTraversable
()
public
function
testSchemaIsTraversable
()
{
/* @todo complete */
...
...
@@ -198,4 +198,4 @@ class Doctrine_SchemaTestCase extends Doctrine_UnitTestCase
}
}
}
}
\ No newline at end of file
}
tests/run.php
View file @
daaab94c
...
...
@@ -56,6 +56,11 @@ print "<pre>";
$test
=
new
GroupTest
(
"Doctrine Framework Unit Tests"
);
$test
->
addTestCase
(
new
Doctrine_Import_TestCase
());
$test
->
addTestCase
(
new
Doctrine_SchemaTestCase
());
$test
->
addTestCase
(
new
Doctrine_Relation_TestCase
());
$test
->
addTestCase
(
new
Doctrine_RecordTestCase
());
...
...
@@ -96,12 +101,6 @@ $test->addTestCase(new Doctrine_Filter_TestCase());
$test
->
addTestCase
(
new
Doctrine_RawSql_TestCase
());
$test
->
addTestCase
(
new
Doctrine_Query_Limit_TestCase
());
//$test->addTestCase(new Doctrine_SchemaTestCase());
//$test->addTestCase(new Doctrine_ImportTestCase());
$test
->
addTestCase
(
new
Doctrine_CollectionTestCase
());
$test
->
addTestCase
(
new
Doctrine_Query_ReferenceModel_TestCase
());
...
...
@@ -119,6 +118,8 @@ $test->addTestCase(new Doctrine_BooleanTestCase());
$test
->
addTestCase
(
new
Doctrine_EnumTestCase
());
$test
->
addTestCase
(
new
Doctrine_Record_Filter_TestCase
());
$test
->
addTestCase
(
new
Doctrine_Query_Limit_TestCase
());
$test
->
addTestCase
(
new
Doctrine_Query_Condition_TestCase
());
...
...
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