1
0
Fork 0
mirror of synced 2025-04-03 13:23:37 +03:00

some new tests for the new relation parser

This commit is contained in:
zYne 2007-05-21 20:28:20 +00:00
parent abcc423fbf
commit ad0c3e2c68

View file

@ -40,7 +40,7 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
'local' => 'email_id'); 'local' => 'email_id');
$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',
@ -104,11 +104,22 @@ 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::ONE));
$this->assertEqual($d['foreign'], 'id'); $this->assertEqual($d['foreign'], 'id');
$this->assertEqual($d['local'], 'email_id'); $this->assertEqual($d['local'], 'email_id');
} }
public function testRelationParserSupportsGuessingOfBothColumns2()
{
$r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$d = $r->completeDefinition(array('class' => 'Phonenumber',
'type' => Doctrine_Relation::MANY));
$this->assertEqual($d['foreign'], 'entity_id');
$this->assertEqual($d['local'], 'id');
}
public function testRelationParserSupportsForeignColumnGuessingForAssociations() public function testRelationParserSupportsForeignColumnGuessingForAssociations()
{ {
$r = new Doctrine_Relation_Parser($this->conn->getTable('User')); $r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
@ -116,8 +127,7 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$d = $r->completeAssocDefinition(array('class' => 'Group', $d = $r->completeAssocDefinition(array('class' => 'Group',
'type' => Doctrine_Relation::MANY, 'type' => Doctrine_Relation::MANY,
'local' => 'user_id', 'local' => 'user_id',
'refClass' => 'GroupUser', 'refClass' => 'GroupUser'));
'definer' => 'User'));
$this->assertEqual($d['foreign'], 'group_id'); $this->assertEqual($d['foreign'], 'group_id');
} }
@ -128,9 +138,61 @@ class Doctrine_Relation_Parser_TestCase extends Doctrine_UnitTestCase
$d = $r->completeAssocDefinition(array('class' => 'Group', $d = $r->completeAssocDefinition(array('class' => 'Group',
'type' => Doctrine_Relation::MANY, 'type' => Doctrine_Relation::MANY,
'foreign' => 'group_id', 'foreign' => 'group_id',
'refClass' => 'GroupUser', 'refClass' => 'GroupUser'));
'definer' => 'User'));
$this->assertEqual($d['local'], 'user_id'); $this->assertEqual($d['local'], 'user_id');
} }
public function testGetRelationReturnsForeignKeyObjectForOneToOneRelation()
{
$r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$p = array('type' => Doctrine_Relation::ONE,
'local' => 'email_id');
$r->bind('Email', $p);
$rel = $r->getRelation('Email');
$this->assertTrue($rel instanceof Doctrine_Relation_ForeignKey);
}
public function testGetRelationReturnsForeignKeyObjectForOneToManyRelation()
{
$r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$p = array('type' => Doctrine_Relation::MANY);
$r->bind('Phonenumber', $p);
$rel = $r->getRelation('Phonenumber');
$this->assertTrue($rel instanceof Doctrine_Relation_ForeignKey);
}
public function testGetRelationReturnsForeignKeyObjectForManytToManyRelation()
{
$r = new Doctrine_Relation_Parser($this->conn->getTable('User'));
$p = array('type' => Doctrine_Relation::MANY,
'refClass' => 'GroupUser');
$r->bind('Group', $p);
$rel = $r->getRelation('Group');
$this->assertTrue($rel instanceof Doctrine_Relation_Association);
$rel = $r->getRelation('GroupUser');
$this->assertTrue($rel instanceof Doctrine_Relation_ForeignKey);
}
public function testGetRelationReturnsForeignKeyObjectForNestRelation()
{
$r = new Doctrine_Relation_Parser($this->conn->getTable('Entity'));
$p = array('type' => Doctrine_Relation::MANY,
'refClass' => 'EntityReference',
'local' => 'entity1',
'foreign' => 'entity2');
$r->bind('Entity', $p);
$rel = $r->getRelation('Entity');
$this->assertTrue($rel instanceof Doctrine_Relation_Association_Self);
$rel = $r->getRelation('EntityReference');
$this->assertTrue($rel instanceof Doctrine_Relation_ForeignKey);
}
} }