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 0ec2b401b..a0450c661 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java @@ -189,7 +189,7 @@ public J visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) if (MOCKED_STATIC_MATCHER.matches(mi)) { determineTestGroups(); - if (getCursor().firstEnclosing(J.Assignment.class) == null) { + if (!getCursor().getPath(o -> o instanceof J.Assignment || o instanceof J.Try.Resource).hasNext()) { //noinspection DataFlowIssue return null; } diff --git a/src/main/resources/META-INF/rewrite/mockito.yml b/src/main/resources/META-INF/rewrite/mockito.yml index e39ffaae0..c3001c3a6 100644 --- a/src/main/resources/META-INF/rewrite/mockito.yml +++ b/src/main/resources/META-INF/rewrite/mockito.yml @@ -111,7 +111,8 @@ recipeList: - org.openrewrite.java.testing.mockito.CleanupMockitoImports - org.openrewrite.java.testing.mockito.MockUtilsToStatic - org.openrewrite.java.testing.junit5.MockitoJUnitToMockitoExtension - - org.openrewrite.java.testing.mockito.ReplacePowerMockito +# https://github.com/openrewrite/rewrite-testing-frameworks/issues/360 +# - org.openrewrite.java.testing.mockito.ReplacePowerMockito - org.openrewrite.java.dependencies.AddDependency: groupId: org.mockito artifactId: mockito-junit-jupiter 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 b534284af..bc0026bda 100644 --- a/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java @@ -256,9 +256,10 @@ void testSomething() { } ) ); } + @Test void tearDownMethodOfTestNGWithAnnotationRemainsUntouched() { - //language=java + //language=java rewriteRun( java( """ @@ -303,6 +304,7 @@ void testSomething() { } ) ); } + @Test void tearDownMethodOfTestNGHasAnnotationWithSameArgumentsAsTheTestThatCallsMockStatic() { //language=java @@ -539,7 +541,7 @@ void extensionOfPowerMockTestCaseGetsRemoved() { public class PowerMockTestCase {} """ ), - java( + java( """ import org.powermock.modules.testng.PowerMockTestCase; @@ -548,7 +550,7 @@ public class MyPowerMockTestCase extends PowerMockTestCase {} """ public class MyPowerMockTestCase {} """) - ); + ); } @Test @@ -562,7 +564,7 @@ void extensionOfPowerMockConfigurationGetsRemoved() { public class PowerMockConfiguration {} """ ), - java( + java( """ import org.powermock.configuration.PowerMockConfiguration; @@ -574,12 +576,38 @@ public class MyPowerMockConfiguration {} )); } + @Test + void mockStaticInTryWithResources() { + //language=java + rewriteRun( + java( + """ + import org.junit.jupiter.api.Test; + import org.mockito.MockedStatic; + + import java.nio.file.Files; + + import static org.mockito.Mockito.mockStatic; + + class A { + @Test + void testTryWithResource() { + try (MockedStatic mocked = mockStatic(Files.class)) { + // test logic that uses mocked + } + } + } + """ + ) + ); + } + @Test @Issue("https://github.com/openrewrite/rewrite-testing-frameworks/issues/358") void doesNotExplodeOnTopLevelMethodDeclaration() { rewriteRun( groovy( - "def myFun() { }" - )); + "def myFun() { }" + )); } }