diff --git a/tests/Relation/ParserTestCase.php b/tests/Relation/ParserTestCase.php index c40db5127..8c905329e 100644 --- a/tests/Relation/ParserTestCase.php +++ b/tests/Relation/ParserTestCase.php @@ -37,23 +37,52 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase $r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $p = array('type' => Doctrine_Relation::ONE, - 'local' => 'email_id'); + 'local' => 'email_id', + 'definer' => 'User'); $r->bind('Email', $p); $this->assertEqual($r->getPendingRelation('Email'), array('type' => Doctrine_Relation::ONE, 'local' => 'email_id', 'class' => 'Email', - 'alias' => 'Email' + 'alias' => 'Email', + 'definer' => 'User' )); } + public function testBindThrowsExceptionIfDefinerNotSet() + { + $r = new Doctrine_Relation_Parser($this->conn->getTable('User')); + + $p = array('type' => Doctrine_Relation::ONE, + 'local' => 'email_id'); + try { + $r->bind('Email', $p); + $this->fail('should throw exception'); + } catch(Doctrine_Relation_Exception $e) { + $this->pass(); + } + } + public function testBindThrowsExceptionIfTypeNotSet() + { + $r = new Doctrine_Relation_Parser($this->conn->getTable('User')); + + $p = array('local' => 'email_id', + 'definer' => 'User'); + try { + $r->bind('Email', $p); + $this->fail('should throw exception'); + } catch(Doctrine_Relation_Exception $e) { + $this->pass(); + } + } public function testRelationParserSupportsLocalColumnGuessing() { $r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $d = $r->completeDefinition(array('class' => 'Phonenumber', 'type' => Doctrine_Relation::MANY, - 'foreign' => 'user_id')); + 'foreign' => 'entity_id', + 'definer' => 'Entity')); $this->assertEqual($d['local'], 'id'); } @@ -63,7 +92,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase $d = $r->completeDefinition(array('class' => 'Email', 'type' => Doctrine_Relation::ONE, - 'foreign' => 'id')); + 'foreign' => 'id', + 'definer' => 'User')); $this->assertEqual($d['local'], 'email_id'); } @@ -73,9 +103,10 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase $d = $r->completeDefinition(array('class' => 'Phonenumber', 'type' => Doctrine_Relation::MANY, - 'local' => 'id')); + 'local' => 'id', + 'definer' => 'Entity')); - $this->assertEqual($d['foreign'], 'user_id'); + $this->assertEqual($d['foreign'], 'entity_id'); } public function testRelationParserSupportsForeignColumnGuessing2() { @@ -83,7 +114,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase $d = $r->completeDefinition(array('class' => 'Email', 'type' => Doctrine_Relation::ONE, - 'local' => 'email_id')); + 'local' => 'email_id', + 'definer' => 'User')); $this->assertEqual($d['foreign'], 'id'); } @@ -92,7 +124,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase $r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $d = $r->completeDefinition(array('class' => 'Email', - 'type' => Doctrine_Relation::MANY)); + 'type' => Doctrine_Relation::MANY, + 'definer' => 'User')); $this->assertEqual($d['foreign'], 'id'); $this->assertEqual($d['local'], 'email_id');