From 659ba4e38765be8cd3d062faa33742f8813f66bb Mon Sep 17 00:00:00 2001 From: Laurens Westerlaken Date: Mon, 30 Sep 2024 10:30:55 +0200 Subject: [PATCH] When mockito `mockStatic` is used as variable initializer we shouldn't return null --- .../PowerMockitoMockStaticToMockito.java | 4 +++- .../PowerMockitoMockStaticToMockitoTest.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java index c1f7d2133..019425f50 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java @@ -190,7 +190,9 @@ public J visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) if (MOCKED_STATIC_MATCHER.matches(mi)) { determineTestGroups(); - if (!getCursor().getPath(o -> o instanceof J.Assignment || o instanceof J.Try.Resource).hasNext()) { + if (!getCursor().getPath(o -> o instanceof J.VariableDeclarations || + o instanceof J.Assignment || + o instanceof J.Try.Resource).hasNext()) { //noinspection DataFlowIssue return null; } diff --git a/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java index a9fa9a0cb..f765b235b 100644 --- a/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java @@ -681,6 +681,23 @@ public void testStaticMethod() { ); } + @Test + @Issue("https://github.com/openrewrite/rewrite-testing-frameworks/issues/611") + void existingMockitoMockStaticShouldNotBeTouched() { + //language=java + rewriteRun( + java( + """ + import static org.mockito.Mockito.mockStatic; + + import org.mockito.MockedStatic; + + class TestClass { + MockedStatic mocked = mockStatic(String.class); + } + """)); + } + @Test @Issue("https://github.com/openrewrite/rewrite-testing-frameworks/issues/358") void doesNotExplodeOnTopLevelMethodDeclaration() {