Commit d79e4d0b authored by zYne's avatar zYne

new tests for relation parser

parent 919da9e6
...@@ -37,23 +37,52 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase ...@@ -37,23 +37,52 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$p = array('type' => Doctrine_Relation::ONE, $p = array('type' => Doctrine_Relation::ONE,
'local' => 'email_id'); 'local' => 'email_id',
'definer' => 'User');
$r->bind('Email', $p); $r->bind('Email', $p);
$this->assertEqual($r->getPendingRelation('Email'), array('type' => Doctrine_Relation::ONE, $this->assertEqual($r->getPendingRelation('Email'), array('type' => Doctrine_Relation::ONE,
'local' => 'email_id', 'local' => 'email_id',
'class' => 'Email', '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() public function testRelationParserSupportsLocalColumnGuessing()
{ {
$r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$d = $r->completeDefinition(array('class' => 'Phonenumber', $d = $r->completeDefinition(array('class' => 'Phonenumber',
'type' => Doctrine_Relation::MANY, 'type' => Doctrine_Relation::MANY,
'foreign' => 'user_id')); 'foreign' => 'entity_id',
'definer' => 'Entity'));
$this->assertEqual($d['local'], 'id'); $this->assertEqual($d['local'], 'id');
} }
...@@ -63,7 +92,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase ...@@ -63,7 +92,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$d = $r->completeDefinition(array('class' => 'Email', $d = $r->completeDefinition(array('class' => 'Email',
'type' => Doctrine_Relation::ONE, 'type' => Doctrine_Relation::ONE,
'foreign' => 'id')); 'foreign' => 'id',
'definer' => 'User'));
$this->assertEqual($d['local'], 'email_id'); $this->assertEqual($d['local'], 'email_id');
} }
...@@ -73,9 +103,10 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase ...@@ -73,9 +103,10 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$d = $r->completeDefinition(array('class' => 'Phonenumber', $d = $r->completeDefinition(array('class' => 'Phonenumber',
'type' => Doctrine_Relation::MANY, '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() public function testRelationParserSupportsForeignColumnGuessing2()
{ {
...@@ -83,7 +114,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase ...@@ -83,7 +114,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$d = $r->completeDefinition(array('class' => 'Email', $d = $r->completeDefinition(array('class' => 'Email',
'type' => Doctrine_Relation::ONE, 'type' => Doctrine_Relation::ONE,
'local' => 'email_id')); 'local' => 'email_id',
'definer' => 'User'));
$this->assertEqual($d['foreign'], 'id'); $this->assertEqual($d['foreign'], 'id');
} }
...@@ -92,7 +124,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase ...@@ -92,7 +124,8 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$d = $r->completeDefinition(array('class' => 'Email', $d = $r->completeDefinition(array('class' => 'Email',
'type' => Doctrine_Relation::MANY)); 'type' => Doctrine_Relation::MANY,
'definer' => 'User'));
$this->assertEqual($d['foreign'], 'id'); $this->assertEqual($d['foreign'], 'id');
$this->assertEqual($d['local'], 'email_id'); $this->assertEqual($d['local'], 'email_id');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment