diff --git a/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertCompareToSpecificMethodRector.php b/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertCompareToSpecificMethodRector.php index f79622e15c8..0a67dbf9345 100644 --- a/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertCompareToSpecificMethodRector.php +++ b/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertCompareToSpecificMethodRector.php @@ -11,20 +11,9 @@ use PhpParser\Node\Name; use Rector\NodeAnalyzer\MethodCallAnalyzer; use Rector\NodeChanger\IdentifierRenamer; use Rector\Rector\AbstractPHPUnitRector; +use Rector\RectorDefinition\CodeSample; +use Rector\RectorDefinition\RectorDefinition; -/** - * Before: - * - $this->assertSame(10, count($anything), 'message'); - * - $this->assertSame($value, {function}($anything), 'message'); - * - $this->assertNotSame($value, {function}($anything), 'message'); - * - $this->assertEquals($value, {function}($anything), 'message'); - * - $this->assertNotEquals($value, {function}($anything), 'message'); - * - * After: - * - $this->assertCount(10, $anything, 'message'); - * - $this->assert{function}($value, $anything, 'message'); - * - $this->assertNot{function}($value, $anything, 'message'); - */ final class AssertCompareToSpecificMethodRector extends AbstractPHPUnitRector { /** @@ -58,6 +47,18 @@ final class AssertCompareToSpecificMethodRector extends AbstractPHPUnitRector $this->identifierRenamer = $identifierRenamer; } + public function getDefinition(): RectorDefinition + { + return new RectorDefinition('Turns vague php-only method in PHPUnit Test Case to more specific', [ + new CodeSample('$this->assertSame(10, count($anything), "message");', '$this->assertCount(10, $anything, "message");'), + new CodeSample('$this->assertSame($value, {function}($anything), "message");', '$this->assert{function}($value, $anything, "message\");'), + new CodeSample('$this->assertEquals($value, {function}($anything), "message");', '$this->assert{function}($value, $anything, "message\");'), + + new CodeSample('$this->assertNotSame($value, {function}($anything), "message");', '$this->assertNot{function}($value, $anything, "message")'), + new CodeSample('$this->assertNotEquals($value, {function}($anything), "message");', '$this->assertNot{function}($value, $anything, "message")'), + ]); + } + public function isCandidate(Node $node): bool { if (! $this->isInTestClass($node)) { diff --git a/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertComparisonToSpecificMethodRector.php b/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertComparisonToSpecificMethodRector.php index d376de62a6e..b09036f09f7 100644 --- a/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertComparisonToSpecificMethodRector.php +++ b/src/Rector/Contrib/PHPUnit/SpecificMethod/AssertComparisonToSpecificMethodRector.php @@ -9,16 +9,9 @@ use PhpParser\Node\Expr\MethodCall; use Rector\NodeAnalyzer\MethodCallAnalyzer; use Rector\NodeChanger\IdentifierRenamer; use Rector\Rector\AbstractPHPUnitRector; +use Rector\RectorDefinition\CodeSample; +use Rector\RectorDefinition\RectorDefinition; -/** - * - Before: - * - $this->assertTrue($foo === $bar, 'message'); - * - $this->assertFalse($foo >= $bar, 'message'); - * - * - After: - * - $this->assertSame($bar, $foo, 'message'); - * - $this->assertLessThanOrEqual($bar, $foo, 'message'); - */ final class AssertComparisonToSpecificMethodRector extends AbstractPHPUnitRector { /** @@ -57,6 +50,14 @@ final class AssertComparisonToSpecificMethodRector extends AbstractPHPUnitRector $this->identifierRenamer = $identifierRenamer; } + public function getDefinition(): RectorDefinition + { + return new RectorDefinition('Turns === comparisons to their method name alternatives in PHPUnit Test Case', [ + new CodeSample('$this->assertTrue($foo === $bar, "message");', '$this->assertSame($bar, $foo, "message");'), + new CodeSample('$this->assertFalse($foo >= $bar, "message");', '$this->assertLessThanOrEqual($bar, $foo, "message");'), + ]); + } + public function isCandidate(Node $node): bool { if (! $this->isInTestClass($node)) {