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

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

Remove referrer node, but change referenced nodes before
    public function testRemoveReferrerManyChangeBefore()
    {
        $refManyTestObj = new RefManyTestObj();
        $refManyTestObj->id = "/functional/refManyTestObj";
        $max = 5;
        for ($i = 0; $i < $max; $i++) {
            $newRefRefTestObj = new RefRefTestObj();
            $newRefRefTestObj->id = "/functional/refRefTestObj{$i}";
            $newRefRefTestObj->name = "refRefTestObj{$i}";
            $refManyTestObj->references[] = $newRefRefTestObj;
        }
        $this->dm->persist($refManyTestObj);
        $this->dm->flush();
        $this->dm->clear();
        $referrer = $this->dm->find($this->referrerManyType, '/functional/refManyTestObj');
        $i = 0;
        foreach ($referrer->references as $reference) {
            $reference->name = "new name {$i}";
            $i++;
        }
        $this->dm->remove($referrer);
        $this->dm->flush();
        $this->dm->clear();
        $testReferrer = $this->dm->find($this->referrerType, '/functional/refTestObj');
        $this->assertNull($testReferrer);
        for ($i = 0; $i < $max; $i++) {
            $this->assertEquals("new name {$i}", $this->session->getNode("/functional/refRefTestObj{$i}")->getPropertyValue("name"));
        }
    }