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']);
 }