Skip to content

Commit 501420d

Browse files
[CodeQuality] Skip multiple uses variable as arg after defined on BareCreateMockAssignToDirectUseRector (#669)
* [CodeQuality] Skip multiple uses variable as arg after defined on BareCreateMockAssignToDirectUseRector * [rector] Rector fixes * fix * more fixture * final touch; rename fixture * clean up --------- Co-authored-by: GitHub Action <actions@github.com>
1 parent 7ee9617 commit 501420d

3 files changed

Lines changed: 27 additions & 53 deletions

File tree

rules-tests/CodeQuality/Rector/ClassMethod/BareCreateMockAssignToDirectUseRector/Fixture/multiple_uses_as_no_connection.php.inc

Lines changed: 0 additions & 51 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace Rector\PHPUnit\Tests\CodeQuality\Rector\ClassMethod\BareCreateMockAssignToDirectUseRector\Fixture;
4+
5+
use PHPUnit\Framework\TestCase;
6+
7+
final class SkipMultipleUsesAsArg extends TestCase
8+
{
9+
public function test()
10+
{
11+
$someMock = $this->createMock(\Rector\PHPUnit\Tests\CodeQuality\Rector\ClassMethod\BareCreateMockAssignToDirectUseRector\Source\AnotherClass::class);
12+
13+
// behaviour can already changed on first use
14+
$this->useMock($someMock);
15+
$this->useMockAgain($someMock);
16+
}
17+
18+
private function useMock($someMock)
19+
{
20+
$someMock->method('someMethod');
21+
}
22+
23+
private function useMockAgain($someMock)
24+
{
25+
}
26+
}

rules/CodeQuality/Rector/ClassMethod/BareCreateMockAssignToDirectUseRector.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,7 @@ private function isUsedMoreOftenThanInCallLikeArgs(ClassMethod|Foreach_ $stmtsAw
227227
}
228228
}
229229

230-
// not suitable for direct replacing
231-
return (count($foundVariables) - 1) > ($callLikeVariableUseCount);
230+
return $callLikeVariableUseCount > 1 || (count($foundVariables) - 1) > $callLikeVariableUseCount;
232231
}
233232

234233
/**

0 commit comments

Comments
 (0)