public function testEagerLoadOneToOneInverseSide() { $train = new Train(); $driver = new TrainDriver("Benjamin"); $train->setDriver($driver); $this->_em->persist($train); // cascades $this->_em->flush(); $this->_em->clear(); $sqlCount = count($this->_sqlLoggerStack->queries); $driver = $this->_em->find(get_class($driver), $driver->id); $this->assertNotInstanceOf('Doctrine\\ORM\\Proxy\\Proxy', $driver->train); $this->assertNotNull($driver->train); $this->assertEquals($sqlCount + 1, count($this->_sqlLoggerStack->queries)); }
public function testEagerLoadWithNullableColumnsGeneratesLeftJoinOnBothSides() { $train = new Train(new TrainOwner("Alexander")); $driver = new TrainDriver("Benjamin"); $train->setDriver($driver); $this->_em->persist($train); $this->_em->flush(); $this->_em->clear(); $train = $this->_em->find(get_class($train), $train->id); $this->assertSQLEquals("SELECT t0.id AS id1, t0.driver_id AS driver_id2, t3.id AS id4, t3.name AS name5, t0.owner_id AS owner_id6, t7.id AS id8, t7.name AS name9 FROM Train t0 LEFT JOIN TrainDriver t3 ON t0.driver_id = t3.id INNER JOIN TrainOwner t7 ON t0.owner_id = t7.id WHERE t0.id = ?", $this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery]['sql']); $this->_em->clear(); $driver = $this->_em->find(get_class($driver), $driver->id); $this->assertSQLEquals("SELECT t0.id AS id1, t0.name AS name2, t3.id AS id4, t3.driver_id AS driver_id5, t3.owner_id AS owner_id6 FROM TrainOwner t0 LEFT JOIN Train t3 ON t3.owner_id = t0.id WHERE t0.id IN (?)", $this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery]['sql']); }