mirror of
https://github.com/Respect/Validation.git
synced 2024-06-08 00:32:16 +02:00
Increase test coverage of the following Rules
- Base64 - Base - Bsn - Contains - Executable - FilterVar - In - Ip - Isbn - NoWhiteSpace - Pesel - Phone - PolishIdCard - PortugueseNif - PublicDomainSuffix - StartsWith - Subset - Version - VideoUrl
This commit is contained in:
parent
2ae1df177a
commit
5084aaebde
|
@ -55,6 +55,11 @@ final class Base64Test extends RuleTestCase
|
|||
$rule = new Base64();
|
||||
|
||||
return [
|
||||
[$rule, []],
|
||||
[$rule, 1.2],
|
||||
[$rule, false],
|
||||
[$rule, 123],
|
||||
[$rule, null],
|
||||
[$rule, ''],
|
||||
[$rule, 'hello!'],
|
||||
[$rule, '=c3VyZS4'],
|
||||
|
|
|
@ -11,12 +11,23 @@ namespace Respect\Validation\Rules;
|
|||
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use Respect\Validation\Exceptions\InvalidRuleConstructorException;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Base::class)]
|
||||
final class BaseTest extends RuleTestCase
|
||||
{
|
||||
#[Test]
|
||||
public function itShouldThrowsExceptionWhenBaseIsNotValid(): void
|
||||
{
|
||||
$this->expectException(InvalidRuleConstructorException::class);
|
||||
$this->expectExceptionMessage('a base between 1 and 62 is required');
|
||||
|
||||
(new Base(63))->evaluate('011010001');
|
||||
}
|
||||
|
||||
/** @return iterable<array{Base, mixed}> */
|
||||
public static function providerForValidInput(): iterable
|
||||
{
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
|
|||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Bsn::class)]
|
||||
|
@ -42,6 +43,9 @@ final class BsnTest extends RuleTestCase
|
|||
$rule = new Bsn();
|
||||
|
||||
return [
|
||||
[$rule, []],
|
||||
[$rule, new stdClass()],
|
||||
[$rule, null],
|
||||
[$rule, '1234567890'],
|
||||
[$rule, '0987654321'],
|
||||
[$rule, '13579024'],
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
|
|||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Contains::class)]
|
||||
|
@ -40,10 +41,17 @@ final class ContainsTest extends RuleTestCase
|
|||
public static function providerForInvalidInput(): iterable
|
||||
{
|
||||
return [
|
||||
[new Contains('', false), 'abc'],
|
||||
[new Contains(null, false), null],
|
||||
[new Contains(null, false), []],
|
||||
[new Contains(new stdClass(), false), new stdClass()],
|
||||
[new Contains('foo', false), ''],
|
||||
[new Contains('bat', false), ['bar', 'foo']],
|
||||
[new Contains('foo', false), 'barfaabaz'],
|
||||
[new Contains('foo', false), 'faabarbaz'],
|
||||
[new Contains(null, true), null],
|
||||
[new Contains(null, true), []],
|
||||
[new Contains(new stdClass(), true), new stdClass()],
|
||||
[new Contains('foo', true), ''],
|
||||
[new Contains('bat', true), ['BAT', 'foo']],
|
||||
[new Contains('bat', true), ['BaT', 'Batata']],
|
||||
|
|
|
@ -14,6 +14,7 @@ use PHPUnit\Framework\Attributes\Group;
|
|||
use Respect\Validation\Test\RuleTestCase;
|
||||
use SplFileInfo;
|
||||
use SplFileObject;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Executable::class)]
|
||||
|
@ -37,6 +38,9 @@ final class ExecutableTest extends RuleTestCase
|
|||
$rule = new Executable();
|
||||
|
||||
return [
|
||||
[$rule, []],
|
||||
[$rule, new stdClass()],
|
||||
[$rule, null],
|
||||
[$rule, 'tests/fixtures/valid-image.gif'],
|
||||
[$rule, new SplFileInfo('tests/fixtures/valid-image.jpg')],
|
||||
[$rule, new SplFileObject('tests/fixtures/valid-image.png')],
|
||||
|
|
|
@ -60,6 +60,8 @@ final class FilterVarTest extends RuleTestCase
|
|||
[new FilterVar(FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED), 'http://example.com'],
|
||||
[new FilterVar(FILTER_VALIDATE_DOMAIN), '.com'],
|
||||
[new FilterVar(FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME), '@local'],
|
||||
[new FilterVar(FILTER_VALIDATE_INT, []), 1.4],
|
||||
[new FilterVar(FILTER_VALIDATE_INT, 2), 1.4],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ final class InTest extends RuleTestCase
|
|||
public static function providerForInvalidInput(): iterable
|
||||
{
|
||||
return [
|
||||
[new In('0', true), 'abc'],
|
||||
[new In('0'), null],
|
||||
[new In(0, true), null],
|
||||
[new In('', true), null],
|
||||
|
|
|
@ -42,6 +42,7 @@ final class IpTest extends RuleTestCase
|
|||
return [
|
||||
['192.168'],
|
||||
['asd'],
|
||||
['-'],
|
||||
['192.168.0.0-192.168.0.256'],
|
||||
['192.168.0.0-192.168.0.1/4'],
|
||||
['192.168.0/1'],
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
|
|||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Isbn::class)]
|
||||
|
@ -39,6 +40,9 @@ final class IsbnTest extends RuleTestCase
|
|||
$sut = new Isbn();
|
||||
|
||||
return [
|
||||
[$sut, []],
|
||||
[$sut, null],
|
||||
[$sut, new stdClass()],
|
||||
[$sut, 'ISBN 11978-0-596-52068-7'],
|
||||
[$sut, 'ISBN-12: 978-0-596-52068-7'],
|
||||
[$sut, '978 10 596 52068 7'],
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
|
|||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(NoWhitespace::class)]
|
||||
|
@ -37,6 +38,8 @@ final class NoWhitespaceTest extends RuleTestCase
|
|||
$rule = new NoWhitespace();
|
||||
|
||||
return [
|
||||
[$rule, []],
|
||||
[$rule, new stdClass()],
|
||||
[$rule, ' '],
|
||||
[$rule, 'w poiur'],
|
||||
[$rule, ' '],
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
|
|||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Pesel::class)]
|
||||
|
@ -40,6 +41,9 @@ final class PeselTest extends RuleTestCase
|
|||
$rule = new Pesel();
|
||||
|
||||
return [
|
||||
[$rule, null],
|
||||
[$rule, []],
|
||||
[$rule, new stdClass()],
|
||||
[$rule, '1'],
|
||||
[$rule, '22'],
|
||||
[$rule, 'PESEL'],
|
||||
|
|
|
@ -13,7 +13,9 @@ use PHPUnit\Framework\Attributes\CoversClass;
|
|||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use Respect\Validation\Exceptions\InvalidRuleConstructorException;
|
||||
use Respect\Validation\Test\TestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(Phone::class)]
|
||||
|
@ -47,6 +49,15 @@ final class PhoneTest extends TestCase
|
|||
self::assertInvalidInput(new Phone($countryCode), $input);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function itShouldThrowsExceptionWhenCountryCodeIsNotValid(): void
|
||||
{
|
||||
$this->expectException(InvalidRuleConstructorException::class);
|
||||
$this->expectExceptionMessage('Invalid country code BRR');
|
||||
|
||||
(new Phone('BRR'))->evaluate('+1 11 91111 1111');
|
||||
}
|
||||
|
||||
/** @return array<array{mixed}> */
|
||||
public static function providerForValidInputWithoutCountryCode(): array
|
||||
{
|
||||
|
@ -67,6 +78,8 @@ final class PhoneTest extends TestCase
|
|||
public static function providerForInvalidInputWithoutCountryCode(): array
|
||||
{
|
||||
return [
|
||||
[null],
|
||||
[new stdClass()],
|
||||
['+1-650-253-00-0'],
|
||||
['33(020) 7777 7777'],
|
||||
['33(020)7777 7777'],
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
|
|||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
use stdClass;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(PolishIdCard::class)]
|
||||
|
@ -35,6 +36,10 @@ final class PolishIdCardTest extends RuleTestCase
|
|||
$rule = new PolishIdCard();
|
||||
|
||||
return [
|
||||
[$rule, null],
|
||||
[$rule, new stdClass()],
|
||||
[$rule, []],
|
||||
[$rule, '999205411'],
|
||||
[$rule, 'AAAAAAAAA'],
|
||||
[$rule, 'APH 505567'],
|
||||
[$rule, 'AYE205411'],
|
||||
|
|
|
@ -55,6 +55,9 @@ final class PortugueseNifTest extends RuleTestCase
|
|||
|
||||
return [
|
||||
// Check digit is wrong
|
||||
[$rule, '429468882'],
|
||||
[$rule, '739468882'],
|
||||
[$rule, '939468882'],
|
||||
[$rule, '129468882'],
|
||||
[$rule, '220005245'],
|
||||
[$rule, '389684008'],
|
||||
|
|
|
@ -24,6 +24,7 @@ final class PublicDomainSuffixTest extends RuleTestCase
|
|||
$rule = new PublicDomainSuffix();
|
||||
|
||||
return [
|
||||
[$rule, ''],
|
||||
[$rule, 'co.uk'],
|
||||
[$rule, 'nom.br'],
|
||||
[$rule, 'WWW.CK'],
|
||||
|
|
|
@ -34,6 +34,8 @@ final class StartsWithTest extends RuleTestCase
|
|||
public static function providerForInvalidInput(): iterable
|
||||
{
|
||||
return [
|
||||
[new StartsWith(123), 123],
|
||||
[new StartsWith(123, true), 123],
|
||||
[new StartsWith('foo'), ''],
|
||||
[new StartsWith('bat'), ['foo', 'bar']],
|
||||
[new StartsWith('foo'), 'barfaabaz'],
|
||||
|
|
|
@ -35,6 +35,7 @@ final class SubsetTest extends RuleTestCase
|
|||
public static function providerForInvalidInput(): iterable
|
||||
{
|
||||
return [
|
||||
[new Subset([]), '1'],
|
||||
[new Subset([]), [1]],
|
||||
[new Subset([1]), [2]],
|
||||
[new Subset([1, 2]), [1, 2, 3]],
|
||||
|
|
|
@ -41,6 +41,8 @@ final class VersionTest extends RuleTestCase
|
|||
$sut = new Version();
|
||||
|
||||
return [
|
||||
'int' => [$sut, 1],
|
||||
'float' => [$sut, 1.2],
|
||||
'empty' => [$sut, ''],
|
||||
'1.3.7--' => [$sut, '1.3.7--'],
|
||||
'1.3.7++' => [$sut, '1.3.7++'],
|
||||
|
|
|
@ -11,12 +11,23 @@ namespace Respect\Validation\Rules;
|
|||
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use Respect\Validation\Exceptions\InvalidRuleConstructorException;
|
||||
use Respect\Validation\Test\RuleTestCase;
|
||||
|
||||
#[Group('rule')]
|
||||
#[CoversClass(VideoUrl::class)]
|
||||
final class VideoUrlTest extends RuleTestCase
|
||||
{
|
||||
#[Test]
|
||||
public function itShouldThrowsExceptionWhenVideoUrlIsNotValid(): void
|
||||
{
|
||||
$this->expectException(InvalidRuleConstructorException::class);
|
||||
$this->expectExceptionMessage('"tiktok" is not a recognized video service.');
|
||||
|
||||
(new VideoUrl('tiktok'))->evaluate('https://tiktok.com/video/71787467');
|
||||
}
|
||||
|
||||
/** @return iterable<array{VideoUrl, mixed}> */
|
||||
public static function providerForValidInput(): iterable
|
||||
{
|
||||
|
@ -40,6 +51,7 @@ final class VideoUrlTest extends RuleTestCase
|
|||
public static function providerForInvalidInput(): iterable
|
||||
{
|
||||
return [
|
||||
'vimeo service with invalid URL' => [new VideoUrl('vimeo'), 1],
|
||||
'vimeo service with youtube url' => [new VideoUrl('vimeo'), 'https://www.youtube.com/watch?v=netHLn9TScY'],
|
||||
'youtube service with vimeo url' => [new VideoUrl('youtube'), 'https://vimeo.com/71787467'],
|
||||
'no service with example.com url' => [new VideoUrl(), 'example.com'],
|
||||
|
|
Loading…
Reference in a new issue