Пример #1
0
 /**
  * @dataProvider dataFallbackValue
  */
 public function testFallbackValue($fallbackValue)
 {
     $this->input->setFallbackValue($fallbackValue);
     $validator = new Validator\Date();
     $this->input->getValidatorChain()->attach($validator);
     $this->input->setValue('123');
     // not a date
     $this->assertTrue($this->input->isValid());
     $this->assertEmpty($this->input->getMessages());
     $this->assertSame($fallbackValue, $this->input->getValue());
 }
Пример #2
0
 public function testNotEmptyValidatorAddedWhenIsValidIsCalled()
 {
     $this->assertTrue($this->input->isRequired());
     $this->input->setValue('');
     $validatorChain = $this->input->getValidatorChain();
     $this->assertEquals(0, count($validatorChain->getValidators()));
     $this->assertFalse($this->input->isValid());
     $messages = $this->input->getMessages();
     $this->assertArrayHasKey('isEmpty', $messages);
     $this->assertEquals(1, count($validatorChain->getValidators()));
     // Assert that NotEmpty validator wasn't added again
     $this->assertFalse($this->input->isValid());
     $this->assertEquals(1, count($validatorChain->getValidators()));
 }
 /**
  * buildValidatorMessages
  *
  * @param                $fieldName
  * @param Input          $input
  *
  * @return void
  */
 protected function buildValidatorMessages($fieldName, Input $input)
 {
     $validatorChain = $input->getValidatorChain();
     $validators = $validatorChain->getValidators();
     // We get the input messages because input does validations outside of the validators
     $allMessages = $input->getMessages();
     foreach ($validators as $fkey => $validatorData) {
         /** @var \Zend\Validator\AbstractValidator $validator */
         $validator = $validatorData['instance'];
         $params = [];
         if ($validator instanceof MessageParam) {
             $params = $validator->getMessageParams();
         }
         try {
             $messagesParams = $validator->getOption('messageParams');
             $params = array_merge($params, $messagesParams);
         } catch (\Exception $exception) {
             // Do nothing
         }
         $inputMessages = $validator->getMessages();
         // Remove the messages from $allMessages as we get them from the validators
         $allMessages = array_diff($allMessages, $inputMessages);
         $this->buildMessageResponseModels($fieldName, $inputMessages, $params);
     }
     $params = [];
     if ($input instanceof MessageParam) {
         $params = $input->getMessageParams();
     }
     // get any remaining messages that did not come from validators
     $this->buildMessageResponseModels($fieldName, $allMessages, $params);
 }
Пример #4
0
 public function testNotEmptyValidatorAddedWhenIsValidIsCalled()
 {
     $input = new Input('foo');
     $this->assertTrue($input->isRequired());
     $input->setValue('');
     $this->assertFalse($input->isValid());
     $messages = $input->getMessages();
     $this->assertArrayHasKey('isEmpty', $messages);
 }