Improve tests of the "Optional" rule

PHPT tests are expensive, having all and only the necessary tests in one
single file make more sense.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
This commit is contained in:
Henrique Moody 2019-04-05 20:37:41 +02:00
parent 51f157605d
commit 344b00cc07
No known key found for this signature in database
GPG key ID: 221E9281655813A6
9 changed files with 73 additions and 136 deletions

View file

@ -1,17 +0,0 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Validator as v;
v::optional(v::alpha())->assert('');
v::optional(v::alpha())->assert(null);
?>
===DONE===
--EXPECT--
===DONE===

View file

@ -1,17 +0,0 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Validator as v;
v::optional(v::alpha())->check('');
v::optional(v::alpha())->check(null);
?>
===DONE===
--EXPECT--
===DONE===

View file

@ -1,22 +0,0 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Validator as v;
var_dump(v::alpha()->validate(''));
var_dump(v::alpha()->validate(null));
var_dump(v::optional(v::alpha())->validate(''));
var_dump(v::optional(v::alpha())->validate(null));
?>
--EXPECT--
bool(false)
bool(false)
bool(true)
bool(true)

View file

@ -0,0 +1,71 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Exceptions\NestedValidationException;
use Respect\Validation\Exceptions\ValidationException;
use Respect\Validation\Validator as v;
try {
v::optional(v::alpha())->check(1234);
} catch (ValidationException $exception) {
echo $exception->getMessage().PHP_EOL;
}
try {
v::optional(v::alpha())->setName('Name')->check(1234);
} catch (ValidationException $exception) {
echo $exception->getMessage().PHP_EOL;
}
try {
v::not(v::optional(v::alpha()))->check('abcd');
} catch (ValidationException $exception) {
echo $exception->getMessage().PHP_EOL;
}
try {
v::not(v::optional(v::alpha()))->setName('Name')->check('abcd');
} catch (ValidationException $exception) {
echo $exception->getMessage().PHP_EOL;
}
try {
v::optional(v::alpha())->assert(1234);
} catch (NestedValidationException $exception) {
echo $exception->getFullMessage().PHP_EOL;
}
try {
v::optional(v::alpha())->setName('Name')->assert(1234);
} catch (NestedValidationException $exception) {
echo $exception->getFullMessage().PHP_EOL;
}
try {
v::not(v::optional(v::alpha()))->assert('abcd');
} catch (NestedValidationException $exception) {
echo $exception->getFullMessage().PHP_EOL;
}
try {
v::not(v::optional(v::alpha()))->setName('Name')->assert('abcd');
} catch (NestedValidationException $exception) {
echo $exception->getFullMessage().PHP_EOL;
}
?>
--EXPECT--
1234 must contain only letters (a-z)
Name must contain only letters (a-z)
The value must not be optional
Name must not be optional
- 1234 must contain only letters (a-z)
- Name must contain only letters (a-z)
- The value must not be optional
- Name must not be optional

View file

@ -1,23 +0,0 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Validator as v;
var_dump(
v::alpha()->validate(''),
v::alpha()->validate(null),
v::optional(v::alpha())->validate(''),
v::optional(v::alpha())->validate(null)
);
?>
--EXPECT--
bool(false)
bool(false)
bool(true)
bool(true)

View file

@ -1,20 +0,0 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Exceptions\OptionalException;
use Respect\Validation\Validator as v;
try {
v::not(v::optional(v::equals('foo')))->check(null);
} catch (OptionalException $e) {
echo $e->getMessage().PHP_EOL;
}
?>
--EXPECT--
The value must not be optional

View file

@ -1,20 +0,0 @@
--CREDITS--
Henrique Moody <henriquemoody@gmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Exceptions\OptionalException;
use Respect\Validation\Validator as v;
try {
v::not(v::optional(v::equals('foo'))->setName('My field'))->check(null);
} catch (OptionalException $e) {
echo $e->getMessage().PHP_EOL;
}
?>
--EXPECT--
My field must not be optional

View file

@ -1,16 +0,0 @@
--CREDITS--
Rafael Bartalotti <rafael_bartalotti@hotmail.com>
--FILE--
<?php
declare(strict_types=1);
require 'vendor/autoload.php';
use Respect\Validation\Validator as v;
v::optional(v::alpha())->validate('');
v::optional(v::alpha())->validate(null);
?>
--EXPECT--

View file

@ -18,7 +18,8 @@ use Respect\Validation\Validatable;
use stdClass;
/**
* @group rule
* @group rule
*
* @covers \Respect\Validation\Rules\Optional
*
* @author Gabriel Caruso <carusogabriel34@gmail.com>