mirror of
https://github.com/Respect/Validation.git
synced 2024-06-29 10:40:24 +02:00
Rename "NotOptional" to "NotUndef"
Since I've already renamed the "Optional" rule to "UnderOf," it makes sense to rename this rule too. Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
This commit is contained in:
parent
719f12a424
commit
4fd26e39bb
|
@ -25,6 +25,7 @@ use Respect\Validation\Mixins\StaticNot;
|
|||
use Respect\Validation\Mixins\StaticNullOr;
|
||||
use Respect\Validation\Mixins\StaticProperty;
|
||||
use Respect\Validation\Mixins\StaticUndefOr;
|
||||
use Respect\Validation\Rules\NotUndef;
|
||||
use Respect\Validation\Rules\NullOr;
|
||||
use Respect\Validation\Rules\UndefOr;
|
||||
use Respect\Validation\Validatable;
|
||||
|
@ -175,10 +176,10 @@ function overwriteFile(string $content, string $basename): void
|
|||
['Length', 'length', $numberRelatedRules, []],
|
||||
['Max', 'max', $numberRelatedRules, []],
|
||||
['Min', 'min', $numberRelatedRules, []],
|
||||
['Not', 'not', [], ['Not', 'NotEmpty', 'NotBlank', 'NotEmoji', 'NotOptional', 'NullOr', 'UndefOr', 'Optional']],
|
||||
['NullOr', 'nullOr', [], ['Nullable', 'NullOr', 'Optional', 'UndefOr']],
|
||||
['Not', 'not', [], ['Not', 'NotEmpty', 'NotBlank', 'NotEmoji', 'NotUndef', 'NotOptional', 'NullOr', 'UndefOr', 'Optional']],
|
||||
['NullOr', 'nullOr', [], ['Nullable', 'NullOr', 'Optional', 'NotOptional', 'NotUndef', 'UndefOr']],
|
||||
['Property', 'property', [], $structureRelatedRules],
|
||||
['UndefOr', 'undefOr', [], ['Nullable', 'NullOr', 'Optional', 'UndefOr']],
|
||||
['UndefOr', 'undefOr', [], ['Nullable', 'NullOr', 'NotOptional', 'NotUndef', 'Optional', 'UndefOr']],
|
||||
['Validator', null, [], []],
|
||||
];
|
||||
|
||||
|
@ -200,6 +201,9 @@ function overwriteFile(string $content, string $basename): void
|
|||
if ($className === NullOr::class) {
|
||||
$names['Nullable'] = $reflection;
|
||||
}
|
||||
if ($className === NotUndef::class) {
|
||||
$names['NotOptional'] = $reflection;
|
||||
}
|
||||
}
|
||||
ksort($names);
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ v::optional(v::alpha())->validate(null); // true
|
|||
|
||||
By _optional_ we consider `null` or an empty string (`''`).
|
||||
|
||||
See more on [Optional](rules/Optional.md).
|
||||
See more on [Optional](rules/UndefOr.md).
|
||||
|
||||
## Negating rules
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@
|
|||
- [FilterVar](rules/FilterVar.md)
|
||||
- [NotBlank](rules/NotBlank.md)
|
||||
- [NotEmpty](rules/NotEmpty.md)
|
||||
- [NotOptional](rules/NotOptional.md)
|
||||
- [NotUndef](rules/NotUndef.md)
|
||||
|
||||
## Nesting
|
||||
|
||||
|
@ -173,9 +173,9 @@
|
|||
- [Not](rules/Not.md)
|
||||
- [Nullable](rules/Nullable.md)
|
||||
- [OneOf](rules/OneOf.md)
|
||||
- [Optional](rules/Optional.md)
|
||||
- [Property](rules/Property.md)
|
||||
- [PropertyOptional](rules/PropertyOptional.md)
|
||||
- [UndefOr](rules/UndefOr.md)
|
||||
- [When](rules/When.md)
|
||||
|
||||
## Numbers
|
||||
|
@ -394,7 +394,7 @@
|
|||
- [NotBlank](rules/NotBlank.md)
|
||||
- [NotEmoji](rules/NotEmoji.md)
|
||||
- [NotEmpty](rules/NotEmpty.md)
|
||||
- [NotOptional](rules/NotOptional.md)
|
||||
- [NotUndef](rules/NotUndef.md)
|
||||
- [NullType](rules/NullType.md)
|
||||
- [Nullable](rules/Nullable.md)
|
||||
- [Number](rules/Number.md)
|
||||
|
@ -402,7 +402,6 @@
|
|||
- [ObjectType](rules/ObjectType.md)
|
||||
- [Odd](rules/Odd.md)
|
||||
- [OneOf](rules/OneOf.md)
|
||||
- [Optional](rules/Optional.md)
|
||||
- [PerfectSquare](rules/PerfectSquare.md)
|
||||
- [Pesel](rules/Pesel.md)
|
||||
- [Phone](rules/Phone.md)
|
||||
|
@ -438,6 +437,7 @@
|
|||
- [Tld](rules/Tld.md)
|
||||
- [TrueVal](rules/TrueVal.md)
|
||||
- [Type](rules/Type.md)
|
||||
- [UndefOr](rules/UndefOr.md)
|
||||
- [Unique](rules/Unique.md)
|
||||
- [Uploaded](rules/Uploaded.md)
|
||||
- [Uppercase](rules/Uppercase.md)
|
||||
|
|
|
@ -29,5 +29,5 @@ See also:
|
|||
- [CreditCard](CreditCard.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NotOptional](NotOptional.md)
|
||||
- [Optional](Optional.md)
|
||||
- [NotUndef](NotUndef.md)
|
||||
- [UndefOr](UndefOr.md)
|
||||
|
|
|
@ -41,7 +41,7 @@ See also:
|
|||
|
||||
- [NoWhitespace](NoWhitespace.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NotOptional](NotOptional.md)
|
||||
- [NotUndef](NotUndef.md)
|
||||
- [NullType](NullType.md)
|
||||
- [Number](Number.md)
|
||||
- [Optional](Optional.md)
|
||||
- [UndefOr](UndefOr.md)
|
||||
|
|
|
@ -53,7 +53,7 @@ See also:
|
|||
- [Min](Min.md)
|
||||
- [NoWhitespace](NoWhitespace.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotOptional](NotOptional.md)
|
||||
- [NotUndef](NotUndef.md)
|
||||
- [NullType](NullType.md)
|
||||
- [Number](Number.md)
|
||||
- [Optional](Optional.md)
|
||||
- [UndefOr](UndefOr.md)
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
# NotOptional
|
||||
|
||||
- `NotOptional()`
|
||||
|
||||
Validates if the given input is not optional. By _optional_ we consider `null`
|
||||
or an empty string (`''`).
|
||||
|
||||
```php
|
||||
v::notOptional()->validate(''); // false
|
||||
v::notOptional()->validate(null); // false
|
||||
```
|
||||
|
||||
Other values:
|
||||
|
||||
```php
|
||||
v::notOptional()->validate([]); // true
|
||||
v::notOptional()->validate(' '); // true
|
||||
v::notOptional()->validate(0); // true
|
||||
v::notOptional()->validate('0'); // true
|
||||
v::notOptional()->validate(0); // true
|
||||
v::notOptional()->validate('0.0'); // true
|
||||
v::notOptional()->validate(false); // true
|
||||
v::notOptional()->validate(['']); // true
|
||||
v::notOptional()->validate([' ']); // true
|
||||
v::notOptional()->validate([0]); // true
|
||||
v::notOptional()->validate(['0']); // true
|
||||
v::notOptional()->validate([false]); // true
|
||||
v::notOptional()->validate([[''), [0]]); // true
|
||||
v::notOptional()->validate(new stdClass()); // true
|
||||
```
|
||||
|
||||
## Categorization
|
||||
|
||||
- Miscellaneous
|
||||
|
||||
## Changelog
|
||||
|
||||
Version | Description
|
||||
--------|-------------
|
||||
1.0.0 | Created
|
||||
|
||||
***
|
||||
See also:
|
||||
|
||||
- [NoWhitespace](NoWhitespace.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NullType](NullType.md)
|
||||
- [Number](Number.md)
|
||||
- [Optional](Optional.md)
|
51
docs/rules/NotUndef.md
Normal file
51
docs/rules/NotUndef.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
# NotUndef
|
||||
|
||||
- `NotUndef()`
|
||||
|
||||
Validates if the given input is not optional. By _optional_ we consider `null`
|
||||
or an empty string (`''`).
|
||||
|
||||
```php
|
||||
v::notUndef()->validate(''); // false
|
||||
v::notUndef()->validate(null); // false
|
||||
```
|
||||
|
||||
Other values:
|
||||
|
||||
```php
|
||||
v::notUndef()->validate([]); // true
|
||||
v::notUndef()->validate(' '); // true
|
||||
v::notUndef()->validate(0); // true
|
||||
v::notUndef()->validate('0'); // true
|
||||
v::notUndef()->validate(0); // true
|
||||
v::notUndef()->validate('0.0'); // true
|
||||
v::notUndef()->validate(false); // true
|
||||
v::notUndef()->validate(['']); // true
|
||||
v::notUndef()->validate([' ']); // true
|
||||
v::notUndef()->validate([0]); // true
|
||||
v::notUndef()->validate(['0']); // true
|
||||
v::notUndef()->validate([false]); // true
|
||||
v::notUndef()->validate([[''), [0]]); // true
|
||||
v::notUndef()->validate(new stdClass()); // true
|
||||
```
|
||||
|
||||
## Categorization
|
||||
|
||||
- Miscellaneous
|
||||
|
||||
## Changelog
|
||||
|
||||
| Version | Description |
|
||||
|---------:|------------------------------------------|
|
||||
| 3.0.0 | Renamed from "NotOptional" to "NotUndef" |
|
||||
| 1.0.0 | Created |
|
||||
|
||||
***
|
||||
See also:
|
||||
|
||||
- [NoWhitespace](NoWhitespace.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NullType](NullType.md)
|
||||
- [Number](Number.md)
|
||||
- [UndefOr](UndefOr.md)
|
|
@ -30,12 +30,12 @@ See also:
|
|||
- [IntType](IntType.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NotOptional](NotOptional.md)
|
||||
- [NotUndef](NotUndef.md)
|
||||
- [Nullable](Nullable.md)
|
||||
- [Number](Number.md)
|
||||
- [ObjectType](ObjectType.md)
|
||||
- [Optional](Optional.md)
|
||||
- [ResourceType](ResourceType.md)
|
||||
- [StringType](StringType.md)
|
||||
- [StringVal](StringVal.md)
|
||||
- [Type](Type.md)
|
||||
- [UndefOr](UndefOr.md)
|
||||
|
|
|
@ -24,4 +24,4 @@ Version | Description
|
|||
See also:
|
||||
|
||||
- [NullType](NullType.md)
|
||||
- [Optional](Optional.md)
|
||||
- [UndefOr](UndefOr.md)
|
||||
|
|
|
@ -32,7 +32,7 @@ See also:
|
|||
- [IntType](IntType.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NotOptional](NotOptional.md)
|
||||
- [NotUndef](NotUndef.md)
|
||||
- [NullType](NullType.md)
|
||||
- [NumericVal](NumericVal.md)
|
||||
- [ObjectType](ObjectType.md)
|
||||
|
|
|
@ -40,6 +40,6 @@ See also:
|
|||
- [NoWhitespace](NoWhitespace.md)
|
||||
- [NotBlank](NotBlank.md)
|
||||
- [NotEmpty](NotEmpty.md)
|
||||
- [NotOptional](NotOptional.md)
|
||||
- [NotUndef](NotUndef.md)
|
||||
- [NullType](NullType.md)
|
||||
- [Nullable](Nullable.md)
|
||||
|
|
|
@ -255,6 +255,8 @@ interface ChainedKey
|
|||
|
||||
public function keyNotOptional(int|string $key): ChainedValidator;
|
||||
|
||||
public function keyNotUndef(int|string $key): ChainedValidator;
|
||||
|
||||
public function keyNullType(int|string $key): ChainedValidator;
|
||||
|
||||
public function keyNumber(int|string $key): ChainedValidator;
|
||||
|
|
|
@ -242,8 +242,6 @@ interface ChainedNullOr
|
|||
|
||||
public function nullOrNotEmpty(): ChainedValidator;
|
||||
|
||||
public function nullOrNotOptional(): ChainedValidator;
|
||||
|
||||
public function nullOrNullType(): ChainedValidator;
|
||||
|
||||
public function nullOrNumber(): ChainedValidator;
|
||||
|
|
|
@ -267,6 +267,8 @@ interface ChainedProperty
|
|||
|
||||
public function propertyNotOptional(string $propertyName): ChainedValidator;
|
||||
|
||||
public function propertyNotUndef(string $propertyName): ChainedValidator;
|
||||
|
||||
public function propertyNullType(string $propertyName): ChainedValidator;
|
||||
|
||||
public function propertyNumber(string $propertyName): ChainedValidator;
|
||||
|
|
|
@ -246,8 +246,6 @@ interface ChainedUndefOr
|
|||
|
||||
public function undefOrNotEmpty(): ChainedValidator;
|
||||
|
||||
public function undefOrNotOptional(): ChainedValidator;
|
||||
|
||||
public function undefOrNullType(): ChainedValidator;
|
||||
|
||||
public function undefOrNumber(): ChainedValidator;
|
||||
|
|
|
@ -253,6 +253,8 @@ interface ChainedValidator extends
|
|||
|
||||
public function notOptional(): ChainedValidator;
|
||||
|
||||
public function notUndef(): ChainedValidator;
|
||||
|
||||
public function nullOr(Validatable $rule): ChainedValidator;
|
||||
|
||||
public function nullType(): ChainedValidator;
|
||||
|
|
|
@ -259,6 +259,8 @@ interface StaticKey
|
|||
|
||||
public static function keyNotOptional(int|string $key): ChainedValidator;
|
||||
|
||||
public static function keyNotUndef(int|string $key): ChainedValidator;
|
||||
|
||||
public static function keyNullType(int|string $key): ChainedValidator;
|
||||
|
||||
public static function keyNumber(int|string $key): ChainedValidator;
|
||||
|
|
|
@ -258,8 +258,6 @@ interface StaticNullOr
|
|||
|
||||
public static function nullOrNotEmpty(): ChainedValidator;
|
||||
|
||||
public static function nullOrNotOptional(): ChainedValidator;
|
||||
|
||||
public static function nullOrNullType(): ChainedValidator;
|
||||
|
||||
public static function nullOrNumber(): ChainedValidator;
|
||||
|
|
|
@ -291,6 +291,8 @@ interface StaticProperty
|
|||
|
||||
public static function propertyNotOptional(string $propertyName): ChainedValidator;
|
||||
|
||||
public static function propertyNotUndef(string $propertyName): ChainedValidator;
|
||||
|
||||
public static function propertyNullType(string $propertyName): ChainedValidator;
|
||||
|
||||
public static function propertyNumber(string $propertyName): ChainedValidator;
|
||||
|
|
|
@ -258,8 +258,6 @@ interface StaticUndefOr
|
|||
|
||||
public static function undefOrNotEmpty(): ChainedValidator;
|
||||
|
||||
public static function undefOrNotOptional(): ChainedValidator;
|
||||
|
||||
public static function undefOrNullType(): ChainedValidator;
|
||||
|
||||
public static function undefOrNumber(): ChainedValidator;
|
||||
|
|
|
@ -256,6 +256,8 @@ interface StaticValidator extends
|
|||
|
||||
public static function notOptional(): ChainedValidator;
|
||||
|
||||
public static function notUndef(): ChainedValidator;
|
||||
|
||||
public static function nullOr(Validatable $rule): ChainedValidator;
|
||||
|
||||
public static function nullType(): ChainedValidator;
|
||||
|
|
|
@ -24,7 +24,7 @@ use Respect\Validation\Rules\Core\Standard;
|
|||
'{{name}} must be optional',
|
||||
self::TEMPLATE_NAMED,
|
||||
)]
|
||||
final class NotOptional extends Standard
|
||||
final class NotUndef extends Standard
|
||||
{
|
||||
use CanValidateUndefined;
|
||||
|
|
@ -15,6 +15,7 @@ use function in_array;
|
|||
final class Aliases implements Transformer
|
||||
{
|
||||
private const ALIASES = [
|
||||
'notOptional' => 'notUndef',
|
||||
'nullable' => 'nullOr',
|
||||
'optional' => 'undefOr',
|
||||
];
|
||||
|
|
|
@ -30,7 +30,7 @@ final class Prefix implements Transformer
|
|||
'notBlank',
|
||||
'notEmoji',
|
||||
'notEmpty',
|
||||
'notOptional',
|
||||
'notUndef',
|
||||
'nullOr',
|
||||
'property',
|
||||
'propertyExists',
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
--FILE--
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
use Respect\Validation\Validator as v;
|
||||
|
||||
exceptionMessage(static fn() => v::notOptional()->check(null));
|
||||
exceptionMessage(static fn() => v::not(v::notOptional())->check(0));
|
||||
exceptionMessage(static fn() => v::notOptional()->setName('Field')->check(null));
|
||||
exceptionMessage(static fn() => v::not(v::notOptional()->setName('Field'))->check([]));
|
||||
exceptionFullMessage(static fn() => v::notOptional()->assert(''));
|
||||
exceptionFullMessage(static fn() => v::not(v::notOptional())->assert([]));
|
||||
exceptionFullMessage(static fn() => v::notOptional()->setName('Field')->assert(''));
|
||||
exceptionFullMessage(static fn() => v::not(v::notOptional()->setName('Field'))->assert([]));
|
||||
?>
|
||||
--EXPECT--
|
||||
The value must not be optional
|
||||
The value must be optional
|
||||
Field must not be optional
|
||||
Field must be optional
|
||||
- The value must not be optional
|
||||
- The value must be optional
|
||||
- Field must not be optional
|
||||
- Field must be optional
|
27
tests/integration/rules/notUndef.phpt
Normal file
27
tests/integration/rules/notUndef.phpt
Normal file
|
@ -0,0 +1,27 @@
|
|||
--FILE--
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
use Respect\Validation\Validator as v;
|
||||
|
||||
exceptionMessage(static fn() => v::notUndef()->check(null));
|
||||
exceptionMessage(static fn() => v::not(v::notUndef())->check(0));
|
||||
exceptionMessage(static fn() => v::notUndef()->setName('Field')->check(null));
|
||||
exceptionMessage(static fn() => v::not(v::notUndef()->setName('Field'))->check([]));
|
||||
exceptionFullMessage(static fn() => v::notUndef()->assert(''));
|
||||
exceptionFullMessage(static fn() => v::not(v::notUndef())->assert([]));
|
||||
exceptionFullMessage(static fn() => v::notUndef()->setName('Field')->assert(''));
|
||||
exceptionFullMessage(static fn() => v::not(v::notUndef()->setName('Field'))->assert([]));
|
||||
?>
|
||||
--EXPECT--
|
||||
The value must not be optional
|
||||
The value must be optional
|
||||
Field must not be optional
|
||||
Field must be optional
|
||||
- The value must not be optional
|
||||
- The value must be optional
|
||||
- Field must not be optional
|
||||
- Field must be optional
|
|
@ -15,13 +15,13 @@ use Respect\Validation\Test\RuleTestCase;
|
|||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(NotOptional::class)]
|
||||
final class NotOptionalTest extends RuleTestCase
|
||||
#[CoversClass(NotUndef::class)]
|
||||
final class NotUndefTest extends RuleTestCase
|
||||
{
|
||||
/** @return iterable<array{NotOptional, mixed}> */
|
||||
/** @return iterable<array{NotUndef, mixed}> */
|
||||
public static function providerForValidInput(): iterable
|
||||
{
|
||||
$rule = new NotOptional();
|
||||
$rule = new NotUndef();
|
||||
|
||||
return [
|
||||
[$rule, []],
|
||||
|
@ -41,10 +41,10 @@ final class NotOptionalTest extends RuleTestCase
|
|||
];
|
||||
}
|
||||
|
||||
/** @return iterable<array{NotOptional, mixed}> */
|
||||
/** @return iterable<array{NotUndef, mixed}> */
|
||||
public static function providerForInvalidInput(): iterable
|
||||
{
|
||||
$rule = new NotOptional();
|
||||
$rule = new NotUndef();
|
||||
|
||||
return [
|
||||
[$rule, null],
|
|
@ -44,7 +44,7 @@ final class UndefOrTest extends RuleTestCase
|
|||
}
|
||||
|
||||
#[Test]
|
||||
public function itShouldUseWrappedRuleToEvaluateWhenNotOptional(): void
|
||||
public function itShouldUseWrappedRuleToEvaluateWhenNotUndef(): void
|
||||
{
|
||||
$input = new stdClass();
|
||||
|
||||
|
|
|
@ -18,6 +18,19 @@ use Respect\Validation\Test\Transformers\StubTransformer;
|
|||
#[CoversClass(Aliases::class)]
|
||||
final class AliasesTest extends TestCase
|
||||
{
|
||||
#[Test]
|
||||
public function itShouldConvertNotOptionalIntoNotUndef(): void
|
||||
{
|
||||
$transformer = new Aliases(new StubTransformer());
|
||||
|
||||
$ruleSpec = new RuleSpec('notOptional', [Stub::daze()]);
|
||||
|
||||
$actual = $transformer->transform($ruleSpec);
|
||||
$expected = new RuleSpec('notUndef', $ruleSpec->arguments);
|
||||
|
||||
self::assertEquals($expected, $actual);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function itShouldConvertOptionalIntoUndefOr(): void
|
||||
{
|
||||
|
|
|
@ -96,7 +96,7 @@ final class PrefixTest extends TestCase
|
|||
'notBlank' => ['notBlank'],
|
||||
'notEmoji' => ['notEmoji'],
|
||||
'notEmpty' => ['notEmpty'],
|
||||
'notOptional' => ['notOptional'],
|
||||
'notUndef' => ['notUndef'],
|
||||
'property' => ['property'],
|
||||
'propertyExists' => ['propertyExists'],
|
||||
'propertyOptional' => ['propertyOptional'],
|
||||
|
|
Loading…
Reference in a new issue