Skip to content

Commit 289978f

Browse files
authored
Add str_contains() support to AssertTrueFalseToSpecificMethodRector (#447)
* Add str_contains() support to AssertTrueFalseToSpecificMethodRector * bump deps
1 parent 4e82fcd commit 289978f

3 files changed

Lines changed: 37 additions & 4 deletions

File tree

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
},
99
"require-dev": {
1010
"rector/rector-src": "dev-main",
11-
"phpunit/phpunit": "^11.4",
12-
"phpstan/phpstan": "^2.0",
13-
"symplify/easy-coding-standard": "^12.3",
11+
"phpunit/phpunit": "^11.5",
12+
"phpstan/phpstan": "^2.1",
13+
"phpecs/phpecs": "^2.0",
1414
"phpstan/extension-installer": "^1.4",
1515
"symplify/vendor-patches": "^11.3",
1616
"tracy/tracy": "^2.10",
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace Rector\PHPUnit\Tests\CodeQuality\Rector\MethodCall\AssertTrueFalseToSpecificMethodRector\Fixture;
4+
5+
final class IncludeStrContains extends \PHPUnit\Framework\TestCase
6+
{
7+
public function test()
8+
{
9+
$this->assertTrue(str_contains('haystack', 'needle'));
10+
11+
$this->assertFalse(str_contains('haystack 2', 'needle 2'));
12+
}
13+
}
14+
15+
?>
16+
-----
17+
<?php
18+
19+
namespace Rector\PHPUnit\Tests\CodeQuality\Rector\MethodCall\AssertTrueFalseToSpecificMethodRector\Fixture;
20+
21+
final class IncludeStrContains extends \PHPUnit\Framework\TestCase
22+
{
23+
public function test()
24+
{
25+
$this->assertStringContainsString('needle', 'haystack');
26+
27+
$this->assertStringNotContainsString('needle 2', 'haystack 2');
28+
}
29+
}
30+
31+
?>

rules/CodeQuality/Rector/MethodCall/AssertTrueFalseToSpecificMethodRector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ final class AssertTrueFalseToSpecificMethodRector extends AbstractRector
3939
'is_writable' => ['is_writable', 'assertIsWritable', 'assertNotIsWritable'],
4040
'is_nan' => ['is_nan', 'assertNan', ''],
4141
'is_a' => ['is_a', 'assertInstanceOf', 'assertNotInstanceOf'],
42+
'str_contains' => ['str_contains', 'assertStringContainsString', 'assertStringNotContainsString'],
4243
];
4344

4445
public function __construct(
@@ -214,7 +215,8 @@ private function buildNewArguments(
214215
return [...$funcCallOrEmptyNodeArgs, ...$oldArguments];
215216
}
216217

217-
if ($funcCallOrEmptyNodeName === 'is_a') {
218+
if (in_array($funcCallOrEmptyNodeName, ['is_a', 'str_contains'], true)) {
219+
// flip arguments
218220
$newArgs = [$funcCallOrEmptyNodeArgs[1], $funcCallOrEmptyNodeArgs[0]];
219221

220222
return [...$newArgs, ...$oldArguments];

0 commit comments

Comments
 (0)