mirror of
https://github.com/Respect/Validation.git
synced 2024-05-15 12:46:43 +02:00
Increase code coverage of some rules
We were not thoroughly testing quite a few rules, especially the constructor of some of them. This commit increases the code coverage, ensuring almost every single line in the "Rules" namespace is covered.
This commit is contained in:
parent
2ae1df177a
commit
719f12a424
|
@ -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);
|
||||
}
|
||||
|
||||
/** @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');
|
||||
}
|
||||
|
||||
/** @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');
|
||||
}
|
||||
|
||||
/** @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