/**
  * To commit all referenced Objects by its managers we need to sort them.
  *
  * @throws Exception\UnitOfWorkException
  * @return array
  */
 public function getScheduledReferencesByManager()
 {
     $managedList = array();
     $scheduledLists = array($this->insertReferences, $this->updateReferences, $this->removeReferences);
     foreach ($scheduledLists as $scheduleList) {
         foreach ($scheduleList as $oid => $fields) {
             if (!isset($this->objects[$oid])) {
                 throw new UnitOfWorkException('Can not find the object for oid %s', $oid);
             }
             foreach ($fields as $fieldName => $referencedObject) {
                 $object = $this->objects[$oid];
                 $manager = $this->objectAdapterManager->getManager($object, $fieldName);
                 $managerClass = get_class($manager);
                 if (!isset($managedList[$managerClass])) {
                     $managedList[$managerClass]['manager'] = $manager;
                     $managedList[$managerClass]['referenced-objects'] = array();
                 }
                 $managedList[$managerClass]['referenced-objects'][] = $referencedObject;
             }
         }
     }
     return $managedList;
 }
 /**
  * @expectedException \Doctrine\ORM\ODMAdapter\Exception\MappingException
  * @expectedExceptionMessage No reference mapping on stdClass
  */
 public function testGetManagerObjectWithoutTypeThrowsException()
 {
     $this->objectAdapterManager->getManager(new \stdClass(), 'test-field');
 }