/** * 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(); }