public function testEmptyCollectionIsNotValidIfRequired()
 {
     $data = array();
     $this->filter->setInputFilter($this->getBaseInputFilter());
     $this->filter->setData($data);
     $this->filter->setIsRequired(true);
     $this->assertFalse($this->filter->isValid());
 }
 public function testNonRequiredFieldsAreValidated()
 {
     $invalidCollectionData = array(array('foo' => ' bazbattoolong ', 'bar' => '12345', 'baz' => 'baztoolong', 'nest' => array('foo' => ' bazbat ', 'bar' => '12345', 'baz' => '')));
     $this->filter->setInputFilter($this->getBaseInputFilter());
     $this->filter->setData($invalidCollectionData);
     $this->assertFalse($this->filter->isValid());
     $this->assertCount(2, current($this->filter->getInvalidInput()));
     $this->assertArrayHasKey('baz', current($this->filter->getMessages()));
 }
 /**
  * Set data to use when validating and filtering
  *
  * @param  array|Traversable $data
  * @throws Exception\InvalidArgumentException
  * @return InputFilterInterface
  */
 public function setData($data)
 {
     if (!is_array($data) && !$data instanceof Traversable) {
         throw new InvalidArgumentException(sprintf('%s expects an array or Traversable argument; received %s', __METHOD__, is_object($data) ? get_class($data) : gettype($data)));
     }
     if (is_object($data) && !$data instanceof ArrayAccess) {
         $data = ArrayUtils::iteratorToArray($data);
     }
     $this->collectionData = $data;
     return parent::setData($data);
 }