public function testUniqueKeyComponent() { $e = new TestError(); $e->message = 'user error'; $e->file_md5 = md5(0); $e->code = 1; // ADDING NEW RECORD $this->assertEqual($e->code, 1); $this->assertEqual($e->file_md5, md5(0)); $this->assertEqual($e->message, 'user error'); $e2 = new TestError(); $e2->message = 'user error2'; $e2->file_md5 = md5(1); $e2->code = 2; $this->assertEqual($e2->code, 2); $this->assertEqual($e2->file_md5, md5(1)); $this->assertEqual($e2->message, 'user error2'); $fk = $e->getTable()->getRelation('Description'); $this->assertTrue($fk instanceof Doctrine_Relation_ForeignKey); $this->assertEqual($fk->getLocal(), 'file_md5'); $this->assertEqual($fk->getForeign(), 'file_md5'); $this->assertTrue($fk->getTable() instanceof Doctrine_Table); $e->Description[0]->description = 'This is the 1st description'; $e->Description[1]->description = 'This is the 2nd description'; $this->assertEqual($e->Description[0]->description, 'This is the 1st description'); $this->assertEqual($e->Description[1]->description, 'This is the 2nd description'); $this->assertEqual($e->Description[0]->file_md5, $e->file_md5); $this->assertEqual($e->Description[1]->file_md5, $e->file_md5); $this->assertEqual($e2->Description[0]->description, null); $this->assertEqual($e2->Description[1]->description, null); $this->assertEqual($e2->Description[0]->file_md5, $e2->file_md5); $this->assertEqual($e2->Description[1]->file_md5, $e2->file_md5); $e->save(); $coll = $this->connection->query('FROM TestError'); $e = $coll[0]; $this->assertEqual($e->code, 1); $this->assertEqual($e->file_md5, md5(0)); $this->assertEqual($e->message, 'user error'); $this->assertTrue($e->Description instanceof Doctrine_Collection); $this->assertTrue($e->Description[0] instanceof Description); $this->assertTrue($e->Description[1] instanceof Description); $this->assertEqual($e->Description[0]->description, 'This is the 1st description'); $this->assertEqual($e->Description[1]->description, 'This is the 2nd description'); // UPDATING $e->code = 2; $e->message = 'changed message'; $e->Description[0]->description = '1st changed description'; $e->Description[1]->description = '2nd changed description'; $this->assertEqual($e->code, 2); $this->assertEqual($e->message, 'changed message'); $this->assertEqual($e->Description[0]->description, '1st changed description'); $this->assertEqual($e->Description[1]->description, '2nd changed description'); $e->save(); $this->assertEqual($e->code, 2); $this->assertEqual($e->message, 'changed message'); $this->assertEqual($e->Description[0]->description, '1st changed description'); $this->assertEqual($e->Description[1]->description, '2nd changed description'); }