. */ /** * Doctrine_Relation_OneToOne_TestCase * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 * @version $Revision$ */ class Doctrine_Relation_OneToMany_TestCase extends Doctrine_UnitTestCase { public function prepareData() { } public function prepareTables() { $this->tables = array('Entity', 'Phonenumber', 'Email', 'Policy', 'PolicyAsset'); parent::prepareTables(); } public function testRelationParsing() { $table = $this->conn->getTable('Entity'); $rel = $table->getRelation('Phonenumber'); $this->assertTrue($rel instanceof Doctrine_Relation_ForeignKey); $rel = $table->getRelation('Email'); $this->assertTrue($rel instanceof Doctrine_Relation_LocalKey); } public function testRelationParsing2() { $table = $this->conn->getTable('Phonenumber'); $rel = $table->getRelation('Entity'); $this->assertTrue($rel instanceof Doctrine_Relation_LocalKey); } public function testRelationParsing3() { $table = $this->conn->getTable('Policy'); $rel = $table->getRelation('PolicyAssets'); $this->assertTrue($rel instanceof Doctrine_Relation_ForeignKey); } public function testRelationSaving() { $p = new Policy(); $p->policy_number = '123'; $a = new PolicyAsset(); $a->value = '123.13'; $p->PolicyAssets[] = $a; $p->save(); $this->assertEqual($a->policy_number, '123'); } public function testRelationSaving2() { $e = new Entity(); $e->name = 'test'; $e->save(); $nr = new Phonenumber(); $nr->phonenumber = '1234556'; $nr->save(); $nr->Entity = $e; } } class Policy extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('policy_number', 'integer', 11, array('unique' => true)); } public function setUp() { $this->hasMany('PolicyAsset as PolicyAssets', array('local' => 'policy_number', 'foreign' => 'policy_number')); $this->index('policy_number_index', array('fields' => array('policy_number'))); } } class PolicyAsset extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('policy_number', 'integer', 11); $this->hasColumn('value', 'float', 10, array ('notblank' => true,)); } public function setUp() { $this->hasOne('Policy', array('foreign' => 'policy_number', 'local' => 'policy_number')); $this->index('policy_number_index', array('fields' => array('policy_number'))); } }