Merge pull request #403 from rectorphp/dry

DRY methods to be found in Assert Rectors
This commit is contained in:
Tomáš Votruba 2018-04-03 09:39:39 +02:00 committed by GitHub
commit 607ccde29f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 40 additions and 30 deletions

View File

@ -33,6 +33,14 @@ final class AssertFalseStrposToContainsRector extends AbstractPHPUnitRector
*/
private $identifierRenamer;
/**
* @var string[]
*/
private $renameMethodsMap = [
'assertFalse' => 'assertNotContains',
'assertNotFalse' => 'assertContains',
];
public function __construct(MethodCallAnalyzer $methodCallAnalyzer, IdentifierRenamer $identifierRenamer)
{
$this->methodCallAnalyzer = $methodCallAnalyzer;
@ -45,7 +53,7 @@ final class AssertFalseStrposToContainsRector extends AbstractPHPUnitRector
return false;
}
if (! $this->methodCallAnalyzer->isMethods($node, ['assertFalse', 'assertNotFalse'])) {
if (! $this->methodCallAnalyzer->isMethods($node, array_keys($this->renameMethodsMap))) {
return false;
}
@ -67,7 +75,7 @@ final class AssertFalseStrposToContainsRector extends AbstractPHPUnitRector
*/
public function refactor(Node $methodCallNode): ?Node
{
$this->renameMethod($methodCallNode);
$this->identifierRenamer->renameNodeWithMap($methodCallNode, $this->renameMethodsMap);
$this->changeOrderArguments($methodCallNode);
return $methodCallNode;
@ -89,14 +97,6 @@ final class AssertFalseStrposToContainsRector extends AbstractPHPUnitRector
], $oldArguments);
}
private function renameMethod(MethodCall $methodCallNode): void
{
$this->identifierRenamer->renameNodeWithMap($methodCallNode, [
'assertFalse' => 'assertNotContains',
'assertNotFalse' => 'assertContains',
]);
}
private function isNamedFunction(Expr $node): bool
{
if (! $node instanceof FuncCall) {

View File

@ -36,6 +36,14 @@ final class AssertInstanceOfComparisonRector extends AbstractPHPUnitRector
*/
private $builderFactory;
/**
* @var string[]
*/
private $renameMethodsMap = [
'assertTrue' => 'assertInstanceOf',
'assertFalse' => 'assertNotInstanceOf',
];
public function __construct(
MethodCallAnalyzer $methodCallAnalyzer,
IdentifierRenamer $identifierRenamer,
@ -52,7 +60,7 @@ final class AssertInstanceOfComparisonRector extends AbstractPHPUnitRector
return false;
}
if (! $this->methodCallAnalyzer->isMethods($node, ['assertTrue', 'assertFalse'])) {
if (! $this->methodCallAnalyzer->isMethods($node, array_keys($this->renameMethodsMap))) {
return false;
}
@ -69,7 +77,7 @@ final class AssertInstanceOfComparisonRector extends AbstractPHPUnitRector
*/
public function refactor(Node $methodCallNode): ?Node
{
$this->renameMethod($methodCallNode);
$this->identifierRenamer->renameNodeWithMap($methodCallNode, $this->renameMethodsMap);
$this->changeOrderArguments($methodCallNode);
return $methodCallNode;
@ -91,12 +99,4 @@ final class AssertInstanceOfComparisonRector extends AbstractPHPUnitRector
$argument,
], $oldArguments);
}
private function renameMethod(MethodCall $methodCallNode): void
{
$this->identifierRenamer->renameNodeWithMap($methodCallNode, [
'assertTrue' => 'assertInstanceOf',
'assertFalse' => 'assertNotInstanceOf',
]);
}
}

View File

@ -30,6 +30,14 @@ final class AssertNotOperatorRector extends AbstractPHPUnitRector
*/
private $identifierRenamer;
/**
* @var string[]
*/
private $renameMethodsMap = [
'assertTrue' => 'assertFalse',
'assertFalse' => 'assertTrue',
];
public function __construct(MethodCallAnalyzer $methodCallAnalyzer, IdentifierRenamer $identifierRenamer)
{
$this->methodCallAnalyzer = $methodCallAnalyzer;
@ -42,7 +50,7 @@ final class AssertNotOperatorRector extends AbstractPHPUnitRector
return false;
}
if (! $this->methodCallAnalyzer->isMethods($node, ['assertTrue', 'assertFalse'])) {
if (! $this->methodCallAnalyzer->isMethods($node, array_keys($this->renameMethodsMap))) {
return false;
}
@ -59,10 +67,7 @@ final class AssertNotOperatorRector extends AbstractPHPUnitRector
*/
public function refactor(Node $methodCallNode): ?Node
{
$this->identifierRenamer->renameNodeWithMap($methodCallNode, [
'assertTrue' => 'assertFalse',
'assertFalse' => 'assertTrue',
]);
$this->identifierRenamer->renameNodeWithMap($methodCallNode, $this->renameMethodsMap);
$oldArguments = $methodCallNode->args;
/** @var BooleanNot $negation */

View File

@ -39,6 +39,14 @@ final class AssertPropertyExistsRector extends AbstractPHPUnitRector
*/
private $nodeFactory;
/**
* @var string[]
*/
private $renameMethodsMap = [
'assertTrue' => 'assertClassHasAttribute',
'assertFalse' => 'assertClassNotHasAttribute',
];
public function __construct(
MethodCallAnalyzer $methodCallAnalyzer,
IdentifierRenamer $identifierRenamer,
@ -55,7 +63,7 @@ final class AssertPropertyExistsRector extends AbstractPHPUnitRector
return false;
}
if (! $this->methodCallAnalyzer->isMethods($node, ['assertTrue', 'assertFalse'])) {
if (! $this->methodCallAnalyzer->isMethods($node, array_keys($this->renameMethodsMap))) {
return false;
}
@ -78,10 +86,7 @@ final class AssertPropertyExistsRector extends AbstractPHPUnitRector
*/
public function refactor(Node $methodCallNode): ?Node
{
$this->identifierRenamer->renameNodeWithMap($methodCallNode, [
'assertTrue' => 'assertClassHasAttribute',
'assertFalse' => 'assertClassNotHasAttribute',
]);
$this->identifierRenamer->renameNodeWithMap($methodCallNode, $this->renameMethodsMap);
/** @var Identifier $oldArguments */
$oldArguments = $methodCallNode->args;