/** * @dataProvider providerIsValid */ public function testIsValid($value, $expected) { $code = 'error.validation.required'; $message = 'Field is required'; $validator = new RequiredValidator(); $result = $validator->isValid($value); $this->assertEquals($expected, $result, $value); if (!$expected) { $expectedParameters = array('value' => $value); $expectedErrors = array(new ValidationError($code, $message, $expectedParameters)); $resultErrors = $validator->getErrors(); $this->assertEquals($expectedErrors, $resultErrors); } }
/** * Provides a hook for additional form validation * @return null * @throws zibo\library\validation\exception\ValidationException when a validation error occurs */ public function onProfileFormValidate() { $validationException = new ValidationException(); if ($this->isPasswordSubmitted()) { $password = $this->getPassword(); $passwordConfirmation = $this->getPasswordConfirmation(); $validator = new RequiredValidator(); if (!$validator->isValid($password)) { $validationException->addErrors(self::FIELD_PASSWORD, $validator->getErrors()); } if (!$validator->isValid($passwordConfirmation)) { $validationException->addErrors(self::FIELD_PASSWORD_CONFIRM, $validator->getErrors()); } if (!$validationException->hasErrors() && $password != $passwordConfirmation) { $error = new ValidationError(self::TRANSLATION_ERROR_PASSWORD_MATCH, "Your passwords do not match"); $validationException->addErrors(self::FIELD_PASSWORD, array($error)); } } if ($validationException->hasErrors()) { throw $validationException; } }