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

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

    public function testCreateManyCascade()
    {
        $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();
        $this->assertTrue($this->session->getNode("/functional")->hasNode("refManyTestObjForCascade"));
        $refIds = $this->session->getNode("/functional/refManyTestObjForCascade")->getProperty("references")->getString();
        for ($i = 0; $i < $max; $i++) {
            $this->assertTrue($this->session->getNode("/functional")->hasNode("refCascadeManyTestObj{$i}"));
            $this->assertTrue($this->session->getNode("/functional/refCascadeManyTestObj{$i}")->hasProperty('references'));
            $this->assertTrue(in_array($this->session->getNode("/functional/refCascadeManyTestObj{$i}")->getIdentifier(), $refIds));
        }
        for ($j = 0; $j < $max; $j++) {
            $refIds = $this->session->getNode("/functional/refCascadeManyTestObj{$j}")->getProperty("references")->getString();
            for ($i = 0; $i < $max; $i++) {
                $this->assertTrue($this->session->getNode("/functional")->hasNode("refRefTestObj{$j}{$i}"));
                $this->assertEquals("refRefTestObj{$j}{$i}", $this->session->getNode("/functional/refRefTestObj{$j}{$i}")->getPropertyValue("name"));
                $this->assertTrue(in_array($this->session->getNode("/functional/refRefTestObj{$j}{$i}")->getIdentifier(), $refIds));
            }
        }
    }