1
0
mirror of synced 2024-12-14 07:06:04 +03:00

new tests for relation parser

This commit is contained in:
zYne 2007-05-20 20:55:38 +00:00
parent 919da9e6c6
commit d79e4d0b41

View File

@ -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');