コード例 #1
0
ファイル: FactoryTest.php プロジェクト: pnaq57/zf2demo
 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);
 }