public function testRemoveReferrerChangeBefore()
{
$refTestObj = new RefTestObj();
$refRefTestObj = new RefRefTestObj();
$refTestObj->id = "/functional/refTestObj";
$refRefTestObj->id = "/functional/refRefTestObj";
$refRefTestObj->name = "referenced";
$refTestObj->reference = $refRefTestObj;
$this->dm->persist($refTestObj);
$this->dm->flush();
$this->dm->clear();
$referrer = $this->dm->find($this->referrerType, '/functional/refTestObj');
$referrer->reference->setName('referenced changed');
$this->dm->remove($referrer);
$this->dm->flush();
$this->dm->clear();
$testReferrer = $this->dm->find($this->referrerType, '/functional/refTestObj');
$this->assertNull($testReferrer);
$this->assertTrue($this->session->getNode('/functional')->hasNode('refRefTestObj'));
$this->assertFalse($this->session->getNode('/functional')->hasNode('refTestObj'));
$this->assertEquals('referenced changed', $this->session->getNode('/functional/refRefTestObj')->getProperty('name')->getString());
}