/**
  * Test cascade Doctrine annotations for entity
  */
 public function testDoctrineCascade()
 {
     self::$kernel->resetDatabase();
     $site = new Site('site-test', ['label' => 'site-test']);
     $layout = self::$kernel->createLayout('layout-test', 'layout-test');
     self::$em->persist($site);
     self::$em->persist($layout);
     self::$em->flush();
     $root = new Section('root');
     $root->setSite($site)->getPage()->setLayout($layout);
     // Persist cascade on Section::_page
     self::$em->persist($root);
     $this->assertTrue(self::$em->getUnitOfWork()->isScheduledForInsert($root));
     $this->assertTrue(self::$em->getUnitOfWork()->isScheduledForInsert($root->getPage()));
     self::$em->flush($root);
     // Remove cascade on Section::_page
     self::$em->remove($root);
     $this->assertTrue(self::$em->getUnitOfWork()->isScheduledForDelete($root));
     $this->assertTrue(self::$em->getUnitOfWork()->isScheduledForDelete($root->getPage()));
     self::$em->flush();
 }