diff --git a/src/main/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualsToAssertNotEquals.java b/src/main/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualsToAssertNotEquals.java index 9f3840ba9..8e9e0888c 100644 --- a/src/main/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualsToAssertNotEquals.java +++ b/src/main/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualsToAssertNotEquals.java @@ -87,8 +87,11 @@ private boolean isEquals(Expression expr) { J.MethodInvocation methodInvocation = (J.MethodInvocation) expr; - return "equals".equals(methodInvocation.getName().getSimpleName()) && - methodInvocation.getArguments().size() == 1; + if (!"equals".equals(methodInvocation.getName().getSimpleName()) || + methodInvocation.getArguments().size() != 1) { + return false; + } + return !J.Literal.isLiteralValue(methodInvocation.getArguments().get(0), null); } }); } diff --git a/src/main/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEquals.java b/src/main/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEquals.java index be899ab5d..4ea7f7698 100644 --- a/src/main/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEquals.java +++ b/src/main/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEquals.java @@ -89,8 +89,11 @@ private boolean isEquals(Expression expr) { J.MethodInvocation methodInvocation = (J.MethodInvocation) expr; - return "equals".equals(methodInvocation.getName().getSimpleName()) && - methodInvocation.getArguments().size() == 1; + if (!"equals".equals(methodInvocation.getName().getSimpleName()) || + methodInvocation.getArguments().size() != 1) { + return false; + } + return !J.Literal.isLiteralValue(methodInvocation.getArguments().get(0), null); } }); } diff --git a/src/test/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualToAssertNotEqualsTest.java b/src/test/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualToAssertNotEqualsTest.java index ce658c043..29e51b77e 100644 --- a/src/test/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualToAssertNotEqualsTest.java +++ b/src/test/java/org/openrewrite/java/testing/cleanup/AssertFalseEqualToAssertNotEqualsTest.java @@ -101,6 +101,27 @@ void test() { ); } + @SuppressWarnings({"ConstantConditions", "SimplifiableAssertion"}) + @Test + void doNotConvertWhenArgumentToEqualsIsNull() { + //language=java + rewriteRun( + java( + """ + import static org.junit.jupiter.api.Assertions.assertFalse; + + public class Test { + void test() { + String a = "a"; + assertFalse(a.equals(null)); + assertFalse(a.equals(null), "message"); + } + } + """ + ) + ); + } + @SuppressWarnings("ConstantConditions") @Test void retainEqualsAndedWithSomethingElse() { diff --git a/src/test/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEqualsTest.java b/src/test/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEqualsTest.java index 46e9d2e37..f4a20229c 100644 --- a/src/test/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEqualsTest.java +++ b/src/test/java/org/openrewrite/java/testing/cleanup/AssertTrueEqualsToAssertEqualsTest.java @@ -126,6 +126,27 @@ void test() { ); } + @SuppressWarnings({"ConstantConditions", "SimplifiableAssertion"}) + @Test + void doNotConvertWhenArgumentToEqualsIsNull() { + //language=java + rewriteRun( + java( + """ + import static org.junit.jupiter.api.Assertions.assertTrue; + + public class Test { + void test() { + String a = "a"; + assertTrue(a.equals(null)); + assertTrue(a.equals(null), "message"); + } + } + """ + ) + ); + } + @SuppressWarnings("ConstantConditions") @Test void retainEqualsAndedWithSomethingElse() {