Add Informative Validators.
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-08-26 20:30:25 +03:00
parent da847273b8
commit 7662d98bce
5 changed files with 185 additions and 0 deletions
@@ -0,0 +1,26 @@
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
use App\Models\Validation\Messages\OkInformativeValidator;
class OkInformativeValidatorTest extends TestCase
{
public function testIsValid(): void
{
$message = 'All fine';
$validator = new OkInformativeValidator($message);
$this->assertTrue($validator->isValid());
}
public function testGetMessage(): void
{
$message = 'All fine';
$validator = new OkInformativeValidator($message);
$this->assertEquals($validator->getMessage(), $message);
}
}
@@ -0,0 +1,69 @@
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
use App\Models\Validation\Messages\UpperRangeInformativeValidator;
use App\Models\Validation\Messages\OkInformativeValidator;
use App\Models\Validation\Validators\UpperRangeValidator;
use App\Models\Validation\Validators\OkValidator;
class UpperRangeInformativeValidatorTest extends TestCase
{
protected $messages = [
'ok' => 'valid',
'error' => 'invalid',
];
public function dataProvider() {
return [
'Valid Case for 10' => [
'value' => 10,
'limit' => 10,
'isValid' => true,
'message' => $this->messages['ok'],
],
'Valid Case for 255' => [
'value' => 0,
'limit' => 255,
'isValid' => true,
'message' => $this->messages['ok'],
],
'Invalid Case for 10' => [
'value' => 11,
'limit' => 10,
'isValid' => false,
'message' => $this->messages['error'],
],
'Invalid Case for 255' => [
'value' => 256,
'limit' => 255,
'isValid' => false,
'message' => $this->messages['error'],
],
];
}
public function setUpValidator(int $value, int $rangeLimit): UpperRangeInformativeValidator
{
$upperRangeValidator = new UpperRangeValidator($value, $rangeLimit, new OkValidator());
return new UpperRangeInformativeValidator(
$this->messages['error'],
$upperRangeValidator,
new OkInformativeValidator($this->messages['ok']),
);
}
/**
* @dataProvider dataProvider
*/
public function testGetMessage(int $value, int $limit, bool $isValid, string $message): void
{
$validator = $this->setUpValidator($value, $limit);
$this->assertEquals($validator->isValid(), $isValid);
$this->assertEquals($validator->getMessage(), $message);
}
}