Skip to content

Commit

Permalink
✅ TEST: Add new use case
Browse files Browse the repository at this point in the history
  • Loading branch information
elie29 committed Feb 23, 2019
1 parent 985b2a0 commit 3f3d80a
Showing 1 changed file with 37 additions and 1 deletion.
38 changes: 37 additions & 1 deletion tests/ValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@

use Elie\Validator\Rule\ArrayRule;
use Elie\Validator\Rule\BooleanRule;
use Elie\Validator\Rule\EmailRule;
use Elie\Validator\Rule\JsonRule;
use Elie\Validator\Rule\NumericRule;
use Elie\Validator\Rule\StringRule;
use PHPUnit\Framework\TestCase;
use Elie\Validator\Rule\MatchRule;

class ValidatorTest extends TestCase
{
Expand Down Expand Up @@ -57,6 +60,39 @@ public function testValidatorStopOnError(): void
assertThat($validator->shouldStopOnError(), is(true));
}

public function testValidatorWithPartialValidation(): void
{
$rules = [
['email', EmailRule::class, EmailRule::REQUIRED => true],
['user', JsonRule::class, JsonRule::REQUIRED => true],
];

$data = [
'email' => 'elie29@gmail.com',
'user' => '{"name": "John Doe", "age": 25}',
];

$validator = new Validator($data, $rules);

assertThat($validator->validate(), is(true));

// In order to validate users json context
$validator->setRules([
['name', StringRule::class, MatchRule::class, MatchRule::PATTERN => '/^[a-z]{1, 20}$/i'],
['age', NumericRule::class, NumericRule::MAX => 80],
]);

$user = json_decode($validator->getValidatedContext()['user'], true);
$validator->setContext($user);

// Validate and merge context
assertThat($validator->validate(true), is(true));

$validatedPost = $validator->getValidatedContext();
assertThat($validatedPost, hasEntry('age', 25));
assertThat($validatedPost, hasKey('user'));
}

public function testValidatorGetImplodedErrors(): void
{
$validator = new Validator(['name' => 'Ben'], [
Expand Down Expand Up @@ -105,7 +141,7 @@ public function getValidatorProvider(): \Generator
],
// expectedResult
true,
// $errorsSize
// errorsSize
0
];

Expand Down

0 comments on commit 3f3d80a

Please sign in to comment.