Doctrine\Tests\ODM\PHPCR\Functional\ReferenceTest::testManyCascadeDeleteOne PHP Метод

testManyCascadeDeleteOne() публичный Метод

    public function testManyCascadeDeleteOne()
    {
        $refManyTestObjForCascade = new RefManyTestObjForCascade();
        $refManyTestObjForCascade->id = "/functional/refManyTestObjForCascade";
        $max = 5;
        for ($i = 0; $i < $max; $i++) {
            $newRefCascadeManyTestObj = new RefCascadeManyTestObj();
            $newRefCascadeManyTestObj->id = "/functional/refCascadeManyTestObj{$i}";
            $newRefCascadeManyTestObj->name = "refCascadeManyTestObj{$i}";
            $refManyTestObjForCascade->references[] = $newRefCascadeManyTestObj;
        }
        $j = 0;
        foreach ($refManyTestObjForCascade->references as $reference) {
            for ($i = 0; $i < $max; $i++) {
                $newRefRefTestObj = new RefRefTestObj();
                $newRefRefTestObj->id = "/functional/refRefTestObj{$j}{$i}";
                $newRefRefTestObj->name = "refRefTestObj{$j}{$i}";
                $reference->references[] = $newRefRefTestObj;
            }
            $j++;
        }
        $this->dm->persist($refManyTestObjForCascade);
        $this->dm->flush();
        $this->dm->clear();
        $referrer = $this->dm->find($this->referrerManyForCascadeType, '/functional/refManyTestObjForCascade');
        $pos1 = 1;
        $pos2 = 2;
        $this->dm->remove($referrer->references[$pos1]->references[$pos2]);
        $this->dm->flush();
        $this->assertFalse($this->session->getNode("/functional")->hasNode("refRefTestObj{$pos1}{$pos2}"));
        $this->assertTrue($this->session->getNode("/functional/refCascadeManyTestObj{$pos1}")->hasProperty("references"));
        $this->assertCount($max, $this->session->getNode("/functional/refCascadeManyTestObj{$pos1}")->getProperty("references")->getString());
    }