From 4eadc7fde023c4e7c9f927532af6215a320d07b8 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 16 Nov 2024 12:17:31 +0100 Subject: [PATCH] [fix] Keep original message in AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector --- .../Fixture/keep_delta_message.php.inc | 33 +++++++++++++++++++ ...atParameterToSpecificMethodsTypeRector.php | 10 +++--- 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector/Fixture/keep_delta_message.php.inc diff --git a/rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector/Fixture/keep_delta_message.php.inc b/rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector/Fixture/keep_delta_message.php.inc new file mode 100644 index 00000000..4a51f662 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector/Fixture/keep_delta_message.php.inc @@ -0,0 +1,33 @@ +assertSame(10.20, $value, 'Some message'); + } +} + +?> +----- +assertEqualsWithDelta(10.20, $value, PHP_FLOAT_EPSILON, 'Some message'); + } +} + +?> diff --git a/rules/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector.php b/rules/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector.php index a4cf3844..7cf6f44b 100644 --- a/rules/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector.php +++ b/rules/CodeQuality/Rector/MethodCall/AssertEqualsOrAssertSameFloatParameterToSpecificMethodsTypeRector.php @@ -38,16 +38,12 @@ public function getRuleDefinition(): RuleDefinition // code before <<<'CODE_SAMPLE' $this->assertSame(10.20, $value); -$this->assertEquals(10.20, $value); $this->assertEquals(10.200, $value); -$this->assertSame(10, $value); CODE_SAMPLE , <<<'CODE_SAMPLE' $this->assertEqualsWithDelta(10.20, $value, PHP_FLOAT_EPSILON); -$this->assertEqualsWithDelta(10.20, $value, PHP_FLOAT_EPSILON); $this->assertEqualsWithDelta(10.200, $value, PHP_FLOAT_EPSILON); -$this->assertSame(10, $value); CODE_SAMPLE ), ] @@ -82,11 +78,17 @@ public function refactor(Node $node): ?Node return null; } + $customMessageArg = $args[2] ?? null; + $newMethodCall = $this->assertCallFactory->createCallWithName($node, 'assertEqualsWithDelta'); $newMethodCall->args[0] = $args[0]; $newMethodCall->args[1] = $args[1]; $newMethodCall->args[2] = new Arg(new ConstFetch(new Name('PHP_FLOAT_EPSILON'))); + if ($customMessageArg instanceof Arg) { + $newMethodCall->args[] = $customMessageArg; + } + return $newMethodCall; }