public function testUpdateInvertedReference()
 {
     // pre conditions
     $object = new InvertedReferenceMappingObject();
     $object->objectId = 'i am still there';
     $object->docName = 'name on document';
     $testReferencedObject = new ProductObject();
     $object->referencedField = $testReferencedObject;
     $testReferencedObject->id = 'test-id';
     $referenceMapping = array('referencedField' => array('inversed-by' => 'objectId', 'referenced-by' => 'id', 'target-object' => get_class($testReferencedObject), 'fieldName' => 'referencedField'));
     $commonFieldMappings = array('objectId' => array('referenced-by' => 'id', 'inversed-by' => 'objectId', 'target-field' => 'referencedField', 'sync-type' => 'from-reference'), 'entityName' => array('referenced-by' => 'entityName', 'inversed-by' => 'docName', 'target-field' => 'referencedField', 'sync-type' => 'from-reference'));
     $this->classMetadata->expects($this->any())->method('getReferencedObjects')->will($this->returnValue($referenceMapping));
     $this->classMetadata->expects($this->any())->method('getCommonFields')->will($this->returnValue($commonFieldMappings));
     $this->objectAdapterManager->expects($this->any())->method('getManager')->with($this->equalTo($object), $this->equalTo('referencedField'))->will($this->returnValue($this->objectManager));
     $this->objectManager->expects($this->any())->method('persist')->with($this->equalTo($testReferencedObject));
     $this->objectManager->expects($this->any())->method('getReference')->with($this->equalTo(get_class($testReferencedObject)), $this->equalTo('test-id'))->will($this->returnValue($testReferencedObject));
     $this->UoW->persist($object);
     $this->UoW->loadReferences($object);
     $updatedReferencedObject = $object->referencedField;
     $updatedReferencedObject->entityName = 'name to update';
     $this->UoW->persist($object);
     $this->assertEquals('name to update', $object->docName);
     // check setting on scheduled lists
     $this->assertEquals($testReferencedObject, $this->UoW->getScheduledObjectForUpdate($object, 'referencedField'));
     $this->assertCount(1, $this->UoW->getScheduledReferencesForInsert());
     $this->assertCount(0, $this->UoW->getScheduledReferencesForRemove());
     $this->assertCount(1, $this->UoW->getScheduledReferencesForUpdate());
     $this->assertThatItsClear('dbal-orm');
 }