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 b6d0712d5..c1f7d2133 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java @@ -43,8 +43,8 @@ public String getDescription() { public TreeVisitor getVisitor() { return Preconditions.check( Preconditions.or( - new UsesType<>("org.powermock..*", false), - new UsesType<>("org.mockito..*", false) + new UsesType<>("org.powermock..*", false), + new UsesType<>("org.mockito..*", false) ), new PowerMockitoToMockitoVisitor() ); @@ -446,7 +446,7 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration new Cursor(getCursor().getParentOrThrow(), classDecl), classDecl.getBody().getCoordinates().firstStatement(), classlessTypeName, - classlessTypeName + classlessTypeName.replace(".", "_") ); J.VariableDeclarations mockField = (J.VariableDeclarations) classDecl.getBody().getStatements().get(0); 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 a48c3c306..a9fa9a0cb 100644 --- a/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockitoTest.java @@ -602,6 +602,85 @@ void testTryWithResource() { ); } + @Test + void shouldNotDuplicateVarsAndMethods() { + //language=java + rewriteRun( + java( + """ + package test; + + public class A { + public static class B { + public static String helloWorld() { + return "Hello World"; + } + } + } + """ + ), + java( + """ + import org.junit.Before; + import org.junit.Test; + import org.mockito.Mockito; + import org.powermock.core.classloader.annotations.PrepareForTest; + import test.A; + + @PrepareForTest({ A.B.class }) + public class MyTest { + + private static final String TEST_MESSAGE = "this is a test message"; + + @Before + void setUp() { + Mockito.mockStatic(A.B.class); + } + + @Test + public void testStaticMethod() { + } + } + """, + + """ + import org.junit.Before; + import org.junit.Test; + import org.junit.jupiter.api.AfterEach; + import org.junit.jupiter.api.BeforeEach; + import org.mockito.MockedStatic; + import org.mockito.Mockito; + import test.A; + + public class MyTest { + + private MockedStatic mockedA_B; + + private static final String TEST_MESSAGE = "this is a test message"; + + @Before + void setUp() { + } + + @BeforeEach + void setUpStaticMocks() { + mockedA_B = Mockito.mockStatic(A.B.class); + } + + @AfterEach + void tearDownStaticMocks() { + mockedA_B.closeOnDemand(); + } + + @Test + public void testStaticMethod() { + } + } + """ + ) + ); + } + @Test @Issue("https://github.com/openrewrite/rewrite-testing-frameworks/issues/358") void doesNotExplodeOnTopLevelMethodDeclaration() {