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);
 }
Example #2
0
 public function addComment(Comment $comment)
 {
     $comment->setArticle($this);
     $this->comments[] = $comment;
 }