public function getServiceConfig() { return array('factories' => array('ZF\\Apigility\\Admin\\Model\\AuthenticationModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\AuthenticationModel service because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/global.php', $writer); $local = new ConfigResource($config, 'config/autoload/local.php', $writer); return new Model\AuthenticationModel($global, $local); }, 'ZF\\Apigility\\Admin\\Model\\AuthorizationModelFactory' => function ($services) { if (!$services->has('ZF\\Configuration\\ModuleUtils') || !$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModuleModel')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\AuthorizationModelFactory is missing one or more dependencies from ZF\\Configuration'); } $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils'); $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); return new Model\AuthorizationModelFactory($moduleUtils, $configFactory, $moduleModel); }, 'ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel service because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/global.php', $writer); return new Model\ContentNegotiationModel($global); }, 'ZF\\Apigility\\Admin\\Model\\ContentNegotiationResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ContentNegotiationResource service because ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel service is not present'); } $model = $services->get('ZF\\Apigility\\Admin\\Model\\ContentNegotiationModel'); return new Model\ContentNegotiationResource($model); }, 'ZF\\Apigility\\Admin\\Model\\DbAdapterModel' => function ($services) { if (!$services->has('Config')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DbAdapterModel service because Config service is not present'); } $config = $services->get('Config'); $writer = $services->get('ZF\\Configuration\\ConfigWriter'); $global = new ConfigResource($config, 'config/autoload/global.php', $writer); $local = new ConfigResource($config, 'config/autoload/local.php', $writer); return new Model\DbAdapterModel($global, $local); }, 'ZF\\Apigility\\Admin\\Model\\DbAdapterResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\DbAdapterModel')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\DbAdapterResource service because ZF\\Apigility\\Admin\\Model\\DbAdapterModel service is not present'); } $model = $services->get('ZF\\Apigility\\Admin\\Model\\DbAdapterModel'); return new Model\DbAdapterResource($model); }, 'ZF\\Apigility\\Admin\\Model\\ModuleModel' => function ($services) { if (!$services->has('ModuleManager')) { throw new ServiceNotCreatedException('Cannot create ZF\\Apigility\\Admin\\Model\\ModuleModel service because ModuleManager service is not present'); } $modules = $services->get('ModuleManager'); $restConfig = array(); $rpcConfig = array(); if ($services->has('Config')) { $config = $services->get('Config'); if (isset($config['zf-rest'])) { $restConfig = $config['zf-rest']; } if (isset($config['zf-rpc'])) { $rpcConfig = $config['zf-rpc']; } } return new Model\ModuleModel($modules, $restConfig, $rpcConfig); }, 'ZF\\Apigility\\Admin\\Model\\ModuleResource' => function ($services) { $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $listener = new Model\ModuleResource($moduleModel); if ($services->has('Config')) { $config = $services->get('Config'); if (isset($config['zf-apigility-admin'])) { if (isset($config['zf-apigility-admin']['module_path'])) { $listener->setModulePath($config['zf-apigility-admin']['module_path']); } } } return $listener; }, 'ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory' => function ($services) { if (!$services->has('ZF\\Configuration\\ModuleUtils') || !$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModuleModel') || !$services->has('SharedEventManager')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory is missing one or more dependencies from ZF\\Configuration'); } $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils'); $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); $sharedEvents = $services->get('SharedEventManager'); // Wire DB-Connected fetch listener $sharedEvents->attach(__NAMESPACE__ . '\\Model\\RestServiceModel', 'fetch', 'ZF\\Apigility\\Admin\\Model\\DbConnectedRestServiceModel::onFetch'); return new Model\RestServiceModelFactory($moduleUtils, $configFactory, $sharedEvents, $moduleModel); }, 'ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory' => function ($services) { if (!$services->has('ZF\\Configuration\\ModuleUtils') || !$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Apigility\\Admin\\Model\\ModuleModel') || !$services->has('SharedEventManager')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory is missing one or more dependencies from ZF\\Configuration'); } $moduleModel = $services->get('ZF\\Apigility\\Admin\\Model\\ModuleModel'); $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils'); $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); $sharedEvents = $services->get('SharedEventManager'); return new Model\RpcServiceModelFactory($moduleUtils, $configFactory, $sharedEvents, $moduleModel); }, 'ZF\\Apigility\\Admin\\Model\\RestServiceResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RestServiceResource is missing one or more dependencies'); } if (!$services->has('ZF\\Apigility\\Admin\\Model\\InputFilterModel')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RestServiceResource is missing one or more dependencies'); } $factory = $services->get('ZF\\Apigility\\Admin\\Model\\RestServiceModelFactory'); $inputFilterModel = $services->get('ZF\\Apigility\\Admin\\Model\\InputFilterModel'); $documentationModel = $services->get('ZF\\Apigility\\Admin\\Model\\DocumentationModel'); return new Model\RestServiceResource($factory, $inputFilterModel, $documentationModel); }, 'ZF\\Apigility\\Admin\\Model\\RpcServiceResource' => function ($services) { if (!$services->has('ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceResource is missing RpcServiceModelFactory dependency'); } if (!$services->has('ZF\\Apigility\\Admin\\Model\\InputFilterModel')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceResource is missing InputFilterModel dependency'); } if (!$services->has('ControllerManager')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\RpcServiceResource is missing ControllerManager dependency'); } $factory = $services->get('ZF\\Apigility\\Admin\\Model\\RpcServiceModelFactory'); $inputFilterModel = $services->get('ZF\\Apigility\\Admin\\Model\\InputFilterModel'); $controllerManager = $services->get('ControllerManager'); $documentationModel = $services->get('ZF\\Apigility\\Admin\\Model\\DocumentationModel'); return new Model\RpcServiceResource($factory, $inputFilterModel, $controllerManager, $documentationModel); }, 'ZF\\Apigility\\Admin\\Model\\VersioningModelFactory' => function ($services) { if (!$services->has('ZF\\Configuration\\ConfigResourceFactory') || !$services->has('ZF\\Configuration\\ModuleUtils')) { throw new ServiceNotCreatedException('ZF\\Apigility\\Admin\\Model\\VersioningModelFactory is missing one or more dependencies from ZF\\Configuration'); } $configFactory = $services->get('ZF\\Configuration\\ConfigResourceFactory'); $moduleUtils = $services->get('ZF\\Configuration\\ModuleUtils'); return new Model\VersioningModelFactory($configFactory, $moduleUtils); })); }
public function testFetchModuleInjectsVersions() { $moduleName = uniqid('Foo'); $module = $this->resource->create(array('name' => $moduleName)); $moduleClass = $module->getNamespace() . '\\Module'; $r = new ReflectionClass($moduleClass); $path = dirname($r->getFileName()); mkdir(sprintf('%s/V2', $path), 0775, true); mkdir(sprintf('%s/V3', $path), 0775, true); $modules = array($moduleName => new $moduleClass()); $moduleManager = $this->getMockBuilder('Zend\\ModuleManager\\ModuleManager')->disableOriginalConstructor()->getMock(); $moduleManager->expects($this->any())->method('getLoadedModules')->will($this->returnValue($modules)); $model = new ModuleModel($moduleManager, array(), array()); $resource = new ModuleResource($model); $module = $resource->fetch($moduleName); $this->assertInstanceOf('ZF\\Apigility\\Admin\\Model\\ModuleEntity', $module); $this->assertEquals(array(1, 2, 3), $module->getVersions()); }