public function testCascadeRemoveByCollection()
{
$referrerRefManyTestObj = new ReferenceTestObj();
$referrerRefManyTestObj->id = "/functional/referenceTestObj";
$referrerRefManyTestObj->reference = array();
$max = 5;
for ($i = 0; $i < $max; $i++) {
$newReferrerTestObj = new ReferenceRefTestObj();
$newReferrerTestObj->id = "/functional/referenceRefTestObj{$i}";
$newReferrerTestObj->name = "referrerTestObj{$i}";
$referrerRefManyTestObj->reference[] = $newReferrerTestObj;
}
$this->dm->persist($referrerRefManyTestObj);
$this->dm->flush();
$this->dm->clear();
$referrered = $this->dm->find(null, "/functional/referenceTestObj");
$this->assertCount($max, $referrered->reference);
$referrered->reference->remove(0);
$referrered->reference->remove(3);
$this->assertCount($max - 2, $referrered->reference);
$this->dm->flush();
$this->dm->clear();
$referrered = $this->dm->find(null, "/functional/referenceTestObj");
$this->assertCount($max - 2, $referrered->reference);
}