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));
}
}
}