/**
  *
  * @param \Zend\EventManager\Event $event
  */
 public function onConfigMerge(ModuleEvent $event)
 {
     $config = $event->getConfigListener()->getMergedConfig(false);
     foreach ($config['sds']['doctrineExtensions']['manifest'] as $name => $manifestConfig) {
         if (!isset($manifestConfig['initalized']) || !$manifestConfig['initalized']) {
             $manifest = new Manifest($manifestConfig);
             $manifestConfig = $manifest->toArray();
             $config['sds']['doctrineExtensions']['manifest'][$name] = $manifestConfig;
             //alias documentManager
             //add delegators
             $documentManagerConfig = $config;
             foreach (explode('.', $manifestConfig['document_manager']) as $key) {
                 $documentManagerConfig = $documentManagerConfig[$key];
             }
             $delegatorConfig = ['delegators' => [$manifestConfig['document_manager'] => ['doctrineExtensions.' . $name . '.documentManagerDelegatorFactory'], $documentManagerConfig['eventmanager'] => ['doctrineExtensions.' . $name . '.eventManagerDelegatorFactory'], $documentManagerConfig['configuration'] => ['doctrineExtensions.' . $name . '.configurationDelegatorFactory']]];
             $config['service_manager'] = ArrayUtils::merge($config['service_manager'], $delegatorConfig);
         }
     }
     if (!isset($config['sds']['doctrineExtensions']['manifest']['default']) || !isset($config['sds']['doctrineExtensions']['manifest']['default']['extension_configs']['extension.dojo'])) {
         //remove dojo_src.default route if doctrineExtensions.dojo.default is not configured
         unset($config['router']['routes']['dojo.default']);
     }
     if (!isset($config['sds']['doctrineExtensions']['manifest']['default']) || !isset($config['sds']['doctrineExtensions']['manifest']['default']['extension_configs']['extension.rest'])) {
         //remove rest.default route if doctrineExtensions.rest.default is not configured
         unset($config['router']['routes']['rest.default']);
     }
     $event->getConfigListener()->setMergedConfig($config);
 }
 public function setUp()
 {
     $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.serializer' => ['type_serializers' => ['string' => 'stringTypeSerializer']]], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]);
     $manifest->getServiceManager()->setInvokableClass('stringTypeSerializer', 'Sds\\DoctrineExtensions\\Test\\Serializer\\TestAsset\\StringSerializer');
     $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager');
     $this->serializer = $manifest->getServiceManager()->get('serializer');
 }
 public function setUp()
 {
     $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.dojo' => ['file_paths' => [['filter' => '', 'path' => __DIR__ . '/../../../../Dojo']]], 'extension.serializer' => true, 'extension.validator' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory', 'identity' => function () {
         $identity = new Identity();
         return $identity;
     }]]]);
     $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager');
 }
 public function setUp()
 {
     $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.state' => true, 'extension.accessControl' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory', 'identity' => function () {
         $identity = new RoleAwareIdentity();
         $identity->setIdentityName('toby')->addRole('writer');
         return $identity;
     }]]]);
     $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager');
 }
 public function setUp()
 {
     $manifest = new Manifest(['service_manager_config' => ['factories' => ['identity' => function () {
         $identity = new RoleAwareIdentity();
         $identity->setIdentityName('toby');
         return $identity;
     }]]]);
     $this->identity = $manifest->getServiceManager()->get('identity');
 }
 public function setUp()
 {
     $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.validator' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]);
     $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager');
     $eventManager = $this->documentManager->getEventManager();
     $eventManager->addEventListener(Events::invalidCreate, $this);
     $eventManager->addEventListener(Events::invalidUpdate, $this);
     $this->calls = array();
 }
 protected function getManifestServiceManager($manifestName, $serviceLocator)
 {
     if (!isset($this->manifestServiceManagers[$manifestName])) {
         $config = $serviceLocator->get('config')['sds']['doctrineExtensions']['manifest'];
         if (isset($config[$manifestName])) {
             $manifestServiceManager = Manifest::createServiceManager($config[$manifestName]['service_manager_config']);
             $manifestServiceManager->setService('manifest', $config[$manifestName]);
             $manifestServiceManager->addPeeringServiceManager($serviceLocator);
             $this->manifestServiceManagers[$manifestName] = $manifestServiceManager;
         } else {
             return null;
         }
     }
     return $this->manifestServiceManagers[$manifestName];
 }
 public function setUp()
 {
     $this->path = __DIR__ . '/../../../../Dojo';
     $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.dojo' => ['persist_to_file' => true, 'file_paths' => [['filter' => '', 'path' => $this->path]]]], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]);
     $this->generator = $manifest->getServiceManager()->get('generator');
 }
 public function setUp()
 {
     $manifest = new Manifest(['documents' => [__NAMESPACE__ . '\\TestAsset\\Document' => __DIR__ . '/TestAsset/Document'], 'extension_configs' => ['extension.readonly' => true], 'document_manager' => 'testing.documentmanager', 'service_manager_config' => ['factories' => ['testing.documentmanager' => 'Sds\\DoctrineExtensions\\Test\\TestAsset\\DocumentManagerFactory']]]);
     $this->documentManager = $manifest->getServiceManager()->get('testing.documentmanager');
 }