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());
 }
Exemple #4
0
 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);
 }