From 41e2eadddd3687f0d2016bfb07be9c89f52e9e40 Mon Sep 17 00:00:00 2001 From: zYne Date: Thu, 14 Jun 2007 21:48:14 +0000 Subject: [PATCH] --- tests/AuditLogTestCase.php | 8 +- tests/Collection/SnapshotTestCase.php | 6 ++ tests/IntegrityActionTestCase.php | 118 ++++++++++++++++++++++++++ tests/Query/WhereTestCase.php | 2 +- tests/run.php | 9 +- 5 files changed, 137 insertions(+), 6 deletions(-) create mode 100644 tests/IntegrityActionTestCase.php diff --git a/tests/AuditLogTestCase.php b/tests/AuditLogTestCase.php index 5c2be2591..92c43c7db 100644 --- a/tests/AuditLogTestCase.php +++ b/tests/AuditLogTestCase.php @@ -35,7 +35,11 @@ class Doctrine_AuditLog_TestCase extends Doctrine_UnitTestCase public function prepareData() { } public function prepareTables() - { } + { + $this->tables = array('Versionable'); + + parent::prepareTables(); + } public function testVersionTableSqlReturnsProperQuery() { $table = $this->conn->getTable('Versionable'); @@ -47,7 +51,7 @@ class Doctrine_AuditLog_TestCase extends Doctrine_UnitTestCase $entity = new Versionable(); $entity->name = 'zYne'; $entity->save(); - $this->assertEqual($entity->version, 1); + $this->assertEqual($entity->version, 1); $entity->name = 'zYne 2'; $entity->save(); diff --git a/tests/Collection/SnapshotTestCase.php b/tests/Collection/SnapshotTestCase.php index a689dc744..9b6b46702 100644 --- a/tests/Collection/SnapshotTestCase.php +++ b/tests/Collection/SnapshotTestCase.php @@ -38,6 +38,12 @@ */ class Doctrine_Collection_Snapshot_TestCase extends Doctrine_UnitTestCase { + public function prepareTables() + { + $this->tables[] = 'Book'; + + parent::prepareTables(); + } public function testDiffForSimpleCollection() { $coll = Doctrine_Query::create()->from('User u')->orderby('u.id')->execute(); diff --git a/tests/IntegrityActionTestCase.php b/tests/IntegrityActionTestCase.php new file mode 100644 index 000000000..2c6cdc523 --- /dev/null +++ b/tests/IntegrityActionTestCase.php @@ -0,0 +1,118 @@ +. + */ + +/** + * Doctrine_IntegrityAction_TestCase + * + * @package Doctrine + * @author Konsta Vesterinen + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + */ +class Doctrine_IntegrityAction_TestCase extends Doctrine_UnitTestCase +{ + public function prepareData() + { } + public function prepareTables() + { + $this->tables = array('CascadeDeleteTest', 'CascadeDeleteRelatedTest', 'CascadeDeleteRelatedTest2'); + + parent::prepareTables(); + } + public function testIntegrityActionsAreAddedIntoGlobalActionsArray() + { + $c = new CascadeDeleteTest; + $c2 = new CascadeDeleteRelatedTest; + + $expected = array('CascadeDeleteRelatedTest' => 'CASCADE'); + $this->assertEqual($this->manager->getDeleteActions('CascadeDeleteTest'), $expected); + + $expected = array('CascadeDeleteRelatedTest' => 'SET NULL'); + $this->assertEqual($this->manager->getUpdateActions('CascadeDeleteTest'), $expected); + } + public function testOnDeleteCascadeEmulation() + { + $c = new CascadeDeleteTest; + $c->name = 'c 1'; + $c->Related[]->name = 'r 1'; + $c->Related[]->name = 'r 2'; + $c->Related[0]->Related[]->name = 'r r 1'; + $c->Related[1]->Related[]->name = 'r r 2'; + + $c->save(); + + $this->connection->clear(); + + $c = $this->conn->queryOne('FROM CascadeDeleteTest c WHERE c.id = 1'); + + $c->delete(); + } +} +class CascadeDeleteTest extends Doctrine_Record +{ + public function setTableDefinition() + { + $this->hasColumn('name', 'string'); + } + public function setUp() + { + $this->hasMany('CascadeDeleteRelatedTest as Related', + array('local' => 'id', + 'foreign' => 'cscd_id')); + } +} +class CascadeDeleteRelatedTest extends Doctrine_Record +{ + public function setTableDefinition() + { + $this->hasColumn('name', 'string'); + $this->hasColumn('cscd_id', 'integer'); + } + public function setUp() + { + $this->hasOne('CascadeDeleteTest', array('local' => 'cscd_id', + 'foreign' => 'id', + 'onDelete' => 'CASCADE', + 'onUpdate' => 'SET NULL')); + + $this->hasMany('CascadeDeleteRelatedTest2 as Related', + array('local' => 'id', + 'foreign' => 'cscd_id')); + } +} +class CascadeDeleteRelatedTest2 extends Doctrine_Record +{ + public function setTableDefinition() + { + $this->hasColumn('name', 'string'); + $this->hasColumn('cscd_id', 'integer'); + } + public function setUp() + { + $this->hasOne('CascadeDeleteRelatedTest', array('local' => 'cscd_id', + 'foreign' => 'id', + 'onDelete' => 'SET NULL')); + } +} + diff --git a/tests/Query/WhereTestCase.php b/tests/Query/WhereTestCase.php index f861aec46..a76928e32 100644 --- a/tests/Query/WhereTestCase.php +++ b/tests/Query/WhereTestCase.php @@ -35,7 +35,7 @@ class Doctrine_Query_Where_TestCase extends Doctrine_UnitTestCase { public function prepareData() { } public function prepareTables() { - $this->tables = array('entity'); + $this->tables = array('Entity', 'EnumTest'); parent::prepareTables(); } diff --git a/tests/run.php b/tests/run.php index 4859c351b..3b7e0d760 100644 --- a/tests/run.php +++ b/tests/run.php @@ -209,8 +209,8 @@ $test->addTestCase(new Doctrine_SchemaTestCase()); $test->addTestCase(new Doctrine_Query_Condition_TestCase()); $test->addTestCase(new Doctrine_CustomPrimaryKey_TestCase()); -$test->addTestCase(new Doctrine_CustomResultSetOrder_TestCase()); +$test->addTestCase(new Doctrine_CustomResultSetOrder_TestCase()); // Query tests @@ -223,6 +223,7 @@ $test->addTestCase(new Doctrine_Query_ReferenceModel_TestCase()); $test->addTestCase(new Doctrine_Query_ComponentAlias_TestCase()); + $test->addTestCase(new Doctrine_Query_ShortAliases_TestCase()); $test->addTestCase(new Doctrine_Query_Expression_TestCase()); @@ -284,8 +285,6 @@ $test->addTestCase(new Doctrine_Query_Where_TestCase()); $test->addTestCase(new Doctrine_Query_From_TestCase()); -$test->addTestCase(new Doctrine_AuditLog_TestCase()); - $test->addTestCase(new Doctrine_Query_Select_TestCase()); $test->addTestCase(new Doctrine_Query_JoinCondition_TestCase()); @@ -293,6 +292,10 @@ $test->addTestCase(new Doctrine_Query_JoinCondition_TestCase()); $test->addTestCase(new Doctrine_Query_MultipleAggregateValue_TestCase()); $test->addTestCase(new Doctrine_IntegrityAction_TestCase()); + +//$test->addTestCase(new Doctrine_AuditLog_TestCase()); + + // Cache tests //$test->addTestCase(new Doctrine_Cache_Query_SqliteTestCase()); //$test->addTestCase(new Doctrine_Cache_FileTestCase());