public function testConcurrentEntitiesInOneFlush() { $repo = $this->em->getRepository(self::CATEGORY); $sport = $repo->findOneByTitle('Root2'); $sport->setTitle('Sport'); $skiing = new Category(); $skiing->setTitle('Skiing'); $skiing->setParent($sport); $articleAboutSkiing = new Article(); $articleAboutSkiing->setCategory($skiing); $articleAboutSkiing->setTitle('About Skiing'); $aboutSkiingArticleComment = new Comment(); $aboutSkiingArticleComment->setArticle($articleAboutSkiing); $aboutSkiingArticleComment->setMessage('hello'); $carRacing = new Category(); $carRacing->setParent($sport); $carRacing->setTitle('Car Racing'); $articleCarRacing = new Article(); $articleCarRacing->setCategory($carRacing); $articleCarRacing->setTitle('Car racing madness'); $olympicSkiing = new Category(); $olympicSkiing->setParent($skiing); $olympicSkiing->setTitle('Olympic Skiing Championship 2011'); $this->em->persist($sport); $this->em->persist($skiing); $this->em->persist($articleAboutSkiing); $this->em->persist($aboutSkiingArticleComment); $this->em->persist($carRacing); $this->em->persist($articleCarRacing); $this->em->persist($olympicSkiing); $this->em->flush(); $this->em->clear(); $meta = $this->em->getClassMetadata(self::CATEGORY); $sport = $repo->findOneByTitle('Sport'); $left = $meta->getReflectionProperty('lft')->getValue($sport); $right = $meta->getReflectionProperty('rgt')->getValue($sport); $this->assertEquals(9, $left); $this->assertEquals(16, $right); $skiing = $repo->findOneByTitle('Skiing'); $left = $meta->getReflectionProperty('lft')->getValue($skiing); $right = $meta->getReflectionProperty('rgt')->getValue($skiing); $this->assertEquals(10, $left); $this->assertEquals(13, $right); }
public function addComment(Comment $comment) { $comment->setArticle($this); $this->comments[] = $comment; }