public function testCanBeRegisteredAsFactory() { $sm = new ServiceManager(); $sm->setService('config', array('ng_money' => array('allowCurrencies' => array('GBP', 'USD'), 'excludeCurrencies' => array('USD')))); $sm->setFactory('NetglueMoney\\Service\\CurrencyList', new CurrencyListFactory()); $validatorManager = new \Zend\Validator\ValidatorPluginManager(); $validatorManager->setServiceLocator($sm); $sm->setService('ValidatorManager', $validatorManager); $validatorManager->setFactory('mine', new CurrencyCodeValidatorFactory()); $valid = $validatorManager->get('mine'); $this->assertInstanceOf('NetglueMoney\\Validator\\CurrencyCode', $valid); $this->assertInstanceOf('NetglueMoney\\Service\\CurrencyList', $valid->getCurrencyList()); }
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()); }
public function testCanBeRegisteredAsFactory() { $sm = new ServiceManager(); $sm->setService('config', array('ng_money' => array('allowCurrencies' => array('GBP', 'USD'), 'excludeCurrencies' => array('USD')))); $sm->setFactory('NetglueMoney\\Service\\CurrencyList', new CurrencyListFactory()); $list = $sm->get('NetglueMoney\\Service\\CurrencyList'); $formElementManager = new \Zend\Form\FormElementManager(); $formElementManager->setServiceLocator($sm); $validatorManager = new \Zend\Validator\ValidatorPluginManager(); $validatorManager->setServiceLocator($sm); $sm->setService('ValidatorManager', $validatorManager); $formElementManager->setFactory('select', new CurrencySelectFactory()); $select = $formElementManager->get('select'); $this->assertInstanceOf('NetglueMoney\\Form\\Element\\SelectCurrency', $select); $this->assertInstanceOf('NetglueMoney\\Service\\CurrencyList', $select->getCurrencyList()); $this->assertInstanceOf('NetglueMoney\\Validator\\CurrencyCode', $select->getValidator()); }
public function testCanCreateFormFromConcreteClassAndSpecifyCustomValidatorByName() { $validatorManager = new \Zend\Validator\ValidatorPluginManager(); $validatorManager->setInvokableClass('baz', 'ZendTest\\Validator\\TestAsset\\ConcreteValidator'); $defaultValidatorChain = new \Zend\Validator\ValidatorChain(); $defaultValidatorChain->setPluginManager($validatorManager); $inputFilterFactory = new \Zend\InputFilter\Factory(); $inputFilterFactory->setDefaultValidatorChain($defaultValidatorChain); $factory = new FormFactory(); $factory->setInputFilterFactory($inputFilterFactory); $form = $factory->createForm(array('name' => 'foo', 'factory' => $factory, 'input_filter' => array('bar' => array('name' => 'bar', 'required' => true, 'validators' => array(array('name' => 'baz')))))); $this->assertInstanceOf('Zend\\Form\\FormInterface', $form); $inputFilter = $form->getInputFilter(); $this->assertInstanceOf('Zend\\InputFilter\\InputFilterInterface', $inputFilter); $input = $inputFilter->get('bar'); $this->assertInstanceOf('Zend\\InputFilter\\Input', $input); $validatorChain = $input->getValidatorChain(); $this->assertInstanceOf('Zend\\Validator\\ValidatorChain', $validatorChain); $validatorArray = $validatorChain->getValidators(); $found = false; foreach ($validatorArray as $validator) { $validatorInstance = $validator['instance']; $this->assertInstanceOf('Zend\\Validator\\ValidatorInterface', $validatorInstance); if ($validatorInstance instanceof \ZendTest\Validator\TestAsset\ConcreteValidator) { $found = true; break; } } $this->assertTrue($found); }