diff --git a/src/Sniff/ExceptionNameSniff.php b/src/Sniff/ExceptionNameSniff.php index 2ff14ce..f2934ca 100644 --- a/src/Sniff/ExceptionNameSniff.php +++ b/src/Sniff/ExceptionNameSniff.php @@ -44,6 +44,10 @@ public function process(\DOMDocument $document, string $content, string $filePat continue; } + if ($node->parentNode instanceof \DOMElement && $node->parentNode->localName === 'ooclass') { + continue; + } + if ($this->looksLikeException($text, $suffixes)) { $violations[] = $this->createViolation( $filePath, diff --git a/tests/Unit/Sniff/ExceptionNameSniffTest.php b/tests/Unit/Sniff/ExceptionNameSniffTest.php index 397655c..de6600d 100644 --- a/tests/Unit/Sniff/ExceptionNameSniffTest.php +++ b/tests/Unit/Sniff/ExceptionNameSniffTest.php @@ -134,6 +134,16 @@ public function itHandlesMultipleClassnames(): void self::assertCount(2, $violations); } + #[Test] + public function itDoesNotFlagClassnameInsideOoclass(): void + { + $content = 'RuntimeException'; + $doc = $this->createDocument($content); + $violations = new ExceptionNameSniff()->process($doc, $content, 'file.xml'); + + self::assertSame([], $violations); + } + #[Test] public function itIncludesFilePathInViolation(): void {