diff --git a/README.md b/README.md index 3cdad37..6ee687f 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -# CakePHP4 Messages Validator plugin +# CakePHP5 Messages Validator plugin -CakePHP4 Validator that set the validation message +CakePHP5 Validator that set the validation message ## Requirements The master branch has the following requirements: -* CakePHP >4.0.0 -* PHP 7.2 or greater +* CakePHP ^5.0.1 +* PHP 8.1 or greater ## Installation diff --git a/bin/createValidator b/bin/createValidator index 0c64e71..d5fcda1 100644 --- a/bin/createValidator +++ b/bin/createValidator @@ -72,7 +72,7 @@ for method in $VALIDATOR_METHODS; do fi echo ' /**' - echo ' * {@inheritDoc}' + echo ' * @inheritDoc' echo ' */' echo ' '$method echo ' {' diff --git a/composer.json b/composer.json index 08a4597..acf8a29 100644 --- a/composer.json +++ b/composer.json @@ -1,14 +1,14 @@ { "name": "tyrellsys/cakephp-validator", - "description": "CakePHP4 Validator that set the validation message", + "description": "CakePHP5 Validator that set the validation message", "type": "cakephp-plugin", "require": { - "php": ">=7.2", - "cakephp/cakephp": "^4.0" + "php": ">=8.1", + "cakephp/cakephp": "^5.0.1" }, "require-dev": { - "cakephp/cakephp-codesniffer": "~4.0.0", - "phpunit/phpunit": "^8.5" + "cakephp/cakephp-codesniffer": "^5.0", + "phpunit/phpunit": "^10.1.0" }, "autoload": { "psr-4": { @@ -28,6 +28,11 @@ ], "test": "phpunit", "cs-check": "phpcs --colors -p src/ tests/", - "cs-fix": "phpcs --colors -p src/ tests/" + "cs-fix": "phpcbf --colors -p src/ tests/" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } } } diff --git a/src/Validation/Validator.php b/src/Validation/Validator.php index ba5bfd6..91be34d 100755 --- a/src/Validation/Validator.php +++ b/src/Validation/Validator.php @@ -4,717 +4,799 @@ namespace Tyrellsys\CakePHPValidator\Validation; use Cake\Validation\Validator as CakeValidator; +use Closure; class Validator extends CakeValidator { - /** - * {@inheritDoc} - */ - public function requirePresence($field, $mode = true, ?string $message = null) - { - $message = $message ?? __d('validation', 'requirePresence'); - - return parent::requirePresence($field, $mode, $message); - } - - /** - * {@inheritDoc} - */ - public function allowEmptyString(string $field, ?string $message = null, $when = true) - { - $message = $message ?? __d('validation', 'allowEmptyString'); - - return parent::allowEmptyString($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEmptyString(string $field, ?string $message = null, $when = false) - { - $message = $message ?? __d('validation', 'notEmptyString'); - - return parent::notEmptyString($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function allowEmptyArray(string $field, ?string $message = null, $when = true) - { - $message = $message ?? __d('validation', 'allowEmptyArray'); - - return parent::allowEmptyArray($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEmptyArray(string $field, ?string $message = null, $when = false) - { - $message = $message ?? __d('validation', 'notEmptyArray'); - - return parent::notEmptyArray($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function allowEmptyFile(string $field, ?string $message = null, $when = true) - { - $message = $message ?? __d('validation', 'allowEmptyFile'); - - return parent::allowEmptyFile($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEmptyFile(string $field, ?string $message = null, $when = false) - { - $message = $message ?? __d('validation', 'notEmptyFile'); - - return parent::notEmptyFile($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function allowEmptyDate(string $field, ?string $message = null, $when = true) - { - $message = $message ?? __d('validation', 'allowEmptyDate'); - - return parent::allowEmptyDate($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEmptyDate(string $field, ?string $message = null, $when = false) - { - $message = $message ?? __d('validation', 'notEmptyDate'); - - return parent::notEmptyDate($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function allowEmptyTime(string $field, ?string $message = null, $when = true) - { - $message = $message ?? __d('validation', 'allowEmptyTime'); - - return parent::allowEmptyTime($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEmptyTime(string $field, ?string $message = null, $when = false) - { - $message = $message ?? __d('validation', 'notEmptyTime'); - - return parent::notEmptyTime($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function allowEmptyDateTime(string $field, ?string $message = null, $when = true) - { - $message = $message ?? __d('validation', 'allowEmptyDateTime'); - - return parent::allowEmptyDateTime($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEmptyDateTime(string $field, ?string $message = null, $when = false) - { - $message = $message ?? __d('validation', 'notEmptyDateTime'); - - return parent::notEmptyDateTime($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notBlank(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'notBlank'); - - return parent::notBlank($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function alphaNumeric(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'alphaNumeric'); - - return parent::alphaNumeric($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notAlphaNumeric(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'notAlphaNumeric'); - - return parent::notAlphaNumeric($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function asciiAlphaNumeric(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'asciiAlphaNumeric'); - - return parent::asciiAlphaNumeric($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notAsciiAlphaNumeric(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'notAsciiAlphaNumeric'); - - return parent::notAsciiAlphaNumeric($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function lengthBetween(string $field, array $range, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'lengthBetween {0} to {1}', $range[0], $range[1]); - - return parent::lengthBetween($field, $range, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function creditCard(string $field, string $type = 'all', ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'creditCard'); - - return parent::creditCard($field, $type, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function greaterThan(string $field, $value, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'greaterThan'); - - return parent::greaterThan($field, $value, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function greaterThanOrEqual(string $field, $value, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'greaterThanOrEqual'); - - return parent::greaterThanOrEqual($field, $value, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function lessThan(string $field, $value, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'lessThan'); - - return parent::lessThan($field, $value, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function lessThanOrEqual(string $field, $value, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'lessThanOrEqual'); - - return parent::lessThanOrEqual($field, $value, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function equals(string $field, $value, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'equals'); - - return parent::equals($field, $value, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEquals(string $field, $value, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'notEquals'); - - return parent::notEquals($field, $value, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function sameAs(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'sameAs'); - - return parent::sameAs($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notSameAs(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'notSameAs'); - - return parent::notSameAs($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function equalToField(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'equalToField'); - - return parent::equalToField($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function notEqualToField(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'notEqualToField'); - - return parent::notEqualToField($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function greaterThanField(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'greaterThanField'); - - return parent::greaterThanField($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function greaterThanOrEqualToField(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'greaterThanOrEqualToField'); - - return parent::greaterThanOrEqualToField($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function lessThanField(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'lessThanField'); - - return parent::lessThanField($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function lessThanOrEqualToField(string $field, string $secondField, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'lessThanOrEqualToField'); - - return parent::lessThanOrEqualToField($field, $secondField, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function containsNonAlphaNumeric(string $field, int $limit = 1, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'containsNonAlphaNumeric'); - - return parent::containsNonAlphaNumeric($field, $limit, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function date(string $field, array $formats = ['ymd'], ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'date'); - - return parent::date($field, $formats, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function dateTime(string $field, array $formats = ['ymd'], ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'dateTime'); - - return parent::dateTime($field, $formats, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function time(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'time'); - - return parent::time($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function localizedTime(string $field, string $type = 'datetime', ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'localizedTime'); - - return parent::localizedTime($field, $type, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function boolean(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'boolean'); - - return parent::boolean($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function decimal(string $field, ?int $places = null, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'decimal'); - - return parent::decimal($field, $places, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function email(string $field, bool $checkMX = false, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'email'); - - return parent::email($field, $checkMX, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function ip(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'ip'); - - return parent::ip($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function ipv4(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'ipv4'); - - return parent::ipv4($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function ipv6(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'ipv6'); - - return parent::ipv6($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function minLength(string $field, int $min, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'minLength {0}', $min); - - return parent::minLength($field, $min, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function minLengthBytes(string $field, int $min, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'minLengthBytes {0}', $min); - - return parent::minLengthBytes($field, $min, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function maxLength(string $field, int $max, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'maxLength {0}', $max); - - return parent::maxLength($field, $max, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function maxLengthBytes(string $field, int $max, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'maxLengthBytes {0}', $max); - - return parent::maxLengthBytes($field, $max, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function numeric(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'numeric'); - - return parent::numeric($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function naturalNumber(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'naturalNumber'); - - return parent::naturalNumber($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function nonNegativeInteger(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'nonNegativeInteger'); - - return parent::nonNegativeInteger($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function range(string $field, array $range, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'range {0} to {1}', $range[0], $range[1]); - - return parent::range($field, $range, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function url(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'url'); - - return parent::url($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function urlWithProtocol(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'urlWithProtocol'); - - return parent::urlWithProtocol($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function inList(string $field, array $list, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'inList'); - - return parent::inList($field, $list, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function uuid(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'uuid'); - - return parent::uuid($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function uploadedFile(string $field, array $options, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'uploadedFile'); - - return parent::uploadedFile($field, $options, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function latLong(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'latLong'); - - return parent::latLong($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function latitude(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'latitude'); - - return parent::latitude($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function longitude(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'longitude'); - - return parent::longitude($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function ascii(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'ascii'); - - return parent::ascii($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function utf8(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'utf8'); - - return parent::utf8($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function utf8Extended(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'utf8Extended'); - - return parent::utf8Extended($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function integer(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'integer'); - - return parent::integer($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function isArray(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'isArray'); - - return parent::isArray($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function scalar(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'scalar'); - - return parent::scalar($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function hexColor(string $field, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'hexColor'); - - return parent::hexColor($field, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function multipleOptions(string $field, array $options = [], ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'multipleOptions'); - - return parent::multipleOptions($field, $options, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function hasAtLeast(string $field, int $count, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'hasAtLeast {0}', $count); - - return parent::hasAtLeast($field, $count, $message, $when); - } - - /** - * {@inheritDoc} - */ - public function hasAtMost(string $field, int $count, ?string $message = null, $when = null) - { - $message = $message ?? __d('validation', 'hasAtMost {0}', $count); - - return parent::hasAtMost($field, $count, $message, $when); - } - + /** + * @inheritDoc + */ + public function requirePresence(array|string $field, Closure|string|bool $mode = true, ?string $message = null): CakeValidator + { + $message = $message ?? __d('validation', 'requirePresence'); + + return parent::requirePresence($field, $mode, $message); + } + + /** + * @inheritDoc + */ + public function allowEmptyString(string $field, ?string $message = null, Closure|string|bool $when = true): CakeValidator + { + $message = $message ?? __d('validation', 'allowEmptyString'); + + return parent::allowEmptyString($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEmptyString(string $field, ?string $message = null, Closure|string|bool $when = false): CakeValidator + { + $message = $message ?? __d('validation', 'notEmptyString'); + + return parent::notEmptyString($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function allowEmptyArray(string $field, ?string $message = null, Closure|string|bool $when = true): CakeValidator + { + $message = $message ?? __d('validation', 'allowEmptyArray'); + + return parent::allowEmptyArray($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEmptyArray(string $field, ?string $message = null, Closure|string|bool $when = false): CakeValidator + { + $message = $message ?? __d('validation', 'notEmptyArray'); + + return parent::notEmptyArray($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function allowEmptyFile(string $field, ?string $message = null, Closure|string|bool $when = true): CakeValidator + { + $message = $message ?? __d('validation', 'allowEmptyFile'); + + return parent::allowEmptyFile($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEmptyFile(string $field, ?string $message = null, Closure|string|bool $when = false): CakeValidator + { + $message = $message ?? __d('validation', 'notEmptyFile'); + + return parent::notEmptyFile($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function allowEmptyDate(string $field, ?string $message = null, Closure|string|bool $when = true): CakeValidator + { + $message = $message ?? __d('validation', 'allowEmptyDate'); + + return parent::allowEmptyDate($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEmptyDate(string $field, ?string $message = null, Closure|string|bool $when = false): CakeValidator + { + $message = $message ?? __d('validation', 'notEmptyDate'); + + return parent::notEmptyDate($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function allowEmptyTime(string $field, ?string $message = null, Closure|string|bool $when = true): CakeValidator + { + $message = $message ?? __d('validation', 'allowEmptyTime'); + + return parent::allowEmptyTime($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEmptyTime(string $field, ?string $message = null, Closure|string|bool $when = false): CakeValidator + { + $message = $message ?? __d('validation', 'notEmptyTime'); + + return parent::notEmptyTime($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function allowEmptyDateTime(string $field, ?string $message = null, Closure|string|bool $when = true): CakeValidator + { + $message = $message ?? __d('validation', 'allowEmptyDateTime'); + + return parent::allowEmptyDateTime($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEmptyDateTime(string $field, ?string $message = null, Closure|string|bool $when = false): CakeValidator + { + $message = $message ?? __d('validation', 'notEmptyDateTime'); + + return parent::notEmptyDateTime($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notBlank(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'notBlank'); + + return parent::notBlank($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function alphaNumeric(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'alphaNumeric'); + + return parent::alphaNumeric($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notAlphaNumeric(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'notAlphaNumeric'); + + return parent::notAlphaNumeric($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function asciiAlphaNumeric(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'asciiAlphaNumeric'); + + return parent::asciiAlphaNumeric($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function notAsciiAlphaNumeric(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'notAsciiAlphaNumeric'); + + return parent::notAsciiAlphaNumeric($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function lengthBetween( + string $field, + array $range, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'lengthBetween {0} to {1}', $range[0], $range[1]); + + return parent::lengthBetween($field, $range, $message, $when); + } + + /** + * @inheritDoc + */ + public function creditCard( + string $field, + array|string $type = 'all', + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'creditCard'); + + return parent::creditCard($field, $type, $message, $when); + } + + /** + * @inheritDoc + */ + public function greaterThan( + string $field, + float|int $value, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'greaterThan'); + + return parent::greaterThan($field, $value, $message, $when); + } + + /** + * @inheritDoc + */ + public function greaterThanOrEqual( + string $field, + float|int $value, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'greaterThanOrEqual'); + + return parent::greaterThanOrEqual($field, $value, $message, $when); + } + + /** + * @inheritDoc + */ + public function lessThan( + string $field, + float|int $value, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'lessThan'); + + return parent::lessThan($field, $value, $message, $when); + } + + /** + * @inheritDoc + */ + public function lessThanOrEqual( + string $field, + float|int $value, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'lessThanOrEqual'); + + return parent::lessThanOrEqual($field, $value, $message, $when); + } + + /** + * @inheritDoc + */ + public function equals( + string $field, + mixed $value, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'equals'); + + return parent::equals($field, $value, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEquals( + string $field, + mixed $value, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'notEquals'); + + return parent::notEquals($field, $value, $message, $when); + } + + /** + * @inheritDoc + */ + public function sameAs( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'sameAs'); + + return parent::sameAs($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function notSameAs( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'notSameAs'); + + return parent::notSameAs($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function equalToField( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'equalToField'); + + return parent::equalToField($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function notEqualToField( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'notEqualToField'); + + return parent::notEqualToField($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function greaterThanField( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'greaterThanField'); + + return parent::greaterThanField($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function greaterThanOrEqualToField( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'greaterThanOrEqualToField'); + + return parent::greaterThanOrEqualToField($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function lessThanField( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'lessThanField'); + + return parent::lessThanField($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function lessThanOrEqualToField( + string $field, + string $secondField, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'lessThanOrEqualToField'); + + return parent::lessThanOrEqualToField($field, $secondField, $message, $when); + } + + /** + * @inheritDoc + */ + public function date( + string $field, + array $formats = ['ymd'], + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'date'); + + return parent::date($field, $formats, $message, $when); + } + + /** + * @inheritDoc + */ + public function dateTime( + string $field, + array $formats = ['ymd'], + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'dateTime'); + + return parent::dateTime($field, $formats, $message, $when); + } + + /** + * @inheritDoc + */ + public function time(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'time'); + + return parent::time($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function localizedTime( + string $field, + string $type = 'datetime', + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'localizedTime'); + + return parent::localizedTime($field, $type, $message, $when); + } + + /** + * @inheritDoc + */ + public function boolean(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'boolean'); + + return parent::boolean($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function decimal( + string $field, + ?int $places = null, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'decimal'); + + return parent::decimal($field, $places, $message, $when); + } + + /** + * @inheritDoc + */ + public function email( + string $field, + bool $checkMX = false, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'email'); + + return parent::email($field, $checkMX, $message, $when); + } + + /** + * @inheritDoc + */ + public function ip(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'ip'); + + return parent::ip($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function ipv4(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'ipv4'); + + return parent::ipv4($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function ipv6(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'ipv6'); + + return parent::ipv6($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function minLength(string $field, int $min, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'minLength {0}', $min); + + return parent::minLength($field, $min, $message, $when); + } + + /** + * @inheritDoc + */ + public function minLengthBytes(string $field, int $min, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'minLengthBytes {0}', $min); + + return parent::minLengthBytes($field, $min, $message, $when); + } + + /** + * @inheritDoc + */ + public function maxLength(string $field, int $max, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'maxLength {0}', $max); + + return parent::maxLength($field, $max, $message, $when); + } + + /** + * @inheritDoc + */ + public function maxLengthBytes(string $field, int $max, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'maxLengthBytes {0}', $max); + + return parent::maxLengthBytes($field, $max, $message, $when); + } + + /** + * @inheritDoc + */ + public function numeric(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'numeric'); + + return parent::numeric($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function naturalNumber(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'naturalNumber'); + + return parent::naturalNumber($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function nonNegativeInteger(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'nonNegativeInteger'); + + return parent::nonNegativeInteger($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function range(string $field, array $range, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'range {0} to {1}', $range[0], $range[1]); + + return parent::range($field, $range, $message, $when); + } + + /** + * @inheritDoc + */ + public function url(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'url'); + + return parent::url($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function urlWithProtocol(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'urlWithProtocol'); + + return parent::urlWithProtocol($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function inList(string $field, array $list, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'inList'); + + return parent::inList($field, $list, $message, $when); + } + + /** + * @inheritDoc + */ + public function uuid(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'uuid'); + + return parent::uuid($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function uploadedFile( + string $field, + array $options, + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'uploadedFile'); + + return parent::uploadedFile($field, $options, $message, $when); + } + + /** + * @inheritDoc + */ + public function latLong(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'latLong'); + + return parent::latLong($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function latitude(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'latitude'); + + return parent::latitude($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function longitude(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'longitude'); + + return parent::longitude($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function ascii(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'ascii'); + + return parent::ascii($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function utf8(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'utf8'); + + return parent::utf8($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function utf8Extended(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'utf8Extended'); + + return parent::utf8Extended($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function integer(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'integer'); + + return parent::integer($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function array(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'array'); + + return parent::array($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function scalar(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'scalar'); + + return parent::scalar($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function hexColor(string $field, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'hexColor'); + + return parent::hexColor($field, $message, $when); + } + + /** + * @inheritDoc + */ + public function multipleOptions( + string $field, + array $options = [], + ?string $message = null, + Closure|string|null $when = null + ): CakeValidator { + $message = $message ?? __d('validation', 'multipleOptions'); + + return parent::multipleOptions($field, $options, $message, $when); + } + + /** + * @inheritDoc + */ + public function hasAtLeast(string $field, int $count, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'hasAtLeast {0}', $count); + + return parent::hasAtLeast($field, $count, $message, $when); + } + + /** + * @inheritDoc + */ + public function hasAtMost(string $field, int $count, ?string $message = null, Closure|string|null $when = null): CakeValidator + { + $message = $message ?? __d('validation', 'hasAtMost {0}', $count); + + return parent::hasAtMost($field, $count, $message, $when); + } } diff --git a/tests/TestCase/Validation/ValidatorTest.php b/tests/TestCase/Validation/ValidatorTest.php index c4511a7..2355b23 100755 --- a/tests/TestCase/Validation/ValidatorTest.php +++ b/tests/TestCase/Validation/ValidatorTest.php @@ -3,9 +3,8 @@ namespace Tyrellsys\CakePHPValidator\Test\TestCase\Validation; -use Cake\Core\Configure; -use Cake\I18n\I18n; use Cake\TestSuite\TestCase; +use Laminas\Diactoros\UploadedFile; use Tyrellsys\CakePHPValidator\Validation\Validator; /** @@ -15,11 +14,10 @@ */ class ValidatorTest extends TestCase { - protected $Validator; - protected $locale; + protected Validator $Validator; /** - * {@inheritDoc} + * @inheritDoc */ public function setUp(): void { @@ -29,7 +27,7 @@ public function setUp(): void } /** - * {@inheritDoc} + * @inheritDoc */ public function tearDown(): void { @@ -44,13 +42,13 @@ public function tearDown(): void * \Cake\Validation\Validator if number of methods changes. * Must be reflected in this plugin. * - * @return + * @return void */ - public function testMethodCount() + public function testMethodCount(): void { $method = get_class_methods($this->Validator); - $this->assertCount(101, $method); + $this->assertCount(99, $method); } /** @@ -58,7 +56,7 @@ public function testMethodCount() * * @return void */ - public function testMessages() + public function testMessages(): void { $this->Validator ->requirePresence('column') @@ -83,7 +81,6 @@ public function testMessages() ->greaterThanOrEqualToField('column', 'secondField') ->lessThanField('column', 'secondField') ->lessThanOrEqualToField('column', 'secondField') - ->containsNonAlphaNumeric('column', 1) ->date('column') ->dateTime('column') ->time('column') @@ -114,7 +111,7 @@ public function testMessages() ->utf8('column') ->utf8Extended('column') ->integer('column') - ->isArray('column') + ->array('column') ->scalar('column') ->hexColor('column') ->multipleOptions('column') @@ -142,7 +139,6 @@ public function testMessages() 'greaterThanOrEqualToField' => 'greaterThanOrEqualToField', 'lessThanField' => 'lessThanField', 'lessThanOrEqualToField' => 'lessThanOrEqualToField', - 'containsNonAlphaNumeric' => 'containsNonAlphaNumeric', 'date' => 'date', 'dateTime' => 'dateTime', 'time' => 'time', @@ -168,13 +164,15 @@ public function testMessages() 'latitude' => 'latitude', 'longitude' => 'longitude', 'integer' => 'integer', - 'isArray' => 'isArray', + 'array' => 'array', 'hexColor' => 'hexColor', 'multipleOptions' => 'multipleOptions', 'hasAtLeast' => 'hasAtLeast 1', 'hasAtMost' => 'hasAtMost 1', + 'lessThan' => 'lessThan', + 'lessThanOrEqual' => 'lessThanOrEqual', ]; - $this->assertCount(47, $errors['column']); + $this->assertCount(48, $errors['column']); $this->assertEquals($expected, $errors['column']); /** @@ -204,7 +202,6 @@ public function testMessages() 'greaterThanOrEqualToField' => 'greaterThanOrEqualToField', 'lessThanField' => 'lessThanField', 'lessThanOrEqualToField' => 'lessThanOrEqualToField', - 'containsNonAlphaNumeric' => 'containsNonAlphaNumeric', 'date' => 'date', 'dateTime' => 'dateTime', 'time' => 'time', @@ -232,12 +229,14 @@ public function testMessages() 'latitude' => 'latitude', 'longitude' => 'longitude', 'integer' => 'integer', - 'isArray' => 'isArray', + 'array' => 'array', 'hexColor' => 'hexColor', 'hasAtLeast' => 'hasAtLeast 1', 'hasAtMost' => 'hasAtMost 1', + 'lessThan' => 'lessThan', + 'lessThanOrEqual' => 'lessThanOrEqual', ]; - $this->assertCount(46, $errors['column']); + $this->assertCount(47, $errors['column']); $this->assertEquals($expected, $errors['column']); } @@ -248,7 +247,7 @@ public function testMessages() * * @return void */ - public function testNotScalar() + public function testNotScalar(): void { $this->Validator ->requirePresence('column') @@ -264,7 +263,7 @@ public function testNotScalar() ->lessThan('column', 3) ->lessThanOrEqual('column', 3) ->equals('column', 1) - ->notEquals('column', 1) + ->notEquals('column', []) ->sameAs('column', 'secondField') ->notSameAs('column', 'secondField') ->equalToField('column', 'secondField') @@ -273,7 +272,6 @@ public function testNotScalar() ->greaterThanOrEqualToField('column', 'secondField') ->lessThanField('column', 'secondField') ->lessThanOrEqualToField('column', 'secondField') - ->containsNonAlphaNumeric('column', 1) //->date('column') //->dateTime('column') //->time('column') @@ -304,7 +302,7 @@ public function testNotScalar() ->utf8('column') ->utf8Extended('column') ->integer('column') - ->isArray('column') + ->array('column') ->scalar('column') ->hexColor('column') ->multipleOptions('column') @@ -332,7 +330,6 @@ public function testNotScalar() 'greaterThanOrEqualToField' => 'greaterThanOrEqualToField', 'lessThanField' => 'lessThanField', 'lessThanOrEqualToField' => 'lessThanOrEqualToField', - 'containsNonAlphaNumeric' => 'containsNonAlphaNumeric', 'boolean' => 'boolean', 'decimal' => 'decimal', 'email' => 'email', @@ -364,7 +361,7 @@ public function testNotScalar() 'multipleOptions' => 'multipleOptions', 'hasAtLeast' => 'hasAtLeast 1', ]; - $this->assertCount(50, $errors['column']); + $this->assertCount(49, $errors['column']); $this->assertEquals($expected, $errors['column']); } @@ -373,7 +370,7 @@ public function testNotScalar() * * @return void */ - public function testEmptyXXXX() + public function testEmptyXXXX(): void { // notEmpty $this->Validator @@ -387,12 +384,7 @@ public function testEmptyXXXX() $errors = $this->Validator->validate([ 'string' => '', 'array' => [], - 'file' => [ - 'name' => 'name', - 'type' => 'type', - 'tmp_name' => 'tmp_name', - 'error' => UPLOAD_ERR_NO_FILE, - ], + 'file' => new UploadedFile('', 0, UPLOAD_ERR_NO_FILE, null, null), 'date' => '', 'datetime' => '', 'time' => '', @@ -404,13 +396,13 @@ public function testEmptyXXXX() $this->assertEquals('notEmptyDateTime', $errors['datetime']['_empty']); $this->assertEquals('notEmptyTime', $errors['time']['_empty']); - /** 'allow*' cannot be an error + /** 'allow*' cannot be an error $this->assertEquals('allowEmptyString', $errors['string']['_empty']); $this->assertEquals('allowEmptyArray', $errors['array']['_empty']); $this->assertEquals('allowEmptyFile', $errors['file']['_empty']); $this->assertEquals('allowEmptyDate', $errors['date']['_empty']); $this->assertEquals('allowEmptyDateTime', $errors['datetime']['_empty']); $this->assertEquals('allowEmptyTime', $errors['time']['_empty']); - */ + */ } } diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 5cb1ce2..7bfd54e 100755 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -10,9 +10,10 @@ } } while ($root !== $lastRoot); - throw new Exception("Cannot find the root of the application, unable to run tests"); + throw new Exception('Cannot find the root of the application, unable to run tests'); }; $root = $findRoot(__FILE__); unset($findRoot); require $root . '/vendor/cakephp/cakephp/tests/bootstrap.php'; +require $root . '/vendor/cakephp/cakephp/src/I18n/functions_global.php';