From 9f6ceb7b90314af8edab0a12d7fe96a5dd8fadae Mon Sep 17 00:00:00 2001 From: Rodrigo Primo Date: Tue, 29 Oct 2024 13:50:24 -0300 Subject: [PATCH 1/4] Generic/InterfaceNameSuffix: cleanup existing tests - Remove redundant tests. - Remove unnecessary whitespaces. - Use proper punctuation in a code comment. - Make some tests more descriptive by making the class name reflect what is being tested. --- .../InterfaceNameSuffixUnitTest.inc | 26 +++---------------- .../InterfaceNameSuffixUnitTest.php | 2 +- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.inc b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.inc index d562d3eaeb..b976445d5e 100644 --- a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.inc +++ b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.inc @@ -1,27 +1,7 @@ 1]; + return [5 => 1]; }//end getErrorList() From ceef93ecfc6504a2656e029519f65e7019622a20 Mon Sep 17 00:00:00 2001 From: Rodrigo Primo Date: Tue, 29 Oct 2024 13:52:09 -0300 Subject: [PATCH 2/4] Generic/InterfaceNameSuffix: rename test case file Doing this to be able to create tests with syntax errors in additional, separate test case files. --- ...UnitTest.inc => InterfaceNameSuffixUnitTest.1.inc} | 0 .../NamingConventions/InterfaceNameSuffixUnitTest.php | 11 +++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) rename src/Standards/Generic/Tests/NamingConventions/{InterfaceNameSuffixUnitTest.inc => InterfaceNameSuffixUnitTest.1.inc} (100%) diff --git a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.inc b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.1.inc similarity index 100% rename from src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.inc rename to src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.1.inc diff --git a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php index 5e99ae7031..28e6e586b4 100644 --- a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php +++ b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php @@ -25,11 +25,18 @@ final class InterfaceNameSuffixUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the test file. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [5 => 1]; + switch ($testFile) { + case 'InterfaceNameSuffixUnitTest.1.inc': + return [5 => 1]; + default: + return []; + } }//end getErrorList() From e84d732b2d40d3236173e6d2641e3a785fa86751 Mon Sep 17 00:00:00 2001 From: Rodrigo Primo Date: Tue, 29 Oct 2024 16:45:37 -0300 Subject: [PATCH 3/4] Generic/InterfaceNameSuffix: improve code coverage - Add a separate test case file with a live coding/parse error test. - Add a new test with comments and new lines in unexpected places and parent interfaces. --- .../NamingConventions/InterfaceNameSuffixUnitTest.1.inc | 6 ++++++ .../NamingConventions/InterfaceNameSuffixUnitTest.2.inc | 7 +++++++ .../NamingConventions/InterfaceNameSuffixUnitTest.php | 5 ++++- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.2.inc diff --git a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.1.inc b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.1.inc index b976445d5e..d09fa3df7d 100644 --- a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.1.inc +++ b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.1.inc @@ -5,3 +5,9 @@ interface SomeNameInterface {} interface MissingInterfaceSuffix {} // Error. interface CaseOfSuffixIsNotEnforced_interFACE {} + +interface + /*comment*/ + InterfaceAnotherInvalidName + extends + AnotherInterface, \Countable {} // Error. diff --git a/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.2.inc b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.2.inc new file mode 100644 index 0000000000..fcecfd007e --- /dev/null +++ b/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.2.inc @@ -0,0 +1,7 @@ + 1]; + return [ + 5 => 1, + 9 => 1, + ]; default: return []; } From 2b7a23073b5144c9044a19d5cf9e474c20c6fc55 Mon Sep 17 00:00:00 2001 From: Rodrigo Primo Date: Tue, 29 Oct 2024 17:28:10 -0300 Subject: [PATCH 4/4] Generic/InterfaceNameSuffix: add inline comment This commit just adds an inline comment documenting why the sniff bails early if there is no interface name. Doing this to follow the same pattern used by other similar sniffs like AbstractClassName https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/8a7ee56347bb4017ffc778a42a532cbb1651a20b/src/Standards/Generic/Sniffs/NamingConventions/AbstractClassNamePrefixSniff.php#L48 --- .../Sniffs/NamingConventions/InterfaceNameSuffixSniff.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php b/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php index 637e036f1f..6dfad6b406 100644 --- a/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php +++ b/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php @@ -40,6 +40,7 @@ public function process(File $phpcsFile, $stackPtr) { $interfaceName = $phpcsFile->getDeclarationName($stackPtr); if ($interfaceName === null) { + // Live coding or parse error. Bow out. return; }