コード例 #1
0
 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();
 }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
 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);
 }
コード例 #4
0
 /**
  * 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;
 }
コード例 #5
0
 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);
 }
コード例 #6
0
 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());
 }
コード例 #7
0
 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');
 }
コード例 #8
0
 /**
  * @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));
 }
コード例 #9
0
ファイル: TestCase.php プロジェクト: evertonteotonio/erpphp
 /**
  * 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();
 }
コード例 #10
0
ファイル: ShortenUrlTest.php プロジェクト: milqmedia/mq-util
 public function getServiceLocator(array $config = array())
 {
     $serviceLocator = new ServiceManager();
     $serviceLocator->setFactory('MQUtil\\Service\\ShortUrl', 'MQUtil\\Service\\ShortUrlFactory');
     $serviceLocator->setService('config', $config);
     return $serviceLocator;
 }
コード例 #11
0
 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'));
 }
コード例 #12
0
 /**
  * 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;
 }
コード例 #13
0
 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;
 }
コード例 #14
0
 /**
  * @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());
 }
コード例 #15
0
 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);
 }
コード例 #16
0
ファイル: HelperConfig.php プロジェクト: Baft/Zend-Form
 /**
  * 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;
     });
 }
コード例 #17
0
ファイル: ServiceManagerTest.php プロジェクト: rikaix/zf2
 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);
 }
コード例 #19
0
 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);
 }
コード例 #20
0
ファイル: HelperConfig.php プロジェクト: axelmdev/ecommerce
 /**
  * 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;
 }
コード例 #21
0
 /**
  * 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);
     }
 }
コード例 #22
0
ファイル: ServiceManagerTest.php プロジェクト: Rovak/zf2
 /**
  * @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');
 }
コード例 #23
0
 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());
 }
コード例 #24
0
 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);
 }
コード例 #25
0
 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'));
 }
コード例 #26
0
 /**
  * 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;
 }
コード例 #27
0
 /**
  * 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;
 }
コード例 #28
0
 /**
  * @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'));
 }
コード例 #29
0
 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;
 }
コード例 #30
0
 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());
 }