objTable); $coll->add(new User()); $this->assertEqual($coll->count(),1); $coll->add(new User()); $this->assertTrue($coll->count(),2); $this->assertEqual($coll->getKeys(), array(0,1)); $coll[2] = new User(); $this->assertTrue($coll->count(),3); $this->assertEqual($coll->getKeys(), array(0,1,2)); } public function testExpand() { $users = $this->session->query("FROM User-b.Phonenumber-l WHERE User.Phonenumber.phonenumber LIKE '%123%'"); $this->assertTrue($users instanceof Doctrine_Collection_Batch); $this->assertTrue($users[1] instanceof User); $this->assertTrue($users[1]->Phonenumber instanceof Doctrine_Collection_Lazy); $data = $users[1]->Phonenumber->getData(); $coll = $users[1]->Phonenumber; $this->assertEqual(count($data), 1); foreach($coll as $record) { $record->phonenumber; } $coll[1]; $this->assertEqual(count($coll), 3); $this->assertEqual($coll[2]->getState(), Doctrine_Record::STATE_PROXY); $generator = new Doctrine_IndexGenerator($this->objTable->getIdentifier()); $coll->setGenerator($generator); $generator = $coll->getGenerator(); $user = $this->session->getTable("User")->find(4); $this->assertEqual($generator->getIndex($user), 4); } public function testGenerator() { $generator = new Doctrine_IndexGenerator("name"); $coll = new Doctrine_Collection($this->objTable); $coll->setGenerator($generator); $user = new User(); $user->name = "name"; $coll->add($user); $this->assertEqual($coll["name"], $user); $this->session->getTable("email")->setAttribute(Doctrine::ATTR_COLL_KEY,"address"); $emails = $this->session->getTable("email")->findAll(); foreach($emails as $k => $v) { $this->assertTrue(gettype($k), "string"); } } } ?>