public function setup() { parent::setup(); $config = (include 'config/application.config.php'); $config['module_listener_options']['config_static_paths'] = array(getcwd() . '/config/test.config.php'); if (file_exists(__DIR__ . '/config/test.config.php')) { $moduleConfig = (include __DIR__ . '/config/test.config.php'); array_unshift($config['module_listener_options']['config_static_paths'], $moduleConfig); } $this->serviceManager = new ServiceManager(new ServiceManagerConfig(isset($config['service_manager']) ? $config['service_manager'] : array())); $this->serviceManager->setService('ApplicationConfig', $config); $this->serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); $moduleManager = $this->serviceManager->get('ModuleManager'); $moduleManager->loadModules(); $this->routes = array(); foreach ($moduleManager->getModules() as $m) { $moduleConfig = (include __DIR__ . '/../../../../' . ucfirst($m) . '/config/module.config.php'); if (isset($moduleConfig['router'])) { foreach ($moduleConfig['router']['routes'] as $key => $name) { $this->routes[$key] = $name; } } } $this->serviceManager->setAllowOverride(true); $this->application = $this->serviceManager->get('Application'); $this->event = new MvcEvent(); $this->event->setTarget($this->application); $this->event->setApplication($this->application)->setRequest($this->application->getRequest())->setResponse($this->application->getResponse())->setRouter($this->serviceManager->get('Router')); $this->createDatabase(); }
public function setup() { parent::setup(); $pathDir = getcwd() . "/"; $config = (include $pathDir . 'config/application.config.php'); $this->serviceManager = new ServiceManager(new ServiceManagerConfig(isset($config['service_manager']) ? $config['service_manager'] : array())); $this->serviceManager->setService('ApplicationConfig', $config); $this->serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); $moduleManager = $this->serviceManager->get('ModuleManager'); $moduleManager->loadModules(); $this->routes = array(); $this->modules = $moduleManager->getModules(); foreach ($this->filterModules() as $m) { $moduleConfig = (include $pathDir . 'module/' . ucfirst($m) . '/config/module.config.php'); if (isset($moduleConfig['router'])) { foreach ($moduleConfig['router']['routes'] as $key => $name) { $this->routes[$key] = $name; } } } $this->serviceManager->setAllowOverride(true); $this->application = $this->serviceManager->get('Application'); $this->event = new MvcEvent(); $this->event->setTarget($this->application); $this->event->setApplication($this->application)->setRequest($this->application->getRequest())->setResponse($this->application->getResponse())->setRouter($this->serviceManager->get('Router')); $this->em = $this->serviceManager->get('Doctrine\\ORM\\EntityManager'); foreach ($this->filterModules() as $m) { $this->createDatabase($m); } }
public function configureServiceManager(\Zend\ServiceManager\ServiceManager $serviceManager) { $serviceManager->setFactory('A', function () { return new A(); }); $serviceManager->setShared('A', true); $serviceManager->setFactory('B', function ($serviceManager) { return new B($serviceManager->get('A')); }); $serviceManager->setShared('B', false); }
/** * Builds a new service manager */ public static function getServiceManager() { $serviceManager = new ServiceManager(new ServiceManagerConfig(isset(static::$config['service_manager']) ? static::$config['service_manager'] : array())); $serviceManager->setService('ApplicationConfig', static::$config); $serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); $serviceManager->setFactory('ModuleListener', 'Zend\\Mvc\\Service\\ModuleListenerFactory'); /** @var $moduleManager \Zend\ModuleManager\ModuleManager */ $moduleManager = $serviceManager->get('ModuleManager'); $moduleManager->loadModules(); //$serviceManager->setAllowOverride(true); return $serviceManager; }
public function testWillInstantiateFromFQCN() { $name = 'testFactory'; $factory = new AuthenticationServiceFactory($name); $objectManager = $this->getMock('Doctrine\\Common\\Persistence\\ObjectManager'); $serviceManager = new ServiceManager(); $serviceManager->setService('Configuration', array('doctrine' => array('authentication' => array($name => array('objectManager' => $objectManager, 'identityClass' => 'DoctrineModuleTest\\Authentication\\Adapter\\TestAsset\\IdentityObject', 'identityProperty' => 'username', 'credentialProperty' => 'password'))))); $serviceManager->setFactory('doctrine.authenticationadapter.' . $name, new AdapterFactory($name)); $serviceManager->setFactory('doctrine.authenticationstorage.' . $name, new StorageFactory($name)); $authenticationService = $factory->createService($serviceManager); $this->assertInstanceOf('Zend\\Authentication\\AuthenticationService', $authenticationService); }
public function setUp() { $formElementManagerFactory = new FormElementManagerFactory(); $config = new ArrayObject(array('di' => array())); $this->services = new ServiceManager(); $this->services->setService('Zend\\ServiceManager\\ServiceLocatorInterface', $this->services); $this->services->setFactory('FormElementManager', $formElementManagerFactory); $this->services->setService('Config', $config); $this->services->setFactory('Di', new DiFactory()); $this->services->setFactory('DiAbstractServiceFactory', new DiAbstractServiceFactoryFactory()); $this->services->setFactory('DiServiceInitializer', new DiServiceInitializerFactory()); }
public function setUp() { $loaderFactory = new ControllerLoaderFactory(); $config = new ArrayObject(array('di' => array())); $this->services = new ServiceManager(); $this->services->setService('Zend\\ServiceManager\\ServiceLocatorInterface', $this->services); $this->services->setFactory('ControllerLoader', $loaderFactory); $this->services->setService('Config', $config); $this->services->setFactory('ControllerPluginManager', new ControllerPluginManagerFactory()); $this->services->setFactory('Di', new DiFactory()); $this->services->setFactory('EventManager', new EventManagerFactory()); $this->services->setInvokableClass('SharedEventManager', 'Zend\\EventManager\\SharedEventManager'); }
/** * @expectedException \Abacaphiliac\ZendPhpDotEnv\Exception\InvalidWorkingDirectoryPathException */ public function testInitLoadsEnvironmentVariablesFromWorkingDirectory() { $serviceLocator = new ServiceManager(); $serviceLocator->setService('ApplicationConfig', array('module_listener_options' => array(), 'modules' => array('Abacaphiliac\\ZendPhpDotEnv'))); $serviceLocator->setFactory('EventManager', new EventManagerFactory()); $serviceLocator->setService('SharedEventManager', new SharedEventManager()); $serviceLocator->setFactory('ServiceListener', '\\Zend\\Mvc\\Service\\ServiceListenerFactory'); $moduleManagerFactory = new ModuleManagerFactory(); $moduleManager = $moduleManagerFactory->createService($serviceLocator); $module = new Module($constant = null, $variable = null, $file = '.testEnv'); $module->init($moduleManager); $moduleManager->getEventManager()->trigger(new ModuleEvent(ModuleEvent::EVENT_LOAD_MODULE)); }
/** * Faz o setup dos testes. Executado antes de cada teste * @return void */ public function setup() { $env = getenv('ENV'); //o jenkins tem configurações especiais if (!$env || $env != 'jenkins') { putenv("ENV=testing"); $env = 'testing'; } putenv('PROJECT_ROOT=' . __DIR__ . '/../../../../../'); parent::setup(); //arquivo de configuração da aplicação $config = (include __DIR__ . '/../../../../../config/tests.config.php'); $config['module_listener_options']['config_static_paths'] = array(); //cria um novo ServiceManager $this->serviceManager = new ServiceManager(new ServiceManagerConfig(isset($config['service_manager']) ? $config['service_manager'] : array())); //configura os serviços básicos no ServiceManager $this->serviceManager->setService('ApplicationConfig', $config); $this->serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); //verifica se os módulos possuem rotas configuradas e carrega elas para serem usadas pelo ControllerTestCase $moduleManager = $this->serviceManager->get('ModuleManager'); $moduleManager->loadModules(); $this->routes = array(); $testConfig = false; //carrega as rotas dos módulos foreach ($moduleManager->getLoadedModules() as $m) { $moduleConfig = $m->getConfig(); $this->getModuleRoutes($moduleConfig); $moduleName = explode('\\', get_class($m)); $moduleName = $moduleName[0]; //verifica se existe um arquivo de configuração específico no módulo para testes if (file_exists(getcwd() . '/module/' . ucfirst($moduleName) . '/config/test.config.php')) { $testConfig = (include getcwd() . '/module/' . ucfirst($moduleName) . '/config/test.config.php'); array_unshift($config['module_listener_options']['config_static_paths'], $testConfig[$env]); } } if (!$testConfig) { $config['module_listener_options']['config_static_paths'] = array(getcwd() . '/config/tests.config.php'); } $this->config = (include $config['module_listener_options']['config_static_paths'][0]); $this->serviceManager->setAllowOverride(true); //instancia a aplicação e configura os eventos e rotas $this->application = $this->serviceManager->get('Application'); $this->event = new MvcEvent(); $this->event->setTarget($this->application); $this->event->setApplication($this->application)->setRequest($this->application->getRequest())->setResponse($this->application->getResponse())->setRouter($this->serviceManager->get('Router')); $this->entityManager = $this->getEntityManager(); $this->dropDatabase(); $this->createDatabase(); }
public function getServiceLocator(array $config = array()) { $serviceLocator = new ServiceManager(); $serviceLocator->setFactory('MQUtil\\Service\\ShortUrl', 'MQUtil\\Service\\ShortUrlFactory'); $serviceLocator->setService('config', $config); return $serviceLocator; }
public function testGet() { // Via container $this->container->foo = []; $this->assertEquals([], $this->container->get('foo')); // Via service manager $this->sm->setService('foo', new \stdClass()); $this->sm->setAlias('bar', 'foo'); $this->assertInstanceOf('stdClass', $this->container->get('bar')); $this->sm->setFactory('factory', function (ServiceManager $sm) { return $sm->get('bar'); }); $this->assertInstanceOf('stdClass', $this->container->get('factory')); $this->sm->setInvokableClass('invokable', 'stdClass'); $this->assertInstanceOf('stdClass', $this->container->get('invokable')); }
/** * Retrieves a new ServiceManager instance * * @param array|null $configuration * @return ServiceManager */ public function getServiceManager(array $configuration = null) { $configuration = $configuration ?: static::getConfiguration(); $serviceManager = new ServiceManager(new ServiceManagerConfig(isset($configuration['service_manager']) ? $configuration['service_manager'] : array())); $serviceManager->setService('ApplicationConfig', $configuration); $serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); return $serviceManager; }
public function getServiceLocator(array $config = array()) { $config = array('mq_locale' => $config); $serviceLocator = new ServiceManager(); $serviceLocator->setFactory('MQLocale\\Locale\\Detector', 'MQLocale\\Service\\DetectorFactory'); $serviceLocator->setService('config', $config); return $serviceLocator; }
/** * @covers \Zend\Navigation\MvcNavigationFactory */ public function testConstructedFromConfig() { $argument = new Config\Config(array(array('label' => 'Page 1', 'uri' => 'page1.html'), array('label' => 'Page 2', 'uri' => 'page2.html'), array('label' => 'Page 3', 'uri' => 'page3.html'))); $factory = new ConstructedNavigationFactory($argument); $this->serviceManager->setFactory('Navigation', $factory); $container = $this->serviceManager->get('Navigation'); $this->assertEquals(3, $container->count()); }
public function testWillInitializeDiAndDiAbstractFactory() { $serviceManager = new ServiceManager(); $serviceManager->setService('Config', array('di' => array(''))); $serviceManager->setFactory('Di', new DiFactory()); $di = $serviceManager->get('Di'); $this->assertInstanceOf('Zend\\Di\\Di', $di); }
/** * Configure the provided service manager instance with the configuration * in this class. * * Simply adds a factory for the navigation helper, and has it inject the helper * with the service locator instance. * * @param ServiceManager $serviceManager * @return void */ public function configureServiceManager(ServiceManager $serviceManager) { $serviceManager->setFactory('navigation', function (HelperPluginManager $pm) { $helper = new \Zend\View\Helper\Navigation(); $helper->setServiceLocator($pm->getServiceLocator()); return $helper; }); }
public function testCreateWithInitializerObject() { $this->serviceManager->addInitializer(new TestAsset\FooInitializer(array('foo' => 'bar'))); $this->serviceManager->setFactory('foo', function () { return new \stdClass(); }); $obj = $this->serviceManager->get('foo'); $this->assertEquals('bar', $obj->foo); }
protected function createContainer() { $container = new ServiceManager(); $container->setService('array_iterator', new \ArrayIterator(range(1, 5))); $container->setFactory('error', function () { throw new \RuntimeException(); }); return new ZendServiceManagerContainerAdapter($container); }
public function configureServiceManager(\Zend\ServiceManager\ServiceManager $serviceManager) { $serviceManager->setFactory('A', function () { return new A(); }); $serviceManager->setShared('A', false); $serviceManager->setFactory('B', function ($serviceManager) { return new B($serviceManager->get('A')); }); $serviceManager->setShared('B', false); $serviceManager->setFactory('C', function ($serviceManager) { return new C($serviceManager->get('B')); }); $serviceManager->setShared('C', false); $serviceManager->setFactory('D', function ($serviceManager) { return new D($serviceManager->get('C')); }); $serviceManager->setShared('D', false); $serviceManager->setFactory('E', function ($serviceManager) { return new E($serviceManager->get('D')); }); $serviceManager->setShared('E', false); $serviceManager->setFactory('F', function ($serviceManager) { return new F($serviceManager->get('E')); }); $serviceManager->setShared('F', false); $serviceManager->setFactory('G', function ($serviceManager) { return new G($serviceManager->get('F')); }); $serviceManager->setShared('G', false); $serviceManager->setFactory('H', function ($serviceManager) { return new H($serviceManager->get('G')); }); $serviceManager->setShared('H', false); $serviceManager->setFactory('I', function ($serviceManager) { return new I($serviceManager->get('H')); }); $serviceManager->setShared('I', false); $serviceManager->setFactory('J', function ($serviceManager) { return new J($serviceManager->get('I')); }); $serviceManager->setShared('J', false); }
/** * Configure the provided service manager instance with the configuration * in this class. * * @param ServiceManager $serviceManager * @return ServiceManager */ public function configureServiceManager(ServiceManager $serviceManager) { foreach ($this->factories as $name => $factory) { $serviceManager->setFactory($name, $factory); } foreach ($this->aliases as $alias => $target) { $serviceManager->setAlias($alias, $target); } return $serviceManager; }
/** * Configure the provided service manager instance with the configuration * in this class. * * In addition to using each of the internal properties to configure the * service manager, also adds an initializer to inject ServiceManagerAware * classes with the service manager. * * @param ServiceManager $serviceManager * @return void */ public function configureServiceManager(ServiceManager $serviceManager) { foreach ($this->invokables as $name => $service) { $serviceManager->setInvokableClass($name, $service); } $factories = $this->getFactories(); foreach ($factories as $name => $factory) { $serviceManager->setFactory($name, $factory); } }
/** * @expectedException Zend\ServiceManager\Exception\InvalidServiceNameException */ public function testAssignAliasWithExistingServiceName() { $this->serviceManager->setFactory('foo', 'ZendTest\\ServiceManager\\TestAsset\\FooFactory'); $this->serviceManager->setFactory('bar', function ($sm) { return new Bar(array('a')); }); $this->serviceManager->setAllowOverride(false); // should throw an exception because 'foo' already exists in the service manager $this->serviceManager->setAlias('foo', 'bar'); }
public function testCreateService() { $services = new ServiceManager(); $services->setFactory('access', new ServiceFactory()); $services->setService(ConfigServiceFactory::SERVICE, new Config(array('access' => array('authenticateRedirect' => '/foo/bar')))); /* @var $access \SporkTools\Core\Access\AbstractAccess */ $access = $services->get('access'); $this->assertInstanceOf('SporkTools\\Core\\Access\\AbstractAccess', $access); $this->assertEquals('/foo/bar', $access->getAuthenticateRedirect()); $this->assertEquals($services, $access->getServices()); }
public function testFactoryReturnsMongoDbInstance() { $sm = new ServiceManager(); $sm->setFactory('Config', function ($sm) { return array('database' => array('connection' => 'testConnectionString', 'databaseName' => 'testDatabaseName')); }); $f = new Factory(); $f->setMongoClient(new MongoClientMock()); $test = $f->createService($sm); $this->assertEquals('testDatabaseName', $test); }
public function testCanBeRegisteredAsFactory() { $sm = new ServiceManager(); $sm->setService('config', array('ng_money' => array('allowCurrencies' => array('GBP', 'USD'), 'excludeCurrencies' => array('USD')))); $sm->setFactory('currencyList', new CurrencyListFactory()); $service = $sm->get('currencyList'); $this->assertInstanceOf('NetglueMoney\\Service\\CurrencyList', $service); $this->assertTrue($service->isAllowed('GBP')); $this->assertFalse($service->isAllowed('USD')); $this->assertFalse($service->isAllowed('ZAR')); }
/** * Retrieves a new ServiceManager instance * * @param array|null $configuration * @return ServiceManager */ public function getServiceManager(array $configuration = null) { $configuration = $configuration ?: static::getConfiguration(); $serviceManager = new ServiceManager(new ServiceManagerConfig(isset($configuration['service_manager']) ? $configuration['service_manager'] : array())); $serviceManager->setService('ApplicationConfig', $configuration); $serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); /* @var $moduleManager \Zend\ModuleManager\ModuleManagerInterface */ $moduleManager = $serviceManager->get('ModuleManager'); $moduleManager->loadModules(); return $serviceManager; }
/** * Iterates through all services of a service provider, seeding the container. * * For each service it: * * - adds the specified factory, if the service does not already exist. * - adds a delegator factory otherwise. * * @param ServiceProvider $provider * @param ServiceManager $container * @return ServiceManager * @throws RuntimeException if any factory listed is not callable. */ private function marshalServiceProvider(ServiceProvider $provider, ServiceManager $container) { foreach ($provider->getServices() as $service => $factory) { $callable = $this->marshalCallable($provider, $factory, $service); if ($container->has($service)) { $container->addDelegator($service, $this->createDelegator($callable)); continue; } $container->setFactory($service, $this->createFactory($callable)); } return $container; }
/** * @dataProvider duplicateService */ public function testWithAllowOverrideOnRegisteringAServiceDuplicatingAnExistingAliasShouldInvalidateTheAlias($method, $service, $expected, $assertion = 'assertSame') { $this->serviceManager->setAllowOverride(true); $sm = $this->serviceManager; $this->serviceManager->setFactory('http.response', function () use($sm) { return $sm; }); $this->serviceManager->setAlias('response', 'http.response'); $this->assertSame($sm, $this->serviceManager->get('response')); $this->serviceManager->{$method}('response', $service); $this->{$assertion}($expected, $this->serviceManager->get('response')); }
protected function getApplicationServiceManager(array $configuration = array()) { $config = new \Zend\Config\Config(include __DIR__ . '/../../test.config.php'); $config->merge(new \Zend\Config\Config($this->defaultApplicationConfig)); $config->merge(new \Zend\Config\Config($configuration)); $serviceManager = new ServiceManager(new ServiceManagerConfig($config->toArray())); $serviceManager->setService('ApplicationConfig', $config); $serviceManager->setFactory('ServiceListener', 'Zend\\Mvc\\Service\\ServiceListenerFactory'); /* @var $moduleManager \Zend\ModuleManager\ModuleManagerInterface */ $moduleManager = $serviceManager->get('ModuleManager'); $moduleManager->loadModules(); return $serviceManager; }
public function testInitializerWorksWithOtherLocators() { $sm = new ServiceManager(); $sm->setService('config', array()); $sm->setFactory('NetglueMoney\\Service\\CurrencyList', new CurrencyListFactory()); $list = $sm->get('NetglueMoney\\Service\\CurrencyList'); $vm = new \Zend\Validator\ValidatorPluginManager(); $vm->setServiceLocator($sm); $init = new CurrencyListInitializer(); $instance = new ListInititializerTester(); $init->initialize($instance, $vm); $this->assertSame($list, $instance->getCurrencyList()); }