diff --git a/tests/PhpCollective/Sniffs/Classes/MethodDeclarationSniffTest.php b/tests/PhpCollective/Sniffs/Classes/MethodDeclarationSniffTest.php new file mode 100644 index 0000000..e21e882 --- /dev/null +++ b/tests/PhpCollective/Sniffs/Classes/MethodDeclarationSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new MethodDeclarationSniff(), 5, 4); + } + + /** + * @return void + */ + public function testMethodDeclarationFixer(): void + { + $this->assertSnifferCanFixErrors(new MethodDeclarationSniff(), 4); + } +} diff --git a/tests/PhpCollective/Sniffs/Commenting/DocBlockStructureSniffTest.php b/tests/PhpCollective/Sniffs/Commenting/DocBlockStructureSniffTest.php new file mode 100644 index 0000000..35ec887 --- /dev/null +++ b/tests/PhpCollective/Sniffs/Commenting/DocBlockStructureSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new DocBlockStructureSniff(), 3, 3); + } + + /** + * @return void + */ + public function testDocBlockStructureFixer(): void + { + $this->assertSnifferCanFixErrors(new DocBlockStructureSniff(), 3); + } +} diff --git a/tests/PhpCollective/Sniffs/Commenting/DocBlockTagGroupingSniffTest.php b/tests/PhpCollective/Sniffs/Commenting/DocBlockTagGroupingSniffTest.php new file mode 100644 index 0000000..b194fe7 --- /dev/null +++ b/tests/PhpCollective/Sniffs/Commenting/DocBlockTagGroupingSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new DocBlockTagGroupingSniff(), 6, 6); + } + + /** + * @return void + */ + public function testDocBlockTagGroupingFixer(): void + { + $this->assertSnifferCanFixErrors(new DocBlockTagGroupingSniff(), 6); + } +} diff --git a/tests/PhpCollective/Sniffs/Commenting/DocCommentSniffTest.php b/tests/PhpCollective/Sniffs/Commenting/DocCommentSniffTest.php new file mode 100644 index 0000000..0e4f159 --- /dev/null +++ b/tests/PhpCollective/Sniffs/Commenting/DocCommentSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new DocCommentSniff(), 4, 4); + } + + /** + * @return void + */ + public function testDocCommentFixer(): void + { + $this->assertSnifferCanFixErrors(new DocCommentSniff(), 4); + } +} diff --git a/tests/PhpCollective/Sniffs/ControlStructures/ControlStructureSpacingSniffTest.php b/tests/PhpCollective/Sniffs/ControlStructures/ControlStructureSpacingSniffTest.php new file mode 100644 index 0000000..9e68192 --- /dev/null +++ b/tests/PhpCollective/Sniffs/ControlStructures/ControlStructureSpacingSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new ControlStructureSpacingSniff(), 6, 6); + } + + /** + * @return void + */ + public function testControlStructureSpacingFixer(): void + { + $this->assertSnifferCanFixErrors(new ControlStructureSpacingSniff(), 6); + } +} diff --git a/tests/PhpCollective/Sniffs/Testing/MockSniffTest.php b/tests/PhpCollective/Sniffs/Testing/MockSniffTest.php new file mode 100644 index 0000000..4eb9ecc --- /dev/null +++ b/tests/PhpCollective/Sniffs/Testing/MockSniffTest.php @@ -0,0 +1,53 @@ +assertSnifferFindsFixableErrors(new MockSniff(), 6, 4); + } + + /** + * @return void + */ + public function testMockFixer(): void + { + $this->assertSnifferCanFixErrors(new MockSniff(), 4); + } + + /** + * @param \PHP_CodeSniffer\Sniffs\Sniff $sniffer + * + * @return string + */ + protected function getDummyFileBefore(Sniff $sniffer): string + { + $fixture = parent::getDummyFileBefore($sniffer); + $target = TMP . 'MockSniffFixtureTest.php'; + + if (!is_dir(TMP)) { + mkdir(TMP, 0770, true); + } + + $contents = file_get_contents($fixture); + $this->assertIsString($contents); + $result = file_put_contents($target, $contents); + $this->assertIsInt($result); + + return $target; + } +} diff --git a/tests/PhpCollective/Sniffs/WhiteSpace/ConcatenationSpacingSniffTest.php b/tests/PhpCollective/Sniffs/WhiteSpace/ConcatenationSpacingSniffTest.php new file mode 100644 index 0000000..4a9229e --- /dev/null +++ b/tests/PhpCollective/Sniffs/WhiteSpace/ConcatenationSpacingSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new ConcatenationSpacingSniff(), 4, 4); + } + + /** + * @return void + */ + public function testConcatenationSpacingFixer(): void + { + $this->assertSnifferCanFixErrors(new ConcatenationSpacingSniff(), 4); + } +} diff --git a/tests/PhpCollective/Sniffs/WhiteSpace/FunctionSpacingSniffTest.php b/tests/PhpCollective/Sniffs/WhiteSpace/FunctionSpacingSniffTest.php new file mode 100644 index 0000000..ff4a0a4 --- /dev/null +++ b/tests/PhpCollective/Sniffs/WhiteSpace/FunctionSpacingSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new FunctionSpacingSniff(), 2, 2); + } + + /** + * @return void + */ + public function testFunctionSpacingFixer(): void + { + $this->assertSnifferCanFixErrors(new FunctionSpacingSniff(), 2); + } +} diff --git a/tests/PhpCollective/Sniffs/WhiteSpace/ImplicitCastSpacingSniffTest.php b/tests/PhpCollective/Sniffs/WhiteSpace/ImplicitCastSpacingSniffTest.php new file mode 100644 index 0000000..0923db9 --- /dev/null +++ b/tests/PhpCollective/Sniffs/WhiteSpace/ImplicitCastSpacingSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new ImplicitCastSpacingSniff(), 4, 4); + } + + /** + * @return void + */ + public function testImplicitCastSpacingFixer(): void + { + $this->assertSnifferCanFixErrors(new ImplicitCastSpacingSniff(), 4); + } +} diff --git a/tests/PhpCollective/Sniffs/WhiteSpace/TernarySpacingSniffTest.php b/tests/PhpCollective/Sniffs/WhiteSpace/TernarySpacingSniffTest.php new file mode 100644 index 0000000..35a872e --- /dev/null +++ b/tests/PhpCollective/Sniffs/WhiteSpace/TernarySpacingSniffTest.php @@ -0,0 +1,30 @@ +assertSnifferFindsFixableErrors(new TernarySpacingSniff(), 7, 7); + } + + /** + * @return void + */ + public function testTernarySpacingFixer(): void + { + $this->assertSnifferCanFixErrors(new TernarySpacingSniff(), 7); + } +} diff --git a/tests/_data/ConcatenationSpacing/after.php b/tests/_data/ConcatenationSpacing/after.php new file mode 100644 index 0000000..fe97e9b --- /dev/null +++ b/tests/_data/ConcatenationSpacing/after.php @@ -0,0 +1,22 @@ +createMock(Service::class); + } + + /** + * @return Service|\PHPUnit\Framework\MockObject\MockObject + */ + public function invalidTypehint() + { + return $this->createMock(Service::class); + } + + /** + * @return Service|\PHPUnit\Framework\MockObject\MockObject + */ + public function missingTypeHint(): Service + { + return $this->createMock(Service::class); + } + + /** + * @return Service|Repository|\PHPUnit\Framework\MockObject\MockObject + */ + public function complexMockMustNotHaveTypeHint(): Service + { + return $this->createMock(Service::class); + } + + /** + * @return \PHPUnit\Framework\MockObject\MockObject + */ + public function missingMockedClass() + { + return $this->createMock(Service::class); + } + + /** + * @return Service|\PHPUnit\Framework\MockObject\MockObject + */ + public function validMock(): Service + { + return $this->createMock(Service::class); + } + + /** + * @return RuntimeException + */ + public function nonMockReturnType(): RuntimeException + { + return new RuntimeException('valid'); + } +} + +class Service +{ +} + +class Repository +{ +} diff --git a/tests/_data/Mock/before.php b/tests/_data/Mock/before.php new file mode 100644 index 0000000..5d39eb7 --- /dev/null +++ b/tests/_data/Mock/before.php @@ -0,0 +1,75 @@ +createMock(Service::class); + } + + /** + * @return Service|\PHPUnit\Framework\MockObject\MockObject + */ + public function invalidTypehint(): MockObject + { + return $this->createMock(Service::class); + } + + /** + * @return Service|\PHPUnit\Framework\MockObject\MockObject + */ + public function missingTypeHint() + { + return $this->createMock(Service::class); + } + + /** + * @return Service|Repository|\PHPUnit\Framework\MockObject\MockObject + */ + public function complexMockMustNotHaveTypeHint(): Service + { + return $this->createMock(Service::class); + } + + /** + * @return \PHPUnit\Framework\MockObject\MockObject + */ + public function missingMockedClass() + { + return $this->createMock(Service::class); + } + + /** + * @return Service|\PHPUnit\Framework\MockObject\MockObject + */ + public function validMock(): Service + { + return $this->createMock(Service::class); + } + + /** + * @return RuntimeException + */ + public function nonMockReturnType(): RuntimeException + { + return new RuntimeException('valid'); + } +} + +class Service +{ +} + +class Repository +{ +} diff --git a/tests/_data/TernarySpacing/after.php b/tests/_data/TernarySpacing/after.php new file mode 100644 index 0000000..ce75cef --- /dev/null +++ b/tests/_data/TernarySpacing/after.php @@ -0,0 +1,27 @@ +