Пример #1
0
 /**
  * Validate the loaded form with the data
  *
  * @param array $data
  *
  * @return ValidationResult
  */
 public function validate(array $data)
 {
     $this->inputFilter->setData($data);
     $validationErrors = [];
     // Do some validation
     if (!$this->inputFilter->isValid()) {
         foreach ($this->inputFilter->getInvalidInput() as $error) {
             $validationErrors[$error->getName()] = $error->getMessages();
         }
     }
     // Return validation result
     return new ValidationResult($this->inputFilter->getRawValues(), $this->inputFilter->getValues(), $validationErrors);
 }
Пример #2
0
 public function testNestedCollectionWithEmptyData()
 {
     $items_inputfilter = new BaseInputFilter();
     $items_inputfilter->add(new Input(), 'id')->add(new Input(), 'type');
     $items = new CollectionInputFilter();
     $items->setInputFilter($items_inputfilter);
     $groups_inputfilter = new BaseInputFilter();
     $groups_inputfilter->add(new Input(), 'group_class')->add($items, 'items');
     $groups = new CollectionInputFilter();
     $groups->setInputFilter($groups_inputfilter);
     $inputFilter = new BaseInputFilter();
     $inputFilter->add($groups, 'groups');
     $data = array('groups' => array(array('group_class' => 'bar', 'items' => array(array('id' => 100, 'type' => 'item-1'))), array('group_class' => 'biz', 'items' => array()), array('group_class' => 'bar', 'items' => array(array('id' => 200, 'type' => 'item-2'), array('id' => 300, 'type' => 'item-3'), array('id' => 400, 'type' => 'item-4')))));
     $inputFilter->setData($data);
     $inputFilter->isValid();
     $values = $inputFilter->getValues();
     $this->assertEquals($data, $values);
 }
Пример #3
0
 public function testGetRequiredNotEmptyValidationMessages()
 {
     $filter = new InputFilter();
     $foo = new Input();
     $foo->setRequired(true);
     $foo->setAllowEmpty(false);
     $filter->add($foo, 'foo');
     $data = array('foo' => null);
     $filter->setData($data);
     $this->assertFalse($filter->isValid());
     $messages = $filter->getMessages();
     $this->assertArrayHasKey('foo', $messages);
     $this->assertNotEmpty($messages['foo']);
 }
    public function testValidateUseExplodeAndInstanceOf()
    {
        $filter = new InputFilter();

        $input = new Input();
        $input->setRequired(true);

        $input->getValidatorChain()->attach(
            new \Zend\Validator\Explode(
                array(
                    'validator' => new \Zend\Validator\IsInstanceOf(
                        array(
                            'className' => 'Zend\InputFilter\Input'
                        )
                    )
                )
            )
        );

        $filter->add($input, 'example');

        $data = array(
            'example' => array(
                $input
            )
        );

        $filter->setData($data);
        $this->assertTrue($filter->isValid());

    }
Пример #5
0
 /**
  * @group 5638
  */
 public function testPopulateSupportsArrayInputEvenIfDataMissing()
 {
     $arrayInput = $this->getMock('Zend\\InputFilter\\ArrayInput');
     $arrayInput->expects($this->once())->method('setValue')->with(array());
     $filter = new InputFilter();
     $filter->add($arrayInput, 'arrayInput');
     $filter->setData(array('foo' => 'bar'));
 }
Пример #6
0
    public function testValidationMarksInputInvalidWhenRequiredAndAllowEmptyFlagIsFalse()
    {
        $filter = new InputFilter();

        $foo   = new Input();
        $foo->getValidatorChain()->addValidator(new Validator\StringLength(3, 5));
        $foo->setRequired(true);
        $foo->setAllowEmpty(false);

        $bar = new Input();
        $bar->getValidatorChain()->addValidator(new Validator\Digits());
        $bar->setRequired(true);

        $filter->add($foo, '')
               ->add($bar, 'bar');

        $data = array('bar' => 124);
        $filter->setData($data);

        $this->assertFalse($filter->isValid());
    }