From 0cb2992a8d90f4b9e3b29db5fe88215ed994799a Mon Sep 17 00:00:00 2001 From: zYne Date: Fri, 21 Sep 2007 13:49:12 +0000 Subject: [PATCH] tests for the compound filter --- tests/Record/FilterTestCase.php | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/Record/FilterTestCase.php b/tests/Record/FilterTestCase.php index 60928b05e..9c1eda2c9 100644 --- a/tests/Record/FilterTestCase.php +++ b/tests/Record/FilterTestCase.php @@ -32,6 +32,14 @@ */ class Doctrine_Record_Filter_TestCase extends Doctrine_UnitTestCase { + public function prepareData() + { } + public function prepareTables() + { + $this->tables = array('CompositeRecord', 'RelatedCompositeRecord'); + + parent::prepareTables(); + } public function testStandardFiltersThrowsExceptionWhenGettingUnknownProperties() { $u = new User(); @@ -44,6 +52,7 @@ class Doctrine_Record_Filter_TestCase extends Doctrine_UnitTestCase $this->pass(); } } + public function testStandardFiltersThrowsExceptionWhenSettingUnknownProperties() { $u = new User(); @@ -56,4 +65,43 @@ class Doctrine_Record_Filter_TestCase extends Doctrine_UnitTestCase $this->pass(); } } + + public function testCompoundFilterSupportsAccessingRelatedComponentProperties() + { + $u = new CompositeRecord(); + + try { + $u->name = 'someone'; + $u->address = 'something'; + + $u->save(); + + $this->assertEqual($u->name, 'someone'); + $this->assertEqual($u->address, 'something'); + $this->assertEqual($u->Related->address, 'something'); + } catch (Doctrine_Record_Exception $e) { + $this->fail(); + } + } +} +class CompositeRecord extends Doctrine_Record +{ + public function setTableDefinition() + { + $this->hasColumn('name', 'string'); + } + public function setUp() + { + $this->hasOne('RelatedCompositeRecord as Related', array('foreign' => 'foreign_id')); + + $this->unshiftFilter(new Doctrine_Record_Filter_Compound(array('Related'))); + } +} +class RelatedCompositeRecord extends Doctrine_Record +{ + public function setTableDefinition() + { + $this->hasColumn('address', 'string'); + $this->hasColumn('foreign_id', 'integer'); + } }