public function testEagerLoadManyToOne() { $train = new Train(); $waggon = new Waggon(); $train->addWaggon($waggon); $this->_em->persist($train); // cascades $this->_em->flush(); $this->_em->clear(); $waggon = $this->_em->find(get_class($waggon), $waggon->id); $this->assertNotInstanceOf('Doctrine\\ORM\\Proxy\\Proxy', $waggon->train); $this->assertNotNull($waggon->train); }
public function testEagerLoadWithNonNullableColumnsGeneratesInnerJoinOnOwningSide() { $waggon = new Waggon(); // It should have a train $train = new Train(new TrainOwner("Alexander")); $train->addWaggon($waggon); $this->_em->persist($train); $this->_em->flush(); $this->_em->clear(); $waggon = $this->_em->find(get_class($waggon), $waggon->id); // The last query is the eager loading of the owner of the train $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']); // The one before is the fetching of the waggon and train $this->assertSQLEquals("SELECT t0.id AS id1, t0.train_id AS train_id2, t3.id AS id4, t3.driver_id AS driver_id5, t3.owner_id AS owner_id6 FROM Waggon t0 INNER JOIN Train t3 ON t0.train_id = t3.id WHERE t0.id = ?", $this->_sqlLoggerStack->queries[$this->_sqlLoggerStack->currentQuery - 1]['sql']); }