diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 13f5ddc63e47..3653cf1349c2 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -43,56 +43,7 @@ __DIR__ . '/spark', ]); -$overrides = [ - 'php_unit_data_provider_name' => [ - 'prefix' => 'provide', - 'suffix' => '', - ], - 'php_unit_data_provider_static' => true, - 'php_unit_data_provider_return_type' => true, - 'no_extra_blank_lines' => [ - 'tokens' => [ - 'attribute', - 'break', - 'case', - 'continue', - 'curly_brace_block', - 'default', - 'extra', - 'parenthesis_brace_block', - 'return', - 'square_brace_block', - 'switch', - 'throw', - 'use', - ], - ], - 'fully_qualified_strict_types' => [ - 'import_symbols' => false, - 'leading_backslash_in_global_namespace' => false, - 'phpdoc_tags' => [ - 'param', - 'phpstan-param', - 'phpstan-property', - 'phpstan-property-read', - 'phpstan-property-write', - 'phpstan-return', - 'phpstan-var', - 'property', - 'property-read', - 'property-write', - 'psalm-param', - 'psalm-property', - 'psalm-property-read', - 'psalm-property-write', - 'psalm-return', - 'psalm-var', - 'return', - 'throws', - 'var', - ], - ], -]; +$overrides = []; $options = [ 'cacheFile' => 'build/.php-cs-fixer.cache', diff --git a/.php-cs-fixer.no-header.php b/.php-cs-fixer.no-header.php index 5fb4ce95bfbe..7c9ae1e80737 100644 --- a/.php-cs-fixer.no-header.php +++ b/.php-cs-fixer.no-header.php @@ -29,31 +29,7 @@ __DIR__ . '/admin/starter/builds', ]); -$overrides = [ - 'php_unit_data_provider_name' => [ - 'prefix' => 'provide', - 'suffix' => '', - ], - 'php_unit_data_provider_static' => true, - 'php_unit_data_provider_return_type' => true, - 'no_extra_blank_lines' => [ - 'tokens' => [ - 'attribute', - 'break', - 'case', - 'continue', - 'curly_brace_block', - 'default', - 'extra', - 'parenthesis_brace_block', - 'return', - 'square_brace_block', - 'switch', - 'throw', - 'use', - ], - ], -]; +$overrides = []; $options = [ 'cacheFile' => 'build/.php-cs-fixer.no-header.cache', diff --git a/.php-cs-fixer.user-guide.php b/.php-cs-fixer.user-guide.php index cf344d903ad5..7700626c965f 100644 --- a/.php-cs-fixer.user-guide.php +++ b/.php-cs-fixer.user-guide.php @@ -31,33 +31,10 @@ ]); $overrides = [ - 'echo_tag_syntax' => false, - 'php_unit_internal_class' => false, - 'no_unused_imports' => false, - 'class_attributes_separation' => false, - 'php_unit_data_provider_return_type' => true, - 'no_extra_blank_lines' => [ - 'tokens' => [ - 'attribute', - 'break', - 'case', - 'continue', - 'curly_brace_block', - 'default', - 'extra', - 'parenthesis_brace_block', - 'return', - 'square_brace_block', - 'switch', - 'throw', - 'use', - ], - ], - 'php_unit_data_provider_static' => true, - 'php_unit_data_provider_name' => [ - 'prefix' => 'provide', - 'suffix' => '', - ], + 'echo_tag_syntax' => false, + 'php_unit_internal_class' => false, + 'no_unused_imports' => false, + 'class_attributes_separation' => false, ]; $options = [ diff --git a/admin/framework/composer.json b/admin/framework/composer.json index e50d6445aba4..1c6af5b94446 100644 --- a/admin/framework/composer.json +++ b/admin/framework/composer.json @@ -18,7 +18,7 @@ "psr/log": "^1.1" }, "require-dev": { - "codeigniter/coding-standard": "^1.5", + "codeigniter/coding-standard": "^1.7", "fakerphp/faker": "^1.9", "friendsofphp/php-cs-fixer": "^3.43", "kint-php/kint": "^5.0.4", diff --git a/composer.json b/composer.json index 0b3a49f8c6ba..e1128874b4ff 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "psr/log": "^1.1" }, "require-dev": { - "codeigniter/coding-standard": "^1.5", + "codeigniter/coding-standard": "^1.7", "codeigniter/phpstan-codeigniter": "^1.4", "ergebnis/composer-normalize": "^2.28", "fakerphp/faker": "^1.9", diff --git a/tests/system/AutoReview/FrameworkCodeTest.php b/tests/system/AutoReview/FrameworkCodeTest.php index 6583c9f2839e..c9c7bed7b77e 100644 --- a/tests/system/AutoReview/FrameworkCodeTest.php +++ b/tests/system/AutoReview/FrameworkCodeTest.php @@ -73,14 +73,14 @@ public function testEachTestClassHasCorrectGroupAnnotation(string $class): void )); } - public function provideEachTestClassHasCorrectGroupAnnotation(): iterable + public static function provideEachTestClassHasCorrectGroupAnnotation(): iterable { - foreach ($this->getTestClasses() as $class) { + foreach (self::getTestClasses() as $class) { yield $class => [$class]; } } - private function getTestClasses(): array + private static function getTestClasses(): array { if (self::$testClasses !== []) { return self::$testClasses; diff --git a/tests/system/HTTP/SiteURITest.php b/tests/system/HTTP/SiteURITest.php index f839b51c0771..554904c2436b 100644 --- a/tests/system/HTTP/SiteURITest.php +++ b/tests/system/HTTP/SiteURITest.php @@ -60,9 +60,9 @@ public function testConstructor( $this->assertSame($expectedTotalSegments, $uri->getTotalSegments()); } - public function provideConstructor(): iterable + public static function provideConstructor(): iterable { - return array_merge($this->provideSetPath(), $this->provideRelativePathWithQueryOrFragment()); + return array_merge(self::provideSetPath(), self::provideRelativePathWithQueryOrFragment()); } public static function provideSetPath(): iterable @@ -214,7 +214,7 @@ public static function provideSetPath(): iterable ]; } - public function provideRelativePathWithQueryOrFragment() + public static function provideRelativePathWithQueryOrFragment(): iterable { return [ 'one/two?foo=1&bar=2' => [ diff --git a/tests/system/Validation/CreditCardRulesTest.php b/tests/system/Validation/CreditCardRulesTest.php index 397675270eda..e0f21691eebb 100644 --- a/tests/system/Validation/CreditCardRulesTest.php +++ b/tests/system/Validation/CreditCardRulesTest.php @@ -63,7 +63,7 @@ public function testValidCCNumber(string $type, ?string $number, bool $expected) * * @see https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm */ - public function provideValidCCNumber(): iterable + public static function provideValidCCNumber(): iterable { yield from [ 'null_test' => [ @@ -73,7 +73,7 @@ public function provideValidCCNumber(): iterable ], 'random_test' => [ 'amex', - $this->generateCardNumber('37', 16), + self::generateCardNumber('37', 16), false, ], 'invalid_type' => [ @@ -173,1027 +173,1027 @@ public function provideValidCCNumber(): iterable ], 'unionpay1' => [ 'unionpay', - $this->generateCardNumber(62, 16), + self::generateCardNumber(62, 16), true, ], 'unionpay2' => [ 'unionpay', - $this->generateCardNumber(62, 17), + self::generateCardNumber(62, 17), true, ], 'unionpay3' => [ 'unionpay', - $this->generateCardNumber(62, 18), + self::generateCardNumber(62, 18), true, ], 'unionpay4' => [ 'unionpay', - $this->generateCardNumber(62, 19), + self::generateCardNumber(62, 19), true, ], 'unionpay5' => [ 'unionpay', - $this->generateCardNumber(63, 19), + self::generateCardNumber(63, 19), false, ], 'carteblanche1' => [ 'carteblanche', - $this->generateCardNumber(300, 14), + self::generateCardNumber(300, 14), true, ], 'carteblanche2' => [ 'carteblanche', - $this->generateCardNumber(301, 14), + self::generateCardNumber(301, 14), true, ], 'carteblanche3' => [ 'carteblanche', - $this->generateCardNumber(302, 14), + self::generateCardNumber(302, 14), true, ], 'carteblanche4' => [ 'carteblanche', - $this->generateCardNumber(303, 14), + self::generateCardNumber(303, 14), true, ], 'carteblanche5' => [ 'carteblanche', - $this->generateCardNumber(304, 14), + self::generateCardNumber(304, 14), true, ], 'carteblanche6' => [ 'carteblanche', - $this->generateCardNumber(305, 14), + self::generateCardNumber(305, 14), true, ], 'carteblanche7' => [ 'carteblanche', - $this->generateCardNumber(306, 14), + self::generateCardNumber(306, 14), false, ], 'dinersclub3' => [ 'dinersclub', - $this->generateCardNumber(300, 14), + self::generateCardNumber(300, 14), true, ], 'dinersclub4' => [ 'dinersclub', - $this->generateCardNumber(301, 14), + self::generateCardNumber(301, 14), true, ], 'dinersclub5' => [ 'dinersclub', - $this->generateCardNumber(302, 14), + self::generateCardNumber(302, 14), true, ], 'dinersclub6' => [ 'dinersclub', - $this->generateCardNumber(303, 14), + self::generateCardNumber(303, 14), true, ], 'dinersclub7' => [ 'dinersclub', - $this->generateCardNumber(304, 14), + self::generateCardNumber(304, 14), true, ], 'dinersclub8' => [ 'dinersclub', - $this->generateCardNumber(305, 14), + self::generateCardNumber(305, 14), true, ], 'dinersclub9' => [ 'dinersclub', - $this->generateCardNumber(309, 14), + self::generateCardNumber(309, 14), true, ], 'dinersclub10' => [ 'dinersclub', - $this->generateCardNumber(36, 14), + self::generateCardNumber(36, 14), true, ], 'dinersclub11' => [ 'dinersclub', - $this->generateCardNumber(38, 14), + self::generateCardNumber(38, 14), true, ], 'dinersclub12' => [ 'dinersclub', - $this->generateCardNumber(39, 14), + self::generateCardNumber(39, 14), true, ], 'dinersclub13' => [ 'dinersclub', - $this->generateCardNumber(54, 14), + self::generateCardNumber(54, 14), true, ], 'dinersclub14' => [ 'dinersclub', - $this->generateCardNumber(55, 14), + self::generateCardNumber(55, 14), true, ], 'dinersclub15' => [ 'dinersclub', - $this->generateCardNumber(300, 16), + self::generateCardNumber(300, 16), true, ], 'dinersclub16' => [ 'dinersclub', - $this->generateCardNumber(301, 16), + self::generateCardNumber(301, 16), true, ], 'dinersclub17' => [ 'dinersclub', - $this->generateCardNumber(302, 16), + self::generateCardNumber(302, 16), true, ], 'dinersclub18' => [ 'dinersclub', - $this->generateCardNumber(303, 16), + self::generateCardNumber(303, 16), true, ], 'dinersclub19' => [ 'dinersclub', - $this->generateCardNumber(304, 16), + self::generateCardNumber(304, 16), true, ], 'dinersclub20' => [ 'dinersclub', - $this->generateCardNumber(305, 16), + self::generateCardNumber(305, 16), true, ], 'dinersclub21' => [ 'dinersclub', - $this->generateCardNumber(309, 16), + self::generateCardNumber(309, 16), true, ], 'dinersclub22' => [ 'dinersclub', - $this->generateCardNumber(36, 16), + self::generateCardNumber(36, 16), true, ], 'dinersclub23' => [ 'dinersclub', - $this->generateCardNumber(38, 16), + self::generateCardNumber(38, 16), true, ], 'dinersclub24' => [ 'dinersclub', - $this->generateCardNumber(39, 16), + self::generateCardNumber(39, 16), true, ], 'dinersclub25' => [ 'dinersclub', - $this->generateCardNumber(54, 16), + self::generateCardNumber(54, 16), true, ], 'dinersclub26' => [ 'dinersclub', - $this->generateCardNumber(55, 16), + self::generateCardNumber(55, 16), true, ], 'discover3' => [ 'discover', - $this->generateCardNumber(6011, 16), + self::generateCardNumber(6011, 16), true, ], 'discover4' => [ 'discover', - $this->generateCardNumber(622, 16), + self::generateCardNumber(622, 16), true, ], 'discover5' => [ 'discover', - $this->generateCardNumber(644, 16), + self::generateCardNumber(644, 16), true, ], 'discover6' => [ 'discover', - $this->generateCardNumber(645, 16), + self::generateCardNumber(645, 16), true, ], 'discover7' => [ 'discover', - $this->generateCardNumber(656, 16), + self::generateCardNumber(656, 16), true, ], 'discover8' => [ 'discover', - $this->generateCardNumber(647, 16), + self::generateCardNumber(647, 16), true, ], 'discover9' => [ 'discover', - $this->generateCardNumber(648, 16), + self::generateCardNumber(648, 16), true, ], 'discover10' => [ 'discover', - $this->generateCardNumber(649, 16), + self::generateCardNumber(649, 16), true, ], 'discover11' => [ 'discover', - $this->generateCardNumber(65, 16), + self::generateCardNumber(65, 16), true, ], 'discover12' => [ 'discover', - $this->generateCardNumber(6011, 19), + self::generateCardNumber(6011, 19), true, ], 'discover13' => [ 'discover', - $this->generateCardNumber(622, 19), + self::generateCardNumber(622, 19), true, ], 'discover14' => [ 'discover', - $this->generateCardNumber(644, 19), + self::generateCardNumber(644, 19), true, ], 'discover15' => [ 'discover', - $this->generateCardNumber(645, 19), + self::generateCardNumber(645, 19), true, ], 'discover16' => [ 'discover', - $this->generateCardNumber(656, 19), + self::generateCardNumber(656, 19), true, ], 'discover17' => [ 'discover', - $this->generateCardNumber(647, 19), + self::generateCardNumber(647, 19), true, ], 'discover18' => [ 'discover', - $this->generateCardNumber(648, 19), + self::generateCardNumber(648, 19), true, ], 'discover19' => [ 'discover', - $this->generateCardNumber(649, 19), + self::generateCardNumber(649, 19), true, ], 'discover20' => [ 'discover', - $this->generateCardNumber(65, 19), + self::generateCardNumber(65, 19), true, ], 'interpayment1' => [ 'interpayment', - $this->generateCardNumber(4, 16), + self::generateCardNumber(4, 16), true, ], 'interpayment2' => [ 'interpayment', - $this->generateCardNumber(4, 17), + self::generateCardNumber(4, 17), true, ], 'interpayment3' => [ 'interpayment', - $this->generateCardNumber(4, 18), + self::generateCardNumber(4, 18), true, ], 'interpayment4' => [ 'interpayment', - $this->generateCardNumber(4, 19), + self::generateCardNumber(4, 19), true, ], 'jcb1' => [ 'jcb', - $this->generateCardNumber(352, 16), + self::generateCardNumber(352, 16), true, ], 'jcb2' => [ 'jcb', - $this->generateCardNumber(353, 16), + self::generateCardNumber(353, 16), true, ], 'jcb3' => [ 'jcb', - $this->generateCardNumber(354, 16), + self::generateCardNumber(354, 16), true, ], 'jcb4' => [ 'jcb', - $this->generateCardNumber(355, 16), + self::generateCardNumber(355, 16), true, ], 'jcb5' => [ 'jcb', - $this->generateCardNumber(356, 16), + self::generateCardNumber(356, 16), true, ], 'jcb6' => [ 'jcb', - $this->generateCardNumber(357, 16), + self::generateCardNumber(357, 16), true, ], 'jcb7' => [ 'jcb', - $this->generateCardNumber(358, 16), + self::generateCardNumber(358, 16), true, ], 'maestro1' => [ 'maestro', - $this->generateCardNumber(50, 12), + self::generateCardNumber(50, 12), true, ], 'maestro2' => [ 'maestro', - $this->generateCardNumber(56, 12), + self::generateCardNumber(56, 12), true, ], 'maestro3' => [ 'maestro', - $this->generateCardNumber(57, 12), + self::generateCardNumber(57, 12), true, ], 'maestro4' => [ 'maestro', - $this->generateCardNumber(58, 12), + self::generateCardNumber(58, 12), true, ], 'maestro5' => [ 'maestro', - $this->generateCardNumber(59, 12), + self::generateCardNumber(59, 12), true, ], 'maestro6' => [ 'maestro', - $this->generateCardNumber(60, 12), + self::generateCardNumber(60, 12), true, ], 'maestro7' => [ 'maestro', - $this->generateCardNumber(61, 12), + self::generateCardNumber(61, 12), true, ], 'maestro8' => [ 'maestro', - $this->generateCardNumber(62, 12), + self::generateCardNumber(62, 12), true, ], 'maestro9' => [ 'maestro', - $this->generateCardNumber(63, 12), + self::generateCardNumber(63, 12), true, ], 'maestro10' => [ 'maestro', - $this->generateCardNumber(64, 12), + self::generateCardNumber(64, 12), true, ], 'maestro11' => [ 'maestro', - $this->generateCardNumber(65, 12), + self::generateCardNumber(65, 12), true, ], 'maestro12' => [ 'maestro', - $this->generateCardNumber(66, 12), + self::generateCardNumber(66, 12), true, ], 'maestro13' => [ 'maestro', - $this->generateCardNumber(67, 12), + self::generateCardNumber(67, 12), true, ], 'maestro14' => [ 'maestro', - $this->generateCardNumber(68, 12), + self::generateCardNumber(68, 12), true, ], 'maestro15' => [ 'maestro', - $this->generateCardNumber(69, 12), + self::generateCardNumber(69, 12), true, ], 'maestro16' => [ 'maestro', - $this->generateCardNumber(50, 13), + self::generateCardNumber(50, 13), true, ], 'maestro17' => [ 'maestro', - $this->generateCardNumber(56, 13), + self::generateCardNumber(56, 13), true, ], 'maestro18' => [ 'maestro', - $this->generateCardNumber(57, 13), + self::generateCardNumber(57, 13), true, ], 'maestro19' => [ 'maestro', - $this->generateCardNumber(58, 13), + self::generateCardNumber(58, 13), true, ], 'maestro20' => [ 'maestro', - $this->generateCardNumber(59, 13), + self::generateCardNumber(59, 13), true, ], 'maestro21' => [ 'maestro', - $this->generateCardNumber(60, 13), + self::generateCardNumber(60, 13), true, ], 'maestro22' => [ 'maestro', - $this->generateCardNumber(61, 13), + self::generateCardNumber(61, 13), true, ], 'maestro23' => [ 'maestro', - $this->generateCardNumber(62, 13), + self::generateCardNumber(62, 13), true, ], 'maestro24' => [ 'maestro', - $this->generateCardNumber(63, 13), + self::generateCardNumber(63, 13), true, ], 'maestro25' => [ 'maestro', - $this->generateCardNumber(64, 13), + self::generateCardNumber(64, 13), true, ], 'maestro26' => [ 'maestro', - $this->generateCardNumber(65, 13), + self::generateCardNumber(65, 13), true, ], 'maestro27' => [ 'maestro', - $this->generateCardNumber(66, 13), + self::generateCardNumber(66, 13), true, ], 'maestro28' => [ 'maestro', - $this->generateCardNumber(67, 13), + self::generateCardNumber(67, 13), true, ], 'maestro29' => [ 'maestro', - $this->generateCardNumber(68, 13), + self::generateCardNumber(68, 13), true, ], 'maestro30' => [ 'maestro', - $this->generateCardNumber(69, 13), + self::generateCardNumber(69, 13), true, ], 'maestro31' => [ 'maestro', - $this->generateCardNumber(50, 14), + self::generateCardNumber(50, 14), true, ], 'maestro32' => [ 'maestro', - $this->generateCardNumber(56, 14), + self::generateCardNumber(56, 14), true, ], 'maestro33' => [ 'maestro', - $this->generateCardNumber(57, 14), + self::generateCardNumber(57, 14), true, ], 'maestro34' => [ 'maestro', - $this->generateCardNumber(58, 14), + self::generateCardNumber(58, 14), true, ], 'maestro35' => [ 'maestro', - $this->generateCardNumber(59, 14), + self::generateCardNumber(59, 14), true, ], 'maestro36' => [ 'maestro', - $this->generateCardNumber(60, 14), + self::generateCardNumber(60, 14), true, ], 'maestro37' => [ 'maestro', - $this->generateCardNumber(61, 14), + self::generateCardNumber(61, 14), true, ], 'maestro38' => [ 'maestro', - $this->generateCardNumber(62, 14), + self::generateCardNumber(62, 14), true, ], 'maestro39' => [ 'maestro', - $this->generateCardNumber(63, 14), + self::generateCardNumber(63, 14), true, ], 'maestro40' => [ 'maestro', - $this->generateCardNumber(64, 14), + self::generateCardNumber(64, 14), true, ], 'maestro41' => [ 'maestro', - $this->generateCardNumber(65, 14), + self::generateCardNumber(65, 14), true, ], 'maestro42' => [ 'maestro', - $this->generateCardNumber(66, 14), + self::generateCardNumber(66, 14), true, ], 'maestro43' => [ 'maestro', - $this->generateCardNumber(67, 14), + self::generateCardNumber(67, 14), true, ], 'maestro44' => [ 'maestro', - $this->generateCardNumber(68, 14), + self::generateCardNumber(68, 14), true, ], 'maestro45' => [ 'maestro', - $this->generateCardNumber(69, 14), + self::generateCardNumber(69, 14), true, ], 'maestro46' => [ 'maestro', - $this->generateCardNumber(50, 15), + self::generateCardNumber(50, 15), true, ], 'maestro47' => [ 'maestro', - $this->generateCardNumber(56, 15), + self::generateCardNumber(56, 15), true, ], 'maestro48' => [ 'maestro', - $this->generateCardNumber(57, 15), + self::generateCardNumber(57, 15), true, ], 'maestro49' => [ 'maestro', - $this->generateCardNumber(58, 15), + self::generateCardNumber(58, 15), true, ], 'maestro50' => [ 'maestro', - $this->generateCardNumber(59, 15), + self::generateCardNumber(59, 15), true, ], 'maestro51' => [ 'maestro', - $this->generateCardNumber(60, 15), + self::generateCardNumber(60, 15), true, ], 'maestro52' => [ 'maestro', - $this->generateCardNumber(61, 15), + self::generateCardNumber(61, 15), true, ], 'maestro53' => [ 'maestro', - $this->generateCardNumber(62, 15), + self::generateCardNumber(62, 15), true, ], 'maestro54' => [ 'maestro', - $this->generateCardNumber(63, 15), + self::generateCardNumber(63, 15), true, ], 'maestro55' => [ 'maestro', - $this->generateCardNumber(64, 15), + self::generateCardNumber(64, 15), true, ], 'maestro56' => [ 'maestro', - $this->generateCardNumber(65, 15), + self::generateCardNumber(65, 15), true, ], 'maestro57' => [ 'maestro', - $this->generateCardNumber(66, 15), + self::generateCardNumber(66, 15), true, ], 'maestro58' => [ 'maestro', - $this->generateCardNumber(67, 15), + self::generateCardNumber(67, 15), true, ], 'maestro59' => [ 'maestro', - $this->generateCardNumber(68, 15), + self::generateCardNumber(68, 15), true, ], 'maestro60' => [ 'maestro', - $this->generateCardNumber(69, 15), + self::generateCardNumber(69, 15), true, ], 'maestro61' => [ 'maestro', - $this->generateCardNumber(50, 16), + self::generateCardNumber(50, 16), true, ], 'maestro62' => [ 'maestro', - $this->generateCardNumber(56, 16), + self::generateCardNumber(56, 16), true, ], 'maestro63' => [ 'maestro', - $this->generateCardNumber(57, 16), + self::generateCardNumber(57, 16), true, ], 'maestro64' => [ 'maestro', - $this->generateCardNumber(58, 16), + self::generateCardNumber(58, 16), true, ], 'maestro65' => [ 'maestro', - $this->generateCardNumber(59, 16), + self::generateCardNumber(59, 16), true, ], 'maestro66' => [ 'maestro', - $this->generateCardNumber(60, 16), + self::generateCardNumber(60, 16), true, ], 'maestro67' => [ 'maestro', - $this->generateCardNumber(61, 16), + self::generateCardNumber(61, 16), true, ], 'maestro68' => [ 'maestro', - $this->generateCardNumber(62, 16), + self::generateCardNumber(62, 16), true, ], 'maestro69' => [ 'maestro', - $this->generateCardNumber(63, 16), + self::generateCardNumber(63, 16), true, ], 'maestro70' => [ 'maestro', - $this->generateCardNumber(64, 16), + self::generateCardNumber(64, 16), true, ], 'maestro71' => [ 'maestro', - $this->generateCardNumber(65, 16), + self::generateCardNumber(65, 16), true, ], 'maestro72' => [ 'maestro', - $this->generateCardNumber(66, 16), + self::generateCardNumber(66, 16), true, ], 'maestro73' => [ 'maestro', - $this->generateCardNumber(67, 16), + self::generateCardNumber(67, 16), true, ], 'maestro74' => [ 'maestro', - $this->generateCardNumber(68, 16), + self::generateCardNumber(68, 16), true, ], 'maestro75' => [ 'maestro', - $this->generateCardNumber(69, 16), + self::generateCardNumber(69, 16), true, ], 'maestro91' => [ 'maestro', - $this->generateCardNumber(50, 18), + self::generateCardNumber(50, 18), true, ], 'maestro92' => [ 'maestro', - $this->generateCardNumber(56, 18), + self::generateCardNumber(56, 18), true, ], 'maestro93' => [ 'maestro', - $this->generateCardNumber(57, 18), + self::generateCardNumber(57, 18), true, ], 'maestro94' => [ 'maestro', - $this->generateCardNumber(58, 18), + self::generateCardNumber(58, 18), true, ], 'maestro95' => [ 'maestro', - $this->generateCardNumber(59, 18), + self::generateCardNumber(59, 18), true, ], 'maestro96' => [ 'maestro', - $this->generateCardNumber(60, 18), + self::generateCardNumber(60, 18), true, ], 'maestro97' => [ 'maestro', - $this->generateCardNumber(61, 18), + self::generateCardNumber(61, 18), true, ], 'maestro98' => [ 'maestro', - $this->generateCardNumber(62, 18), + self::generateCardNumber(62, 18), true, ], 'maestro99' => [ 'maestro', - $this->generateCardNumber(63, 18), + self::generateCardNumber(63, 18), true, ], 'maestro100' => [ 'maestro', - $this->generateCardNumber(64, 18), + self::generateCardNumber(64, 18), true, ], 'maestro101' => [ 'maestro', - $this->generateCardNumber(65, 18), + self::generateCardNumber(65, 18), true, ], 'maestro102' => [ 'maestro', - $this->generateCardNumber(66, 18), + self::generateCardNumber(66, 18), true, ], 'maestro103' => [ 'maestro', - $this->generateCardNumber(67, 18), + self::generateCardNumber(67, 18), true, ], 'maestro104' => [ 'maestro', - $this->generateCardNumber(68, 18), + self::generateCardNumber(68, 18), true, ], 'maestro105' => [ 'maestro', - $this->generateCardNumber(69, 18), + self::generateCardNumber(69, 18), true, ], 'maestro106' => [ 'maestro', - $this->generateCardNumber(50, 19), + self::generateCardNumber(50, 19), true, ], 'maestro107' => [ 'maestro', - $this->generateCardNumber(56, 19), + self::generateCardNumber(56, 19), true, ], 'maestro108' => [ 'maestro', - $this->generateCardNumber(57, 19), + self::generateCardNumber(57, 19), true, ], 'maestro109' => [ 'maestro', - $this->generateCardNumber(58, 19), + self::generateCardNumber(58, 19), true, ], 'maestro110' => [ 'maestro', - $this->generateCardNumber(59, 19), + self::generateCardNumber(59, 19), true, ], 'maestro111' => [ 'maestro', - $this->generateCardNumber(60, 19), + self::generateCardNumber(60, 19), true, ], 'maestro112' => [ 'maestro', - $this->generateCardNumber(61, 19), + self::generateCardNumber(61, 19), true, ], 'maestro113' => [ 'maestro', - $this->generateCardNumber(62, 19), + self::generateCardNumber(62, 19), true, ], 'maestro114' => [ 'maestro', - $this->generateCardNumber(63, 19), + self::generateCardNumber(63, 19), true, ], 'maestro115' => [ 'maestro', - $this->generateCardNumber(64, 19), + self::generateCardNumber(64, 19), true, ], 'maestro116' => [ 'maestro', - $this->generateCardNumber(65, 19), + self::generateCardNumber(65, 19), true, ], 'maestro117' => [ 'maestro', - $this->generateCardNumber(66, 19), + self::generateCardNumber(66, 19), true, ], 'maestro118' => [ 'maestro', - $this->generateCardNumber(67, 19), + self::generateCardNumber(67, 19), true, ], 'maestro119' => [ 'maestro', - $this->generateCardNumber(68, 19), + self::generateCardNumber(68, 19), true, ], 'maestro120' => [ 'maestro', - $this->generateCardNumber(69, 19), + self::generateCardNumber(69, 19), true, ], 'dankort1' => [ 'dankort', - $this->generateCardNumber(5019, 16), + self::generateCardNumber(5019, 16), true, ], 'dankort2' => [ 'dankort', - $this->generateCardNumber(4175, 16), + self::generateCardNumber(4175, 16), true, ], 'dankort3' => [ 'dankort', - $this->generateCardNumber(4571, 16), + self::generateCardNumber(4571, 16), true, ], 'dankort4' => [ 'dankort', - $this->generateCardNumber(4, 16), + self::generateCardNumber(4, 16), true, ], 'mir1' => [ 'mir', - $this->generateCardNumber(2200, 16), + self::generateCardNumber(2200, 16), true, ], 'mir2' => [ 'mir', - $this->generateCardNumber(2201, 16), + self::generateCardNumber(2201, 16), true, ], 'mir3' => [ 'mir', - $this->generateCardNumber(2202, 16), + self::generateCardNumber(2202, 16), true, ], 'mir4' => [ 'mir', - $this->generateCardNumber(2203, 16), + self::generateCardNumber(2203, 16), true, ], 'mir5' => [ 'mir', - $this->generateCardNumber(2204, 16), + self::generateCardNumber(2204, 16), true, ], 'mastercard1' => [ 'mastercard', - $this->generateCardNumber(51, 16), + self::generateCardNumber(51, 16), true, ], 'mastercard2' => [ 'mastercard', - $this->generateCardNumber(52, 16), + self::generateCardNumber(52, 16), true, ], 'mastercard3' => [ 'mastercard', - $this->generateCardNumber(53, 16), + self::generateCardNumber(53, 16), true, ], 'mastercard4' => [ 'mastercard', - $this->generateCardNumber(54, 16), + self::generateCardNumber(54, 16), true, ], 'mastercard5' => [ 'mastercard', - $this->generateCardNumber(55, 16), + self::generateCardNumber(55, 16), true, ], 'mastercard6' => [ 'mastercard', - $this->generateCardNumber(22, 16), + self::generateCardNumber(22, 16), true, ], 'mastercard7' => [ 'mastercard', - $this->generateCardNumber(23, 16), + self::generateCardNumber(23, 16), true, ], 'mastercard8' => [ 'mastercard', - $this->generateCardNumber(24, 16), + self::generateCardNumber(24, 16), true, ], 'mastercard9' => [ 'mastercard', - $this->generateCardNumber(25, 16), + self::generateCardNumber(25, 16), true, ], 'mastercard10' => [ 'mastercard', - $this->generateCardNumber(26, 16), + self::generateCardNumber(26, 16), true, ], 'mastercard11' => [ 'mastercard', - $this->generateCardNumber(27, 16), + self::generateCardNumber(27, 16), true, ], 'visa1' => [ 'visa', - $this->generateCardNumber(4, 13), + self::generateCardNumber(4, 13), true, ], 'visa2' => [ 'visa', - $this->generateCardNumber(4, 16), + self::generateCardNumber(4, 16), true, ], 'visa3' => [ 'visa', - $this->generateCardNumber(4, 19), + self::generateCardNumber(4, 19), true, ], 'uatp' => [ 'uatp', - $this->generateCardNumber(1, 15), + self::generateCardNumber(1, 15), true, ], 'verve1' => [ 'verve', - $this->generateCardNumber(506, 16), + self::generateCardNumber(506, 16), true, ], 'verve2' => [ 'verve', - $this->generateCardNumber(650, 16), + self::generateCardNumber(650, 16), true, ], 'verve3' => [ 'verve', - $this->generateCardNumber(506, 19), + self::generateCardNumber(506, 19), true, ], 'verve4' => [ 'verve', - $this->generateCardNumber(650, 19), + self::generateCardNumber(650, 19), true, ], 'cibc1' => [ 'cibc', - $this->generateCardNumber(4506, 16), + self::generateCardNumber(4506, 16), true, ], 'rbc1' => [ 'rbc', - $this->generateCardNumber(45, 16), + self::generateCardNumber(45, 16), true, ], 'tdtrust' => [ 'tdtrust', - $this->generateCardNumber(589297, 16), + self::generateCardNumber(589297, 16), true, ], 'scotia1' => [ 'scotia', - $this->generateCardNumber(4536, 16), + self::generateCardNumber(4536, 16), true, ], 'bmoabm1' => [ 'bmoabm', - $this->generateCardNumber(500, 16), + self::generateCardNumber(500, 16), true, ], 'hsbc1' => [ 'hsbc', - $this->generateCardNumber(56, 16), + self::generateCardNumber(56, 16), true, ], 'hsbc2' => [ 'hsbc', - $this->generateCardNumber(57, 16), + self::generateCardNumber(57, 16), false, ], ]; @@ -1202,7 +1202,7 @@ public function provideValidCCNumber(): iterable /** * Generate a fake credit card number that still passes the Luhn algorithm. */ - private function generateCardNumber(int $prefix, int $length): string + private static function generateCardNumber(int $prefix, int $length): string { $prefix = (string) $prefix; $cursor = strlen($prefix); @@ -1214,12 +1214,12 @@ private function generateCardNumber(int $prefix, int $length): string $digits[$cursor++] = (string) random_int(0, 9); } - $digits[$length - 1] = (string) $this->calculateLuhnChecksum($digits, $length); + $digits[$length - 1] = (string) self::calculateLuhnChecksum($digits, $length); return implode('', $digits); } - private function calculateLuhnChecksum(array $digits, int $length): int + private static function calculateLuhnChecksum(array $digits, int $length): int { $parity = $length % 2; diff --git a/tests/system/Validation/StrictRules/CreditCardRulesTest.php b/tests/system/Validation/StrictRules/CreditCardRulesTest.php index 2e685c852e55..ffe5818c4cff 100644 --- a/tests/system/Validation/StrictRules/CreditCardRulesTest.php +++ b/tests/system/Validation/StrictRules/CreditCardRulesTest.php @@ -64,7 +64,7 @@ public function testValidCCNumber(string $type, ?string $number, bool $expected) * * @see https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm */ - public function provideValidCCNumber(): iterable + public static function provideValidCCNumber(): iterable { yield from [ 'null_test' => [ @@ -74,7 +74,7 @@ public function provideValidCCNumber(): iterable ], 'random_test' => [ 'amex', - $this->generateCardNumber('37', 16), + self::generateCardNumber('37', 16), false, ], 'invalid_type' => [ @@ -174,1027 +174,1027 @@ public function provideValidCCNumber(): iterable ], 'unionpay1' => [ 'unionpay', - $this->generateCardNumber(62, 16), + self::generateCardNumber(62, 16), true, ], 'unionpay2' => [ 'unionpay', - $this->generateCardNumber(62, 17), + self::generateCardNumber(62, 17), true, ], 'unionpay3' => [ 'unionpay', - $this->generateCardNumber(62, 18), + self::generateCardNumber(62, 18), true, ], 'unionpay4' => [ 'unionpay', - $this->generateCardNumber(62, 19), + self::generateCardNumber(62, 19), true, ], 'unionpay5' => [ 'unionpay', - $this->generateCardNumber(63, 19), + self::generateCardNumber(63, 19), false, ], 'carteblanche1' => [ 'carteblanche', - $this->generateCardNumber(300, 14), + self::generateCardNumber(300, 14), true, ], 'carteblanche2' => [ 'carteblanche', - $this->generateCardNumber(301, 14), + self::generateCardNumber(301, 14), true, ], 'carteblanche3' => [ 'carteblanche', - $this->generateCardNumber(302, 14), + self::generateCardNumber(302, 14), true, ], 'carteblanche4' => [ 'carteblanche', - $this->generateCardNumber(303, 14), + self::generateCardNumber(303, 14), true, ], 'carteblanche5' => [ 'carteblanche', - $this->generateCardNumber(304, 14), + self::generateCardNumber(304, 14), true, ], 'carteblanche6' => [ 'carteblanche', - $this->generateCardNumber(305, 14), + self::generateCardNumber(305, 14), true, ], 'carteblanche7' => [ 'carteblanche', - $this->generateCardNumber(306, 14), + self::generateCardNumber(306, 14), false, ], 'dinersclub3' => [ 'dinersclub', - $this->generateCardNumber(300, 14), + self::generateCardNumber(300, 14), true, ], 'dinersclub4' => [ 'dinersclub', - $this->generateCardNumber(301, 14), + self::generateCardNumber(301, 14), true, ], 'dinersclub5' => [ 'dinersclub', - $this->generateCardNumber(302, 14), + self::generateCardNumber(302, 14), true, ], 'dinersclub6' => [ 'dinersclub', - $this->generateCardNumber(303, 14), + self::generateCardNumber(303, 14), true, ], 'dinersclub7' => [ 'dinersclub', - $this->generateCardNumber(304, 14), + self::generateCardNumber(304, 14), true, ], 'dinersclub8' => [ 'dinersclub', - $this->generateCardNumber(305, 14), + self::generateCardNumber(305, 14), true, ], 'dinersclub9' => [ 'dinersclub', - $this->generateCardNumber(309, 14), + self::generateCardNumber(309, 14), true, ], 'dinersclub10' => [ 'dinersclub', - $this->generateCardNumber(36, 14), + self::generateCardNumber(36, 14), true, ], 'dinersclub11' => [ 'dinersclub', - $this->generateCardNumber(38, 14), + self::generateCardNumber(38, 14), true, ], 'dinersclub12' => [ 'dinersclub', - $this->generateCardNumber(39, 14), + self::generateCardNumber(39, 14), true, ], 'dinersclub13' => [ 'dinersclub', - $this->generateCardNumber(54, 14), + self::generateCardNumber(54, 14), true, ], 'dinersclub14' => [ 'dinersclub', - $this->generateCardNumber(55, 14), + self::generateCardNumber(55, 14), true, ], 'dinersclub15' => [ 'dinersclub', - $this->generateCardNumber(300, 16), + self::generateCardNumber(300, 16), true, ], 'dinersclub16' => [ 'dinersclub', - $this->generateCardNumber(301, 16), + self::generateCardNumber(301, 16), true, ], 'dinersclub17' => [ 'dinersclub', - $this->generateCardNumber(302, 16), + self::generateCardNumber(302, 16), true, ], 'dinersclub18' => [ 'dinersclub', - $this->generateCardNumber(303, 16), + self::generateCardNumber(303, 16), true, ], 'dinersclub19' => [ 'dinersclub', - $this->generateCardNumber(304, 16), + self::generateCardNumber(304, 16), true, ], 'dinersclub20' => [ 'dinersclub', - $this->generateCardNumber(305, 16), + self::generateCardNumber(305, 16), true, ], 'dinersclub21' => [ 'dinersclub', - $this->generateCardNumber(309, 16), + self::generateCardNumber(309, 16), true, ], 'dinersclub22' => [ 'dinersclub', - $this->generateCardNumber(36, 16), + self::generateCardNumber(36, 16), true, ], 'dinersclub23' => [ 'dinersclub', - $this->generateCardNumber(38, 16), + self::generateCardNumber(38, 16), true, ], 'dinersclub24' => [ 'dinersclub', - $this->generateCardNumber(39, 16), + self::generateCardNumber(39, 16), true, ], 'dinersclub25' => [ 'dinersclub', - $this->generateCardNumber(54, 16), + self::generateCardNumber(54, 16), true, ], 'dinersclub26' => [ 'dinersclub', - $this->generateCardNumber(55, 16), + self::generateCardNumber(55, 16), true, ], 'discover3' => [ 'discover', - $this->generateCardNumber(6011, 16), + self::generateCardNumber(6011, 16), true, ], 'discover4' => [ 'discover', - $this->generateCardNumber(622, 16), + self::generateCardNumber(622, 16), true, ], 'discover5' => [ 'discover', - $this->generateCardNumber(644, 16), + self::generateCardNumber(644, 16), true, ], 'discover6' => [ 'discover', - $this->generateCardNumber(645, 16), + self::generateCardNumber(645, 16), true, ], 'discover7' => [ 'discover', - $this->generateCardNumber(656, 16), + self::generateCardNumber(656, 16), true, ], 'discover8' => [ 'discover', - $this->generateCardNumber(647, 16), + self::generateCardNumber(647, 16), true, ], 'discover9' => [ 'discover', - $this->generateCardNumber(648, 16), + self::generateCardNumber(648, 16), true, ], 'discover10' => [ 'discover', - $this->generateCardNumber(649, 16), + self::generateCardNumber(649, 16), true, ], 'discover11' => [ 'discover', - $this->generateCardNumber(65, 16), + self::generateCardNumber(65, 16), true, ], 'discover12' => [ 'discover', - $this->generateCardNumber(6011, 19), + self::generateCardNumber(6011, 19), true, ], 'discover13' => [ 'discover', - $this->generateCardNumber(622, 19), + self::generateCardNumber(622, 19), true, ], 'discover14' => [ 'discover', - $this->generateCardNumber(644, 19), + self::generateCardNumber(644, 19), true, ], 'discover15' => [ 'discover', - $this->generateCardNumber(645, 19), + self::generateCardNumber(645, 19), true, ], 'discover16' => [ 'discover', - $this->generateCardNumber(656, 19), + self::generateCardNumber(656, 19), true, ], 'discover17' => [ 'discover', - $this->generateCardNumber(647, 19), + self::generateCardNumber(647, 19), true, ], 'discover18' => [ 'discover', - $this->generateCardNumber(648, 19), + self::generateCardNumber(648, 19), true, ], 'discover19' => [ 'discover', - $this->generateCardNumber(649, 19), + self::generateCardNumber(649, 19), true, ], 'discover20' => [ 'discover', - $this->generateCardNumber(65, 19), + self::generateCardNumber(65, 19), true, ], 'interpayment1' => [ 'interpayment', - $this->generateCardNumber(4, 16), + self::generateCardNumber(4, 16), true, ], 'interpayment2' => [ 'interpayment', - $this->generateCardNumber(4, 17), + self::generateCardNumber(4, 17), true, ], 'interpayment3' => [ 'interpayment', - $this->generateCardNumber(4, 18), + self::generateCardNumber(4, 18), true, ], 'interpayment4' => [ 'interpayment', - $this->generateCardNumber(4, 19), + self::generateCardNumber(4, 19), true, ], 'jcb1' => [ 'jcb', - $this->generateCardNumber(352, 16), + self::generateCardNumber(352, 16), true, ], 'jcb2' => [ 'jcb', - $this->generateCardNumber(353, 16), + self::generateCardNumber(353, 16), true, ], 'jcb3' => [ 'jcb', - $this->generateCardNumber(354, 16), + self::generateCardNumber(354, 16), true, ], 'jcb4' => [ 'jcb', - $this->generateCardNumber(355, 16), + self::generateCardNumber(355, 16), true, ], 'jcb5' => [ 'jcb', - $this->generateCardNumber(356, 16), + self::generateCardNumber(356, 16), true, ], 'jcb6' => [ 'jcb', - $this->generateCardNumber(357, 16), + self::generateCardNumber(357, 16), true, ], 'jcb7' => [ 'jcb', - $this->generateCardNumber(358, 16), + self::generateCardNumber(358, 16), true, ], 'maestro1' => [ 'maestro', - $this->generateCardNumber(50, 12), + self::generateCardNumber(50, 12), true, ], 'maestro2' => [ 'maestro', - $this->generateCardNumber(56, 12), + self::generateCardNumber(56, 12), true, ], 'maestro3' => [ 'maestro', - $this->generateCardNumber(57, 12), + self::generateCardNumber(57, 12), true, ], 'maestro4' => [ 'maestro', - $this->generateCardNumber(58, 12), + self::generateCardNumber(58, 12), true, ], 'maestro5' => [ 'maestro', - $this->generateCardNumber(59, 12), + self::generateCardNumber(59, 12), true, ], 'maestro6' => [ 'maestro', - $this->generateCardNumber(60, 12), + self::generateCardNumber(60, 12), true, ], 'maestro7' => [ 'maestro', - $this->generateCardNumber(61, 12), + self::generateCardNumber(61, 12), true, ], 'maestro8' => [ 'maestro', - $this->generateCardNumber(62, 12), + self::generateCardNumber(62, 12), true, ], 'maestro9' => [ 'maestro', - $this->generateCardNumber(63, 12), + self::generateCardNumber(63, 12), true, ], 'maestro10' => [ 'maestro', - $this->generateCardNumber(64, 12), + self::generateCardNumber(64, 12), true, ], 'maestro11' => [ 'maestro', - $this->generateCardNumber(65, 12), + self::generateCardNumber(65, 12), true, ], 'maestro12' => [ 'maestro', - $this->generateCardNumber(66, 12), + self::generateCardNumber(66, 12), true, ], 'maestro13' => [ 'maestro', - $this->generateCardNumber(67, 12), + self::generateCardNumber(67, 12), true, ], 'maestro14' => [ 'maestro', - $this->generateCardNumber(68, 12), + self::generateCardNumber(68, 12), true, ], 'maestro15' => [ 'maestro', - $this->generateCardNumber(69, 12), + self::generateCardNumber(69, 12), true, ], 'maestro16' => [ 'maestro', - $this->generateCardNumber(50, 13), + self::generateCardNumber(50, 13), true, ], 'maestro17' => [ 'maestro', - $this->generateCardNumber(56, 13), + self::generateCardNumber(56, 13), true, ], 'maestro18' => [ 'maestro', - $this->generateCardNumber(57, 13), + self::generateCardNumber(57, 13), true, ], 'maestro19' => [ 'maestro', - $this->generateCardNumber(58, 13), + self::generateCardNumber(58, 13), true, ], 'maestro20' => [ 'maestro', - $this->generateCardNumber(59, 13), + self::generateCardNumber(59, 13), true, ], 'maestro21' => [ 'maestro', - $this->generateCardNumber(60, 13), + self::generateCardNumber(60, 13), true, ], 'maestro22' => [ 'maestro', - $this->generateCardNumber(61, 13), + self::generateCardNumber(61, 13), true, ], 'maestro23' => [ 'maestro', - $this->generateCardNumber(62, 13), + self::generateCardNumber(62, 13), true, ], 'maestro24' => [ 'maestro', - $this->generateCardNumber(63, 13), + self::generateCardNumber(63, 13), true, ], 'maestro25' => [ 'maestro', - $this->generateCardNumber(64, 13), + self::generateCardNumber(64, 13), true, ], 'maestro26' => [ 'maestro', - $this->generateCardNumber(65, 13), + self::generateCardNumber(65, 13), true, ], 'maestro27' => [ 'maestro', - $this->generateCardNumber(66, 13), + self::generateCardNumber(66, 13), true, ], 'maestro28' => [ 'maestro', - $this->generateCardNumber(67, 13), + self::generateCardNumber(67, 13), true, ], 'maestro29' => [ 'maestro', - $this->generateCardNumber(68, 13), + self::generateCardNumber(68, 13), true, ], 'maestro30' => [ 'maestro', - $this->generateCardNumber(69, 13), + self::generateCardNumber(69, 13), true, ], 'maestro31' => [ 'maestro', - $this->generateCardNumber(50, 14), + self::generateCardNumber(50, 14), true, ], 'maestro32' => [ 'maestro', - $this->generateCardNumber(56, 14), + self::generateCardNumber(56, 14), true, ], 'maestro33' => [ 'maestro', - $this->generateCardNumber(57, 14), + self::generateCardNumber(57, 14), true, ], 'maestro34' => [ 'maestro', - $this->generateCardNumber(58, 14), + self::generateCardNumber(58, 14), true, ], 'maestro35' => [ 'maestro', - $this->generateCardNumber(59, 14), + self::generateCardNumber(59, 14), true, ], 'maestro36' => [ 'maestro', - $this->generateCardNumber(60, 14), + self::generateCardNumber(60, 14), true, ], 'maestro37' => [ 'maestro', - $this->generateCardNumber(61, 14), + self::generateCardNumber(61, 14), true, ], 'maestro38' => [ 'maestro', - $this->generateCardNumber(62, 14), + self::generateCardNumber(62, 14), true, ], 'maestro39' => [ 'maestro', - $this->generateCardNumber(63, 14), + self::generateCardNumber(63, 14), true, ], 'maestro40' => [ 'maestro', - $this->generateCardNumber(64, 14), + self::generateCardNumber(64, 14), true, ], 'maestro41' => [ 'maestro', - $this->generateCardNumber(65, 14), + self::generateCardNumber(65, 14), true, ], 'maestro42' => [ 'maestro', - $this->generateCardNumber(66, 14), + self::generateCardNumber(66, 14), true, ], 'maestro43' => [ 'maestro', - $this->generateCardNumber(67, 14), + self::generateCardNumber(67, 14), true, ], 'maestro44' => [ 'maestro', - $this->generateCardNumber(68, 14), + self::generateCardNumber(68, 14), true, ], 'maestro45' => [ 'maestro', - $this->generateCardNumber(69, 14), + self::generateCardNumber(69, 14), true, ], 'maestro46' => [ 'maestro', - $this->generateCardNumber(50, 15), + self::generateCardNumber(50, 15), true, ], 'maestro47' => [ 'maestro', - $this->generateCardNumber(56, 15), + self::generateCardNumber(56, 15), true, ], 'maestro48' => [ 'maestro', - $this->generateCardNumber(57, 15), + self::generateCardNumber(57, 15), true, ], 'maestro49' => [ 'maestro', - $this->generateCardNumber(58, 15), + self::generateCardNumber(58, 15), true, ], 'maestro50' => [ 'maestro', - $this->generateCardNumber(59, 15), + self::generateCardNumber(59, 15), true, ], 'maestro51' => [ 'maestro', - $this->generateCardNumber(60, 15), + self::generateCardNumber(60, 15), true, ], 'maestro52' => [ 'maestro', - $this->generateCardNumber(61, 15), + self::generateCardNumber(61, 15), true, ], 'maestro53' => [ 'maestro', - $this->generateCardNumber(62, 15), + self::generateCardNumber(62, 15), true, ], 'maestro54' => [ 'maestro', - $this->generateCardNumber(63, 15), + self::generateCardNumber(63, 15), true, ], 'maestro55' => [ 'maestro', - $this->generateCardNumber(64, 15), + self::generateCardNumber(64, 15), true, ], 'maestro56' => [ 'maestro', - $this->generateCardNumber(65, 15), + self::generateCardNumber(65, 15), true, ], 'maestro57' => [ 'maestro', - $this->generateCardNumber(66, 15), + self::generateCardNumber(66, 15), true, ], 'maestro58' => [ 'maestro', - $this->generateCardNumber(67, 15), + self::generateCardNumber(67, 15), true, ], 'maestro59' => [ 'maestro', - $this->generateCardNumber(68, 15), + self::generateCardNumber(68, 15), true, ], 'maestro60' => [ 'maestro', - $this->generateCardNumber(69, 15), + self::generateCardNumber(69, 15), true, ], 'maestro61' => [ 'maestro', - $this->generateCardNumber(50, 16), + self::generateCardNumber(50, 16), true, ], 'maestro62' => [ 'maestro', - $this->generateCardNumber(56, 16), + self::generateCardNumber(56, 16), true, ], 'maestro63' => [ 'maestro', - $this->generateCardNumber(57, 16), + self::generateCardNumber(57, 16), true, ], 'maestro64' => [ 'maestro', - $this->generateCardNumber(58, 16), + self::generateCardNumber(58, 16), true, ], 'maestro65' => [ 'maestro', - $this->generateCardNumber(59, 16), + self::generateCardNumber(59, 16), true, ], 'maestro66' => [ 'maestro', - $this->generateCardNumber(60, 16), + self::generateCardNumber(60, 16), true, ], 'maestro67' => [ 'maestro', - $this->generateCardNumber(61, 16), + self::generateCardNumber(61, 16), true, ], 'maestro68' => [ 'maestro', - $this->generateCardNumber(62, 16), + self::generateCardNumber(62, 16), true, ], 'maestro69' => [ 'maestro', - $this->generateCardNumber(63, 16), + self::generateCardNumber(63, 16), true, ], 'maestro70' => [ 'maestro', - $this->generateCardNumber(64, 16), + self::generateCardNumber(64, 16), true, ], 'maestro71' => [ 'maestro', - $this->generateCardNumber(65, 16), + self::generateCardNumber(65, 16), true, ], 'maestro72' => [ 'maestro', - $this->generateCardNumber(66, 16), + self::generateCardNumber(66, 16), true, ], 'maestro73' => [ 'maestro', - $this->generateCardNumber(67, 16), + self::generateCardNumber(67, 16), true, ], 'maestro74' => [ 'maestro', - $this->generateCardNumber(68, 16), + self::generateCardNumber(68, 16), true, ], 'maestro75' => [ 'maestro', - $this->generateCardNumber(69, 16), + self::generateCardNumber(69, 16), true, ], 'maestro91' => [ 'maestro', - $this->generateCardNumber(50, 18), + self::generateCardNumber(50, 18), true, ], 'maestro92' => [ 'maestro', - $this->generateCardNumber(56, 18), + self::generateCardNumber(56, 18), true, ], 'maestro93' => [ 'maestro', - $this->generateCardNumber(57, 18), + self::generateCardNumber(57, 18), true, ], 'maestro94' => [ 'maestro', - $this->generateCardNumber(58, 18), + self::generateCardNumber(58, 18), true, ], 'maestro95' => [ 'maestro', - $this->generateCardNumber(59, 18), + self::generateCardNumber(59, 18), true, ], 'maestro96' => [ 'maestro', - $this->generateCardNumber(60, 18), + self::generateCardNumber(60, 18), true, ], 'maestro97' => [ 'maestro', - $this->generateCardNumber(61, 18), + self::generateCardNumber(61, 18), true, ], 'maestro98' => [ 'maestro', - $this->generateCardNumber(62, 18), + self::generateCardNumber(62, 18), true, ], 'maestro99' => [ 'maestro', - $this->generateCardNumber(63, 18), + self::generateCardNumber(63, 18), true, ], 'maestro100' => [ 'maestro', - $this->generateCardNumber(64, 18), + self::generateCardNumber(64, 18), true, ], 'maestro101' => [ 'maestro', - $this->generateCardNumber(65, 18), + self::generateCardNumber(65, 18), true, ], 'maestro102' => [ 'maestro', - $this->generateCardNumber(66, 18), + self::generateCardNumber(66, 18), true, ], 'maestro103' => [ 'maestro', - $this->generateCardNumber(67, 18), + self::generateCardNumber(67, 18), true, ], 'maestro104' => [ 'maestro', - $this->generateCardNumber(68, 18), + self::generateCardNumber(68, 18), true, ], 'maestro105' => [ 'maestro', - $this->generateCardNumber(69, 18), + self::generateCardNumber(69, 18), true, ], 'maestro106' => [ 'maestro', - $this->generateCardNumber(50, 19), + self::generateCardNumber(50, 19), true, ], 'maestro107' => [ 'maestro', - $this->generateCardNumber(56, 19), + self::generateCardNumber(56, 19), true, ], 'maestro108' => [ 'maestro', - $this->generateCardNumber(57, 19), + self::generateCardNumber(57, 19), true, ], 'maestro109' => [ 'maestro', - $this->generateCardNumber(58, 19), + self::generateCardNumber(58, 19), true, ], 'maestro110' => [ 'maestro', - $this->generateCardNumber(59, 19), + self::generateCardNumber(59, 19), true, ], 'maestro111' => [ 'maestro', - $this->generateCardNumber(60, 19), + self::generateCardNumber(60, 19), true, ], 'maestro112' => [ 'maestro', - $this->generateCardNumber(61, 19), + self::generateCardNumber(61, 19), true, ], 'maestro113' => [ 'maestro', - $this->generateCardNumber(62, 19), + self::generateCardNumber(62, 19), true, ], 'maestro114' => [ 'maestro', - $this->generateCardNumber(63, 19), + self::generateCardNumber(63, 19), true, ], 'maestro115' => [ 'maestro', - $this->generateCardNumber(64, 19), + self::generateCardNumber(64, 19), true, ], 'maestro116' => [ 'maestro', - $this->generateCardNumber(65, 19), + self::generateCardNumber(65, 19), true, ], 'maestro117' => [ 'maestro', - $this->generateCardNumber(66, 19), + self::generateCardNumber(66, 19), true, ], 'maestro118' => [ 'maestro', - $this->generateCardNumber(67, 19), + self::generateCardNumber(67, 19), true, ], 'maestro119' => [ 'maestro', - $this->generateCardNumber(68, 19), + self::generateCardNumber(68, 19), true, ], 'maestro120' => [ 'maestro', - $this->generateCardNumber(69, 19), + self::generateCardNumber(69, 19), true, ], 'dankort1' => [ 'dankort', - $this->generateCardNumber(5019, 16), + self::generateCardNumber(5019, 16), true, ], 'dankort2' => [ 'dankort', - $this->generateCardNumber(4175, 16), + self::generateCardNumber(4175, 16), true, ], 'dankort3' => [ 'dankort', - $this->generateCardNumber(4571, 16), + self::generateCardNumber(4571, 16), true, ], 'dankort4' => [ 'dankort', - $this->generateCardNumber(4, 16), + self::generateCardNumber(4, 16), true, ], 'mir1' => [ 'mir', - $this->generateCardNumber(2200, 16), + self::generateCardNumber(2200, 16), true, ], 'mir2' => [ 'mir', - $this->generateCardNumber(2201, 16), + self::generateCardNumber(2201, 16), true, ], 'mir3' => [ 'mir', - $this->generateCardNumber(2202, 16), + self::generateCardNumber(2202, 16), true, ], 'mir4' => [ 'mir', - $this->generateCardNumber(2203, 16), + self::generateCardNumber(2203, 16), true, ], 'mir5' => [ 'mir', - $this->generateCardNumber(2204, 16), + self::generateCardNumber(2204, 16), true, ], 'mastercard1' => [ 'mastercard', - $this->generateCardNumber(51, 16), + self::generateCardNumber(51, 16), true, ], 'mastercard2' => [ 'mastercard', - $this->generateCardNumber(52, 16), + self::generateCardNumber(52, 16), true, ], 'mastercard3' => [ 'mastercard', - $this->generateCardNumber(53, 16), + self::generateCardNumber(53, 16), true, ], 'mastercard4' => [ 'mastercard', - $this->generateCardNumber(54, 16), + self::generateCardNumber(54, 16), true, ], 'mastercard5' => [ 'mastercard', - $this->generateCardNumber(55, 16), + self::generateCardNumber(55, 16), true, ], 'mastercard6' => [ 'mastercard', - $this->generateCardNumber(22, 16), + self::generateCardNumber(22, 16), true, ], 'mastercard7' => [ 'mastercard', - $this->generateCardNumber(23, 16), + self::generateCardNumber(23, 16), true, ], 'mastercard8' => [ 'mastercard', - $this->generateCardNumber(24, 16), + self::generateCardNumber(24, 16), true, ], 'mastercard9' => [ 'mastercard', - $this->generateCardNumber(25, 16), + self::generateCardNumber(25, 16), true, ], 'mastercard10' => [ 'mastercard', - $this->generateCardNumber(26, 16), + self::generateCardNumber(26, 16), true, ], 'mastercard11' => [ 'mastercard', - $this->generateCardNumber(27, 16), + self::generateCardNumber(27, 16), true, ], 'visa1' => [ 'visa', - $this->generateCardNumber(4, 13), + self::generateCardNumber(4, 13), true, ], 'visa2' => [ 'visa', - $this->generateCardNumber(4, 16), + self::generateCardNumber(4, 16), true, ], 'visa3' => [ 'visa', - $this->generateCardNumber(4, 19), + self::generateCardNumber(4, 19), true, ], 'uatp' => [ 'uatp', - $this->generateCardNumber(1, 15), + self::generateCardNumber(1, 15), true, ], 'verve1' => [ 'verve', - $this->generateCardNumber(506, 16), + self::generateCardNumber(506, 16), true, ], 'verve2' => [ 'verve', - $this->generateCardNumber(650, 16), + self::generateCardNumber(650, 16), true, ], 'verve3' => [ 'verve', - $this->generateCardNumber(506, 19), + self::generateCardNumber(506, 19), true, ], 'verve4' => [ 'verve', - $this->generateCardNumber(650, 19), + self::generateCardNumber(650, 19), true, ], 'cibc1' => [ 'cibc', - $this->generateCardNumber(4506, 16), + self::generateCardNumber(4506, 16), true, ], 'rbc1' => [ 'rbc', - $this->generateCardNumber(45, 16), + self::generateCardNumber(45, 16), true, ], 'tdtrust' => [ 'tdtrust', - $this->generateCardNumber(589297, 16), + self::generateCardNumber(589297, 16), true, ], 'scotia1' => [ 'scotia', - $this->generateCardNumber(4536, 16), + self::generateCardNumber(4536, 16), true, ], 'bmoabm1' => [ 'bmoabm', - $this->generateCardNumber(500, 16), + self::generateCardNumber(500, 16), true, ], 'hsbc1' => [ 'hsbc', - $this->generateCardNumber(56, 16), + self::generateCardNumber(56, 16), true, ], 'hsbc2' => [ 'hsbc', - $this->generateCardNumber(57, 16), + self::generateCardNumber(57, 16), false, ], ]; @@ -1203,7 +1203,7 @@ public function provideValidCCNumber(): iterable /** * Generate a fake credit card number that still passes the Luhn algorithm. */ - private function generateCardNumber(int $prefix, int $length): string + private static function generateCardNumber(int $prefix, int $length): string { $prefix = (string) $prefix; $cursor = strlen($prefix); @@ -1215,12 +1215,12 @@ private function generateCardNumber(int $prefix, int $length): string $digits[$cursor++] = (string) random_int(0, 9); } - $digits[$length - 1] = (string) $this->calculateLuhnChecksum($digits, $length); + $digits[$length - 1] = (string) self::calculateLuhnChecksum($digits, $length); return implode('', $digits); } - private function calculateLuhnChecksum(array $digits, int $length): int + private static function calculateLuhnChecksum(array $digits, int $length): int { $parity = $length % 2; diff --git a/tests/system/Validation/StrictRules/ValidationTest.php b/tests/system/Validation/StrictRules/ValidationTest.php index e6b8f770640c..f330f8701be8 100644 --- a/tests/system/Validation/StrictRules/ValidationTest.php +++ b/tests/system/Validation/StrictRules/ValidationTest.php @@ -21,7 +21,7 @@ */ final class ValidationTest extends TraditionalValidationTest { - protected array $config = [ + protected static array $config = [ 'ruleSets' => [ Rules::class, FormatRules::class, diff --git a/tests/system/Validation/ValidationTest.php b/tests/system/Validation/ValidationTest.php index f7f87549087a..bb8ece43dd86 100644 --- a/tests/system/Validation/ValidationTest.php +++ b/tests/system/Validation/ValidationTest.php @@ -21,6 +21,7 @@ use Config\Services; use PHPUnit\Framework\ExpectationFailedException; use Tests\Support\Validation\TestRules; +use Throwable; use TypeError; /** @@ -33,7 +34,7 @@ class ValidationTest extends CIUnitTestCase { protected Validation $validation; - protected array $config = [ + protected static array $config = [ 'ruleSets' => [ Rules::class, FormatRules::class, @@ -75,7 +76,7 @@ class ValidationTest extends CIUnitTestCase protected function setUp(): void { parent::setUp(); - $this->validation = new Validation((object) $this->config, Services::renderer()); + $this->validation = new Validation((object) static::$config, Services::renderer()); $this->validation->reset(); } @@ -202,7 +203,7 @@ public function testSetRuleRulesFormat(bool $expected, $rules): void $this->addToAssertionCount(1); } - public function provideSetRuleRulesFormat(): iterable + public static function provideSetRuleRulesFormat(): iterable { yield 'fail-simple-object' => [ false, @@ -221,7 +222,7 @@ public function provideSetRuleRulesFormat(): iterable yield 'fail-deep-object' => [ false, - new Validation((object) $this->config, Services::renderer()), + new Validation((object) static::$config, Services::renderer()), ]; yield 'pass-multiple-string' => [ @@ -900,12 +901,20 @@ public function testShowBadTemplate(): void public function testNoRuleSetsSetup(): void { - $this->expectException(ValidationException::class); + try { + $rulesets = static::$config['ruleSets']; - $this->config['ruleSets'] = null; - $this->validation = new Validation((object) $this->config, Services::renderer()); - $this->validation->reset(); - $this->validation->run(['foo' => '']); + static::$config['ruleSets'] = null; + (new Validation((object) static::$config, Services::renderer())) + ->reset() + ->run(['foo' => '']); + + $this->fail(sprintf('%s should throw %s.', __METHOD__, ValidationException::class)); + } catch (Throwable $e) { + $this->assertInstanceOf(ValidationException::class, $e); + } finally { + static::$config['ruleSets'] = $rulesets; + } } public function testNotCustomRuleGroup(): void