protected function setUp() { $serviceManager = new ServiceManager(); $serviceLocator = new FormElementManager(); $serviceLocator->setServiceLocator($serviceManager); $pAccounts = $this->getMock('Balance\\Model\\Persistence\\ValueOptionsInterface'); $pAccounts->method('getValueOptions')->will($this->returnValue([])); $serviceManager->setService('Balance\\Model\\Persistence\\Accounts', $pAccounts); $serviceLocator->setService('Currency', new CurrencyElement()); $view = new View(); $view->getEventManager()->attach(ViewEvent::EVENT_RENDERER, function () { $renderer = (new PhpRenderer())->setResolver(new TemplateMapResolver(['layout/page-header' => './module/Balance/view/layout/page-header.phtml', 'balance/postings/edit' => './module/Balance/view/balance/postings/edit.phtml', 'tests/postings/before-entries-a' => './module/Balance/test/BalanceTest/View/Scripts/postings-before-entries-a.phtml', 'tests/postings/before-entries-b' => './module/Balance/test/BalanceTest/View/Scripts/postings-before-entries-b.phtml'])); $helpers = $renderer->getHelperPluginManager(); $helpers->get('BasePath')->setBasePath('/'); $match = $this->getMockBuilder('Zend\\Mvc\\Router\\RouteMatch')->disableOriginalConstructor()->getMock(); $match->method('getMatchedRouteName')->will($this->returnValue('default')); $helpers->get('Url')->setRouter($this->getMock('Zend\\Mvc\\Router\\RouteStackInterface'))->setRouteMatch($match); $configs = new HelperConfig(); $configs->configureServiceManager($helpers); return $renderer; }); $form = new PostingsForm(); $form->setServiceLocator($serviceLocator); $model = (new ViewModel())->setTemplate('balance/postings/edit')->setVariable('form', $form)->setOption('has_parent', true); $form->init(); $this->view = $view; $this->model = $model; }
/** * __invoke * * @param FormElementManager $formElementManager The form element manager. * @param string $name The name of the form to create. * @param string $requestedName The requested name of the form to create. * * @return Login */ public function __invoke(FormElementManager $formElementManager, $name, $requestedName) { /** @var ServiceManager $serviceManager */ $serviceManager = $formElementManager->getServiceLocator(); /** @var AuthenticationOptions $authenticationOptions */ $authenticationOptions = $serviceManager->get('ArpAuth\\Service\\AuthenticationOptions'); return new Login($authenticationOptions, 'login'); }
public function testCanCreateService() { $serviceManager = new ServiceManager(); $serviceManager->setService('UghAuthentication\\InputFilter\\Login', new InputFilter()); $formServiceManager = new FormElementManager(); $formServiceManager->setServiceLocator($serviceManager); $factory = new LoginFactory(); $inputFilter = $factory->createService($formServiceManager); $this->assertInstanceOf('UghAuthentication\\Form\\Login', $inputFilter); }
public function testFactory() { $serviceManager = new ServiceManager(); $serviceManager->setService('zfcuser_module_options', new ModuleOptions()); $formElementManager = new FormElementManager(); $formElementManager->setServiceLocator($serviceManager); $serviceManager->setService('FormElementManager', $formElementManager); $factory = new LoginFactory(); $this->assertInstanceOf('ZfcUser\\Form\\Login', $factory->createService($formElementManager)); }
/** * @param FormElementManager $formElementManager * * @return CurrencySelect */ public function __invoke(FormElementManager $formElementManager) { $serviceManager = $formElementManager->getServiceLocator(); $config = $serviceManager->get('Config'); if (!isset($config['money']['currencies'])) { throw new InvalidArgumentException('Couldn\'t find currencies configuration.'); } $select = new CurrencySelect(); $select->setValueOptions($config['money']['currencies']); return $select; }
public function testWillInstantiateFormFromDiAbstractFactory() { //without DiAbstractFactory $standaloneFormElementManager = new FormElementManager(); $this->assertFalse($standaloneFormElementManager->has('ZendTest\\Mvc\\Service\\TestAsset\\CustomForm')); //with DiAbstractFactory $formElementManager = $this->services->get('FormElementManager'); $this->assertTrue($formElementManager->has('ZendTest\\Mvc\\Service\\TestAsset\\CustomForm')); $form = $formElementManager->get('ZendTest\\Mvc\\Service\\TestAsset\\CustomForm'); $this->assertInstanceof('ZendTest\\Mvc\\Service\\TestAsset\\CustomForm', $form); }
/** * @param string $name * @param array $options * @return \Wizard\Step\StepInterface */ public function create($name, array $options = []) { $step = $this->stepPluginManager->get($name); if (isset($options['form'])) { $form = $this->formPluginManager->get($options['form']); $step->setForm($form); unset($options['form']); } $step->setName($name); $step->getOptions()->setFromArray($options); return $step; }
public function testFactory() { $serviceManager = new ServiceManager(); $serviceManager->setService('zfcuser_module_options', new ModuleOptions()); $serviceManager->setService('zfcuser_user_mapper', new UserMapper()); $serviceManager->setService('zfcuser_register_form_hydrator', new ClassMethods()); $formElementManager = new FormElementManager(); $formElementManager->setServiceLocator($serviceManager); $serviceManager->setService('FormElementManager', $formElementManager); $factory = new RegisterFactory(); $this->assertInstanceOf('ZfcUser\\Form\\Register', $factory->createService($formElementManager)); }
public function testSetLocaleFromConfigWithServiceManagerSubclass() { $default = new DefaultLocale(); $default->setLocale('en_US'); $sm = new ServiceManager(); $sm->setService('config', array('locale' => 'uk_UA')); $fm = new FormElementManager(); $fm->setServiceLocator($sm); $default->setLocaleFromConfig($fm); $this->assertSame('uk_UA', $default->getLocale()); return $default; }
public function setUp() { /** @var FormElementManager $formElementManager */ $formElementManager = $this->getMock('Zend\\Mvc\\Controller\\ControllerManager'); $this->formElementManager = $formElementManager; /** @var ServiceLocatorInterface $serviceLocator */ $serviceLocator = $this->getMock('Zend\\ServiceManager\\ServiceLocatorInterface'); $this->serviceLocator = $serviceLocator; $this->formElementManager->expects($this->any())->method('getServiceLocator')->willReturn($serviceLocator); $factory = new CaptchaFormFactory(); $this->factory = $factory; }
/** * @dataProvider provideCaptchaAdapterKeys */ public function testCreateService($captchaAdapterKey) { $config = (include __DIR__ . '/../../../../../config/captcha.config.php'); $this->serviceLocator->get('Config')->willReturn($config); $application = $this->prophesize('Zend\\Mvc\\Application'); $mvcEvent = $this->prophesize('Zend\\Mvc\\MvcEvent'); $application->getMvcEvent()->willReturn($mvcEvent); $request = $this->prophesize('Zend\\Http\\PhpEnvironment\\Request'); $request->getQuery('captcha_adapter', 0)->willReturn($captchaAdapterKey); $mvcEvent->getRequest()->willReturn($request); $this->serviceLocator->get('Application')->willReturn($application); $result = $this->factory->createService($this->formElementManager->reveal()); $this->assertInstanceOf('LearnZF2Captcha\\Form\\CaptchaForm', $result); }
public function testCanCreateService() { $factory = new LoginControllerFactory(); $loginFormMock = $this->getMock('Zend\\Form\\FormInterface'); $formElementManager = new FormElementManager(); $formElementManager->setService('UghAuthentication\\Form\\Login', $loginFormMock); $moduleOptions = new ModuleOptions(array('login_redirect_route' => 'admin')); $serviceManager = new ServiceManager(); $serviceManager->setService('FormElementManager', $formElementManager); $serviceManager->setService('UghAuthentication\\Options\\ModuleOptions', $moduleOptions); $controllerServiceManager = new ControllerManager(); $controllerServiceManager->setServiceLocator($serviceManager); $loginController = $factory->createService($controllerServiceManager); $this->assertInstanceOf('UghAuthentication\\Controller\\LoginController', $loginController); }
/** * Gets a specific formular. * * This formular will be created upon the first retrievement. * If created, the formular gets passed the formular parameters set in this container. * * @param string $key * @return null|\Core\Form\ContainerInterface|\Zend\Form\FormInterface */ public function getForm($key) { if (false !== strpos($key, '.')) { list($key, $childKey) = explode('.', $key, 2); $container = $this->getForm($key); return $container->getForm($childKey); } if (!isset($this->forms[$key])) { return null; } $form = $this->forms[$key]; if (isset($form['__instance__']) && is_object($form['__instance__'])) { return $form['__instance__']; } $options = isset($form['options']) ? $form['options'] : array(); if (!isset($options['use_post_array'])) { $options['use_post_array'] = true; } if (!isset($options['use_files_array'])) { $options['use_files_array'] = false; } $formInstance = $this->formElementManager->get($form['type'], $options); $formName = (($name = $this->getName()) ? $name . '.' : '') . $form['name']; $formInstance->setName($formName)->setAttribute('action', '?form=' . $formName); if (isset($form['label'])) { $formInstance->setLabel($form['label']); } if ($entity = $this->getEntity()) { $this->mapEntity($formInstance, isset($form['property']) ? $form['property'] : $key, $entity); } $formInstance->setParams($this->getParams()); $this->forms[$key]['__instance__'] = $formInstance; $this->forms[$key]['options'] = $options; return $formInstance; }
public function testInitWithoutPersistence() { $this->setExpectedException('Balance\\Form\\FormException', 'Invalid Model'); $form = new Postings(); // Localizador de Serviços Superior $serviceLocator = new ServiceManager(); // Gerenciador de Formulários $formElementManager = new FormElementManager(); // Dependência $formElementManager->setServiceLocator($serviceLocator); // Configurar Localizador de Serviços Superior $form->setServiceLocator($formElementManager); // Camada de Modelo de Contas $serviceLocator->setService('Balance\\Model\\Persistence\\Accounts', $this->getMock('Balance\\Model\\Persistence\\PersistenceInterface')); $form->init(); }
/** * Standard preferences handling via preferences form subclass * * @param string $name Name of the form service * @return \Zend\View\Model\ViewModel|\Zend\Http\Response View model for "form.php" template or redirect response */ protected function _useForm($name) { $form = $this->_formManager->get($name); if ($this->getRequest()->isPost()) { $form->setData($this->params()->fromPost()); if ($form->isValid()) { // Flatten Preferences array, i.e. incorporate fields from a // fieldset into a single array. $this->_config->setOptions(new \RecursiveIteratorIterator(new \RecursiveArrayIterator($form->getData()['Preferences']))); return $this->redirectToRoute('preferences', $this->getEvent()->getRouteMatch()->getParams()['action']); } } else { $preferences = array(); foreach ($form->get('Preferences') as $element) { $name = $element->getName(); if ($element instanceof \Zend\Form\Fieldset) { foreach ($element as $subElement) { $subElementName = $subElement->getName(); $preferences[$name][$subElementName] = $this->_config->{$subElementName}; } } else { $preferences[$name] = $this->_config->{$name}; } } $form->setData(array('Preferences' => $preferences)); } return $this->printForm($form); }
public function testFetchWithoutDatetime() { $model = new Balance(); $formElementManager = new FormElementManager(); $inputFilterManager = new InputFilterPluginManager(); $formElementManager->setService('datetime', new DateTime()); $serviceLocator = new ServiceManager(); $serviceLocator->setService('FormElementManager', $formElementManager)->setService('InputFilterManager', $inputFilterManager); $model->setServiceLocator($serviceLocator); $persistence = $this->getMock('Balance\\Model\\Persistence\\PersistenceInterface'); $persistence->expects($this->atLeastOnce())->method('fetch')->will($this->returnCallback(function ($params) { return isset($params['datetime']) ? array(array('one' => 'two')) : array(); })); $serviceLocator->setService('Balance\\Model\\Persistence\\Balance', $persistence); $result = $model->fetch(new Parameters()); $this->assertEquals(array(array('one' => 'two')), $result); }
/** * @group 6132 */ public function testSharedFormElementsAreNotInitializedMultipleTimes() { $element = $this->getMock('Zend\\Form\\Element', array('init')); $element->expects($this->once())->method('init'); $this->manager->setFactory('sharedElement', function () use($element) { return $element; }); $this->manager->setShared('sharedElement', true); $this->manager->get('sharedElement'); $this->manager->get('sharedElement'); }
/** * Gets a specific formular. * * This formular will be created upon the first retrievement. * If created, the formular gets passed the formular parameters set in this container. * * @param string $key * @param bool $asInstance if set to false, the specification array is returned, and no instance created. * * @return null|\Core\Form\Container|\Zend\Form\FormInterface * @since 0,25 added $asInstance parameter */ public function getForm($key, $asInstance = true) { if (false !== strpos($key, '.')) { list($key, $childKey) = explode('.', $key, 2); $container = $this->getForm($key); return $container->getForm($childKey); } if (!isset($this->forms[$key])) { return null; } $form = $this->forms[$key]; if (!$asInstance) { return $form; } if (isset($form['__instance__']) && is_object($form['__instance__'])) { return $form['__instance__']; } $options = isset($form['options']) ? $form['options'] : array(); if (!isset($options['name'])) { $options['name'] = isset($form['name']) ? $form['name'] : $key; } if (!isset($options['use_post_array'])) { $options['use_post_array'] = true; } if (!isset($options['use_files_array'])) { $options['use_files_array'] = false; } $formInstance = $this->formElementManager->get($form['type'], $options); $formInstance->setParent($this); if (isset($form['attributes'])) { $formInstance->setAttributes($form['attributes']); } $formName = $this->formatAction($form['name']); $formInstance->setName($formName); $formAction = $formInstance->getAttribute('action'); if (empty($formAction)) { $formInstance->setAttribute('action', '?form=' . $formName); } if (isset($form['label'])) { $formInstance->setLabel($form['label']); } if (isset($form['disable_elements']) && $formInstance instanceof DisableElementsCapableInterface && $formInstance->isDisableElementsCapable()) { $formInstance->disableElements($form['disable_elements']); } $entity = $this->getEntity($form['entity']); if ($entity) { $this->mapEntity($formInstance, $entity, isset($form['property']) ? $form['property'] : $key); } $formInstance->setParams($this->getParams()); $this->forms[$key]['__instance__'] = $formInstance; $this->forms[$key]['options'] = $options; return $formInstance; }
public function testRegistryValuesActionPostValid() { $postData = array('key' => 'value'); $form = $this->createMock('Console\\Form\\ManageRegistryValues'); $form->expects($this->once())->method('process'); $form->expects($this->once())->method('setData')->with($postData); $form->expects($this->once())->method('isValid')->will($this->returnValue(true)); $form->expects($this->never())->method('render'); $this->_formManager->expects($this->once())->method('get')->with('Console\\Form\\ManageRegistryValues')->will($this->returnValue($form)); $this->dispatch('/console/preferences/registryvalues/', 'POST', $postData); $this->assertRedirectTo('/console/preferences/registryvalues/'); }
/** * Fetches a text search form. * * If only the service for an element fieldset ist passed, * it will fetch a "Core/TextSearch" form and pass the * elements fieldset along. * * @param string|array $elementsFieldset * @param string|null $buttonsFieldset * * @return \Core\Form\TextSearchForm */ public function get($elementsFieldset, $buttonsFieldset = null) { if (is_array($elementsFieldset)) { $elementsOptions = isset($elementsFieldset[1]) ? $elementsFieldset[1] : []; $elementsFieldset = $elementsFieldset[0]; } else { $elementsOptions = []; } $form = $this->formElementManager->get($elementsFieldset, $elementsOptions); /** @noinspection PhpUndefinedMethodInspection */ $params = $this->getController()->getRequest()->getQuery()->toArray(); if (!$form instanceof TextSearchForm) { $options = ['elements_fieldset' => $form]; if (null !== $buttonsFieldset) { $options['buttons_fieldset'] = $buttonsFieldset; } $form = $this->formElementManager->get('Core/TextSearch', $options); } $form->setSearchParams($params); return $form; }
public function setUp() { $services = $this->services = new ServiceManager(); $elements = new FormElementManager(); $filters = new FilterPluginManager(); $hydrators = new HydratorPluginManager(); $inputFilters = new InputFilterPluginManager(); $validators = new ValidatorPluginManager(); $elements->setServiceLocator($services); $filters->setServiceLocator($services); $hydrators->setServiceLocator($services); $inputFilters->setServiceLocator($services); $validators->setServiceLocator($services); $services->setService('FilterManager', $filters); $services->setService('FormElementManager', $elements); $services->setService('HydratorManager', $hydrators); $services->setService('InputFilterManager', $inputFilters); $services->setService('ValidatorManager', $validators); $inputFilters->setInvokableClass('FooInputFilter', 'Zend\\InputFilter\\InputFilter'); $forms = $this->forms = new FormAbstractServiceFactory(); $services->addAbstractFactory($forms); }
/** * Generic test for the constructor * * @return null * @covers \RcmAdmin\Factory\NewPageFormFactory */ public function testCreateService() { $mockCurrentSite = $this->getMockBuilder('\\Rcm\\Entity\\Site')->disableOriginalConstructor()->getMock(); $mockEntityManager = $this->getMockBuilder('\\Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $mockPageRepo = $this->getMockBuilder('\\Rcm\\Repository\\Page')->disableOriginalConstructor()->getMock(); $mockEntityManager->expects($this->any())->method('getRepository')->will($this->returnValue($mockPageRepo)); $mockLayoutManager = $this->getMockBuilder('\\Rcm\\Service\\LayoutManager')->disableOriginalConstructor()->getMock(); $mockMainLayoutValidator = $this->getMockBuilder('\\Rcm\\Validator\\MainLayout')->disableOriginalConstructor()->getMock(); $mockPageValidator = $this->getMockBuilder('\\Rcm\\Validator\\Page')->disableOriginalConstructor()->getMock(); $mockPageTemplateValidator = $this->getMockBuilder('\\Rcm\\Validator\\PageTemplate')->disableOriginalConstructor()->getMock(); $serviceManager = new ServiceManager(); $serviceManager->setService('Rcm\\Validator\\PageTemplate', $mockPageTemplateValidator); $serviceManager->setService('Rcm\\Validator\\Page', $mockPageValidator); $serviceManager->setService('Rcm\\Validator\\MainLayout', $mockMainLayoutValidator); $serviceManager->setService('Rcm\\Service\\CurrentSite', $mockCurrentSite); $serviceManager->setService('Doctrine\\ORM\\EntityManager', $mockEntityManager); $serviceManager->setService('Rcm\\Service\\LayoutManager', $mockLayoutManager); $formManager = new FormElementManager(); $formManager->setServiceLocator($serviceManager); $factory = new NewPageFormFactory(); $object = $factory->createService($formManager); $this->assertTrue($object instanceof NewPageForm); }
public function testImportActionPostValidSuccess() { $fileSpec = array('tmp_name' => 'uploaded_file'); $this->getRequest()->getFiles()->set('File', $fileSpec); $postData = array('key' => 'value'); $form = $this->_formManager->get('Console\\Form\\Import'); $form->expects($this->once())->method('isValid')->will($this->returnValue(true)); $form->expects($this->once())->method('setData')->with(array('File' => $fileSpec, 'key' => 'value')); $form->expects($this->once())->method('getData')->will($this->returnValue(array('File' => $fileSpec))); $form->expects($this->never())->method('render'); $response = new \Zend\Http\Response(); $response->setStatusCode(200); $this->_inventoryUploader->expects($this->once())->method('uploadFile')->with('uploaded_file')->will($this->returnValue($response)); $this->dispatch('/console/client/import/', 'POST', $postData); $this->assertRedirectTo('/console/client/index/'); }
/** * Import client via file upload * * @return array|\Zend\Http\Response array(form [, uri, response]) or redirect response */ public function importAction() { $form = $this->_formManager->get('Console\\Form\\Import'); $vars = array('form' => $form); if ($this->getRequest()->isPost()) { $form->setData($this->params()->fromFiles() + $this->params()->fromPost()); if ($form->isValid()) { $data = $form->getData(); $response = $this->_inventoryUploader->uploadFile($data['File']['tmp_name']); if ($response->isSuccess()) { return $this->redirectToRoute('client', 'index'); } else { $vars['response'] = $response; $vars['uri'] = $this->_config->communicationServerUri; } } } return $vars; }
public function testLoadingInvalidElementRaisesException() { $this->manager->setInvokableClass('test', get_class($this)); $this->setExpectedException('Zend\\Form\\Exception\\InvalidElementException'); $this->manager->get('test'); }
/** * @param $className * * @return object * @throws \Exception */ private function buildGraph($className) { if ($this->enableObjectGraphDebug) { echo 'Building an object from the class: ' . $className . "<br />"; } try { $reflection = new \ReflectionClass($className); } catch (\Exception $e) { if ($this->enableObjectGraphDebug) { echo 'Could not build a reflection class for ' . $className . "<br />"; } return false; } if (!$reflection->getConstructor()) { if ($this->enableObjectGraphDebug) { echo 'We have build an object for class ' . $className . "<br />"; } return new $className(); } $constructorParameters = $reflection->getConstructor()->getParameters(); $dependencies = []; foreach ($constructorParameters as $param) { try { $paramClassName = $param->getClass(); } catch (\Exception $e) { throw new \Exception('Could not create dependency class "' . $param->getName() . '" for the currently building class: ' . $className); } if (!$paramClassName) { switch (true) { case $this->controllerPluginManager->has($param->name, false): if ($this->enableObjectGraphDebug) { echo 'The parameter "' . $param->name . '" exists in Controller Manager' . "<br />"; } $dependencies[] = $this->controllerPluginManager->get($param->name); break; case $this->serviceManager->has($param->name, false): if ($this->enableObjectGraphDebug) { echo 'The parameter "' . $param->name . '" exists in Service Manager' . "<br />"; } $dependencies[] = $this->serviceManager->get($param->name); break; default: if ($param->isOptional()) { $dependencies[] = $param->getDefaultValue(); } else { if ($this->enableObjectGraphDebug) { echo 'The parameter "' . $param->name . '" does not exist in (any) Service Manager' . "<br />"; } echo 'The parameter "' . $param->name . '" does not exist in the Service Manager' . "<br />"; die; } break; } } else { if ($this->enableObjectGraphDebug) { echo 'Does the SM have an object for ' . $param->getClass()->name . "<br />"; } switch (true) { case $this->controllerPluginManager->has($param->getClass()->name, false, false): if ($this->enableObjectGraphDebug) { echo 'It does in the Controller Plugin Manager' . "<br />"; } $dependencies[] = $this->controllerPluginManager->get($param->getClass()->name); break; case $this->viewHelperManager->has($param->getClass()->name, false, false): if ($this->enableObjectGraphDebug) { echo 'It does in the View Helper Manager' . "<br />"; } $dependencies[] = $this->viewHelperManager->get($param->getClass()->name); break; case $this->formElementManager->has($param->getClass()->name, false, false): if ($this->enableObjectGraphDebug) { echo 'It does in the Form Element Manager' . "<br />"; } $dependencies[] = $this->formElementManager->get($param->getClass()->name); break; case $this->serviceManager->has($param->getClass()->name, false, false): if ($this->enableObjectGraphDebug) { echo 'It does in the Service Manager' . "<br />"; } $name = $param->getClass()->name; if ($this->serviceManager->hasAlias($name)) { $config = $this->serviceManager->get('config')['service_manager']; $name = $config['aliases'][$name]; } $dependencies[] = $this->serviceManager->get($name); break; default: if ($this->enableObjectGraphDebug) { echo 'No it It does not have an object' . "<br />"; } if ($param->getClass()->isInterface()) { continue; } $dependencies[] = $this->buildGraph($param->getClass()->name); break; } } } $instance = $reflection->newInstanceArgs($dependencies); if (in_array($className, $this->serviceManager->get('config')['service_manager']['shared'])) { $this->serviceManager->setAllowOverride(true); $this->serviceManager->setService($className, $instance); $this->serviceManager->setAllowOverride(false); } if ($this->enableObjectGraphDebug) { echo 'We have build an object for class ' . $className . "<br />"; } if ($this->enableObjectGraphDebug) { echo ' ==== ' . "<br />"; } return $instance; }
public function setUp() { $elementManager = new FormElementManager(); $elementManager->setServiceLocator(new ServiceManager()); $this->factory = new FormFactory($elementManager); }