public function setUp()
 {
     $this->documentManager = $this->getMockBuilder('Doctrine\\ODM\\PHPCR\\DocumentManager')->disableOriginalConstructor()->getMock();
     $this->objectManager = $this->getMock('Doctrine\\ORM\\EntityManagerInterface');
     $this->eventManager = $this->getMockBuilder('Doctrine\\Common\\EventManager')->disableOriginalConstructor()->getMock();
     $this->classMetadata = $this->getMockBuilder('Doctrine\\ORM\\ODMAdapter\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock();
     $this->objectManager->expects($this->any())->method('getEventManager')->will($this->returnValue($this->eventManager));
     $this->documentManager->expects($this->any())->method('getEventManager')->will($this->returnValue($this->eventManager));
     $this->eventManager->expects($this->any())->method('addEventSubscriber');
     $configuration = new Configuration();
     $configuration->setManagers(array(Reference::DBAL_ORM => array('default' => $this->objectManager), Reference::PHPCR => array('default' => $this->documentManager)));
     $configuration->setClassMetadataFactoryName('Doctrine\\ORM\\ODMAdapter\\Mapping\\ClassMetadataFactory');
     $this->objectAdapterManager = new ObjectAdapterManager($configuration);
 }
 /**
  * By using that method the library's own event subscribers will be
  * registered to event managers of matching mangeres set into the
  * configuration.
  */
 public function addListenersToEventManagers()
 {
     $managers = $this->configuration->getManagers();
     $typeBaseMapping = array(Reference::PHPCR => ReferencingBase::PHPCR, Reference::DBAL_ORM => ReferencingBase::DBAL_ORM);
     foreach ($managers as $referenceType => $managerList) {
         if (!isset($typeBaseMapping[$referenceType])) {
             continue;
         }
         $listerClassName = $this->configuration->getReferencingBaseListenerByType($typeBaseMapping[$referenceType]);
         foreach ($managerList as $manager) {
             if (method_exists($manager, 'getEventManager')) {
                 /** @var EventManager $eventManager */
                 $eventManager = $manager->getEventManager();
                 if (null === $eventManager) {
                     continue;
                 }
                 $eventManager->addEventSubscriber(new $listerClassName($this));
             }
         }
     }
 }
 private function createObjectAdapterManager()
 {
     $configuration = new Configuration();
     $configuration->setManagers(array('reference-phpcr' => array('default' => $this->dm), 'reference-dbal-orm' => array('default' => $this->em)));
     $configuration->setClassMetadataFactoryName('Doctrine\\ORM\\ODMAdapter\\Mapping\\ClassMetadataFactory');
     $cache = new ArrayCache();
     $reader = new AnnotationReader($cache);
     $annotationDriver = new AnnotationDriver($reader);
     $annotationDriver->addPaths(array(__DIR__ . "/../../../Models"));
     $configuration->setMetadataDriverImpl($annotationDriver);
     $configuration->setProxyDir(__DIR__ . '/cache');
     $configuration->setAutoGenerateProxyClasses(true);
     $configuration->setProxyNamespace('__Test__');
     $configuration->setClassMetadataFactoryName('Doctrine\\ORM\\ODMAdapter\\Mapping\\ClassMetadataFactory');
     $this->objectAdapterManager = ObjectAdapterManager::create($configuration);
     $this->objectAdapterManager->addListenersToEventManagers();
 }
 /**
  * Gets the fully qualified class-name from the namespace alias.
  *
  * @param string $namespaceAlias
  * @param string $simpleClassName
  *
  * @return string
  */
 protected function getFqcnFromAlias($namespaceAlias, $simpleClassName)
 {
     return $this->configuration->getObjectNamespace($namespaceAlias) . '\\' . $simpleClassName;
 }