From b31f2939e447acf059d5b38323d90e7fe82b3c37 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Wed, 4 Sep 2024 13:34:09 +0800 Subject: [PATCH 01/48] Add JMockit's MockUp to Mockito migration --- .../testing/jmockit/JMockitBlockType.java | 1 + .../jmockit/JMockitMockUpToMockito.java | 229 ++++++++++++++++ .../rewrite/classpath/mockito-core-5.12.0.jar | Bin 0 -> 703984 bytes .../resources/META-INF/rewrite/jmockit.yml | 1 + .../jmockit/JMockitMockUpToMockitoTest.java | 253 ++++++++++++++++++ 5 files changed, 484 insertions(+) create mode 100644 src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java create mode 100644 src/main/resources/META-INF/rewrite/classpath/mockito-core-5.12.0.jar create mode 100644 src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java index b36c9240f..a33e66994 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java @@ -20,6 +20,7 @@ @Getter enum JMockitBlockType { + MockUp, Expectations, Verifications, NonStrictExpectations; diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java new file mode 100644 index 000000000..f37a8c53f --- /dev/null +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -0,0 +1,229 @@ +/* + * Copyright 2024 the original author or authors. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * https://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openrewrite.java.testing.jmockit; + +import static java.util.stream.Collectors.toList; +import org.openrewrite.ExecutionContext; +import org.openrewrite.Preconditions; +import org.openrewrite.Recipe; +import org.openrewrite.TreeVisitor; +import org.openrewrite.java.JavaIsoVisitor; +import org.openrewrite.java.JavaParser; +import org.openrewrite.java.JavaTemplate; +import org.openrewrite.java.search.UsesType; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.tree.Flag.Static; +import org.openrewrite.java.tree.J; +import org.openrewrite.java.tree.JavaType; +import org.openrewrite.java.tree.Statement; +import org.openrewrite.java.tree.TypeUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class JMockitMockUpToMockito extends Recipe { + @Override + public String getDisplayName() { + return "Rewrite JMockit MockUp to Mockito statements"; + } + + @Override + public String getDescription() { + return "Rewrites JMockit `MockUp` blocks to Mockito statements."; + } + + @Override + public TreeVisitor getVisitor() { + return Preconditions.check(new UsesType<>(MockUp.getFqn(), false), new JMockitMockUpToMockitoVisitor()); + } + + private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { + private void appendMethod(StringBuilder sb, J.MethodDeclaration m) { + sb.append("("); + if (!m.getParameters().isEmpty()) { + for (int i = 0; i < m.getParameters().size(); i++) { + Statement s = m.getParameters().get(i); + if (s instanceof J.VariableDeclarations) { + J.VariableDeclarations param = (J.VariableDeclarations) s; + if (param.getType() instanceof JavaType.Primitive) { + switch (param.getType().toString()) { + case "int": + sb.append("anyInt()"); + break; + case "long": + sb.append("anyLong()"); + break; + case "double": + sb.append("anyDouble()"); + break; + case "float": + sb.append("anyFloat()"); + break; + case "short": + sb.append("anyShort()"); + break; + case "byte": + sb.append("anyByte()"); + break; + case "char": + sb.append("anyChar()"); + break; + case "boolean": + sb.append("anyBoolean()"); + break; + } + } else { + String paramType = param.getTypeAsFullyQualified().getClassName(); + sb.append("nullable(").append(paramType).append(".class").append(")"); + } + } + if (i < m.getParameters().size() - 1) { + sb.append(", "); + } + } + } + sb.append(")").append(")"); + sb.append(".thenAnswer(invocation -> {"); + for (Statement s : m.getBody().getStatements()) { + sb.append(s.printTrimmed()); + sb.append(";"); + } + sb.append("});"); + } + + @Override + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDeclaration, ExecutionContext ctx) { + J.MethodDeclaration md = super.visitMethodDeclaration(methodDeclaration, ctx); + if (md.getBody() == null) { + return md; + } + + // Create the new statement + J.Block body = md.getBody(); + List shouldClose = new ArrayList<>(); + for (Statement statement : body.getStatements()) { + if (!(statement instanceof J.NewClass)) { + continue; + } + + J.NewClass newClass = (J.NewClass) statement; + if (newClass.getClazz() == null || newClass.getBody() == null) { + continue; + } + + JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); + String className = TypeUtils.asFullyQualified(mockType).getClassName(); + String mockName = className.replace(".", "_"); + StringBuilder mockStatements = new StringBuilder(); + + List mockedMethods = newClass.getBody() + .getStatements() + .stream() + .filter(s -> s instanceof J.MethodDeclaration) + .filter(s -> ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock"))) + // Ignore void methods + .filter(s -> !"void".equals(((J.MethodDeclaration) s).getReturnTypeExpression().toString())) + .collect(toList()); + + Set staticMethods = ((JavaType.Class) mockType) + .getMethods() + .stream() + .filter(m -> m.getFlags().contains(Static)) + .map(JavaType.Method::getName) + .collect(Collectors.toSet()); + + // Static + List methods = mockedMethods + .stream() + .filter(s -> staticMethods.contains(((J.MethodDeclaration) s).getSimpleName())) + .collect(toList()); + if (!methods.isEmpty()) { + mockStatements.append("MockedStatic<").append(className).append("> mockStatic").append(mockName).append(" = mockStatic(").append(className).append(".class);"); + for (Statement method : methods) { + J.MethodDeclaration m = (J.MethodDeclaration) method; + mockStatements.append("mockStatic").append(mockName).append(".when(() -> ").append(className).append(".").append(m.getSimpleName()); + appendMethod(mockStatements, m); + } + maybeAddImport("org.mockito.MockedStatic"); + shouldClose.add("mockStatic" + mockName); + } + + // Instance + methods = mockedMethods + .stream() + .filter(s -> !staticMethods.contains(((J.MethodDeclaration) s).getSimpleName())) + .collect(toList()); + if (!methods.isEmpty()) { + mockStatements.append("MockedConstruction<").append(className).append("> mockObj").append(mockName).append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); + for (Statement method : methods) { + J.MethodDeclaration m = (J.MethodDeclaration) method; + mockStatements.append("when(mock.").append(m.getSimpleName()); + appendMethod(mockStatements, m); + } + mockStatements.append("});"); + + maybeAddImport("org.mockito.MockedConstruction", null, false); + shouldClose.add("mockObj" + mockName); + } + + StringBuilder otherStatements = new StringBuilder(); + newClass.getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock")); + } + return true; + }) + .forEach(s -> { + otherStatements.append(s.printTrimmed()); + otherStatements.append(";"); + }); + + JavaTemplate tpl = JavaTemplate + .builder(otherStatements.toString() + mockStatements) + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5.12")) + .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") + .staticImports("org.mockito.Mockito.*") + .contextSensitive() + .build(); + md = maybeAutoFormat(md, tpl.apply(updateCursor(md), statement.getCoordinates().replace()), ctx); + } + + for (String o : shouldClose) { + JavaTemplate tpl = JavaTemplate + .builder(o + ".close();") + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5.12")) + .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") + .staticImports("org.mockito.Mockito.*") + .contextSensitive() + .build(); + md = maybeAutoFormat(md, tpl.apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()), ctx); + } + + maybeAddImport("org.mockito.Mockito", "*", false); + maybeRemoveImport("mockit.Mock"); + maybeRemoveImport("mockit.MockUp"); + + return md; + } + } +} diff --git a/src/main/resources/META-INF/rewrite/classpath/mockito-core-5.12.0.jar b/src/main/resources/META-INF/rewrite/classpath/mockito-core-5.12.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..e256989605e2e81118378c687bd92a9e0967ff52 GIT binary patch literal 703984 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

RGv@u;v#^!)Puu)nyGRypXwqgG9>_zvF&JbbX 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:`PTJ>iPY?~lwN7WnOMGli}* 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

J>_4lAc`nXZpqB3L7?VwGRhvK@W31$YW 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 TibfS2RdDT3>}egu!c_D>2zBYV literal 0 HcmV?d00001 diff --git a/src/main/resources/META-INF/rewrite/jmockit.yml b/src/main/resources/META-INF/rewrite/jmockit.yml index a15136715..d1ee335d7 100644 --- a/src/main/resources/META-INF/rewrite/jmockit.yml +++ b/src/main/resources/META-INF/rewrite/jmockit.yml @@ -23,6 +23,7 @@ tags: - jmockit recipeList: - org.openrewrite.java.testing.jmockit.JMockitBlockToMockito + - org.openrewrite.java.testing.jmockit.JMockitMockUpToMockito - org.openrewrite.java.testing.jmockit.JMockitAnnotatedArgumentToMockito - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: mockit.Mocked diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java new file mode 100644 index 000000000..792f8538c --- /dev/null +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -0,0 +1,253 @@ +/* + * Copyright 2024 the original author or authors. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * https://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openrewrite.java.testing.jmockit; + +import org.junit.jupiter.api.Test; +import static org.openrewrite.java.Assertions.java; +import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; +import org.openrewrite.test.RecipeSpec; +import org.openrewrite.test.RewriteTest; + +public class JMockitMockUpToMockitoTest implements RewriteTest { + private static final String MOCKITO_CORE_DEPENDENCY = "mockito-core-5.12"; + private static final String JUNIT_4_DEPENDENCY = "junit-4.13.2"; + private static final String LEGACY_JMOCKIT_DEPENDENCY = "jmockit-1.22"; + + @Override + public void defaults(RecipeSpec spec) { + setParserSettings(spec, LEGACY_JMOCKIT_DEPENDENCY, JUNIT_4_DEPENDENCY, MOCKITO_CORE_DEPENDENCY); + } + + @Test + void mockUpStaticMethodTest() { + //language=java + rewriteRun( + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """ + ) + ); + } + + @Test + void mockUpInstanceMethodTest() { + //language=java + rewriteRun( + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + + @Mock + public String getMsg() { + return "mockMsg"; + } + + @Mock + public String getMsg(String echo) { + return "mockEchoMsg"; + } + }; + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return "mockMsg"; + }); + when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { + return "mockEchoMsg"; + }); + }); + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """ + ) + ); + } + + @Test + void mockUpInnerVariableTest() { + //language=java + rewriteRun( + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return msg; + }); + }); + assertEquals("newMsg", new MyClazz().getMsg()); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """ + ) + ); + } +} From 1da49315f386304f2769320b0357b0c25cf687d6 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Wed, 11 Sep 2024 09:40:59 +0200 Subject: [PATCH 02/48] Adopt mockito-core:5.+ through parserClasspath --- build.gradle.kts | 1 + .../jmockit/JMockitMockUpToMockito.java | 4 +- ...ore-5.12.0.jar => mockito-core-5.13.0.jar} | Bin 703984 -> 703990 bytes .../jmockit/JMockitMockUpToMockitoTest.java | 398 +++++++++--------- 4 files changed, 195 insertions(+), 208 deletions(-) rename src/main/resources/META-INF/rewrite/classpath/{mockito-core-5.12.0.jar => mockito-core-5.13.0.jar} (93%) diff --git a/build.gradle.kts b/build.gradle.kts index bce1547cf..d63512f52 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,6 +19,7 @@ recipeDependencies { parserClasspath("com.github.tomakehurst:wiremock-jre8:2.35.0") parserClasspath("org.mockito:mockito-all:1.10.19") parserClasspath("org.mockito:mockito-core:3.+") + parserClasspath("org.mockito:mockito-core:5.+") parserClasspath("org.jmockit:jmockit:1.49") parserClasspath("org.jmockit:jmockit:1.22") // last version with NonStrictExpectations parserClasspath("org.mockito:mockito-junit-jupiter:3.+") diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index f37a8c53f..fb0a4aa8f 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -200,7 +200,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl JavaTemplate tpl = JavaTemplate .builder(otherStatements.toString() + mockStatements) - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5.12")) + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") .staticImports("org.mockito.Mockito.*") .contextSensitive() @@ -211,7 +211,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl for (String o : shouldClose) { JavaTemplate tpl = JavaTemplate .builder(o + ".close();") - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5.12")) + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") .staticImports("org.mockito.Mockito.*") .contextSensitive() diff --git a/src/main/resources/META-INF/rewrite/classpath/mockito-core-5.12.0.jar b/src/main/resources/META-INF/rewrite/classpath/mockito-core-5.13.0.jar similarity index 93% rename from src/main/resources/META-INF/rewrite/classpath/mockito-core-5.12.0.jar rename to src/main/resources/META-INF/rewrite/classpath/mockito-core-5.13.0.jar index e256989605e2e81118378c687bd92a9e0967ff52..986e38d5ca55b779eb01f12c20fdf90991eb6a63 100644 GIT binary patch delta 14304 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 diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 792f8538c..e78c47cd3 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -16,96 +16,90 @@ package org.openrewrite.java.testing.jmockit; import org.junit.jupiter.api.Test; -import static org.openrewrite.java.Assertions.java; -import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; -public class JMockitMockUpToMockitoTest implements RewriteTest { - private static final String MOCKITO_CORE_DEPENDENCY = "mockito-core-5.12"; - private static final String JUNIT_4_DEPENDENCY = "junit-4.13.2"; - private static final String LEGACY_JMOCKIT_DEPENDENCY = "jmockit-1.22"; +import static org.openrewrite.java.Assertions.java; +import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; + +class JMockitMockUpToMockitoTest implements RewriteTest { @Override public void defaults(RecipeSpec spec) { - setParserSettings(spec, LEGACY_JMOCKIT_DEPENDENCY, JUNIT_4_DEPENDENCY, MOCKITO_CORE_DEPENDENCY); + setParserSettings(spec, "jmockit-1.22", "junit-4.13.2"); } @Test void mockUpStaticMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - - @Mock - public int staticMethod() { - return 1024; - } - - @Mock - public int staticMethod(int v) { - return 128; - } - }; - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """, - """ - import org.junit.Test; - import org.mockito.MockedStatic; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, + """ + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """ + ) ); } @@ -113,78 +107,74 @@ public static int staticMethod(int v) { void mockUpInstanceMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - - @Mock - public String getMsg() { - return "mockMsg"; - } - - @Mock - public String getMsg(String echo) { - return "mockEchoMsg"; - } - }; - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """, - """ - import org.junit.Test; - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return "mockMsg"; - }); - when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { - return "mockEchoMsg"; - }); - }); - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public String getMsg() { + return "mockMsg"; + } + + @Mock + public String getMsg(String echo) { + return "mockEchoMsg"; + } + }; + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """, + """ + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return "mockMsg"; + }); + when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { + return "mockEchoMsg"; + }); + }); + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """ + ) ); } @@ -192,62 +182,58 @@ public String getMsg(String echo) { void mockUpInnerVariableTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - final String msg = "newMsg"; - - @Mock - public String getMsg() { - return msg; - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """, - """ - import org.junit.Test; - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return msg; - }); - }); - assertEquals("newMsg", new MyClazz().getMsg()); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, + """ + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + final String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return msg; + }); + }); + assertEquals("newMsg", new MyClazz().getMsg()); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """ + ) ); } } From 4e42b592fa41afc16b7518d6632c8b091fa69bc3 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Wed, 11 Sep 2024 09:46:42 +0200 Subject: [PATCH 03/48] Apply bot code suggestions --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 7 ++++--- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index fb0a4aa8f..b27b85377 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,7 +15,6 @@ */ package org.openrewrite.java.testing.jmockit; -import static java.util.stream.Collectors.toList; import org.openrewrite.ExecutionContext; import org.openrewrite.Preconditions; import org.openrewrite.Recipe; @@ -24,8 +23,6 @@ import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.UsesType; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; -import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaType; import org.openrewrite.java.tree.Statement; @@ -36,6 +33,10 @@ import java.util.Set; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.tree.Flag.Static; + public class JMockitMockUpToMockito extends Recipe { @Override public String getDisplayName() { diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index e78c47cd3..26d589241 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -16,6 +16,7 @@ package org.openrewrite.java.testing.jmockit; import org.junit.jupiter.api.Test; +import org.openrewrite.DocumentExample; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; @@ -29,6 +30,7 @@ public void defaults(RecipeSpec spec) { setParserSettings(spec, "jmockit-1.22", "junit-4.13.2"); } + @DocumentExample @Test void mockUpStaticMethodTest() { //language=java From faa1bb1ef35cae93560e7276cfe6fe6411176b93 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Wed, 11 Sep 2024 16:37:53 +0800 Subject: [PATCH 04/48] Add type check for new class statement --- .../jmockit/JMockitMockUpToMockito.java | 3 ++- .../jmockit/JMockitMockUpToMockitoTest.java | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index f37a8c53f..e61f13fbe 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -122,7 +122,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } J.NewClass newClass = (J.NewClass) statement; - if (newClass.getClazz() == null || newClass.getBody() == null) { + if (newClass.getClazz() == null || newClass.getBody() == null || + !TypeUtils.isOfClassType(newClass.getClazz().getType(), "mockit.MockUp")) { continue; } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 792f8538c..6d3a92530 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -210,6 +210,14 @@ public String getMsg() { return msg; } }; + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; assertEquals("newMsg", new MyClazz().getMsg()); } @@ -230,12 +238,20 @@ public String getMsg() { public class MockUpTest { @Test public void test() { - String msg = "newMsg"; + final String msg = "newMsg"; MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { when(mock.getMsg()).thenAnswer(invocation -> { return msg; }); }); + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; assertEquals("newMsg", new MyClazz().getMsg()); mockObjMockUpTest_MyClazz.close(); } @@ -250,4 +266,5 @@ public String getMsg() { ) ); } + } From 96688de6eec45c03c8dba7bea2a25e8d830d06cc Mon Sep 17 00:00:00 2001 From: SiBorea Date: Wed, 11 Sep 2024 21:19:39 +0800 Subject: [PATCH 05/48] Fix statement construction --- .../jmockit/JMockitMockUpToMockito.java | 128 +++--- .../jmockit/JMockitMockUpToMockitoTest.java | 399 +++++++++++------- 2 files changed, 332 insertions(+), 195 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index ee768e96e..084b23008 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,6 +15,7 @@ */ package org.openrewrite.java.testing.jmockit; +import static java.util.stream.Collectors.toList; import org.openrewrite.ExecutionContext; import org.openrewrite.Preconditions; import org.openrewrite.Recipe; @@ -22,7 +23,10 @@ import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; +import org.openrewrite.java.search.FindMissingTypes; import org.openrewrite.java.search.UsesType; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaType; import org.openrewrite.java.tree.Statement; @@ -33,10 +37,6 @@ import java.util.Set; import java.util.stream.Collectors; -import static java.util.stream.Collectors.toList; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; -import static org.openrewrite.java.tree.Flag.Static; - public class JMockitMockUpToMockito extends Recipe { @Override public String getDisplayName() { @@ -114,10 +114,10 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl return md; } - // Create the new statement - J.Block body = md.getBody(); - List shouldClose = new ArrayList<>(); - for (Statement statement : body.getStatements()) { + List closeVariables = new ArrayList<>(); + List aggregateOtherStatements = new ArrayList<>(); + List excludeMockUp = new ArrayList<>(); + for (Statement statement : md.getBody().getStatements()) { if (!(statement instanceof J.NewClass)) { continue; } @@ -128,10 +128,10 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl continue; } + excludeMockUp.add(statement); JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); String className = TypeUtils.asFullyQualified(mockType).getClassName(); String mockName = className.replace(".", "_"); - StringBuilder mockStatements = new StringBuilder(); List mockedMethods = newClass.getBody() .getStatements() @@ -156,14 +156,24 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .filter(s -> staticMethods.contains(((J.MethodDeclaration) s).getSimpleName())) .collect(toList()); if (!methods.isEmpty()) { - mockStatements.append("MockedStatic<").append(className).append("> mockStatic").append(mockName).append(" = mockStatic(").append(className).append(".class);"); + StringBuilder tpl = new StringBuilder(); + tpl.append("MockedStatic<").append(className).append("> mockStatic").append(mockName) + .append(" = mockStatic(").append(className).append(".class);"); for (Statement method : methods) { J.MethodDeclaration m = (J.MethodDeclaration) method; - mockStatements.append("mockStatic").append(mockName).append(".when(() -> ").append(className).append(".").append(m.getSimpleName()); - appendMethod(mockStatements, m); + tpl.append("mockStatic").append(mockName).append(".when(() -> ").append(className).append(".").append(m.getSimpleName()); + appendMethod(tpl, m); } + + md = JavaTemplate.builder(tpl.toString()) + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) + .imports("org.mockito.MockedStatic") + .staticImports("org.mockito.Mockito.*") + .contextSensitive() + .build() + .apply(updateCursor(md), statement.getCoordinates().after()); maybeAddImport("org.mockito.MockedStatic"); - shouldClose.add("mockStatic" + mockName); + closeVariables.add("mockStatic" + mockName); } // Instance @@ -172,60 +182,70 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .filter(s -> !staticMethods.contains(((J.MethodDeclaration) s).getSimpleName())) .collect(toList()); if (!methods.isEmpty()) { - mockStatements.append("MockedConstruction<").append(className).append("> mockObj").append(mockName).append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); + StringBuilder tpl = new StringBuilder(); + tpl.append("MockedConstruction<").append(className).append("> mockObj").append(mockName) + .append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); for (Statement method : methods) { J.MethodDeclaration m = (J.MethodDeclaration) method; - mockStatements.append("when(mock.").append(m.getSimpleName()); - appendMethod(mockStatements, m); + tpl.append("when(mock.").append(m.getSimpleName()); + appendMethod(tpl, m); } - mockStatements.append("});"); - - maybeAddImport("org.mockito.MockedConstruction", null, false); - shouldClose.add("mockObj" + mockName); + tpl.append("});"); + + md = JavaTemplate.builder(tpl.toString()) + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) + .imports("org.mockito.MockedConstruction") + .staticImports("org.mockito.Mockito.*") + .contextSensitive() + .build() + .apply(updateCursor(md), statement.getCoordinates().after()); + maybeAddImport("org.mockito.MockedConstruction"); + closeVariables.add("mockObj" + mockName); } - StringBuilder otherStatements = new StringBuilder(); - newClass.getBody() - .getStatements() - .stream() - .filter(s -> { - if (s instanceof J.MethodDeclaration) { - return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock")); - } - return true; - }) - .forEach(s -> { - otherStatements.append(s.printTrimmed()); - otherStatements.append(";"); - }); - - JavaTemplate tpl = JavaTemplate - .builder(otherStatements.toString() + mockStatements) - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) - .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") - .staticImports("org.mockito.Mockito.*") - .contextSensitive() - .build(); - md = maybeAutoFormat(md, tpl.apply(updateCursor(md), statement.getCoordinates().replace()), ctx); + // Only discard @Mock method declarations + aggregateOtherStatements.addAll( + newClass + .getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock")); + } + return true; + }) + .collect(toList()) + ); + + maybeAddImport("org.mockito.Mockito", "*", false); + maybeRemoveImport("mockit.Mock"); + maybeRemoveImport("mockit.MockUp"); } - for (String o : shouldClose) { - JavaTemplate tpl = JavaTemplate - .builder(o + ".close();") + // Add other statements at the front + List newBodyStatements = md.getBody() + .getStatements() + .stream() + .filter(s -> !excludeMockUp.contains(s)) + .collect(toList()); + newBodyStatements.addAll(0, aggregateOtherStatements); + md = md.withBody(md.getBody().withStatements(newBodyStatements)); + + // Add close statement at the end + for (String v : closeVariables) { + md = JavaTemplate.builder(v + ".close();") .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") .staticImports("org.mockito.Mockito.*") .contextSensitive() - .build(); - md = maybeAutoFormat(md, tpl.apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()), ctx); + .build() + .apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()); } - maybeAddImport("org.mockito.Mockito", "*", false); - maybeRemoveImport("mockit.Mock"); - maybeRemoveImport("mockit.MockUp"); - - return md; + doAfterVisit(new FindMissingTypes().getVisitor()); + return maybeAutoFormat(methodDeclaration, md, ctx); } } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 9ce91d320..b3fe06260 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -17,11 +17,10 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; -import org.openrewrite.test.RecipeSpec; -import org.openrewrite.test.RewriteTest; - import static org.openrewrite.java.Assertions.java; import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; +import org.openrewrite.test.RecipeSpec; +import org.openrewrite.test.RewriteTest; class JMockitMockUpToMockitoTest implements RewriteTest { @@ -35,73 +34,73 @@ public void defaults(RecipeSpec spec) { void mockUpStaticMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public int staticMethod() { - return 1024; - } - - @Mock - public int staticMethod(int v) { - return 128; - } - }; - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """, - """ - import org.mockito.MockedStatic; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, + """ + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """ + ) ); } @@ -109,79 +108,158 @@ public static int staticMethod(int v) { void mockUpInstanceMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public String getMsg() { - return "mockMsg"; - } - - @Mock - public String getMsg(String echo) { - return "mockEchoMsg"; - } - }; - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """, - """ - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return "mockMsg"; - }); - when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { - return "mockEchoMsg"; - }); - }); - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public String getMsg() { + return "mockMsg"; + } + + @Mock + public String getMsg(String echo) { + return "mockEchoMsg"; + } + }; + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """, + """ + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return "mockMsg"; + }); + when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { + return "mockEchoMsg"; + }); + }); + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """ + ) + ); + } + + @Test + void mockUpInnerStatementTest() { + //language=java + rewriteRun( + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + }; + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return msg; + }); + }); + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """ + ) ); } @Test - void mockUpInnerVariableTest() { + void mockUpMixTest() { //language=java rewriteRun( java( @@ -201,8 +279,18 @@ public void test() { public String getMsg() { return msg; } + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } }; - + // Should ignore the newClass statement new Runnable() { @Override @@ -211,18 +299,29 @@ public void run() { } }; assertEquals("newMsg", new MyClazz().getMsg()); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); } public static class MyClazz { public String getMsg() { return "msg"; } + + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } } } """, """ import org.junit.Test; import org.mockito.MockedConstruction; + import org.mockito.MockedStatic; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; @@ -236,7 +335,14 @@ public void test() { return msg; }); }); - + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + // Should ignore the newClass statement new Runnable() { @Override @@ -245,6 +351,9 @@ public void run() { } }; assertEquals("newMsg", new MyClazz().getMsg()); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); mockObjMockUpTest_MyClazz.close(); } @@ -252,6 +361,14 @@ public static class MyClazz { public String getMsg() { return "msg"; } + + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } } } """ From f9d9fa17b3e31a6da63e2b80325ad76784aea276 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Wed, 11 Sep 2024 21:23:36 +0800 Subject: [PATCH 06/48] Remove debug statement --- .../openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 084b23008..37b1d8be8 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -244,7 +244,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()); } - doAfterVisit(new FindMissingTypes().getVisitor()); return maybeAutoFormat(methodDeclaration, md, ctx); } } From 694f1f069d048604c1805c294f71f22cef7b079a Mon Sep 17 00:00:00 2001 From: SiBorea Date: Thu, 12 Sep 2024 09:12:22 +0800 Subject: [PATCH 07/48] Fix code format --- .../jmockit/JMockitMockUpToMockito.java | 1 - .../jmockit/JMockitMockUpToMockitoTest.java | 636 +++++++++--------- 2 files changed, 318 insertions(+), 319 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 37b1d8be8..969e5b6c7 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -23,7 +23,6 @@ import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; -import org.openrewrite.java.search.FindMissingTypes; import org.openrewrite.java.search.UsesType; import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; import static org.openrewrite.java.tree.Flag.Static; diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index b3fe06260..14647e639 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -34,73 +34,73 @@ public void defaults(RecipeSpec spec) { void mockUpStaticMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public int staticMethod() { - return 1024; - } - - @Mock - public int staticMethod(int v) { - return 128; - } - }; - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """, - """ - import org.mockito.MockedStatic; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, + """ + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """ + ) ); } @@ -108,74 +108,74 @@ public static int staticMethod(int v) { void mockUpInstanceMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public String getMsg() { - return "mockMsg"; - } - - @Mock - public String getMsg(String echo) { - return "mockEchoMsg"; - } - }; - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """, - """ - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return "mockMsg"; - }); - when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { - return "mockEchoMsg"; - }); - }); - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public String getMsg() { + return "mockMsg"; + } + + @Mock + public String getMsg(String echo) { + return "mockEchoMsg"; + } + }; + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """, + """ + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return "mockMsg"; + }); + when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { + return "mockEchoMsg"; + }); + }); + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """ + ) ); } @@ -183,78 +183,78 @@ public String getMsg(String echo) { void mockUpInnerStatementTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - final String msg = "newMsg"; - - @Mock - public String getMsg() { - return msg; - } - }; - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """, - """ - import org.junit.Test; - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return msg; - }); - }); - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + }; + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return msg; + }); + }); + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """ + ) ); } @@ -262,117 +262,117 @@ public String getMsg() { void mockUpMixTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - final String msg = "newMsg"; - - @Mock - public String getMsg() { - return msg; - } - - @Mock - public int staticMethod() { - return 1024; - } - - @Mock - public int staticMethod(int v) { - return 128; - } - }; - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """, - """ - import org.junit.Test; - import org.mockito.MockedConstruction; - import org.mockito.MockedStatic; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - final String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return msg; - }); - }); - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """ - ) + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedConstruction; + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + final String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + when(mock.getMsg()).thenAnswer(invocation -> { + return msg; + }); + }); + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """ + ) ); } From 78a4aae82c26dc1b8ceb523d55aeb0ac92034ce1 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Fri, 13 Sep 2024 15:10:08 +0800 Subject: [PATCH 08/48] Use CallRealMethod for non mock methods --- .../jmockit/JMockitMockUpToMockito.java | 294 ++++++---- .../jmockit/JMockitMockUpToMockitoTest.java | 545 +++++++++--------- 2 files changed, 443 insertions(+), 396 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 969e5b6c7..dddd38c54 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -16,6 +16,7 @@ package org.openrewrite.java.testing.jmockit; import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; import org.openrewrite.ExecutionContext; import org.openrewrite.Preconditions; import org.openrewrite.Recipe; @@ -25,15 +26,19 @@ import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.UsesType; import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.tree.Flag.Private; import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaType; import org.openrewrite.java.tree.Statement; import org.openrewrite.java.tree.TypeUtils; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; -import java.util.Set; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; public class JMockitMockUpToMockito extends Recipe { @@ -53,57 +58,128 @@ public TreeVisitor getVisitor() { } private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { - private void appendMethod(StringBuilder sb, J.MethodDeclaration m) { - sb.append("("); - if (!m.getParameters().isEmpty()) { - for (int i = 0; i < m.getParameters().size(); i++) { - Statement s = m.getParameters().get(i); - if (s instanceof J.VariableDeclarations) { - J.VariableDeclarations param = (J.VariableDeclarations) s; - if (param.getType() instanceof JavaType.Primitive) { - switch (param.getType().toString()) { - case "int": - sb.append("anyInt()"); - break; - case "long": - sb.append("anyLong()"); - break; - case "double": - sb.append("anyDouble()"); - break; - case "float": - sb.append("anyFloat()"); - break; - case "short": - sb.append("anyShort()"); - break; - case "byte": - sb.append("anyByte()"); - break; - case "char": - sb.append("anyChar()"); - break; - case "boolean": - sb.append("anyBoolean()"); - break; - } - } else { - String paramType = param.getTypeAsFullyQualified().getClassName(); - sb.append("nullable(").append(paramType).append(".class").append(")"); - } - } - if (i < m.getParameters().size() - 1) { - sb.append(", "); - } + private String getMatcher(JavaType s) { + if (s instanceof JavaType.Primitive) { + switch (s.toString()) { + case "int": + return "anyInt()"; + case "long": + return "anyLong()"; + case "double": + return "anyDouble()"; + case "float": + return "anyFloat()"; + case "short": + return "anyShort()"; + case "byte": + return "anyByte()"; + case "char": + return "anyChar()"; + case "boolean": + return "anyBoolean()"; } + } else if (s instanceof JavaType.Array) { + String elem = TypeUtils.asArray(s).getElemType().toString(); + return "nullable(" + elem + "[].class)"; } - sb.append(")").append(")"); - sb.append(".thenAnswer(invocation -> {"); - for (Statement s : m.getBody().getStatements()) { - sb.append(s.printTrimmed()); + return "nullable(" + TypeUtils.asFullyQualified(s).getClassName() + ".class)"; + } + + private void appendAnswer(StringBuilder sb, List statements) { + boolean hasReturn = false; + for (Statement s : statements) { + hasReturn = hasReturn || s instanceof J.Return; + sb.append(s.print()); sb.append(";"); } - sb.append("});"); + if (!hasReturn) { + sb.append("return null;"); + } + } + + private void appendDoAnswer(StringBuilder sb, J.MethodDeclaration m, String objName) { + sb.append("doAnswer(invocation -> {"); + appendAnswer(sb, m.getBody().getStatements()); + sb.append("}).when(").append(objName).append(").").append(m.getSimpleName()).append("("); + + sb.append(m.getParameters() + .stream() + .filter(p -> p instanceof J.VariableDeclarations) + .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) + .collect(Collectors.joining(", "))); + sb.append(");"); + } + + private void appendCallRealMethod(StringBuilder sb, JavaType.Method m) { + sb.append("("); + for (int i = 0; i < m.getParameterTypes().size(); i++) { + JavaType s = m.getParameterTypes().get(i); + sb.append(getMatcher(s)); + if (i < m.getParameterTypes().size() - 1) { + sb.append(", "); + } + } + sb.append(")).thenCallRealMethod();"); + } + + private String addMockStaticMethods(JavaType.Class clazz, String className, String mockName, Map mockedMethods) { + StringBuilder tpl = new StringBuilder(); + + // Handle mocked static mockedMethods + tpl.append("MockedStatic<").append(className).append("> mockStatic").append(mockName) + .append(" = mockStatic(").append(className).append(".class);"); + for (J.MethodDeclaration m : mockedMethods.keySet()) { + tpl.append("mockStatic").append(mockName); + tpl.append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("("); + tpl.append(m.getParameters() + .stream() + .filter(p -> p instanceof J.VariableDeclarations) + .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) + .collect(Collectors.joining(", "))); + tpl.append(")).thenAnswer(invocation -> {"); + appendAnswer(tpl, m.getBody().getStatements()); + tpl.append("});"); + } + + // Call real method for non private, static methods + clazz.getMethods() + .stream() + .filter(m -> !m.isConstructor()) + .filter(m -> !m.getFlags().contains(Private)) + .filter(m -> m.getFlags().contains(Static)) + .filter(m -> !mockedMethods.containsValue(m)) + .forEach(m -> { + tpl.append("mockStatic").append(mockName).append(".when(() -> ") + .append(className).append(".").append(m.getName()); + appendCallRealMethod(tpl, m); + tpl.append(");"); + }); + + return tpl.toString(); + } + + private String addMockInstanceMethods(JavaType.Class clazz, String className, String mockName, Map mockedMethods) { + StringBuilder tpl = new StringBuilder(); + tpl.append("MockedConstruction<").append(className).append("> mockObj").append(mockName) + .append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); + for (J.MethodDeclaration m : mockedMethods.keySet()) { + appendDoAnswer(tpl, m, "mock"); + } + + // Call real method for non private, non static methods + clazz.getMethods() + .stream() + .filter(m -> !m.isConstructor()) + .filter(m -> !m.getFlags().contains(Static)) + .filter(m -> !m.getFlags().contains(Private)) + .filter(m -> !mockedMethods.containsValue(m)) + .forEach(m -> { + tpl.append("when(mock.").append(m.getName()); + appendCallRealMethod(tpl, m); + }); + + tpl.append("});"); + return tpl.toString(); } @Override @@ -114,8 +190,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } List closeVariables = new ArrayList<>(); - List aggregateOtherStatements = new ArrayList<>(); - List excludeMockUp = new ArrayList<>(); for (Statement statement : md.getBody().getStatements()) { if (!(statement instanceof J.NewClass)) { continue; @@ -127,44 +201,60 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl continue; } - excludeMockUp.add(statement); + // Only discard @Mock method declarations + List otherStatements = newClass + .getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock")); + } + return true; + }) + .collect(toList()); + List bodyStatements = md.getBody().getStatements(); + bodyStatements.addAll(bodyStatements.indexOf(statement), otherStatements); + md = md.withBody(md.getBody().withStatements(bodyStatements)); + JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); String className = TypeUtils.asFullyQualified(mockType).getClassName(); String mockName = className.replace(".", "_"); - List mockedMethods = newClass.getBody() + Map mockedMethods = newClass.getBody() .getStatements() .stream() .filter(s -> s instanceof J.MethodDeclaration) .filter(s -> ((J.MethodDeclaration) s).getLeadingAnnotations().stream() .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock"))) - // Ignore void methods - .filter(s -> !"void".equals(((J.MethodDeclaration) s).getReturnTypeExpression().toString())) - .collect(toList()); - - Set staticMethods = ((JavaType.Class) mockType) - .getMethods() - .stream() - .filter(m -> m.getFlags().contains(Static)) - .map(JavaType.Method::getName) - .collect(Collectors.toSet()); + .map(s -> { + J.MethodDeclaration method = (J.MethodDeclaration) s; + Optional found = TypeUtils.findDeclaredMethod( + TypeUtils.asFullyQualified(mockType), + method.getSimpleName(), + method.getMethodType().getParameterTypes() + ); + if (found.isPresent()) { + JavaType.Method m = found.get(); + if (!m.getFlags().contains(Private)) { + return new AbstractMap.SimpleEntry<>(method, found.get()); + } + } + return null; + }) + .filter(Objects::nonNull) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); // Static - List methods = mockedMethods + Map mockedPublicStaticMethods = mockedMethods + .entrySet() .stream() - .filter(s -> staticMethods.contains(((J.MethodDeclaration) s).getSimpleName())) - .collect(toList()); - if (!methods.isEmpty()) { - StringBuilder tpl = new StringBuilder(); - tpl.append("MockedStatic<").append(className).append("> mockStatic").append(mockName) - .append(" = mockStatic(").append(className).append(".class);"); - for (Statement method : methods) { - J.MethodDeclaration m = (J.MethodDeclaration) method; - tpl.append("mockStatic").append(mockName).append(".when(() -> ").append(className).append(".").append(m.getSimpleName()); - appendMethod(tpl, m); - } - - md = JavaTemplate.builder(tpl.toString()) + .filter(m -> m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + if (!mockedPublicStaticMethods.isEmpty()) { + String tpl = addMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods); + md = JavaTemplate.builder(tpl) .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) .imports("org.mockito.MockedStatic") .staticImports("org.mockito.Mockito.*") @@ -176,22 +266,14 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } // Instance - methods = mockedMethods + Map mockedPublicMethods = mockedMethods + .entrySet() .stream() - .filter(s -> !staticMethods.contains(((J.MethodDeclaration) s).getSimpleName())) - .collect(toList()); - if (!methods.isEmpty()) { - StringBuilder tpl = new StringBuilder(); - tpl.append("MockedConstruction<").append(className).append("> mockObj").append(mockName) - .append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); - for (Statement method : methods) { - J.MethodDeclaration m = (J.MethodDeclaration) method; - tpl.append("when(mock.").append(m.getSimpleName()); - appendMethod(tpl, m); - } - tpl.append("});"); - - md = JavaTemplate.builder(tpl.toString()) + .filter(m -> !m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + if (!mockedPublicMethods.isEmpty()) { + String tpl = addMockInstanceMethods((JavaType.Class) mockType, className, mockName, mockedPublicMethods); + md = JavaTemplate.builder(tpl) .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) .imports("org.mockito.MockedConstruction") .staticImports("org.mockito.Mockito.*") @@ -202,35 +284,15 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl closeVariables.add("mockObj" + mockName); } - // Only discard @Mock method declarations - aggregateOtherStatements.addAll( - newClass - .getBody() - .getStatements() - .stream() - .filter(s -> { - if (s instanceof J.MethodDeclaration) { - return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock")); - } - return true; - }) - .collect(toList()) - ); - maybeAddImport("org.mockito.Mockito", "*", false); maybeRemoveImport("mockit.Mock"); maybeRemoveImport("mockit.MockUp"); - } - // Add other statements at the front - List newBodyStatements = md.getBody() - .getStatements() - .stream() - .filter(s -> !excludeMockUp.contains(s)) - .collect(toList()); - newBodyStatements.addAll(0, aggregateOtherStatements); - md = md.withBody(md.getBody().withStatements(newBodyStatements)); + // Remove MockUp statement + bodyStatements = md.getBody().getStatements(); + bodyStatements.remove(statement); + md = md.withBody(md.getBody().withStatements(bodyStatements)); + } // Add close statement at the end for (String v : closeVariables) { diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 14647e639..2930e9e57 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -34,346 +34,331 @@ public void defaults(RecipeSpec spec) { void mockUpStaticMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public int staticMethod() { - return 1024; - } - - @Mock - public int staticMethod(int v) { - return 128; - } - }; - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """, - """ - import org.mockito.MockedStatic; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """ - ) - ); + java(""" + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, """ + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """)); } @Test void mockUpInstanceMethodTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public String getMsg() { - return "mockMsg"; - } - - @Mock - public String getMsg(String echo) { - return "mockEchoMsg"; - } - }; - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """, - """ - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return "mockMsg"; - }); - when(mock.getMsg(nullable(String.class))).thenAnswer(invocation -> { - return "mockEchoMsg"; - }); - }); - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """ - ) - ); + java(""" + import org.junit.Test; + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + @Mock + public String getMsg() { + return "mockMsg"; + } + @Mock + public String getMsg(String echo) { + return "mockEchoMsg"; + } + }; + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """, """ + import org.junit.Test; + import org.mockito.MockedConstruction; + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + return "mockEchoMsg"; + }).when(mock).getMsg(nullable(String.class)); + doAnswer(invocation -> { + return "mockMsg"; + }).when(mock).getMsg(); + }); + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """)); } @Test void mockUpInnerStatementTest() { //language=java rewriteRun( - java( - """ - import mockit.Mock; - import mockit.MockUp; - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - final String msg = "newMsg"; - - @Mock - public String getMsg() { - return msg; - } - }; - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """, - """ - import org.junit.Test; - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return msg; - }); - }); - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """ - ) - ); + java(""" + import mockit.Mock; + import mockit.MockUp; + + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + }; + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + final String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + return msg; + }).when(mock).getMsg(); + }); + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + mockObjMockUpTest_MyClazz.close(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """)); } @Test - void mockUpMixTest() { + void mockUpVoidTest() { //language=java rewriteRun( - java( - """ + java(""" import mockit.Mock; import mockit.MockUp; - import org.junit.Test; import static org.junit.Assert.assertEquals; + import org.junit.Test; public class MockUpTest { @Test public void test() { - new MockUp() { - final String msg = "newMsg"; - - @Mock - public String getMsg() { - return msg; - } - + new MockUp() { @Mock - public int staticMethod() { - return 1024; + public void changeMsg() { + MockUpClass.Save.msg = "mockMsg"; } @Mock - public int staticMethod(int v) { - return 128; + public void changeText(String text) { + MockUpClass.Save.text = "mockText"; } }; - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); + assertEquals("mockMsg", new MockUpClass().getMsg()); + assertEquals("mockText", new MockUpClass().getText()); } - public static class MyClazz { - public String getMsg() { - return "msg"; + public static class MockUpClass { + public static class Save { + public static String msg = "msg"; + public static String text = "text"; + } + + public final String getMsg() { + changeMsg(); + return Save.msg; + } + + public void changeMsg() { + Save.msg = "newMsg"; } - public static int staticMethod() { - return 0; + public String getText() { + changeText("newText"); + return Save.text; } - public static int staticMethod(int v) { - return 1; + public static void changeText(String text) { + Save.text = text; } } } """, """ + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + import org.junit.Test; import org.mockito.MockedConstruction; import org.mockito.MockedStatic; - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - public class MockUpTest { @Test public void test() { - final String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - when(mock.getMsg()).thenAnswer(invocation -> { - return msg; - }); + MockedConstruction mockObjMockUpTest_MockUpClass = mockConstruction(MockUpTest.MockUpClass.class, (mock, context) -> { + doAnswer(invocation -> { + MockUpClass.Save.msg = "mockMsg"; + return null; + }).when(mock).changeMsg(); + when(mock.getText()).thenCallRealMethod(); + when(mock.getMsg()).thenCallRealMethod(); }); - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; + MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class); + mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { + MockUpClass.Save.text = "mockText"; + return null; }); - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - mockObjMockUpTest_MyClazz.close(); + assertEquals("mockMsg", new MockUpClass().getMsg()); + assertEquals("mockText", new MockUpClass().getText()); + mockStaticMockUpTest_MockUpClass.close(); + mockObjMockUpTest_MockUpClass.close(); } - public static class MyClazz { - public String getMsg() { - return "msg"; + public static class MockUpClass { + public static class Save { + public static String msg = "msg"; + public static String text = "text"; + } + + public final String getMsg() { + changeMsg(); + return Save.msg; + } + + public void changeMsg() { + Save.msg = "newMsg"; } - public static int staticMethod() { - return 0; + public String getText() { + changeText("newText"); + return Save.text; } - public static int staticMethod(int v) { - return 1; + public static void changeText(String text) { + Save.text = text; } } } - """ - ) - ); + """)); } - } From cda1e64948d1ba0f42d209909579d457c134e536 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:54:58 +0800 Subject: [PATCH 09/48] Update src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 2930e9e57..9fff7f42e 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -252,7 +252,8 @@ public String getMsg() { void mockUpVoidTest() { //language=java rewriteRun( - java(""" + java( + """ import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; From 4589bb3ff929bb0207c477ab2bdb71a50760eb7d Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:55:10 +0800 Subject: [PATCH 10/48] Update src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 9fff7f42e..64a8cc829 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -176,7 +176,8 @@ public String getMsg(String echo) { void mockUpInnerStatementTest() { //language=java rewriteRun( - java(""" + java( + """ import mockit.Mock; import mockit.MockUp; From c90fb67b91fd735e48b978ab70c868e65ae9d7dd Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:55:24 +0800 Subject: [PATCH 11/48] Update src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 64a8cc829..023777268 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -104,7 +104,8 @@ public static int staticMethod(int v) { void mockUpInstanceMethodTest() { //language=java rewriteRun( - java(""" + java( + """ import org.junit.Test; import mockit.Mock; import mockit.MockUp; From 7c7fecceb182bc6e2ff611be932e97df36b8e8b5 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:55:32 +0800 Subject: [PATCH 12/48] Update src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 023777268..a57ffecec 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -34,7 +34,8 @@ public void defaults(RecipeSpec spec) { void mockUpStaticMethodTest() { //language=java rewriteRun( - java(""" + java( + """ import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; From 8a71eb8971793d80f10fe2c638b3dfe02468ec6a Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:55:39 +0800 Subject: [PATCH 13/48] Update src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index a57ffecec..aa7185160 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -19,6 +19,7 @@ import org.openrewrite.DocumentExample; import static org.openrewrite.java.Assertions.java; import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; + import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; From f9827b0f25f7906d501338dbc1a030bb352053ef Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:55:46 +0800 Subject: [PATCH 14/48] Update src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index dddd38c54..26165400d 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -41,6 +41,12 @@ import java.util.Optional; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.tree.Flag.Private; +import static org.openrewrite.java.tree.Flag.Static; + public class JMockitMockUpToMockito extends Recipe { @Override public String getDisplayName() { From 34589a0f092094cf5f687df412fa105ed9148086 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:55:55 +0800 Subject: [PATCH 15/48] Update src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 26165400d..d1cb0c439 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,8 +15,6 @@ */ package org.openrewrite.java.testing.jmockit; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toMap; import org.openrewrite.ExecutionContext; import org.openrewrite.Preconditions; import org.openrewrite.Recipe; From e03719a6e5bb8078c004103dd3b1ad21e3624335 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:56:05 +0800 Subject: [PATCH 16/48] Update src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index d1cb0c439..00be0b4fb 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -23,9 +23,6 @@ import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.UsesType; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; -import static org.openrewrite.java.tree.Flag.Private; -import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaType; import org.openrewrite.java.tree.Statement; From 6c9d15665fcbea877928251620535649c89b1fd8 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Wed, 18 Sep 2024 15:31:11 +0800 Subject: [PATCH 17/48] Add description about private methods --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 00be0b4fb..45da36a94 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -50,7 +50,7 @@ public String getDisplayName() { @Override public String getDescription() { - return "Rewrites JMockit `MockUp` blocks to Mockito statements."; + return "Rewrites JMockit `MockUp` blocks to Mockito statements. This recipe will not rewrite private methods in MockUp."; } @Override From 162352f1870753d4aec3f1d02b81f984e7b5ad3c Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Wed, 18 Sep 2024 11:08:07 +0200 Subject: [PATCH 18/48] Update JMockitMockUpToMockitoTest.java --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index aa7185160..724f03550 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -17,12 +17,12 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; -import static org.openrewrite.java.Assertions.java; -import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; - import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; +import static org.openrewrite.java.Assertions.java; +import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; + class JMockitMockUpToMockitoTest implements RewriteTest { @Override From a852a605480415bc3c82b3b039e2df53f814d673 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Thu, 19 Sep 2024 09:08:55 +0800 Subject: [PATCH 19/48] Fix UT to match gralde build order --- .../testing/jmockit/JMockitMockUpToMockitoTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 724f03550..36c56daba 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -78,12 +78,12 @@ public static int staticMethod(int v) { class MockUpTest { void test() { MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { return 128; }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); assertEquals(1024, MyClazz.staticMethod()); assertEquals(128, MyClazz.staticMethod(0)); mockStaticMockUpTest_MyClazz.close(); @@ -150,12 +150,12 @@ public class MockUpTest { @Test public void test() { MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return "mockEchoMsg"; - }).when(mock).getMsg(nullable(String.class)); doAnswer(invocation -> { return "mockMsg"; }).when(mock).getMsg(); + doAnswer(invocation -> { + return "mockEchoMsg"; + }).when(mock).getMsg(nullable(String.class)); }); assertEquals("mockMsg", new MyClazz().getMsg()); assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); From 4ef5811b1b7c235c0917ae59b6f71a2befa830f5 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Mon, 23 Sep 2024 01:32:49 +0800 Subject: [PATCH 20/48] Add setUp/tearDown support --- .../jmockit/JMockitMockUpToMockito.java | 415 +++++++++----- .../java/testing/mockito/MockitoUtils.java | 75 +++ .../PowerMockitoMockStaticToMockito.java | 232 ++++---- .../jmockit/JMockitMockUpToMockitoTest.java | 507 ++++++++++-------- 4 files changed, 733 insertions(+), 496 deletions(-) create mode 100644 src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 45da36a94..08c9103f4 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,34 +15,34 @@ */ package org.openrewrite.java.testing.jmockit; -import org.openrewrite.ExecutionContext; -import org.openrewrite.Preconditions; -import org.openrewrite.Recipe; -import org.openrewrite.TreeVisitor; +import org.openrewrite.*; import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; -import org.openrewrite.java.search.UsesType; -import org.openrewrite.java.tree.J; -import org.openrewrite.java.tree.JavaType; -import org.openrewrite.java.tree.Statement; -import org.openrewrite.java.tree.TypeUtils; - -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import org.openrewrite.java.search.*; +import org.openrewrite.java.tree.*; +import org.openrewrite.marker.SearchResult; + +import java.util.*; import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toMap; import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; import static org.openrewrite.java.tree.Flag.Private; import static org.openrewrite.java.tree.Flag.Static; public class JMockitMockUpToMockito extends Recipe { + private static final String MOCKITO_CLASSPATH = "mockito-core-5"; + private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; + private static final String JMOCKIT_MOCKUP_IMPORT = "mockit.MockUp"; + private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; + private static final String MOCKITO_STATIC_PREFIX = "mockStatic"; + private static final String MOCKITO_STATIC_IMPORT = "org.mockito.MockedStatic"; + private static final String MOCKITO_CONSTRUCTION_PREFIX = "mockObj"; + private static final String MOCKITO_CONSTRUCTION_IMPORT = "org.mockito.MockedConstruction"; + @Override public String getDisplayName() { return "Rewrite JMockit MockUp to Mockito statements"; @@ -59,6 +59,8 @@ public TreeVisitor getVisitor() { } private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { + private List tearDownMocks = new ArrayList<>(); + private String getMatcher(JavaType s) { if (s instanceof JavaType.Primitive) { switch (s.toString()) { @@ -104,10 +106,10 @@ private void appendDoAnswer(StringBuilder sb, J.MethodDeclaration m, String objN sb.append("}).when(").append(objName).append(").").append(m.getSimpleName()).append("("); sb.append(m.getParameters() - .stream() - .filter(p -> p instanceof J.VariableDeclarations) - .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) - .collect(Collectors.joining(", "))); + .stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) + .collect(Collectors.joining(", "))); sb.append(");"); } @@ -123,20 +125,27 @@ private void appendCallRealMethod(StringBuilder sb, JavaType.Method m) { sb.append(")).thenCallRealMethod();"); } - private String addMockStaticMethods(JavaType.Class clazz, String className, String mockName, Map mockedMethods) { + private String addMockStaticMethods(boolean isBeforeTest, JavaType.Class clazz, String className, String mockName, Map mockedMethods) { StringBuilder tpl = new StringBuilder(); // Handle mocked static mockedMethods - tpl.append("MockedStatic<").append(className).append("> mockStatic").append(mockName) - .append(" = mockStatic(").append(className).append(".class);"); - for (J.MethodDeclaration m : mockedMethods.keySet()) { + if (!isBeforeTest) { + tpl.append("MockedStatic<").append(className).append("> "); + } + tpl.append(MOCKITO_STATIC_PREFIX).append(mockName).append(" = mockStatic(").append(className).append(".class);"); + + // To generate predictable method order + List keys = mockedMethods.keySet().stream() + .sorted(Comparator.comparing((J.MethodDeclaration::print))) + .collect(toList()); + for (J.MethodDeclaration m : keys) { tpl.append("mockStatic").append(mockName); tpl.append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("("); tpl.append(m.getParameters() - .stream() - .filter(p -> p instanceof J.VariableDeclarations) - .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) - .collect(Collectors.joining(", "))); + .stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) + .collect(Collectors.joining(", "))); tpl.append(")).thenAnswer(invocation -> {"); appendAnswer(tpl, m.getBody().getStatements()); tpl.append("});"); @@ -144,77 +153,228 @@ private String addMockStaticMethods(JavaType.Class clazz, String className, Stri // Call real method for non private, static methods clazz.getMethods() - .stream() - .filter(m -> !m.isConstructor()) - .filter(m -> !m.getFlags().contains(Private)) - .filter(m -> m.getFlags().contains(Static)) - .filter(m -> !mockedMethods.containsValue(m)) - .forEach(m -> { - tpl.append("mockStatic").append(mockName).append(".when(() -> ") - .append(className).append(".").append(m.getName()); - appendCallRealMethod(tpl, m); - tpl.append(");"); - }); + .stream() + .filter(m -> !m.isConstructor()) + .filter(m -> !m.getFlags().contains(Private)) + .filter(m -> m.getFlags().contains(Static)) + .filter(m -> !mockedMethods.containsValue(m)) + .forEach(m -> { + tpl.append("mockStatic").append(mockName).append(".when(() -> ") + .append(className).append(".").append(m.getName()); + appendCallRealMethod(tpl, m); + tpl.append(");"); + }); return tpl.toString(); } - private String addMockInstanceMethods(JavaType.Class clazz, String className, String mockName, Map mockedMethods) { + private String addMockInstanceMethods(boolean isBeforeTest, JavaType.Class clazz, String className, String mockName, Map mockedMethods) { StringBuilder tpl = new StringBuilder(); - tpl.append("MockedConstruction<").append(className).append("> mockObj").append(mockName) - .append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); - for (J.MethodDeclaration m : mockedMethods.keySet()) { + // Handle mocked static mockedMethods + if (!isBeforeTest) { + tpl.append("MockedConstruction<").append(className).append("> "); + } + tpl.append(MOCKITO_CONSTRUCTION_PREFIX).append(mockName) + .append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); + + // To generate predictable method order + List keys = mockedMethods.keySet().stream() + .sorted(Comparator.comparing((J.MethodDeclaration::print))) + .collect(toList()); + for (J.MethodDeclaration m : keys) { appendDoAnswer(tpl, m, "mock"); } // Call real method for non private, non static methods clazz.getMethods() - .stream() - .filter(m -> !m.isConstructor()) - .filter(m -> !m.getFlags().contains(Static)) - .filter(m -> !m.getFlags().contains(Private)) - .filter(m -> !mockedMethods.containsValue(m)) - .forEach(m -> { - tpl.append("when(mock.").append(m.getName()); - appendCallRealMethod(tpl, m); - }); + .stream() + .filter(m -> !m.isConstructor()) + .filter(m -> !m.getFlags().contains(Static)) + .filter(m -> !m.getFlags().contains(Private)) + .filter(m -> !mockedMethods.containsValue(m)) + .forEach(m -> { + tpl.append("when(mock.").append(m.getName()); + appendCallRealMethod(tpl, m); + }); tpl.append("});"); return tpl.toString(); } + private boolean isMockUpStatement(Tree tree) { + return tree instanceof J.NewClass && + ((J.NewClass) tree).getClazz() != null && + TypeUtils.isOfClassType(((J.NewClass) tree).getClazz().getType(), JMOCKIT_MOCKUP_IMPORT); + } + + private boolean isSetUpMethod(J.MethodDeclaration md) { + return md.getLeadingAnnotations().stream() + .anyMatch(o -> + TypeUtils.isOfClassType(o.getType(), "org.junit.Before") || + TypeUtils.isOfClassType(o.getType(), "org.junit.jupiter.api.BeforeEach") + ); + } + + private boolean isTearDownMethod(J.MethodDeclaration md) { + return md.getLeadingAnnotations().stream() + .anyMatch(o -> + TypeUtils.isOfClassType(o.getType(), "org.junit.After") || + TypeUtils.isOfClassType(o.getType(), "org.junit.jupiter.api.AfterEach") + ); + } + + private Map getMockUpMethods(J.NewClass newClass) { + JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); + return newClass.getBody() + .getStatements() + .stream() + .filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast) + .filter(s -> s.getLeadingAnnotations().stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT))) + .map(method -> { + Optional found = TypeUtils.findDeclaredMethod( + TypeUtils.asFullyQualified(mockType), + method.getSimpleName(), + method.getMethodType().getParameterTypes() + ); + if (found.isPresent()) { + JavaType.Method m = found.get(); + if (!m.getFlags().contains(Private)) { + return new AbstractMap.SimpleEntry<>(method, found.get()); + } + } + return null; + }) + .filter(Objects::nonNull) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + @Override + public J.ClassDeclaration visitClassDeclaration(J.ClassDeclaration classDecl, ExecutionContext ctx) { + // Handle @Before/@BeforeEach mockUp + Set mds = TreeVisitor.collect( + new JavaIsoVisitor() { + @Override + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { + if (isSetUpMethod(md)) { + return SearchResult.found(md); + } + return super.visitMethodDeclaration(md, ctx); + } + }, + classDecl, + new HashSet<>() + ) + .stream() + .filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast) + .collect(Collectors.toSet()); + if (mds.isEmpty()) { + return super.visitClassDeclaration(classDecl, ctx); + } + + final J.ClassDeclaration[] cd = {classDecl}; + mds.forEach(md -> md.getBody() + .getStatements() + .stream() + .filter(this::isMockUpStatement) + .map(J.NewClass.class::cast) + .forEach(newClass -> { + JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); + String className = TypeUtils.asFullyQualified(mockType).getClassName(); + String mockName = className.replace(".", "_"); + Map mockedMethods = getMockUpMethods(newClass); + + // Add mockStatic field + if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedStatic<#{}> " + MOCKITO_STATIC_PREFIX + "#{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + className, + mockName + ); + tearDownMocks.add(MOCKITO_STATIC_PREFIX + mockName); + } + // Add mockConstruction field + if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedConstruction<" + className + "> " + MOCKITO_CONSTRUCTION_PREFIX + mockName + ";") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .doBeforeParseTemplate(System.out::println) + .build() + .apply( + updateCursor(cd[0]), + cd[0].getBody().getCoordinates().firstStatement() + ); + tearDownMocks.add(MOCKITO_CONSTRUCTION_PREFIX + mockName); + } + })); + + cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDownMocks", + "@org.junit.After", + "@After", + "junit-4.13", + "org.junit.After", + ""); + + maybeAutoFormat(cd[0], cd[0].withPrefix(cd[0].getPrefix(). + withWhitespace("")), cd[0].getName(), ctx, getCursor()); + return super.visitClassDeclaration(cd[0], ctx); + } + @Override - public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDeclaration, ExecutionContext ctx) { - J.MethodDeclaration md = super.visitMethodDeclaration(methodDeclaration, ctx); + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { if (md.getBody() == null) { return md; } + if (isTearDownMethod(md)) { + for (String v : tearDownMocks) { + md = JavaTemplate.builder(v + ".closeOnDemand();") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .doBeforeParseTemplate(System.out::println) + .build() + .apply( + updateCursor(md), + md.getBody().getCoordinates().lastStatement() + ); + } + return super.visitMethodDeclaration(md, ctx); + } - List closeVariables = new ArrayList<>(); + List openedMocks = new ArrayList<>(); + boolean isBeforeTest = isSetUpMethod(md); for (Statement statement : md.getBody().getStatements()) { - if (!(statement instanceof J.NewClass)) { + if (!isMockUpStatement(statement)) { continue; } J.NewClass newClass = (J.NewClass) statement; - if (newClass.getClazz() == null || newClass.getBody() == null || - !TypeUtils.isOfClassType(newClass.getClazz().getType(), "mockit.MockUp")) { - continue; - } // Only discard @Mock method declarations List otherStatements = newClass - .getBody() - .getStatements() - .stream() - .filter(s -> { - if (s instanceof J.MethodDeclaration) { - return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock")); - } - return true; - }) - .collect(toList()); + .getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); + } + return true; + }) + .collect(toList()); List bodyStatements = md.getBody().getStatements(); bodyStatements.addAll(bodyStatements.indexOf(statement), otherStatements); md = md.withBody(md.getBody().withStatements(bodyStatements)); @@ -223,71 +383,52 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl String className = TypeUtils.asFullyQualified(mockType).getClassName(); String mockName = className.replace(".", "_"); - Map mockedMethods = newClass.getBody() - .getStatements() - .stream() - .filter(s -> s instanceof J.MethodDeclaration) - .filter(s -> ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "mockit.Mock"))) - .map(s -> { - J.MethodDeclaration method = (J.MethodDeclaration) s; - Optional found = TypeUtils.findDeclaredMethod( - TypeUtils.asFullyQualified(mockType), - method.getSimpleName(), - method.getMethodType().getParameterTypes() - ); - if (found.isPresent()) { - JavaType.Method m = found.get(); - if (!m.getFlags().contains(Private)) { - return new AbstractMap.SimpleEntry<>(method, found.get()); - } - } - return null; - }) - .filter(Objects::nonNull) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); - - // Static + Map mockedMethods = getMockUpMethods(newClass); + + // Add MockStatic Map mockedPublicStaticMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .entrySet() + .stream() + .filter(m -> m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicStaticMethods.isEmpty()) { - String tpl = addMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods); - md = JavaTemplate.builder(tpl) - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) - .imports("org.mockito.MockedStatic") - .staticImports("org.mockito.Mockito.*") - .contextSensitive() - .build() - .apply(updateCursor(md), statement.getCoordinates().after()); - maybeAddImport("org.mockito.MockedStatic"); - closeVariables.add("mockStatic" + mockName); + md = JavaTemplate.builder( + addMockStaticMethods(isBeforeTest, (JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods) + ) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply(updateCursor(md), statement.getCoordinates().after()); + maybeAddImport(MOCKITO_STATIC_IMPORT); + openedMocks.add(MOCKITO_STATIC_PREFIX + mockName); } - // Instance + // Add MockConstruction Map mockedPublicMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> !m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .entrySet() + .stream() + .filter(m -> !m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicMethods.isEmpty()) { - String tpl = addMockInstanceMethods((JavaType.Class) mockType, className, mockName, mockedPublicMethods); - md = JavaTemplate.builder(tpl) - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) - .imports("org.mockito.MockedConstruction") - .staticImports("org.mockito.Mockito.*") - .contextSensitive() - .build() - .apply(updateCursor(md), statement.getCoordinates().after()); - maybeAddImport("org.mockito.MockedConstruction"); - closeVariables.add("mockObj" + mockName); + md = JavaTemplate.builder( + addMockInstanceMethods(isBeforeTest, (JavaType.Class) mockType, className, mockName, mockedPublicMethods) + ) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .doBeforeParseTemplate(System.out::println) + .imports(MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply(updateCursor(md), statement.getCoordinates().after()); + maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); + openedMocks.add(MOCKITO_CONSTRUCTION_PREFIX + mockName); } maybeAddImport("org.mockito.Mockito", "*", false); - maybeRemoveImport("mockit.Mock"); - maybeRemoveImport("mockit.MockUp"); + maybeRemoveImport(JMOCKIT_MOCK_IMPORT); + maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); // Remove MockUp statement bodyStatements = md.getBody().getStatements(); @@ -296,17 +437,19 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } // Add close statement at the end - for (String v : closeVariables) { - md = JavaTemplate.builder(v + ".close();") - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-5")) - .imports("org.mockito.MockedStatic", "org.mockito.MockedConstruction") - .staticImports("org.mockito.Mockito.*") - .contextSensitive() - .build() - .apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()); + if (!isBeforeTest) { + for (String v : openedMocks) { + md = JavaTemplate.builder(v + ".closeOnDemand();") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()); + } } - return maybeAutoFormat(methodDeclaration, md, ctx); + return super.visitMethodDeclaration(md, ctx); } } } diff --git a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java new file mode 100644 index 000000000..41402b7a0 --- /dev/null +++ b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java @@ -0,0 +1,75 @@ +package org.openrewrite.java.testing.mockito; + +import org.jspecify.annotations.Nullable; +import org.openrewrite.Cursor; +import org.openrewrite.ExecutionContext; +import org.openrewrite.java.AnnotationMatcher; +import org.openrewrite.java.JavaParser; +import org.openrewrite.java.JavaTemplate; +import org.openrewrite.java.JavaVisitor; +import org.openrewrite.java.tree.J; +import org.openrewrite.java.tree.Statement; + +import java.util.List; +import java.util.stream.Collectors; + +public class MockitoUtils { + public static J.ClassDeclaration maybeAddMethodWithAnnotation( + JavaVisitor visitor, + J.ClassDeclaration classDecl, + ExecutionContext ctx, + String methodName, + String methodAnnotationSignature, + String methodAnnotationToAdd, + String additionalClasspathResource, + String importToAdd, + String methodAnnotationParameters + ) { + if (hasMethodWithAnnotation(classDecl, new AnnotationMatcher(methodAnnotationSignature))) { + return classDecl; + } + + J.MethodDeclaration firstTestMethod = getFirstTestMethod( + classDecl.getBody().getStatements().stream().filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast).collect(Collectors.toList())); + + visitor.maybeAddImport(importToAdd); + return JavaTemplate.builder(methodAnnotationToAdd + methodAnnotationParameters + " public void " + methodName + "() {}") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, additionalClasspathResource)) + .imports(importToAdd) + .build() + .apply( + new Cursor(visitor.getCursor().getParentOrThrow(), classDecl), + (firstTestMethod != null) ? + firstTestMethod.getCoordinates().before() : + classDecl.getBody().getCoordinates().lastStatement() + ); + } + + private static boolean hasMethodWithAnnotation(J.ClassDeclaration classDecl, AnnotationMatcher annotationMatcher) { + for (Statement statement : classDecl.getBody().getStatements()) { + if (statement instanceof J.MethodDeclaration) { + J.MethodDeclaration methodDeclaration = (J.MethodDeclaration) statement; + List allAnnotations = methodDeclaration.getAllAnnotations(); + for (J.Annotation annotation : allAnnotations) { + if (annotationMatcher.matches(annotation)) { + return true; + } + } + } + } + return false; + } + + private static J.@Nullable MethodDeclaration getFirstTestMethod(List methods) { + for (J.MethodDeclaration methodDeclaration : methods) { + for (J.Annotation annotation : methodDeclaration.getLeadingAnnotations()) { + if ("Test".equals(annotation.getSimpleName())) { + return methodDeclaration; + } + } + } + return null; + } +} 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..07a9dca80 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java @@ -26,6 +26,8 @@ import java.util.*; import java.util.stream.Collectors; +import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; + public class PowerMockitoMockStaticToMockito extends Recipe { @Override @@ -36,17 +38,17 @@ public String getDisplayName() { @Override public String getDescription() { return "Replaces `PowerMockito.mockStatic()` by `Mockito.mockStatic()`. Removes " + - "the `@PrepareForTest` annotation."; + "the `@PrepareForTest` annotation."; } @Override public TreeVisitor getVisitor() { return Preconditions.check( - Preconditions.or( - new UsesType<>("org.powermock..*", false), - new UsesType<>("org.mockito..*", false) - ), - new PowerMockitoToMockitoVisitor() + Preconditions.or( + new UsesType<>("org.powermock..*", false), + new UsesType<>("org.mockito..*", false) + ), + new PowerMockitoToMockitoVisitor() ); } @@ -61,9 +63,9 @@ private static class PowerMockitoToMockitoVisitor extends JavaVisitor methods) { - for (J.MethodDeclaration methodDeclaration : methods) { - for (J.Annotation annotation : methodDeclaration.getLeadingAnnotations()) { - if ("Test".equals(annotation.getSimpleName())) { - return methodDeclaration; - } - } - } - return null; - } - - private static boolean hasMethodWithAnnotation(J.ClassDeclaration classDecl, AnnotationMatcher annotationMatcher) { - for (Statement statement : classDecl.getBody().getStatements()) { - if (statement instanceof J.MethodDeclaration) { - J.MethodDeclaration methodDeclaration = (J.MethodDeclaration) statement; - List allAnnotations = methodDeclaration.getAllAnnotations(); - for (J.Annotation annotation : allAnnotations) { - if (annotationMatcher.matches(annotation)) { - return true; - } - } - } - } - return false; - } - private static boolean isStaticMockAlreadyClosed(J.Identifier staticMock, J.Block methodBody) { for (Statement statement : methodBody.getStatements()) { if (statement instanceof J.MethodInvocation) { @@ -244,7 +220,7 @@ private static boolean isStaticMockAlreadyClosed(J.Identifier staticMock, J.Bloc if (MOCKED_STATIC_CLOSE_MATCHER.matches(methodInvocation)) { if (methodInvocation.getSelect() instanceof J.Identifier) { if (((J.Identifier) methodInvocation.getSelect()).getSimpleName() - .equals(staticMock.getSimpleName())) { + .equals(staticMock.getSimpleName())) { return true; } } @@ -261,7 +237,7 @@ private static boolean isStaticMockAlreadyOpened(J.Identifier staticMock, J.Bloc if (MOCKED_STATIC_MATCHER.matches(methodInvocation)) { if (methodInvocation.getSelect() instanceof J.Identifier) { if (((J.Identifier) methodInvocation.getSelect()).getSimpleName() - .equals(staticMock.getSimpleName())) { + .equals(staticMock.getSimpleName())) { return true; } } @@ -286,15 +262,15 @@ private J.MethodDeclaration moveMockStaticMethodToSetUp(J.MethodDeclaration m, E J.MethodInvocation methodInvocation = mockStaticInvocations.get(className); if (methodInvocation != null) { m = JavaTemplate.builder("mocked#{any(org.mockito.MockedStatic)} = #{any(org.mockito.Mockito)};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), m), - methodBody.getCoordinates().firstStatement(), - mockedTypesFieldEntry.getKey(), - methodInvocation - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), m), + methodBody.getCoordinates().firstStatement(), + mockedTypesFieldEntry.getKey(), + methodInvocation + ); } } } @@ -309,14 +285,14 @@ private J.MethodDeclaration addCloseStaticMocksOnDemandStatement(J.MethodDeclara continue; } m = JavaTemplate.builder("#{any(org.mockito.MockedStatic)}.closeOnDemand();") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), m), - methodBody.getCoordinates().lastStatement(), - mockedTypesField.getKey() - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), m), + methodBody.getCoordinates().lastStatement(), + mockedTypesField.getKey() + ); } return m; } @@ -326,14 +302,14 @@ private void determineTestGroups() { J.MethodDeclaration methodDeclarationCursor = getCursor().firstEnclosing(J.MethodDeclaration.class); if (methodDeclarationCursor != null) { Optional testAnnotation = methodDeclarationCursor - .getLeadingAnnotations().stream() - .filter(annotation -> annotation.getSimpleName().equals("Test")).findFirst(); + .getLeadingAnnotations().stream() + .filter(annotation -> annotation.getSimpleName().equals("Test")).findFirst(); testAnnotation.ifPresent( - ta -> { - if (ta.getArguments() != null) { - getCursor().putMessageOnFirstEnclosing(J.ClassDeclaration.class, TEST_GROUP, ta.getArguments()); - } - }); + ta -> { + if (ta.getArguments() != null) { + getCursor().putMessageOnFirstEnclosing(J.ClassDeclaration.class, TEST_GROUP, ta.getArguments()); + } + }); } } } @@ -352,15 +328,15 @@ private J.MethodInvocation modifyDynamicWhenMethodInvocation(J.MethodInvocation arguments.remove(0); String stringOfArguments = arguments.stream().map(Object::toString).collect(Collectors.joining(",")); method = JavaTemplate.builder("() -> #{}.#{}(#{})") - .contextSensitive() - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), method), - method.getCoordinates().replaceArguments(), - declaringClassName, - Objects.requireNonNull(calledMethod.getValue()).toString(), - stringOfArguments - ); + .contextSensitive() + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), method), + method.getCoordinates().replaceArguments(), + declaringClassName, + Objects.requireNonNull(calledMethod.getValue()).toString(), + stringOfArguments + ); method = method.withSelect(mockedField); } return method; @@ -437,17 +413,17 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration continue; } classDecl = JavaTemplate.builder("private MockedStatic<#{}> " + MOCK_PREFIX + "#{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) - .staticImports("org.mockito.Mockito.mockStatic") - .imports(MOCKED_STATIC) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), classDecl), - classDecl.getBody().getCoordinates().firstStatement(), - classlessTypeName, - classlessTypeName.replace(".", "_") - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) + .staticImports("org.mockito.Mockito.mockStatic") + .imports(MOCKED_STATIC) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), classDecl), + classDecl.getBody().getCoordinates().firstStatement(), + classlessTypeName, + classlessTypeName.replace(".", "_") + ); J.VariableDeclarations mockField = (J.VariableDeclarations) classDecl.getBody().getStatements().get(0); mockedTypesIdentifiers.put(mockField.getVariables().get(0).getName(), mockedStaticClass); @@ -455,7 +431,7 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration getCursor().putMessage(MOCKED_TYPES_FIELDS, mockedTypesIdentifiers); maybeAutoFormat(classDecl, classDecl.withPrefix(classDecl.getPrefix(). - withWhitespace("")), classDecl.getName(), ctx, getCursor()); + withWhitespace("")), classDecl.getName(), ctx, getCursor()); maybeAddImport(MOCKED_STATIC); maybeAddImport("org.mockito.Mockito", "mockStatic"); return classDecl; @@ -463,9 +439,9 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration private J.ClassDeclaration maybeAddSetUpMethodBody(J.ClassDeclaration classDecl, ExecutionContext ctx) { String testGroupsAsString = getTestGroupsAsString(); - return maybeAddMethodWithAnnotation(classDecl, ctx, "setUpStaticMocks", - setUpMethodAnnotationSignature, setUpMethodAnnotation, - additionalClasspathResource, setUpImportToAdd, testGroupsAsString); + return maybeAddMethodWithAnnotation(this, classDecl, ctx, "setUpStaticMocks", + setUpMethodAnnotationSignature, setUpMethodAnnotation, + additionalClasspathResource, setUpImportToAdd, testGroupsAsString); } private String getTestGroupsAsString() { @@ -473,55 +449,29 @@ private String getTestGroupsAsString() { String testGroupsAsString = ""; if (testGroups != null) { testGroupsAsString = "(" + - testGroups.stream().map(Object::toString).collect(Collectors.joining(",")) + - ")"; + testGroups.stream().map(Object::toString).collect(Collectors.joining(",")) + + ")"; } return testGroupsAsString; } private J.ClassDeclaration maybeAddTearDownMethodBody(J.ClassDeclaration classDecl, ExecutionContext ctx) { String testGroupsAsString = (getTestGroupsAsString().isEmpty()) ? tearDownMethodAnnotationParameters : getTestGroupsAsString(); - return maybeAddMethodWithAnnotation(classDecl, ctx, "tearDownStaticMocks", - tearDownMethodAnnotationSignature, - tearDownMethodAnnotation, - additionalClasspathResource, tearDownImportToAdd, testGroupsAsString); + return maybeAddMethodWithAnnotation(this, classDecl, ctx, "tearDownStaticMocks", + tearDownMethodAnnotationSignature, + tearDownMethodAnnotation, + additionalClasspathResource, tearDownImportToAdd, testGroupsAsString); } - private J.ClassDeclaration maybeAddMethodWithAnnotation(J.ClassDeclaration classDecl, ExecutionContext ctx, - String methodName, String methodAnnotationSignature, - String methodAnnotationToAdd, - String additionalClasspathResource, String importToAdd, - String methodAnnotationParameters) { - if (hasMethodWithAnnotation(classDecl, new AnnotationMatcher(methodAnnotationSignature))) { - return classDecl; - } - - J.MethodDeclaration firstTestMethod = getFirstTestMethod( - classDecl.getBody().getStatements().stream().filter(J.MethodDeclaration.class::isInstance) - .map(J.MethodDeclaration.class::cast).collect(Collectors.toList())); - - maybeAddImport(importToAdd); - return JavaTemplate.builder(methodAnnotationToAdd + methodAnnotationParameters + " void " + methodName + "() {}") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, additionalClasspathResource)) - .imports(importToAdd) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), classDecl), - (firstTestMethod != null) ? - firstTestMethod.getCoordinates().before() : - classDecl.getBody().getCoordinates().lastStatement() - ); - } private J.MethodInvocation modifyWhenMethodInvocation(J.MethodInvocation whenMethod) { List methodArguments = whenMethod.getArguments(); List staticMethodInvocationsInArguments = methodArguments.stream() - .filter(J.MethodInvocation.class::isInstance).map(J.MethodInvocation.class::cast) - .filter(methodInvocation -> !MOCKITO_STATIC_METHOD_MATCHER.matches(methodInvocation)) - .filter(methodInvocation -> methodInvocation.getMethodType() != null) - .filter(methodInvocation -> methodInvocation.getMethodType().hasFlags(Flag.Static)) - .collect(Collectors.toList()); + .filter(J.MethodInvocation.class::isInstance).map(J.MethodInvocation.class::cast) + .filter(methodInvocation -> !MOCKITO_STATIC_METHOD_MATCHER.matches(methodInvocation)) + .filter(methodInvocation -> methodInvocation.getMethodType() != null) + .filter(methodInvocation -> methodInvocation.getMethodType().hasFlags(Flag.Static)) + .collect(Collectors.toList()); if (staticMethodInvocationsInArguments.size() == 1) { J.MethodInvocation staticMI = staticMethodInvocationsInArguments.get(0); Expression lambdaInvocation; @@ -533,19 +483,19 @@ private J.MethodInvocation modifyWhenMethodInvocation(J.MethodInvocation whenMet return whenMethod; } if (staticMI.getArguments().stream().map(Expression::getType) - .noneMatch(Objects::nonNull)) { + .noneMatch(Objects::nonNull)) { // If the method invocation has no arguments lambdaInvocation = JavaTemplate.builder(declaringClassName + "::" + staticMI.getSimpleName()) - .contextSensitive() - .build() - .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace()); + .contextSensitive() + .build() + .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace()); } else { JavaType.Method methodType = staticMI.getMethodType(); if (methodType != null) { lambdaInvocation = JavaTemplate.builder("() -> #{any()}") - .contextSensitive() - .build() - .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace(), staticMI); + .contextSensitive() + .build() + .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace(), staticMI); } else { // do nothing lambdaInvocation = staticMI; @@ -570,18 +520,18 @@ private J.MethodInvocation modifyWhenMethodInvocation(J.MethodInvocation whenMet private J.@Nullable Identifier getFieldIdentifier(String fieldName) { return getMockedTypesFields().keySet().stream() - .filter(identifier -> identifier.getSimpleName().equals(fieldName)).findFirst() - .orElseGet(() -> { - J.ClassDeclaration cd = getCursor().dropParentUntil(J.ClassDeclaration.class::isInstance).getValue(); - return cd.getBody().getStatements().stream() - .filter(J.VariableDeclarations.class::isInstance) - .map(variableDeclarations -> ((J.VariableDeclarations) variableDeclarations).getVariables()) - .flatMap(Collection::stream) - .filter(namedVariable -> namedVariable.getSimpleName().equals(fieldName)) - .map(J.VariableDeclarations.NamedVariable::getName) - .findFirst() - .orElse(null); - }); + .filter(identifier -> identifier.getSimpleName().equals(fieldName)).findFirst() + .orElseGet(() -> { + J.ClassDeclaration cd = getCursor().dropParentUntil(J.ClassDeclaration.class::isInstance).getValue(); + return cd.getBody().getStatements().stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(variableDeclarations -> ((J.VariableDeclarations) variableDeclarations).getVariables()) + .flatMap(Collection::stream) + .filter(namedVariable -> namedVariable.getSimpleName().equals(fieldName)) + .map(J.VariableDeclarations.NamedVariable::getName) + .findFirst() + .orElse(null); + }); } } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 36c56daba..ae3f1a2f5 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -36,70 +36,70 @@ void mockUpStaticMethodTest() { //language=java rewriteRun( java( - """ - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - class MockUpTest { - void test() { - new MockUp() { - - @Mock - public int staticMethod() { - return 1024; - } - - @Mock - public int staticMethod(int v) { - return 128; - } - }; - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """, """ - import org.mockito.MockedStatic; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - class MockUpTest { - void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public static int staticMethod() { - return 0; - } - - public static int staticMethod(int v) { - return 1; - } - } - } - """)); + """ + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + class MockUpTest { + void test() { + new MockUp() { + + @Mock + public int staticMethod() { + return 1024; + } + + @Mock + public int staticMethod(int v) { + return 128; + } + }; + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """, """ + import org.mockito.MockedStatic; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + class MockUpTest { + void test() { + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); + mockStaticMockUpTest_MyClazz.closeOnDemand(); + } + + public static class MyClazz { + public static int staticMethod() { + return 0; + } + + public static int staticMethod(int v) { + return 1; + } + } + } + """)); } @Test @@ -107,72 +107,72 @@ void mockUpInstanceMethodTest() { //language=java rewriteRun( java( - """ - import org.junit.Test; - import mockit.Mock; - import mockit.MockUp; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - @Mock - public String getMsg() { - return "mockMsg"; - } - @Mock - public String getMsg(String echo) { - return "mockEchoMsg"; - } - }; - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """, """ - import org.junit.Test; - import org.mockito.MockedConstruction; - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return "mockMsg"; - }).when(mock).getMsg(); - doAnswer(invocation -> { - return "mockEchoMsg"; - }).when(mock).getMsg(nullable(String.class)); - }); - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } - } - """)); + """ + import org.junit.Test; + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + @Mock + public String getMsg() { + return "mockMsg"; + } + @Mock + public String getMsg(String echo) { + return "mockEchoMsg"; + } + }; + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """, """ + import org.junit.Test; + import org.mockito.MockedConstruction; + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + return "mockMsg"; + }).when(mock).getMsg(); + doAnswer(invocation -> { + return "mockEchoMsg"; + }).when(mock).getMsg(nullable(String.class)); + }); + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + mockObjMockUpTest_MyClazz.closeOnDemand(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + } + """)); } @Test @@ -180,76 +180,76 @@ void mockUpInnerStatementTest() { //language=java rewriteRun( java( - """ - import mockit.Mock; - import mockit.MockUp; - - import org.junit.Test; - import static org.junit.Assert.assertEquals; - - public class MockUpTest { - @Test - public void test() { - new MockUp() { - final String msg = "newMsg"; - - @Mock - public String getMsg() { - return msg; - } - }; - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """, """ - import org.junit.Test; - import org.mockito.MockedConstruction; - - import static org.junit.Assert.assertEquals; - import static org.mockito.Mockito.*; - - public class MockUpTest { - @Test - public void test() { - final String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return msg; - }).when(mock).getMsg(); - }); - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - mockObjMockUpTest_MyClazz.close(); - } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - } - } - """)); + """ + import mockit.Mock; + import mockit.MockUp; + + import org.junit.Test; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void test() { + new MockUp() { + final String msg = "newMsg"; + + @Mock + public String getMsg() { + return msg; + } + }; + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void test() { + final String msg = "newMsg"; + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + return msg; + }).when(mock).getMsg(); + }); + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + mockObjMockUpTest_MyClazz.closeOnDemand(); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """)); } @Test @@ -257,12 +257,12 @@ void mockUpVoidTest() { //language=java rewriteRun( java( - """ + """ import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; import org.junit.Test; - + public class MockUpTest { @Test public void test() { @@ -271,37 +271,37 @@ public void test() { public void changeMsg() { MockUpClass.Save.msg = "mockMsg"; } - + @Mock public void changeText(String text) { MockUpClass.Save.text = "mockText"; } }; - + assertEquals("mockMsg", new MockUpClass().getMsg()); assertEquals("mockText", new MockUpClass().getText()); } - + public static class MockUpClass { public static class Save { public static String msg = "msg"; public static String text = "text"; } - + public final String getMsg() { changeMsg(); return Save.msg; } - + public void changeMsg() { Save.msg = "newMsg"; } - + public String getText() { changeText("newText"); return Save.text; } - + public static void changeText(String text) { Save.text = text; } @@ -311,11 +311,11 @@ public static void changeText(String text) { """ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + import org.junit.Test; import org.mockito.MockedConstruction; import org.mockito.MockedStatic; - + public class MockUpTest { @Test public void test() { @@ -332,33 +332,33 @@ public void test() { MockUpClass.Save.text = "mockText"; return null; }); - + assertEquals("mockMsg", new MockUpClass().getMsg()); assertEquals("mockText", new MockUpClass().getText()); - mockStaticMockUpTest_MockUpClass.close(); - mockObjMockUpTest_MockUpClass.close(); + mockStaticMockUpTest_MockUpClass.closeOnDemand(); + mockObjMockUpTest_MockUpClass.closeOnDemand(); } - + public static class MockUpClass { public static class Save { public static String msg = "msg"; public static String text = "text"; } - + public final String getMsg() { changeMsg(); return Save.msg; } - + public void changeMsg() { Save.msg = "newMsg"; } - + public String getText() { changeText("newText"); return Save.text; } - + public static void changeText(String text) { Save.text = text; } @@ -366,4 +366,73 @@ public static void changeText(String text) { } """)); } + + @Test + public void mockUpAtSetUpWithoutTearDownTest() { + rewriteRun( + java( + """ + import org.junit.Before; + import org.junit.Test; + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Before + public void init() { + new MockUp() { + @Mock + public String getMsg() { + return "mockMsg"; + } + }; + } + + @Test + public void test() { + assertEquals("mockMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """, + """ + import org.junit.After; + import org.junit.Before; + import org.junit.Test; + import org.mockito.MockedConstruction; + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + private MockedConstruction mockObjMockUpTest_MyClazz; + @Before + public void init() { + } + + @After + public void tearDownMocks() { + mockObjMockUpTest_MyClazz.closeOnDemand(); + } + + @Test + public void test() { + assertEquals("mockMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """ + ) + ); + } } From ac8386374c43db056e785033d089148db9581947 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Mon, 23 Sep 2024 02:32:31 +0800 Subject: [PATCH 21/48] Add MockUp params support --- .../jmockit/JMockitMockUpToMockito.java | 35 +++++--- .../resources/META-INF/rewrite/jmockit.yml | 1 + .../jmockit/JMockitMockUpToMockitoTest.java | 80 ++++++++++++++++++- 3 files changed, 103 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 08c9103f4..71ec64188 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -22,6 +22,7 @@ import org.openrewrite.java.search.*; import org.openrewrite.java.tree.*; import org.openrewrite.marker.SearchResult; +import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; import java.util.*; import java.util.stream.Collectors; @@ -88,13 +89,31 @@ private String getMatcher(JavaType s) { return "nullable(" + TypeUtils.asFullyQualified(s).getClassName() + ".class)"; } - private void appendAnswer(StringBuilder sb, List statements) { + private void appendAnswer(StringBuilder sb, J.MethodDeclaration md) { + List parameters = md.getParameters(); + for (int i = 0; i < parameters.size(); i++) { + if (!(parameters.get(i) instanceof J.VariableDeclarations)) { + continue; + } + J.VariableDeclarations vd = (J.VariableDeclarations) parameters.get(i); + String className; + if (vd.getType() instanceof JavaType.Primitive) { + className = vd.getType().toString(); + } else { + className = vd.getTypeAsFullyQualified().getClassName(); + } + String varName = vd.getVariables().get(0).getName().getSimpleName(); + sb.append(className).append(" ").append(varName) + .append(" = (").append(className).append(") invocation.getArgument(").append(i).append(");"); + } + boolean hasReturn = false; - for (Statement s : statements) { + for (Statement s : md.getBody().getStatements()) { hasReturn = hasReturn || s instanceof J.Return; sb.append(s.print()); sb.append(";"); } + // Avoid syntax error if (!hasReturn) { sb.append("return null;"); } @@ -102,7 +121,7 @@ private void appendAnswer(StringBuilder sb, List statements) { private void appendDoAnswer(StringBuilder sb, J.MethodDeclaration m, String objName) { sb.append("doAnswer(invocation -> {"); - appendAnswer(sb, m.getBody().getStatements()); + appendAnswer(sb, m); sb.append("}).when(").append(objName).append(").").append(m.getSimpleName()).append("("); sb.append(m.getParameters() @@ -147,7 +166,7 @@ private String addMockStaticMethods(boolean isBeforeTest, JavaType.Class clazz, .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) .collect(Collectors.joining(", "))); tpl.append(")).thenAnswer(invocation -> {"); - appendAnswer(tpl, m.getBody().getStatements()); + appendAnswer(tpl, m); tpl.append("});"); } @@ -309,7 +328,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_CONSTRUCTION_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) - .doBeforeParseTemplate(System.out::println) .build() .apply( updateCursor(cd[0]), @@ -332,7 +350,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut } @Override - public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl, ExecutionContext ctx) { + J.MethodDeclaration md = methodDecl; if (md.getBody() == null) { return md; } @@ -343,7 +362,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) - .doBeforeParseTemplate(System.out::println) .build() .apply( updateCursor(md), @@ -417,7 +435,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut ) .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .doBeforeParseTemplate(System.out::println) .imports(MOCKITO_CONSTRUCTION_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) .build() @@ -449,7 +466,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut } } - return super.visitMethodDeclaration(md, ctx); + return maybeAutoFormat(methodDecl, md, ctx); } } } diff --git a/src/main/resources/META-INF/rewrite/jmockit.yml b/src/main/resources/META-INF/rewrite/jmockit.yml index d1ee335d7..b0f7f5112 100644 --- a/src/main/resources/META-INF/rewrite/jmockit.yml +++ b/src/main/resources/META-INF/rewrite/jmockit.yml @@ -25,6 +25,7 @@ recipeList: - org.openrewrite.java.testing.jmockit.JMockitBlockToMockito - org.openrewrite.java.testing.jmockit.JMockitMockUpToMockito - org.openrewrite.java.testing.jmockit.JMockitAnnotatedArgumentToMockito + - org.openrewrite.staticanalysis.RemoveUnusedLocalVariables - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: mockit.Mocked newFullyQualifiedTypeName: org.mockito.Mock diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index ae3f1a2f5..d12cbef7d 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -82,6 +82,7 @@ void test() { return 1024; }); mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + int v = (int) invocation.getArgument(0); return 128; }); assertEquals(1024, MyClazz.staticMethod()); @@ -154,6 +155,7 @@ public void test() { return "mockMsg"; }).when(mock).getMsg(); doAnswer(invocation -> { + String echo = (String) invocation.getArgument(0); return "mockEchoMsg"; }).when(mock).getMsg(nullable(String.class)); }); @@ -329,6 +331,7 @@ public void test() { }); MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class); mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { + String text = (String) invocation.getArgument(0); MockUpClass.Save.text = "mockText"; return null; }); @@ -408,23 +411,29 @@ public String getMsg() { import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + public class MockUpTest { private MockedConstruction mockObjMockUpTest_MyClazz; + @Before public void init() { + mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + return "mockMsg"; + }).when(mock).getMsg(); + }); } - + @After public void tearDownMocks() { mockObjMockUpTest_MyClazz.closeOnDemand(); } - + @Test public void test() { assertEquals("mockMsg", new MyClazz().getMsg()); } - + public static class MyClazz { public String getMsg() { return "msg"; @@ -435,4 +444,67 @@ public String getMsg() { ) ); } + + @Test + public void mockUpWithParamsTest() { + rewriteRun( + java( + """ + import mockit.Mock; + import mockit.MockUp; + import org.junit.Test; + + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Test + public void init() { + new MockUp() { + @Mock + public String getMsg(String foo, String bar, String unused) { + return foo + bar; + } + }; + assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); + } + + public static class MyClazz { + public String getMsg(String foo, String bar, String unused) { + return "msg"; + } + } + } + """, + """ + import org.junit.Test; + import org.mockito.MockedConstruction; + + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + @Test + public void init() { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + String foo = (String) invocation.getArgument(0); + String bar = (String) invocation.getArgument(1); + String unused = (String) invocation.getArgument(2); + return foo + bar; + }).when(mock).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); + }); + assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); + mockObjMockUpTest_MyClazz.closeOnDemand(); + } + + public static class MyClazz { + public String getMsg(String foo, String bar, String unused) { + return "msg"; + } + } + } + """ + ) + ); + } } From e41c20d5a8cac16bb804bdcb66c11714066151f2 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Mon, 23 Sep 2024 03:35:34 +0800 Subject: [PATCH 22/48] Remove useless --- .../jmockit/JMockitMockUpToMockito.java | 23 ++++++++----------- .../resources/META-INF/rewrite/jmockit.yml | 1 - .../jmockit/JMockitMockUpToMockitoTest.java | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 71ec64188..37953631a 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -227,19 +227,17 @@ private boolean isMockUpStatement(Tree tree) { } private boolean isSetUpMethod(J.MethodDeclaration md) { - return md.getLeadingAnnotations().stream() - .anyMatch(o -> - TypeUtils.isOfClassType(o.getType(), "org.junit.Before") || - TypeUtils.isOfClassType(o.getType(), "org.junit.jupiter.api.BeforeEach") - ); + return md + .getLeadingAnnotations() + .stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "org.junit.Before")); } private boolean isTearDownMethod(J.MethodDeclaration md) { - return md.getLeadingAnnotations().stream() - .anyMatch(o -> - TypeUtils.isOfClassType(o.getType(), "org.junit.After") || - TypeUtils.isOfClassType(o.getType(), "org.junit.jupiter.api.AfterEach") - ); + return md + .getLeadingAnnotations() + .stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "org.junit.After")); } private Map getMockUpMethods(J.NewClass newClass) { @@ -337,15 +335,13 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut } })); - cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDownMocks", + cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDown", "@org.junit.After", "@After", "junit-4.13", "org.junit.After", ""); - maybeAutoFormat(cd[0], cd[0].withPrefix(cd[0].getPrefix(). - withWhitespace("")), cd[0].getName(), ctx, getCursor()); return super.visitClassDeclaration(cd[0], ctx); } @@ -466,6 +462,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } } + doAfterVisit(new RemoveUnusedLocalVariables(new String[]{}).getVisitor()); return maybeAutoFormat(methodDecl, md, ctx); } } diff --git a/src/main/resources/META-INF/rewrite/jmockit.yml b/src/main/resources/META-INF/rewrite/jmockit.yml index b0f7f5112..d1ee335d7 100644 --- a/src/main/resources/META-INF/rewrite/jmockit.yml +++ b/src/main/resources/META-INF/rewrite/jmockit.yml @@ -25,7 +25,6 @@ recipeList: - org.openrewrite.java.testing.jmockit.JMockitBlockToMockito - org.openrewrite.java.testing.jmockit.JMockitMockUpToMockito - org.openrewrite.java.testing.jmockit.JMockitAnnotatedArgumentToMockito - - org.openrewrite.staticanalysis.RemoveUnusedLocalVariables - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: mockit.Mocked newFullyQualifiedTypeName: org.mockito.Mock diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index d12cbef7d..888ecd148 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -425,7 +425,7 @@ public void init() { } @After - public void tearDownMocks() { + public void tearDown() { mockObjMockUpTest_MyClazz.closeOnDemand(); } From 08f3f6073a722a30fa4a1beff1449d372f25d363 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Mon, 23 Sep 2024 18:16:11 +0800 Subject: [PATCH 23/48] Fix JavaTemplate type inference --- .../jmockit/JMockitMockUpToMockito.java | 123 ++++++--- .../jmockit/JMockitMockUpToMockitoTest.java | 234 +++++++++++++----- 2 files changed, 254 insertions(+), 103 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 37953631a..c282d9cbd 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,24 +15,40 @@ */ package org.openrewrite.java.testing.jmockit; -import org.openrewrite.*; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; +import org.openrewrite.Cursor; +import org.openrewrite.ExecutionContext; +import org.openrewrite.Preconditions; +import org.openrewrite.Recipe; +import org.openrewrite.Tree; +import org.openrewrite.TreeVisitor; import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; -import org.openrewrite.java.search.*; -import org.openrewrite.java.tree.*; -import org.openrewrite.marker.SearchResult; -import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; - -import java.util.*; -import java.util.stream.Collectors; - -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toMap; +import org.openrewrite.java.search.UsesType; import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; import static org.openrewrite.java.tree.Flag.Private; import static org.openrewrite.java.tree.Flag.Static; +import org.openrewrite.java.tree.J; +import org.openrewrite.java.tree.JavaType; +import org.openrewrite.java.tree.Statement; +import org.openrewrite.java.tree.TypeUtils; +import org.openrewrite.marker.SearchResult; +import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; + +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_CLASSPATH = "mockito-core-5"; @@ -60,7 +76,7 @@ public TreeVisitor getVisitor() { } private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { - private List tearDownMocks = new ArrayList<>(); + private final Map tearDownMocks = new HashMap<>(); private String getMatcher(JavaType s) { if (s instanceof JavaType.Primitive) { @@ -148,10 +164,12 @@ private String addMockStaticMethods(boolean isBeforeTest, JavaType.Class clazz, StringBuilder tpl = new StringBuilder(); // Handle mocked static mockedMethods - if (!isBeforeTest) { - tpl.append("MockedStatic<").append(className).append("> "); + if (isBeforeTest) { + tpl.append("#{any(").append(MOCKITO_STATIC_IMPORT).append(")}"); + } else { + tpl.append("MockedStatic ").append(MOCKITO_STATIC_PREFIX).append(mockName); } - tpl.append(MOCKITO_STATIC_PREFIX).append(mockName).append(" = mockStatic(").append(className).append(".class);"); + tpl.append(" = mockStatic(").append(className).append(".class);"); // To generate predictable method order List keys = mockedMethods.keySet().stream() @@ -189,12 +207,13 @@ private String addMockStaticMethods(boolean isBeforeTest, JavaType.Class clazz, private String addMockInstanceMethods(boolean isBeforeTest, JavaType.Class clazz, String className, String mockName, Map mockedMethods) { StringBuilder tpl = new StringBuilder(); - // Handle mocked static mockedMethods - if (!isBeforeTest) { - tpl.append("MockedConstruction<").append(className).append("> "); + // Handle mocked construction mockedMethods + if (isBeforeTest) { + tpl.append("#{any(").append(MOCKITO_CONSTRUCTION_IMPORT).append(")}"); + } else { + tpl.append("MockedConstruction ").append(MOCKITO_CONSTRUCTION_PREFIX).append(mockName); } - tpl.append(MOCKITO_CONSTRUCTION_PREFIX).append(mockName) - .append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); + tpl.append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); // To generate predictable method order List keys = mockedMethods.keySet().stream() @@ -305,7 +324,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut // Add mockStatic field if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedStatic<#{}> " + MOCKITO_STATIC_PREFIX + "#{};") + cd[0] = JavaTemplate.builder("private MockedStatic #{};") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_STATIC_IMPORT) @@ -314,14 +333,15 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .apply( new Cursor(getCursor().getParentOrThrow(), cd[0]), cd[0].getBody().getCoordinates().firstStatement(), - className, - mockName + MOCKITO_STATIC_PREFIX + mockName ); - tearDownMocks.add(MOCKITO_STATIC_PREFIX + mockName); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_STATIC_PREFIX + mockName, mockFieldId); } // Add mockConstruction field if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedConstruction<" + className + "> " + MOCKITO_CONSTRUCTION_PREFIX + mockName + ";") + cd[0] = JavaTemplate.builder("private MockedConstruction #{};") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_CONSTRUCTION_IMPORT) @@ -329,9 +349,12 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .build() .apply( updateCursor(cd[0]), - cd[0].getBody().getCoordinates().firstStatement() + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_CONSTRUCTION_PREFIX + mockName ); - tearDownMocks.add(MOCKITO_CONSTRUCTION_PREFIX + mockName); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + mockName, mockFieldId); } })); @@ -352,8 +375,9 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl return md; } if (isTearDownMethod(md)) { - for (String v : tearDownMocks) { - md = JavaTemplate.builder(v + ".closeOnDemand();") + for (J.Identifier id : tearDownMocks.values()) { + String type = TypeUtils.asFullyQualified(id.getFieldType().getType()).getFullyQualifiedName(); + md = JavaTemplate.builder("#{any(" + type + ")}.closeOnDemand();") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) @@ -361,10 +385,11 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .build() .apply( updateCursor(md), - md.getBody().getCoordinates().lastStatement() + md.getBody().getCoordinates().lastStatement(), + id ); } - return super.visitMethodDeclaration(md, ctx); + return md; } List openedMocks = new ArrayList<>(); @@ -406,15 +431,27 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .filter(m -> m.getValue().getFlags().contains(Static)) .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicStaticMethods.isEmpty()) { - md = JavaTemplate.builder( + JavaTemplate tpl = JavaTemplate.builder( addMockStaticMethods(isBeforeTest, (JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods) ) .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_STATIC_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply(updateCursor(md), statement.getCoordinates().after()); + .build(); + if (isBeforeTest) { + md = tpl.apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_STATIC_PREFIX + mockName) + ); + } else { + md = tpl.apply( + updateCursor(md), + statement.getCoordinates().after() + ); + } + maybeAddImport(MOCKITO_STATIC_IMPORT); openedMocks.add(MOCKITO_STATIC_PREFIX + mockName); } @@ -426,15 +463,27 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .filter(m -> !m.getValue().getFlags().contains(Static)) .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicMethods.isEmpty()) { - md = JavaTemplate.builder( + JavaTemplate tpl = JavaTemplate.builder( addMockInstanceMethods(isBeforeTest, (JavaType.Class) mockType, className, mockName, mockedPublicMethods) ) .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_CONSTRUCTION_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply(updateCursor(md), statement.getCoordinates().after()); + .build(); + if (isBeforeTest) { + md = tpl.apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + mockName) + ); + } else { + md = tpl.apply( + updateCursor(md), + statement.getCoordinates().after() + ); + } + maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); openedMocks.add(MOCKITO_CONSTRUCTION_PREFIX + mockName); } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 888ecd148..f5e66a08d 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -17,11 +17,10 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; -import org.openrewrite.test.RecipeSpec; -import org.openrewrite.test.RewriteTest; - import static org.openrewrite.java.Assertions.java; import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; +import org.openrewrite.test.RecipeSpec; +import org.openrewrite.test.RewriteTest; class JMockitMockUpToMockitoTest implements RewriteTest { @@ -40,16 +39,16 @@ void mockUpStaticMethodTest() { import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; - + class MockUpTest { void test() { new MockUp() { - + @Mock public int staticMethod() { return 1024; } - + @Mock public int staticMethod(int v) { return 128; @@ -58,12 +57,12 @@ public int staticMethod(int v) { assertEquals(1024, MyClazz.staticMethod()); assertEquals(128, MyClazz.staticMethod(0)); } - + public static class MyClazz { public static int staticMethod() { return 0; } - + public static int staticMethod(int v) { return 1; } @@ -71,13 +70,13 @@ public static int staticMethod(int v) { } """, """ import org.mockito.MockedStatic; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + class MockUpTest { void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { return 1024; }); @@ -89,12 +88,12 @@ void test() { assertEquals(128, MyClazz.staticMethod(0)); mockStaticMockUpTest_MyClazz.closeOnDemand(); } - + public static class MyClazz { public static int staticMethod() { return 0; } - + public static int staticMethod(int v) { return 1; } @@ -113,7 +112,7 @@ void mockUpInstanceMethodTest() { import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; - + public class MockUpTest { @Test public void test() { @@ -130,12 +129,12 @@ public String getMsg(String echo) { assertEquals("mockMsg", new MyClazz().getMsg()); assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); } - + public static class MyClazz { public String getMsg() { return "msg"; } - + public String getMsg(String echo) { return echo; } @@ -146,11 +145,11 @@ public String getMsg(String echo) { import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + public class MockUpTest { @Test public void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { doAnswer(invocation -> { return "mockMsg"; }).when(mock).getMsg(); @@ -163,12 +162,12 @@ public void test() { assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); mockObjMockUpTest_MyClazz.closeOnDemand(); } - + public static class MyClazz { public String getMsg() { return "msg"; } - + public String getMsg(String echo) { return echo; } @@ -185,22 +184,22 @@ void mockUpInnerStatementTest() { """ import mockit.Mock; import mockit.MockUp; - + import org.junit.Test; import static org.junit.Assert.assertEquals; - + public class MockUpTest { @Test public void test() { new MockUp() { final String msg = "newMsg"; - + @Mock public String getMsg() { return msg; } }; - + // Should ignore the newClass statement new Runnable() { @Override @@ -210,7 +209,7 @@ public void run() { }; assertEquals("newMsg", new MyClazz().getMsg()); } - + public static class MyClazz { public String getMsg() { return "msg"; @@ -220,20 +219,20 @@ public String getMsg() { """, """ import org.junit.Test; import org.mockito.MockedConstruction; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + public class MockUpTest { @Test public void test() { final String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { doAnswer(invocation -> { return msg; }).when(mock).getMsg(); }); - + // Should ignore the newClass statement new Runnable() { @Override @@ -244,7 +243,7 @@ public void run() { assertEquals("newMsg", new MyClazz().getMsg()); mockObjMockUpTest_MyClazz.closeOnDemand(); } - + public static class MyClazz { public String getMsg() { return "msg"; @@ -264,7 +263,7 @@ void mockUpVoidTest() { import mockit.MockUp; import static org.junit.Assert.assertEquals; import org.junit.Test; - + public class MockUpTest { @Test public void test() { @@ -273,37 +272,37 @@ public void test() { public void changeMsg() { MockUpClass.Save.msg = "mockMsg"; } - + @Mock public void changeText(String text) { MockUpClass.Save.text = "mockText"; } }; - + assertEquals("mockMsg", new MockUpClass().getMsg()); assertEquals("mockText", new MockUpClass().getText()); } - + public static class MockUpClass { public static class Save { public static String msg = "msg"; public static String text = "text"; } - + public final String getMsg() { changeMsg(); return Save.msg; } - + public void changeMsg() { Save.msg = "newMsg"; } - + public String getText() { changeText("newText"); return Save.text; } - + public static void changeText(String text) { Save.text = text; } @@ -313,15 +312,15 @@ public static void changeText(String text) { """ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + import org.junit.Test; import org.mockito.MockedConstruction; import org.mockito.MockedStatic; - + public class MockUpTest { @Test public void test() { - MockedConstruction mockObjMockUpTest_MockUpClass = mockConstruction(MockUpTest.MockUpClass.class, (mock, context) -> { + MockedConstruction mockObjMockUpTest_MockUpClass = mockConstruction(MockUpTest.MockUpClass.class, (mock, context) -> { doAnswer(invocation -> { MockUpClass.Save.msg = "mockMsg"; return null; @@ -329,39 +328,39 @@ public void test() { when(mock.getText()).thenCallRealMethod(); when(mock.getMsg()).thenCallRealMethod(); }); - MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class); + MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class); mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { String text = (String) invocation.getArgument(0); MockUpClass.Save.text = "mockText"; return null; }); - + assertEquals("mockMsg", new MockUpClass().getMsg()); assertEquals("mockText", new MockUpClass().getText()); mockStaticMockUpTest_MockUpClass.closeOnDemand(); mockObjMockUpTest_MockUpClass.closeOnDemand(); } - + public static class MockUpClass { public static class Save { public static String msg = "msg"; public static String text = "text"; } - + public final String getMsg() { changeMsg(); return Save.msg; } - + public void changeMsg() { Save.msg = "newMsg"; } - + public String getText() { changeText("newText"); return Save.text; } - + public static void changeText(String text) { Save.text = text; } @@ -380,10 +379,10 @@ public void mockUpAtSetUpWithoutTearDownTest() { import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; - + public class MockUpTest { @Before - public void init() { + public void setUp() { new MockUp() { @Mock public String getMsg() { @@ -391,12 +390,12 @@ public String getMsg() { } }; } - + @Test public void test() { assertEquals("mockMsg", new MyClazz().getMsg()); } - + public static class MyClazz { public String getMsg() { return "msg"; @@ -411,33 +410,135 @@ public String getMsg() { import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + public class MockUpTest { - private MockedConstruction mockObjMockUpTest_MyClazz; - + private MockedConstruction mockObjMockUpTest_MyClazz; + @Before - public void init() { + public void setUp() { + mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + doAnswer(invocation -> { + return "mockMsg"; + }).when(mock).getMsg(); + }); + } + + @After + public void tearDown() { + mockObjMockUpTest_MyClazz.closeOnDemand(); + } + + @Test + public void test() { + assertEquals("mockMsg", new MyClazz().getMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + } + } + """ + ) + ); + } + + @Test + public void mockUpAtSetUpWithTearDownTest() { + rewriteRun( + java( + """ + import org.junit.Before; + import org.junit.After; + import org.junit.Test; + import mockit.Mock; + import mockit.MockUp; + import static org.junit.Assert.assertEquals; + + public class MockUpTest { + @Before + public void setUp() { + new MockUp() { + @Mock + public String getMsg() { + return "mockMsg"; + } + + @Mock + public String getStaticMsg() { + return "mockStaticMsg"; + } + }; + } + + @After + public void tearDown() { + } + + @Test + public void test() { + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockStaticMsg", MyClazz.getStaticMsg()); + } + + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public static String getStaticMsg() { + return "staticMsg"; + } + } + } + """, + """ + import org.junit.Before; + import org.junit.After; + import org.junit.Test; + import org.mockito.MockedConstruction; + import org.mockito.MockedStatic; + import static org.junit.Assert.assertEquals; + import static org.mockito.Mockito.*; + + public class MockUpTest { + private MockedConstruction mockObjMockUpTest_MyClazz; + private MockedStatic mockStaticMockUpTest_MyClazz; + + @Before + public void setUp() { mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { doAnswer(invocation -> { return "mockMsg"; }).when(mock).getMsg(); }); + mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.getStaticMsg()).thenAnswer(invocation -> { + return "mockStaticMsg"; + }); } - + @After public void tearDown() { mockObjMockUpTest_MyClazz.closeOnDemand(); + mockStaticMockUpTest_MyClazz.closeOnDemand(); } - + @Test public void test() { assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockStaticMsg", MyClazz.getStaticMsg()); } - + public static class MyClazz { public String getMsg() { return "msg"; } + + public static String getStaticMsg() { + return "staticMsg"; + } } } """ @@ -445,6 +546,7 @@ public String getMsg() { ); } + @Test public void mockUpWithParamsTest() { rewriteRun( @@ -453,9 +555,9 @@ public void mockUpWithParamsTest() { import mockit.Mock; import mockit.MockUp; import org.junit.Test; - + import static org.junit.Assert.assertEquals; - + public class MockUpTest { @Test public void init() { @@ -467,7 +569,7 @@ public String getMsg(String foo, String bar, String unused) { }; assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); } - + public static class MyClazz { public String getMsg(String foo, String bar, String unused) { return "msg"; @@ -478,14 +580,14 @@ public String getMsg(String foo, String bar, String unused) { """ import org.junit.Test; import org.mockito.MockedConstruction; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + public class MockUpTest { @Test public void init() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { + MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { doAnswer(invocation -> { String foo = (String) invocation.getArgument(0); String bar = (String) invocation.getArgument(1); @@ -496,7 +598,7 @@ public void init() { assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); mockObjMockUpTest_MyClazz.closeOnDemand(); } - + public static class MyClazz { public String getMsg(String foo, String bar, String unused) { return "msg"; From 8992a879e74fa555d898b8f00d0028a1cbacd63f Mon Sep 17 00:00:00 2001 From: SiBorea Date: Tue, 24 Sep 2024 12:02:51 +0800 Subject: [PATCH 24/48] Remove unused local variables --- .../jmockit/JMockitMockUpToMockito.java | 29 +++++++++++++++++-- .../jmockit/JMockitMockUpToMockitoTest.java | 3 -- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index c282d9cbd..632d9299b 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -17,6 +17,7 @@ import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toMap; +import lombok.SneakyThrows; import org.openrewrite.Cursor; import org.openrewrite.ExecutionContext; import org.openrewrite.Preconditions; @@ -32,12 +33,14 @@ import static org.openrewrite.java.tree.Flag.Private; import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.J; +import org.openrewrite.java.tree.JavaSourceFile; import org.openrewrite.java.tree.JavaType; import org.openrewrite.java.tree.Statement; import org.openrewrite.java.tree.TypeUtils; import org.openrewrite.marker.SearchResult; import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; +import java.lang.reflect.Method; import java.util.AbstractMap; import java.util.ArrayList; import java.util.Comparator; @@ -105,7 +108,26 @@ private String getMatcher(JavaType s) { return "nullable(" + TypeUtils.asFullyQualified(s).getClassName() + ".class)"; } + @SneakyThrows private void appendAnswer(StringBuilder sb, J.MethodDeclaration md) { + Method findRefs = RemoveUnusedLocalVariables.class + .getDeclaredClasses()[0] + .getDeclaredMethod("findRhsReferences", J.class, J.Identifier.class); + findRefs.setAccessible(true); + + Set usedVariables = new HashSet<>(); + (new JavaIsoVisitor>() { + @SneakyThrows + public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations.NamedVariable variable, Set ctx) { + Cursor scope = getCursor().dropParentUntil((is) -> is instanceof J.ClassDeclaration || is instanceof J.Block || is instanceof J.MethodDeclaration || is instanceof J.ForLoop || is instanceof J.ForEachLoop || is instanceof J.ForLoop.Control || is instanceof J.ForEachLoop.Control || is instanceof J.Case || is instanceof J.Try || is instanceof J.Try.Resource || is instanceof J.Try.Catch || is instanceof J.MultiCatch || is instanceof J.Lambda || is instanceof JavaSourceFile); + List refs = (List) findRefs.invoke(null, scope.getValue(), variable.getName()); + if (!refs.isEmpty()) { + ctx.add(variable.getSimpleName()); + } + return super.visitVariable(variable, ctx); + } + }).visit(md, usedVariables); + List parameters = md.getParameters(); for (int i = 0; i < parameters.size(); i++) { if (!(parameters.get(i) instanceof J.VariableDeclarations)) { @@ -119,8 +141,10 @@ private void appendAnswer(StringBuilder sb, J.MethodDeclaration md) { className = vd.getTypeAsFullyQualified().getClassName(); } String varName = vd.getVariables().get(0).getName().getSimpleName(); - sb.append(className).append(" ").append(varName) - .append(" = (").append(className).append(") invocation.getArgument(").append(i).append(");"); + if (usedVariables.contains(varName)) { + sb.append(className).append(" ").append(varName) + .append(" = (").append(className).append(") invocation.getArgument(").append(i).append(");"); + } } boolean hasReturn = false; @@ -511,7 +535,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } } - doAfterVisit(new RemoveUnusedLocalVariables(new String[]{}).getVisitor()); return maybeAutoFormat(methodDecl, md, ctx); } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index f5e66a08d..53eb386dd 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -81,7 +81,6 @@ void test() { return 1024; }); mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - int v = (int) invocation.getArgument(0); return 128; }); assertEquals(1024, MyClazz.staticMethod()); @@ -154,7 +153,6 @@ public void test() { return "mockMsg"; }).when(mock).getMsg(); doAnswer(invocation -> { - String echo = (String) invocation.getArgument(0); return "mockEchoMsg"; }).when(mock).getMsg(nullable(String.class)); }); @@ -591,7 +589,6 @@ public void init() { doAnswer(invocation -> { String foo = (String) invocation.getArgument(0); String bar = (String) invocation.getArgument(1); - String unused = (String) invocation.getArgument(2); return foo + bar; }).when(mock).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); }); From dce23c8ac5e016479053bcf5bb7948cae668f2f8 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Tue, 24 Sep 2024 23:58:19 +0800 Subject: [PATCH 25/48] MockUp to try-with-resource --- .../jmockit/JMockitMockUpToMockito.java | 292 +++++++++--------- .../jmockit/JMockitMockUpToMockitoTest.java | 179 ++++++----- 2 files changed, 245 insertions(+), 226 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 632d9299b..5df1685df 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -27,6 +27,7 @@ import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; +import org.openrewrite.java.search.FindMissingTypes; import org.openrewrite.java.search.UsesType; import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; @@ -43,6 +44,7 @@ import java.lang.reflect.Method; import java.util.AbstractMap; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -56,11 +58,14 @@ public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_CLASSPATH = "mockito-core-5"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; + private static final String MOCKITO_MATCHER_IMPORT = "org.mockito.ArgumentMatchers.*"; + private static final String MOCKITO_DELEGATEANSWER_IMPORT = "org.mockito.AdditionalAnswers.delegatesTo"; private static final String JMOCKIT_MOCKUP_IMPORT = "mockit.MockUp"; private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; private static final String MOCKITO_STATIC_PREFIX = "mockStatic"; private static final String MOCKITO_STATIC_IMPORT = "org.mockito.MockedStatic"; - private static final String MOCKITO_CONSTRUCTION_PREFIX = "mockObj"; + private static final String MOCKITO_MOCK_PREFIX = "mockObj"; + private static final String MOCKITO_CONSTRUCTION_PREFIX = "mockCons"; private static final String MOCKITO_CONSTRUCTION_IMPORT = "org.mockito.MockedConstruction"; @Override @@ -82,6 +87,7 @@ private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor tearDownMocks = new HashMap<>(); private String getMatcher(JavaType s) { + maybeAddImport(MOCKITO_MATCHER_IMPORT.replace(".*", ""), "*", false); if (s instanceof JavaType.Primitive) { switch (s.toString()) { case "int": @@ -109,7 +115,7 @@ private String getMatcher(JavaType s) { } @SneakyThrows - private void appendAnswer(StringBuilder sb, J.MethodDeclaration md) { + private String getAnswerBody(J.MethodDeclaration md) { Method findRefs = RemoveUnusedLocalVariables.class .getDeclaredClasses()[0] .getDeclaredMethod("findRhsReferences", J.class, J.Identifier.class); @@ -128,6 +134,7 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations } }).visit(md, usedVariables); + StringBuilder sb = new StringBuilder(); List parameters = md.getParameters(); for (int i = 0; i < parameters.size(); i++) { if (!(parameters.get(i) instanceof J.VariableDeclarations)) { @@ -150,66 +157,55 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations boolean hasReturn = false; for (Statement s : md.getBody().getStatements()) { hasReturn = hasReturn || s instanceof J.Return; - sb.append(s.print()); - sb.append(";"); + sb.append(s.print()).append(";"); } // Avoid syntax error if (!hasReturn) { sb.append("return null;"); } + return sb.toString(); } - private void appendDoAnswer(StringBuilder sb, J.MethodDeclaration m, String objName) { - sb.append("doAnswer(invocation -> {"); - appendAnswer(sb, m); - sb.append("}).when(").append(objName).append(").").append(m.getSimpleName()).append("("); + private String getCallRealMethod(JavaType.Method m) { + return "(" + + m.getParameterTypes() + .stream() + .map(this::getMatcher) + .collect(Collectors.joining(", ")) + + ")).thenCallRealMethod();"; + } - sb.append(m.getParameters() - .stream() - .filter(J.VariableDeclarations.class::isInstance) - .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) - .collect(Collectors.joining(", "))); - sb.append(");"); + private String getMockStaticDeclarationInBefore(String className) { + return "#{any(" + MOCKITO_STATIC_IMPORT + ")}" + + " = mockStatic(" + className + ".class);"; } - private void appendCallRealMethod(StringBuilder sb, JavaType.Method m) { - sb.append("("); - for (int i = 0; i < m.getParameterTypes().size(); i++) { - JavaType s = m.getParameterTypes().get(i); - sb.append(getMatcher(s)); - if (i < m.getParameterTypes().size() - 1) { - sb.append(", "); - } - } - sb.append(")).thenCallRealMethod();"); + private String getMockStaticDeclarationInTry(String className, String mockName) { + return "MockedStatic " + MOCKITO_STATIC_PREFIX + mockName + + " = mockStatic(" + className + ".class)"; } - private String addMockStaticMethods(boolean isBeforeTest, JavaType.Class clazz, String className, String mockName, Map mockedMethods) { + private String getMockStaticMethods(JavaType.Class clazz, String className, String mockName, Map mockedMethods) { StringBuilder tpl = new StringBuilder(); - // Handle mocked static mockedMethods - if (isBeforeTest) { - tpl.append("#{any(").append(MOCKITO_STATIC_IMPORT).append(")}"); - } else { - tpl.append("MockedStatic ").append(MOCKITO_STATIC_PREFIX).append(mockName); - } - tpl.append(" = mockStatic(").append(className).append(".class);"); - // To generate predictable method order List keys = mockedMethods.keySet().stream() .sorted(Comparator.comparing((J.MethodDeclaration::print))) .collect(toList()); for (J.MethodDeclaration m : keys) { - tpl.append("mockStatic").append(mockName); - tpl.append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("("); - tpl.append(m.getParameters() - .stream() - .filter(J.VariableDeclarations.class::isInstance) - .map(o -> getMatcher(((J.VariableDeclarations) o).getType())) - .collect(Collectors.joining(", "))); - tpl.append(")).thenAnswer(invocation -> {"); - appendAnswer(tpl, m); - tpl.append("});"); + tpl.append("mockStatic").append(mockName) + .append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("(") + .append(m.getParameters() + .stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(J.VariableDeclarations.class::cast) + .map(J.VariableDeclarations::getType) + .map(this::getMatcher) + .collect(Collectors.joining(", ")) + ) + .append(")).thenAnswer(invocation -> {") + .append(getAnswerBody(m)) + .append("});"); } // Call real method for non private, static methods @@ -219,47 +215,49 @@ private String addMockStaticMethods(boolean isBeforeTest, JavaType.Class clazz, .filter(m -> !m.getFlags().contains(Private)) .filter(m -> m.getFlags().contains(Static)) .filter(m -> !mockedMethods.containsValue(m)) - .forEach(m -> { - tpl.append("mockStatic").append(mockName).append(".when(() -> ") - .append(className).append(".").append(m.getName()); - appendCallRealMethod(tpl, m); - tpl.append(");"); - }); + .forEach(m -> tpl.append("mockStatic").append(mockName).append(".when(() -> ") + .append(className).append(".").append(m.getName()) + .append(getCallRealMethod(m)) + .append(");") + ); return tpl.toString(); } - private String addMockInstanceMethods(boolean isBeforeTest, JavaType.Class clazz, String className, String mockName, Map mockedMethods) { - StringBuilder tpl = new StringBuilder(); - // Handle mocked construction mockedMethods - if (isBeforeTest) { - tpl.append("#{any(").append(MOCKITO_CONSTRUCTION_IMPORT).append(")}"); - } else { - tpl.append("MockedConstruction ").append(MOCKITO_CONSTRUCTION_PREFIX).append(mockName); - } - tpl.append(" = mockConstruction(").append(className).append(".class, (mock, context) -> {"); + private String getMockConstructionDeclarationInBefore(String className, String mockName) { + return "#{any(" + MOCKITO_CONSTRUCTION_IMPORT + ")}" + + " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + mockName + "));"; + } - // To generate predictable method order - List keys = mockedMethods.keySet().stream() - .sorted(Comparator.comparing((J.MethodDeclaration::print))) - .collect(toList()); - for (J.MethodDeclaration m : keys) { - appendDoAnswer(tpl, m, "mock"); - } + private String getMockConstructionDeclarationInTry(String className, String mockName) { + return "MockedConstruction " + MOCKITO_CONSTRUCTION_PREFIX + mockName + + " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + mockName + "))"; + } - // Call real method for non private, non static methods - clazz.getMethods() + private String getMockConstructionMethods(String className, String mockName, Map mockedMethods) { + StringBuilder tpl = new StringBuilder() + .append(className) + .append(" ") + .append(MOCKITO_MOCK_PREFIX).append(mockName) + .append(" = mock(").append(className).append(".class, withSettings().defaultAnswer(CALLS_REAL_METHODS));"); + + mockedMethods + .keySet() .stream() - .filter(m -> !m.isConstructor()) - .filter(m -> !m.getFlags().contains(Static)) - .filter(m -> !m.getFlags().contains(Private)) - .filter(m -> !mockedMethods.containsValue(m)) - .forEach(m -> { - tpl.append("when(mock.").append(m.getName()); - appendCallRealMethod(tpl, m); - }); + .sorted(Comparator.comparing((J.MethodDeclaration::print))) + .forEach(m -> tpl.append("doAnswer(invocation -> {") + .append(getAnswerBody(m)) + .append("}).when(").append(MOCKITO_MOCK_PREFIX).append(mockName).append(").").append(m.getSimpleName()).append("(") + .append(m.getParameters() + .stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(J.VariableDeclarations.class::cast) + .map(J.VariableDeclarations::getType) + .map(this::getMatcher) + .collect(Collectors.joining(", ")) + ) + .append(");")); - tpl.append("});"); return tpl.toString(); } @@ -416,17 +414,22 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl return md; } - List openedMocks = new ArrayList<>(); boolean isBeforeTest = isSetUpMethod(md); + List varDeclarationInTry = new ArrayList<>(); + List mockStaticMethodInTry = new ArrayList<>(); + List mockConstructionMethodInTry = new ArrayList<>(); + List encloseStatements = new ArrayList<>(); + List residualStatements = new ArrayList<>(); for (Statement statement : md.getBody().getStatements()) { if (!isMockUpStatement(statement)) { + encloseStatements.add(statement); continue; } J.NewClass newClass = (J.NewClass) statement; // Only discard @Mock method declarations - List otherStatements = newClass + residualStatements.addAll(newClass .getBody() .getStatements() .stream() @@ -437,10 +440,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } return true; }) - .collect(toList()); - List bodyStatements = md.getBody().getStatements(); - bodyStatements.addAll(bodyStatements.indexOf(statement), otherStatements); - md = md.withBody(md.getBody().withStatements(bodyStatements)); + .collect(toList()) + ); JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); String className = TypeUtils.asFullyQualified(mockType).getClassName(); @@ -455,29 +456,25 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .filter(m -> m.getValue().getFlags().contains(Static)) .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicStaticMethods.isEmpty()) { - JavaTemplate tpl = JavaTemplate.builder( - addMockStaticMethods(isBeforeTest, (JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods) - ) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build(); if (isBeforeTest) { - md = tpl.apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_STATIC_PREFIX + mockName) - ); + String tpl = getMockStaticDeclarationInBefore(className) + + getMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods); + + md = JavaTemplate.builder(tpl) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_STATIC_PREFIX + mockName) + ); } else { - md = tpl.apply( - updateCursor(md), - statement.getCoordinates().after() - ); + varDeclarationInTry.add(getMockStaticDeclarationInTry(className, mockName)); + mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods)); } - - maybeAddImport(MOCKITO_STATIC_IMPORT); - openedMocks.add(MOCKITO_STATIC_PREFIX + mockName); } // Add MockConstruction @@ -487,54 +484,67 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .filter(m -> !m.getValue().getFlags().contains(Static)) .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicMethods.isEmpty()) { - JavaTemplate tpl = JavaTemplate.builder( - addMockInstanceMethods(isBeforeTest, (JavaType.Class) mockType, className, mockName, mockedPublicMethods) - ) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build(); if (isBeforeTest) { - md = tpl.apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + mockName) - ); + String tpl = getMockConstructionMethods(className, mockName, mockedPublicMethods) + + getMockConstructionDeclarationInBefore(className, mockName); + + md = JavaTemplate.builder(tpl) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + mockName) + ); } else { - md = tpl.apply( - updateCursor(md), - statement.getCoordinates().after() - ); + varDeclarationInTry.add(getMockConstructionDeclarationInTry(className, mockName)); + mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockName, mockedPublicMethods)); } - - maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); - openedMocks.add(MOCKITO_CONSTRUCTION_PREFIX + mockName); } - maybeAddImport("org.mockito.Mockito", "*", false); - maybeRemoveImport(JMOCKIT_MOCK_IMPORT); - maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); - - // Remove MockUp statement - bodyStatements = md.getBody().getStatements(); - bodyStatements.remove(statement); - md = md.withBody(md.getBody().withStatements(bodyStatements)); + List statements = md.getBody().getStatements(); + statements.remove(statement); + md = md.withBody(md.getBody().withStatements(statements)); } - // Add close statement at the end - if (!isBeforeTest) { - for (String v : openedMocks) { - md = JavaTemplate.builder(v + ".closeOnDemand();") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply(updateCursor(md), md.getBody().getCoordinates().lastStatement()); - } + if (!varDeclarationInTry.isEmpty()) { + String tpl = String.join(";", mockConstructionMethodInTry) + + "try (" + + String.join(";", varDeclarationInTry) + + ") {" + + String.join(";", mockStaticMethodInTry) + + "}"; + + J.MethodDeclaration residualMd = md.withBody(md.getBody().withStatements(residualStatements)); + residualMd = JavaTemplate.builder(tpl) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); + + List mdStatements = residualMd.getBody().getStatements(); + J.Try try_ = (J.Try) mdStatements.get(mdStatements.size() - 1); + + List tryStatements = try_.getBody().getStatements(); + tryStatements.addAll(encloseStatements); + try_ = try_.withBody(try_.getBody().withStatements(tryStatements)); + + mdStatements.set(mdStatements.size() - 1, try_); + md = md.withBody(residualMd.getBody().withStatements(mdStatements)); } + maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); + maybeAddImport(MOCKITO_STATIC_IMPORT); + maybeAddImport("org.mockito.Answers", "CALLS_REAL_METHODS"); + maybeAddImport("org.mockito.AdditionalAnswers", "delegatesTo"); + maybeAddImport(MOCKITO_ALL_IMPORT.replace(".*", ""), "*", false); + maybeRemoveImport(JMOCKIT_MOCK_IMPORT); + maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); return maybeAutoFormat(methodDecl, md, ctx); } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 53eb386dd..0f9aa2b80 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -39,9 +39,11 @@ void mockUpStaticMethodTest() { import mockit.Mock; import mockit.MockUp; import static org.junit.Assert.assertEquals; + import org.junit.Test; - class MockUpTest { - void test() { + public class MockUpTest { + @Test + public void test() { new MockUp() { @Mock @@ -54,8 +56,8 @@ public int staticMethod(int v) { return 128; } }; - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); + assertEquals(1024, MockUpTest.MyClazz.staticMethod()); + assertEquals(128, MockUpTest.MyClazz.staticMethod(0)); } public static class MyClazz { @@ -69,23 +71,26 @@ public static int staticMethod(int v) { } } """, """ - import org.mockito.MockedStatic; - import static org.junit.Assert.assertEquals; + import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; - class MockUpTest { - void test() { - MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); - assertEquals(1024, MyClazz.staticMethod()); - assertEquals(128, MyClazz.staticMethod(0)); - mockStaticMockUpTest_MyClazz.closeOnDemand(); + import org.junit.Test; + import org.mockito.MockedStatic; + + public class MockUpTest { + @Test + public void test() { + try (MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class)) { + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + return 1024; + }); + mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + return 128; + }); + assertEquals(1024, MockUpTest.MyClazz.staticMethod()); + assertEquals(128, MockUpTest.MyClazz.staticMethod(0)); + } } public static class MyClazz { @@ -143,22 +148,24 @@ public String getMsg(String echo) { import org.junit.Test; import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; + import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; public class MockUpTest { @Test public void test() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return "mockMsg"; - }).when(mock).getMsg(); - doAnswer(invocation -> { - return "mockEchoMsg"; - }).when(mock).getMsg(nullable(String.class)); - }); - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); - mockObjMockUpTest_MyClazz.closeOnDemand(); + MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + return "mockMsg"; + }).when(mockObjMockUpTest_MyClazz).getMsg(); + doAnswer(invocation -> { + return "mockEchoMsg"; + }).when(mockObjMockUpTest_MyClazz).getMsg(nullable(String.class)); + try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { + assertEquals("mockMsg", new MyClazz().getMsg()); + assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + } } public static class MyClazz { @@ -219,27 +226,28 @@ public String getMsg() { import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; + import static org.mockito.AdditionalAnswers.delegatesTo; import static org.mockito.Mockito.*; public class MockUpTest { @Test public void test() { final String msg = "newMsg"; - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return msg; - }).when(mock).getMsg(); - }); - - // Should ignore the newClass statement - new Runnable() { - @Override - public void run() { - System.out.println("run"); - } - }; - assertEquals("newMsg", new MyClazz().getMsg()); - mockObjMockUpTest_MyClazz.closeOnDemand(); + MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + return msg; + }).when(mockObjMockUpTest_MyClazz).getMsg(); + try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { + + // Should ignore the newClass statement + new Runnable() { + @Override + public void run() { + System.out.println("run"); + } + }; + assertEquals("newMsg", new MyClazz().getMsg()); + } } public static class MyClazz { @@ -309,6 +317,8 @@ public static void changeText(String text) { """, """ import static org.junit.Assert.assertEquals; + import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import org.junit.Test; @@ -318,25 +328,21 @@ public static void changeText(String text) { public class MockUpTest { @Test public void test() { - MockedConstruction mockObjMockUpTest_MockUpClass = mockConstruction(MockUpTest.MockUpClass.class, (mock, context) -> { - doAnswer(invocation -> { - MockUpClass.Save.msg = "mockMsg"; - return null; - }).when(mock).changeMsg(); - when(mock.getText()).thenCallRealMethod(); - when(mock.getMsg()).thenCallRealMethod(); - }); - MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class); - mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { - String text = (String) invocation.getArgument(0); - MockUpClass.Save.text = "mockText"; + MockUpTest.MockUpClass mockObjMockUpTest_MockUpClass = mock(MockUpTest.MockUpClass.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + MockUpClass.Save.msg = "mockMsg"; return null; - }); + }).when(mockObjMockUpTest_MockUpClass).changeMsg(); + try (MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class);MockedConstruction mockConsMockUpTest_MockUpClass = mockConstructionWithAnswer(MockUpTest.MockUpClass.class, delegatesTo(mockObjMockUpTest_MockUpClass))) { + mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { + String text = (String) invocation.getArgument(0); + MockUpClass.Save.text = "mockText"; + return null; + }); - assertEquals("mockMsg", new MockUpClass().getMsg()); - assertEquals("mockText", new MockUpClass().getText()); - mockStaticMockUpTest_MockUpClass.closeOnDemand(); - mockObjMockUpTest_MockUpClass.closeOnDemand(); + assertEquals("mockMsg", new MockUpClass().getMsg()); + assertEquals("mockText", new MockUpClass().getText()); + } } public static class MockUpClass { @@ -407,23 +413,24 @@ public String getMsg() { import org.junit.Test; import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; + import static org.mockito.AdditionalAnswers.delegatesTo; import static org.mockito.Mockito.*; public class MockUpTest { - private MockedConstruction mockObjMockUpTest_MyClazz; + private MockedConstruction mockConsMockUpTest_MyClazz; @Before public void setUp() { - mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return "mockMsg"; - }).when(mock).getMsg(); - }); + MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + return "mockMsg"; + }).when(mockObjMockUpTest_MyClazz).getMsg(); + mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz)); } @After public void tearDown() { - mockObjMockUpTest_MyClazz.closeOnDemand(); + mockConsMockUpTest_MyClazz.closeOnDemand(); } @Test @@ -498,19 +505,20 @@ public static String getStaticMsg() { import org.mockito.MockedConstruction; import org.mockito.MockedStatic; import static org.junit.Assert.assertEquals; + import static org.mockito.AdditionalAnswers.delegatesTo; import static org.mockito.Mockito.*; public class MockUpTest { - private MockedConstruction mockObjMockUpTest_MyClazz; + private MockedConstruction mockConsMockUpTest_MyClazz; private MockedStatic mockStaticMockUpTest_MyClazz; @Before public void setUp() { - mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - return "mockMsg"; - }).when(mock).getMsg(); - }); + MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + return "mockMsg"; + }).when(mockObjMockUpTest_MyClazz).getMsg(); + mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz)); mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.getStaticMsg()).thenAnswer(invocation -> { return "mockStaticMsg"; @@ -519,8 +527,8 @@ public void setUp() { @After public void tearDown() { - mockObjMockUpTest_MyClazz.closeOnDemand(); mockStaticMockUpTest_MyClazz.closeOnDemand(); + mockConsMockUpTest_MyClazz.closeOnDemand(); } @Test @@ -544,7 +552,6 @@ public static String getStaticMsg() { ); } - @Test public void mockUpWithParamsTest() { rewriteRun( @@ -580,20 +587,22 @@ public String getMsg(String foo, String bar, String unused) { import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; + import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; public class MockUpTest { @Test public void init() { - MockedConstruction mockObjMockUpTest_MyClazz = mockConstruction(MockUpTest.MyClazz.class, (mock, context) -> { - doAnswer(invocation -> { - String foo = (String) invocation.getArgument(0); - String bar = (String) invocation.getArgument(1); - return foo + bar; - }).when(mock).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); - }); - assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); - mockObjMockUpTest_MyClazz.closeOnDemand(); + MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + String foo = (String) invocation.getArgument(0); + String bar = (String) invocation.getArgument(1); + return foo + bar; + }).when(mockObjMockUpTest_MyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); + try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { + assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); + } } public static class MyClazz { From 4eeae91b8d79fc69e995b124f5a6c548702295ca Mon Sep 17 00:00:00 2001 From: SiBorea Date: Thu, 26 Sep 2024 13:39:19 +0800 Subject: [PATCH 26/48] Add import class test --- .../jmockit/JMockitMockUpToMockito.java | 8 +-- .../jmockit/JMockitMockUpToMockitoTest.java | 51 ++++++++++--------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 5df1685df..fe32abfff 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -475,6 +475,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl varDeclarationInTry.add(getMockStaticDeclarationInTry(className, mockName)); mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods)); } + + maybeAddImport(MOCKITO_STATIC_IMPORT); } // Add MockConstruction @@ -503,6 +505,9 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl varDeclarationInTry.add(getMockConstructionDeclarationInTry(className, mockName)); mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockName, mockedPublicMethods)); } + + maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); + maybeAddImport("org.mockito.AdditionalAnswers", "delegatesTo", false); } List statements = md.getBody().getStatements(); @@ -538,10 +543,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl md = md.withBody(residualMd.getBody().withStatements(mdStatements)); } - maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); - maybeAddImport(MOCKITO_STATIC_IMPORT); maybeAddImport("org.mockito.Answers", "CALLS_REAL_METHODS"); - maybeAddImport("org.mockito.AdditionalAnswers", "delegatesTo"); maybeAddImport(MOCKITO_ALL_IMPORT.replace(".*", ""), "*", false); maybeRemoveImport(JMOCKIT_MOCK_IMPORT); maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 0f9aa2b80..e9244277a 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -21,6 +21,8 @@ import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; +import org.openrewrite.test.SourceSpec; +import org.openrewrite.test.TypeValidation; class JMockitMockUpToMockitoTest implements RewriteTest { @@ -110,8 +112,25 @@ public static int staticMethod(int v) { void mockUpInstanceMethodTest() { //language=java rewriteRun( + spec -> spec.afterTypeValidationOptions(TypeValidation.builder().identifiers(false).build()), java( """ + package com.foo; + public static class MyClazz { + public String getMsg() { + return "msg"; + } + + public String getMsg(String echo) { + return echo; + } + } + """, + SourceSpec::skip + ), + java( + """ + import com.foo.MyClazz; import org.junit.Test; import mockit.Mock; import mockit.MockUp; @@ -133,18 +152,9 @@ public String getMsg(String echo) { assertEquals("mockMsg", new MyClazz().getMsg()); assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } } """, """ + import com.foo.MyClazz; import org.junit.Test; import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; @@ -155,30 +165,21 @@ public String getMsg(String echo) { public class MockUpTest { @Test public void test() { - MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMockUpTest_MyClazz).getMsg(); + }).when(mockObjMyClazz).getMsg(); doAnswer(invocation -> { return "mockEchoMsg"; - }).when(mockObjMockUpTest_MyClazz).getMsg(nullable(String.class)); - try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { + }).when(mockObjMyClazz).getMsg(nullable(String.class)); + try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz))) { assertEquals("mockMsg", new MyClazz().getMsg()); assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); } } - - public static class MyClazz { - public String getMsg() { - return "msg"; - } - - public String getMsg(String echo) { - return echo; - } - } } - """)); + """) + ); } @Test From ee06b6ed9e751ffa200ecc8a5b9acc4d179d4b74 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Thu, 26 Sep 2024 14:01:00 +0800 Subject: [PATCH 27/48] Add multiple mockUp test --- .../jmockit/JMockitMockUpToMockito.java | 4 +- .../jmockit/JMockitMockUpToMockitoTest.java | 86 ++++++++++++++----- 2 files changed, 68 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index fe32abfff..87e073d3d 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -507,6 +507,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); + maybeAddImport("org.mockito.Answers", "CALLS_REAL_METHODS", false); maybeAddImport("org.mockito.AdditionalAnswers", "delegatesTo", false); } @@ -516,7 +517,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl } if (!varDeclarationInTry.isEmpty()) { - String tpl = String.join(";", mockConstructionMethodInTry) + + String tpl = String.join("", mockConstructionMethodInTry) + "try (" + String.join(";", varDeclarationInTry) + ") {" + @@ -543,7 +544,6 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl md = md.withBody(residualMd.getBody().withStatements(mdStatements)); } - maybeAddImport("org.mockito.Answers", "CALLS_REAL_METHODS"); maybeAddImport(MOCKITO_ALL_IMPORT.replace(".*", ""), "*", false); maybeRemoveImport(JMOCKIT_MOCK_IMPORT); maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index e9244277a..aa5459908 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -109,20 +109,20 @@ public static int staticMethod(int v) { } @Test - void mockUpInstanceMethodTest() { + void mockUpMultipleTest() { //language=java rewriteRun( spec -> spec.afterTypeValidationOptions(TypeValidation.builder().identifiers(false).build()), java( """ - package com.foo; - public static class MyClazz { + package com.openrewrite; + public static class Foo { public String getMsg() { - return "msg"; + return "foo"; } public String getMsg(String echo) { - return echo; + return "foo" + echo; } } """, @@ -130,7 +130,23 @@ public String getMsg(String echo) { ), java( """ - import com.foo.MyClazz; + package com.openrewrite; + public static class Bar { + public String getMsg() { + return "bar"; + } + + public String getMsg(String echo) { + return "bar" + echo; + } + } + """, + SourceSpec::skip + ), + java( + """ + import com.openrewrite.Foo; + import com.openrewrite.Bar; import org.junit.Test; import mockit.Mock; import mockit.MockUp; @@ -139,42 +155,67 @@ public String getMsg(String echo) { public class MockUpTest { @Test public void test() { - new MockUp() { + new MockUp() { @Mock public String getMsg() { - return "mockMsg"; + return "FOO"; } @Mock public String getMsg(String echo) { - return "mockEchoMsg"; + return "FOO" + echo; } }; - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + new MockUp() { + @Mock + public String getMsg() { + return "BAR"; + } + @Mock + public String getMsg(String echo) { + return "BAR" + echo; + } + }; + assertEquals("FOO", new Foo().getMsg()); + assertEquals("FOOecho", new Foo().getMsg("echo")); + assertEquals("BAR", new Bar().getMsg()); + assertEquals("BARecho", new Bar().getMsg("echo")); } } """, """ - import com.foo.MyClazz; + import com.openrewrite.Foo; + import com.openrewrite.Bar; import org.junit.Test; import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.Answers.CALLS_REAL_METHODS; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; public class MockUpTest { @Test public void test() { - MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + Foo mockObjFoo = mock(Foo.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { - return "mockMsg"; - }).when(mockObjMyClazz).getMsg(); + return "FOO"; + }).when(mockObjFoo).getMsg(); + doAnswer(invocation -> { + String echo = (String) invocation.getArgument(0); + return "FOO" + echo; + }).when(mockObjFoo).getMsg(nullable(String.class)); + Bar mockObjBar = mock(Bar.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + doAnswer(invocation -> { + return "BAR"; + }).when(mockObjBar).getMsg(); doAnswer(invocation -> { - return "mockEchoMsg"; - }).when(mockObjMyClazz).getMsg(nullable(String.class)); - try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz))) { - assertEquals("mockMsg", new MyClazz().getMsg()); - assertEquals("mockEchoMsg", new MyClazz().getMsg("echo")); + String echo = (String) invocation.getArgument(0); + return "BAR" + echo; + }).when(mockObjBar).getMsg(nullable(String.class)); + try (MockedConstruction mockConsFoo = mockConstructionWithAnswer(Foo.class, delegatesTo(mockObjFoo));MockedConstruction mockConsBar = mockConstructionWithAnswer(Bar.class, delegatesTo(mockObjBar))) { + assertEquals("FOO", new Foo().getMsg()); + assertEquals("FOOecho", new Foo().getMsg("echo")); + assertEquals("BAR", new Bar().getMsg()); + assertEquals("BARecho", new Bar().getMsg("echo")); } } } @@ -228,6 +269,7 @@ public String getMsg() { import static org.junit.Assert.assertEquals; import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.Answers.CALLS_REAL_METHODS; import static org.mockito.Mockito.*; public class MockUpTest { @@ -319,6 +361,7 @@ public static void changeText(String text) { """ import static org.junit.Assert.assertEquals; import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.Answers.CALLS_REAL_METHODS; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; @@ -415,6 +458,7 @@ public String getMsg() { import org.mockito.MockedConstruction; import static org.junit.Assert.assertEquals; import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.Answers.CALLS_REAL_METHODS; import static org.mockito.Mockito.*; public class MockUpTest { @@ -507,6 +551,7 @@ public static String getStaticMsg() { import org.mockito.MockedStatic; import static org.junit.Assert.assertEquals; import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.Answers.CALLS_REAL_METHODS; import static org.mockito.Mockito.*; public class MockUpTest { @@ -589,6 +634,7 @@ public String getMsg(String foo, String bar, String unused) { import static org.junit.Assert.assertEquals; import static org.mockito.AdditionalAnswers.delegatesTo; + import static org.mockito.Answers.CALLS_REAL_METHODS; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; From a9fc1bc0c710423f0cc5c47523a3c0ead7f49b59 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:41:42 +0800 Subject: [PATCH 28/48] Apply bot suggestions Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../testing/jmockit/JMockitMockUpToMockito.java | 14 ++++++++------ .../java/testing/mockito/MockitoUtils.java | 15 +++++++++++++++ .../jmockit/JMockitMockUpToMockitoTest.java | 7 ++++--- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 87e073d3d..637bb6c76 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,8 +15,6 @@ */ package org.openrewrite.java.testing.jmockit; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toMap; import lombok.SneakyThrows; import org.openrewrite.Cursor; import org.openrewrite.ExecutionContext; @@ -29,10 +27,6 @@ import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.FindMissingTypes; import org.openrewrite.java.search.UsesType; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; -import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; -import static org.openrewrite.java.tree.Flag.Private; -import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaSourceFile; import org.openrewrite.java.tree.JavaType; @@ -55,6 +49,13 @@ import java.util.Set; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; +import static org.openrewrite.java.tree.Flag.Private; +import static org.openrewrite.java.tree.Flag.Static; + public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_CLASSPATH = "mockito-core-5"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; @@ -123,6 +124,7 @@ private String getAnswerBody(J.MethodDeclaration md) { Set usedVariables = new HashSet<>(); (new JavaIsoVisitor>() { + @Override @SneakyThrows public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations.NamedVariable variable, Set ctx) { Cursor scope = getCursor().dropParentUntil((is) -> is instanceof J.ClassDeclaration || is instanceof J.Block || is instanceof J.MethodDeclaration || is instanceof J.ForLoop || is instanceof J.ForEachLoop || is instanceof J.ForLoop.Control || is instanceof J.ForEachLoop.Control || is instanceof J.Case || is instanceof J.Try || is instanceof J.Try.Resource || is instanceof J.Try.Catch || is instanceof J.MultiCatch || is instanceof J.Lambda || is instanceof JavaSourceFile); diff --git a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java index 41402b7a0..52b22fdfa 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java @@ -1,3 +1,18 @@ +/* + * Copyright 2024 the original author or authors. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * https://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.openrewrite.java.testing.mockito; import org.jspecify.annotations.Nullable; diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index aa5459908..c31cc48f3 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -19,6 +19,7 @@ import org.openrewrite.DocumentExample; import static org.openrewrite.java.Assertions.java; import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; + import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; import org.openrewrite.test.SourceSpec; @@ -418,7 +419,7 @@ public static void changeText(String text) { } @Test - public void mockUpAtSetUpWithoutTearDownTest() { + void mockUpAtSetUpWithoutTearDownTest() { rewriteRun( java( """ @@ -495,7 +496,7 @@ public String getMsg() { } @Test - public void mockUpAtSetUpWithTearDownTest() { + void mockUpAtSetUpWithTearDownTest() { rewriteRun( java( """ @@ -599,7 +600,7 @@ public static String getStaticMsg() { } @Test - public void mockUpWithParamsTest() { + void mockUpWithParamsTest() { rewriteRun( java( """ From f1de48cf5d34d25f329a5c4cbb2e355371832805 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Sun, 6 Oct 2024 11:00:40 +0800 Subject: [PATCH 29/48] Remove useless type cast --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 2 +- .../testing/jmockit/JMockitMockUpToMockitoTest.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 637bb6c76..c867b9b7b 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -152,7 +152,7 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations String varName = vd.getVariables().get(0).getName().getSimpleName(); if (usedVariables.contains(varName)) { sb.append(className).append(" ").append(varName) - .append(" = (").append(className).append(") invocation.getArgument(").append(i).append(");"); + .append(" = invocation.getArgument(").append(i).append(");"); } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index c31cc48f3..5dd6eb630 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -201,7 +201,7 @@ public void test() { return "FOO"; }).when(mockObjFoo).getMsg(); doAnswer(invocation -> { - String echo = (String) invocation.getArgument(0); + String echo = invocation.getArgument(0); return "FOO" + echo; }).when(mockObjFoo).getMsg(nullable(String.class)); Bar mockObjBar = mock(Bar.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); @@ -209,7 +209,7 @@ public void test() { return "BAR"; }).when(mockObjBar).getMsg(); doAnswer(invocation -> { - String echo = (String) invocation.getArgument(0); + String echo = invocation.getArgument(0); return "BAR" + echo; }).when(mockObjBar).getMsg(nullable(String.class)); try (MockedConstruction mockConsFoo = mockConstructionWithAnswer(Foo.class, delegatesTo(mockObjFoo));MockedConstruction mockConsBar = mockConstructionWithAnswer(Bar.class, delegatesTo(mockObjBar))) { @@ -380,7 +380,7 @@ public void test() { }).when(mockObjMockUpTest_MockUpClass).changeMsg(); try (MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class);MockedConstruction mockConsMockUpTest_MockUpClass = mockConstructionWithAnswer(MockUpTest.MockUpClass.class, delegatesTo(mockObjMockUpTest_MockUpClass))) { mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { - String text = (String) invocation.getArgument(0); + String text = invocation.getArgument(0); MockUpClass.Save.text = "mockText"; return null; }); @@ -644,8 +644,8 @@ public class MockUpTest { public void init() { MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { - String foo = (String) invocation.getArgument(0); - String bar = (String) invocation.getArgument(1); + String foo = invocation.getArgument(0); + String bar = invocation.getArgument(1); return foo + bar; }).when(mockObjMockUpTest_MyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { From f987e593f87d423a94caef96e2ecc3f4446d7956 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Sun, 6 Oct 2024 11:08:07 +0800 Subject: [PATCH 30/48] Fix variable naming --- .../jmockit/JMockitMockUpToMockito.java | 4 +- .../jmockit/JMockitMockUpToMockitoTest.java | 54 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index c867b9b7b..106e1604e 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -343,7 +343,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .forEach(newClass -> { JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); String className = TypeUtils.asFullyQualified(mockType).getClassName(); - String mockName = className.replace(".", "_"); + String mockName = className.replace(".", ""); Map mockedMethods = getMockUpMethods(newClass); // Add mockStatic field @@ -447,7 +447,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); String className = TypeUtils.asFullyQualified(mockType).getClassName(); - String mockName = className.replace(".", "_"); + String mockName = className.replace(".", ""); Map mockedMethods = getMockUpMethods(newClass); diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 5dd6eb630..c067a34ab 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -84,11 +84,11 @@ public static int staticMethod(int v) { public class MockUpTest { @Test public void test() { - try (MockedStatic mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class)) { - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + try (MockedStatic mockStaticMockUpTestMyClazz = mockStatic(MockUpTest.MyClazz.class)) { + mockStaticMockUpTestMyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { return 1024; }); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + mockStaticMockUpTestMyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { return 128; }); assertEquals(1024, MockUpTest.MyClazz.staticMethod()); @@ -277,11 +277,11 @@ public class MockUpTest { @Test public void test() { final String msg = "newMsg"; - MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return msg; - }).when(mockObjMockUpTest_MyClazz).getMsg(); - try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { + }).when(mockObjMockUpTestMyClazz).getMsg(); + try (MockedConstruction mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz))) { // Should ignore the newClass statement new Runnable() { @@ -373,13 +373,13 @@ public static void changeText(String text) { public class MockUpTest { @Test public void test() { - MockUpTest.MockUpClass mockObjMockUpTest_MockUpClass = mock(MockUpTest.MockUpClass.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpTest.MockUpClass mockObjMockUpTestMockUpClass = mock(MockUpTest.MockUpClass.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { MockUpClass.Save.msg = "mockMsg"; return null; - }).when(mockObjMockUpTest_MockUpClass).changeMsg(); - try (MockedStatic mockStaticMockUpTest_MockUpClass = mockStatic(MockUpTest.MockUpClass.class);MockedConstruction mockConsMockUpTest_MockUpClass = mockConstructionWithAnswer(MockUpTest.MockUpClass.class, delegatesTo(mockObjMockUpTest_MockUpClass))) { - mockStaticMockUpTest_MockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { + }).when(mockObjMockUpTestMockUpClass).changeMsg(); + try (MockedStatic mockStaticMockUpTestMockUpClass = mockStatic(MockUpTest.MockUpClass.class);MockedConstruction mockConsMockUpTestMockUpClass = mockConstructionWithAnswer(MockUpTest.MockUpClass.class, delegatesTo(mockObjMockUpTestMockUpClass))) { + mockStaticMockUpTestMockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { String text = invocation.getArgument(0); MockUpClass.Save.text = "mockText"; return null; @@ -463,20 +463,20 @@ public String getMsg() { import static org.mockito.Mockito.*; public class MockUpTest { - private MockedConstruction mockConsMockUpTest_MyClazz; + private MockedConstruction mockConsMockUpTestMyClazz; @Before public void setUp() { - MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMockUpTest_MyClazz).getMsg(); - mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz)); + }).when(mockObjMockUpTestMyClazz).getMsg(); + mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz)); } @After public void tearDown() { - mockConsMockUpTest_MyClazz.closeOnDemand(); + mockConsMockUpTestMyClazz.closeOnDemand(); } @Test @@ -556,26 +556,26 @@ public static String getStaticMsg() { import static org.mockito.Mockito.*; public class MockUpTest { - private MockedConstruction mockConsMockUpTest_MyClazz; - private MockedStatic mockStaticMockUpTest_MyClazz; + private MockedConstruction mockConsMockUpTestMyClazz; + private MockedStatic mockStaticMockUpTestMyClazz; @Before public void setUp() { - MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMockUpTest_MyClazz).getMsg(); - mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz)); - mockStaticMockUpTest_MyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTest_MyClazz.when(() -> MockUpTest.MyClazz.getStaticMsg()).thenAnswer(invocation -> { + }).when(mockObjMockUpTestMyClazz).getMsg(); + mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz)); + mockStaticMockUpTestMyClazz = mockStatic(MockUpTest.MyClazz.class); + mockStaticMockUpTestMyClazz.when(() -> MockUpTest.MyClazz.getStaticMsg()).thenAnswer(invocation -> { return "mockStaticMsg"; }); } @After public void tearDown() { - mockStaticMockUpTest_MyClazz.closeOnDemand(); - mockConsMockUpTest_MyClazz.closeOnDemand(); + mockStaticMockUpTestMyClazz.closeOnDemand(); + mockConsMockUpTestMyClazz.closeOnDemand(); } @Test @@ -642,13 +642,13 @@ public String getMsg(String foo, String bar, String unused) { public class MockUpTest { @Test public void init() { - MockUpTest.MyClazz mockObjMockUpTest_MyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { String foo = invocation.getArgument(0); String bar = invocation.getArgument(1); return foo + bar; - }).when(mockObjMockUpTest_MyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); - try (MockedConstruction mockConsMockUpTest_MyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTest_MyClazz))) { + }).when(mockObjMockUpTestMyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); + try (MockedConstruction mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz))) { assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); } } From 28485bbe9f1141ec0724b43d3898323e1785ea03 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Sun, 6 Oct 2024 13:25:04 +0800 Subject: [PATCH 31/48] Remove fqn from naming --- .../jmockit/JMockitMockUpToMockito.java | 59 +++++++++--------- .../jmockit/JMockitMockUpToMockitoTest.java | 62 +++++++++---------- 2 files changed, 60 insertions(+), 61 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 106e1604e..2d9f7749e 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -182,12 +182,12 @@ private String getMockStaticDeclarationInBefore(String className) { " = mockStatic(" + className + ".class);"; } - private String getMockStaticDeclarationInTry(String className, String mockName) { - return "MockedStatic " + MOCKITO_STATIC_PREFIX + mockName + + private String getMockStaticDeclarationInTry(String className) { + return "MockedStatic " + MOCKITO_STATIC_PREFIX + className + " = mockStatic(" + className + ".class)"; } - private String getMockStaticMethods(JavaType.Class clazz, String className, String mockName, Map mockedMethods) { + private String getMockStaticMethods(JavaType.Class clazz, String className, Map mockedMethods) { StringBuilder tpl = new StringBuilder(); // To generate predictable method order @@ -195,7 +195,7 @@ private String getMockStaticMethods(JavaType.Class clazz, String className, Stri .sorted(Comparator.comparing((J.MethodDeclaration::print))) .collect(toList()); for (J.MethodDeclaration m : keys) { - tpl.append("mockStatic").append(mockName) + tpl.append("mockStatic").append(className) .append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("(") .append(m.getParameters() .stream() @@ -217,7 +217,7 @@ private String getMockStaticMethods(JavaType.Class clazz, String className, Stri .filter(m -> !m.getFlags().contains(Private)) .filter(m -> m.getFlags().contains(Static)) .filter(m -> !mockedMethods.containsValue(m)) - .forEach(m -> tpl.append("mockStatic").append(mockName).append(".when(() -> ") + .forEach(m -> tpl.append("mockStatic").append(className).append(".when(() -> ") .append(className).append(".").append(m.getName()) .append(getCallRealMethod(m)) .append(");") @@ -226,21 +226,21 @@ private String getMockStaticMethods(JavaType.Class clazz, String className, Stri return tpl.toString(); } - private String getMockConstructionDeclarationInBefore(String className, String mockName) { + private String getMockConstructionDeclarationInBefore(String className) { return "#{any(" + MOCKITO_CONSTRUCTION_IMPORT + ")}" + - " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + mockName + "));"; + " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + className + "));"; } - private String getMockConstructionDeclarationInTry(String className, String mockName) { - return "MockedConstruction " + MOCKITO_CONSTRUCTION_PREFIX + mockName + - " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + mockName + "))"; + private String getMockConstructionDeclarationInTry(String className) { + return "MockedConstruction " + MOCKITO_CONSTRUCTION_PREFIX + className + + " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + className + "))"; } - private String getMockConstructionMethods(String className, String mockName, Map mockedMethods) { + private String getMockConstructionMethods(String className, Map mockedMethods) { StringBuilder tpl = new StringBuilder() .append(className) .append(" ") - .append(MOCKITO_MOCK_PREFIX).append(mockName) + .append(MOCKITO_MOCK_PREFIX).append(className) .append(" = mock(").append(className).append(".class, withSettings().defaultAnswer(CALLS_REAL_METHODS));"); mockedMethods @@ -249,7 +249,7 @@ private String getMockConstructionMethods(String className, String mockName, Map .sorted(Comparator.comparing((J.MethodDeclaration::print))) .forEach(m -> tpl.append("doAnswer(invocation -> {") .append(getAnswerBody(m)) - .append("}).when(").append(MOCKITO_MOCK_PREFIX).append(mockName).append(").").append(m.getSimpleName()).append("(") + .append("}).when(").append(MOCKITO_MOCK_PREFIX).append(className).append(").").append(m.getSimpleName()).append("(") .append(m.getParameters() .stream() .filter(J.VariableDeclarations.class::isInstance) @@ -342,8 +342,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .map(J.NewClass.class::cast) .forEach(newClass -> { JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); - String className = TypeUtils.asFullyQualified(mockType).getClassName(); - String mockName = className.replace(".", ""); + String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); + Map mockedMethods = getMockUpMethods(newClass); // Add mockStatic field @@ -357,11 +357,11 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .apply( new Cursor(getCursor().getParentOrThrow(), cd[0]), cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_STATIC_PREFIX + mockName + MOCKITO_STATIC_PREFIX + className ); J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_STATIC_PREFIX + mockName, mockFieldId); + tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); } // Add mockConstruction field if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { @@ -374,11 +374,11 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut .apply( updateCursor(cd[0]), cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_CONSTRUCTION_PREFIX + mockName + MOCKITO_CONSTRUCTION_PREFIX + className ); J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + mockName, mockFieldId); + tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); } })); @@ -446,8 +446,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl ); JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); - String className = TypeUtils.asFullyQualified(mockType).getClassName(); - String mockName = className.replace(".", ""); + String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); Map mockedMethods = getMockUpMethods(newClass); @@ -460,7 +459,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl if (!mockedPublicStaticMethods.isEmpty()) { if (isBeforeTest) { String tpl = getMockStaticDeclarationInBefore(className) + - getMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods); + getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); md = JavaTemplate.builder(tpl) .contextSensitive() @@ -471,11 +470,11 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .apply( updateCursor(md), statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_STATIC_PREFIX + mockName) + tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) ); } else { - varDeclarationInTry.add(getMockStaticDeclarationInTry(className, mockName)); - mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockName, mockedPublicStaticMethods)); + varDeclarationInTry.add(getMockStaticDeclarationInTry(className)); + mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods)); } maybeAddImport(MOCKITO_STATIC_IMPORT); @@ -489,8 +488,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicMethods.isEmpty()) { if (isBeforeTest) { - String tpl = getMockConstructionMethods(className, mockName, mockedPublicMethods) + - getMockConstructionDeclarationInBefore(className, mockName); + String tpl = getMockConstructionMethods(className, mockedPublicMethods) + + getMockConstructionDeclarationInBefore(className); md = JavaTemplate.builder(tpl) .contextSensitive() @@ -501,11 +500,11 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl .apply( updateCursor(md), statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + mockName) + tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) ); } else { - varDeclarationInTry.add(getMockConstructionDeclarationInTry(className, mockName)); - mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockName, mockedPublicMethods)); + varDeclarationInTry.add(getMockConstructionDeclarationInTry(className)); + mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockedPublicMethods)); } maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index c067a34ab..d36713089 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -59,8 +59,8 @@ public int staticMethod(int v) { return 128; } }; - assertEquals(1024, MockUpTest.MyClazz.staticMethod()); - assertEquals(128, MockUpTest.MyClazz.staticMethod(0)); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); } public static class MyClazz { @@ -84,15 +84,15 @@ public static int staticMethod(int v) { public class MockUpTest { @Test public void test() { - try (MockedStatic mockStaticMockUpTestMyClazz = mockStatic(MockUpTest.MyClazz.class)) { - mockStaticMockUpTestMyClazz.when(() -> MockUpTest.MyClazz.staticMethod()).thenAnswer(invocation -> { + try (MockedStatic mockStaticMyClazz = mockStatic(MyClazz.class)) { + mockStaticMyClazz.when(() -> MyClazz.staticMethod()).thenAnswer(invocation -> { return 1024; }); - mockStaticMockUpTestMyClazz.when(() -> MockUpTest.MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { + mockStaticMyClazz.when(() -> MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { return 128; }); - assertEquals(1024, MockUpTest.MyClazz.staticMethod()); - assertEquals(128, MockUpTest.MyClazz.staticMethod(0)); + assertEquals(1024, MyClazz.staticMethod()); + assertEquals(128, MyClazz.staticMethod(0)); } } @@ -277,11 +277,11 @@ public class MockUpTest { @Test public void test() { final String msg = "newMsg"; - MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return msg; - }).when(mockObjMockUpTestMyClazz).getMsg(); - try (MockedConstruction mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz))) { + }).when(mockObjMyClazz).getMsg(); + try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz))) { // Should ignore the newClass statement new Runnable() { @@ -373,13 +373,13 @@ public static void changeText(String text) { public class MockUpTest { @Test public void test() { - MockUpTest.MockUpClass mockObjMockUpTestMockUpClass = mock(MockUpTest.MockUpClass.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpClass mockObjMockUpClass = mock(MockUpClass.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { MockUpClass.Save.msg = "mockMsg"; return null; - }).when(mockObjMockUpTestMockUpClass).changeMsg(); - try (MockedStatic mockStaticMockUpTestMockUpClass = mockStatic(MockUpTest.MockUpClass.class);MockedConstruction mockConsMockUpTestMockUpClass = mockConstructionWithAnswer(MockUpTest.MockUpClass.class, delegatesTo(mockObjMockUpTestMockUpClass))) { - mockStaticMockUpTestMockUpClass.when(() -> MockUpTest.MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { + }).when(mockObjMockUpClass).changeMsg(); + try (MockedStatic mockStaticMockUpClass = mockStatic(MockUpClass.class);MockedConstruction mockConsMockUpClass = mockConstructionWithAnswer(MockUpClass.class, delegatesTo(mockObjMockUpClass))) { + mockStaticMockUpClass.when(() -> MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { String text = invocation.getArgument(0); MockUpClass.Save.text = "mockText"; return null; @@ -463,20 +463,20 @@ public String getMsg() { import static org.mockito.Mockito.*; public class MockUpTest { - private MockedConstruction mockConsMockUpTestMyClazz; + private MockedConstruction mockConsMyClazz; @Before public void setUp() { - MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMockUpTestMyClazz).getMsg(); - mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz)); + }).when(mockObjMyClazz).getMsg(); + mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz)); } @After public void tearDown() { - mockConsMockUpTestMyClazz.closeOnDemand(); + mockConsMyClazz.closeOnDemand(); } @Test @@ -556,26 +556,26 @@ public static String getStaticMsg() { import static org.mockito.Mockito.*; public class MockUpTest { - private MockedConstruction mockConsMockUpTestMyClazz; - private MockedStatic mockStaticMockUpTestMyClazz; + private MockedConstruction mockConsMyClazz; + private MockedStatic mockStaticMyClazz; @Before public void setUp() { - MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMockUpTestMyClazz).getMsg(); - mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz)); - mockStaticMockUpTestMyClazz = mockStatic(MockUpTest.MyClazz.class); - mockStaticMockUpTestMyClazz.when(() -> MockUpTest.MyClazz.getStaticMsg()).thenAnswer(invocation -> { + }).when(mockObjMyClazz).getMsg(); + mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz)); + mockStaticMyClazz = mockStatic(MyClazz.class); + mockStaticMyClazz.when(() -> MyClazz.getStaticMsg()).thenAnswer(invocation -> { return "mockStaticMsg"; }); } @After public void tearDown() { - mockStaticMockUpTestMyClazz.closeOnDemand(); - mockConsMockUpTestMyClazz.closeOnDemand(); + mockConsMyClazz.closeOnDemand(); + mockStaticMyClazz.closeOnDemand(); } @Test @@ -642,13 +642,13 @@ public String getMsg(String foo, String bar, String unused) { public class MockUpTest { @Test public void init() { - MockUpTest.MyClazz mockObjMockUpTestMyClazz = mock(MockUpTest.MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); doAnswer(invocation -> { String foo = invocation.getArgument(0); String bar = invocation.getArgument(1); return foo + bar; - }).when(mockObjMockUpTestMyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); - try (MockedConstruction mockConsMockUpTestMyClazz = mockConstructionWithAnswer(MockUpTest.MyClazz.class, delegatesTo(mockObjMockUpTestMyClazz))) { + }).when(mockObjMyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); + try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz))) { assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); } } From fc25bbd49d74ef64ca742a654febdbbe07b97084 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Sun, 6 Oct 2024 13:28:05 +0800 Subject: [PATCH 32/48] Remove unneeded method call --- .../testing/jmockit/JMockitMockUpToMockito.java | 2 +- .../jmockit/JMockitMockUpToMockitoTest.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 2d9f7749e..23c392ace 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -241,7 +241,7 @@ private String getMockConstructionMethods(String className, Map { return "FOO"; }).when(mockObjFoo).getMsg(); @@ -204,7 +204,7 @@ public void test() { String echo = invocation.getArgument(0); return "FOO" + echo; }).when(mockObjFoo).getMsg(nullable(String.class)); - Bar mockObjBar = mock(Bar.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + Bar mockObjBar = mock(Bar.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "BAR"; }).when(mockObjBar).getMsg(); @@ -277,7 +277,7 @@ public class MockUpTest { @Test public void test() { final String msg = "newMsg"; - MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return msg; }).when(mockObjMyClazz).getMsg(); @@ -373,7 +373,7 @@ public static void changeText(String text) { public class MockUpTest { @Test public void test() { - MockUpClass mockObjMockUpClass = mock(MockUpClass.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MockUpClass mockObjMockUpClass = mock(MockUpClass.class, CALLS_REAL_METHODS); doAnswer(invocation -> { MockUpClass.Save.msg = "mockMsg"; return null; @@ -467,7 +467,7 @@ public class MockUpTest { @Before public void setUp() { - MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "mockMsg"; }).when(mockObjMyClazz).getMsg(); @@ -561,7 +561,7 @@ public class MockUpTest { @Before public void setUp() { - MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "mockMsg"; }).when(mockObjMyClazz).getMsg(); @@ -642,7 +642,7 @@ public String getMsg(String foo, String bar, String unused) { public class MockUpTest { @Test public void init() { - MyClazz mockObjMyClazz = mock(MyClazz.class, withSettings().defaultAnswer(CALLS_REAL_METHODS)); + MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { String foo = invocation.getArgument(0); String bar = invocation.getArgument(1); From 199f8f7524b88e67893df0bfc7656e9a6684fa44 Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Sun, 6 Oct 2024 13:29:31 +0800 Subject: [PATCH 33/48] Shorter var naming --- .../jmockit/JMockitMockUpToMockito.java | 2 +- .../jmockit/JMockitMockUpToMockitoTest.java | 44 +++++++++---------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 23c392ace..42bb2a06e 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -65,7 +65,7 @@ public class JMockitMockUpToMockito extends Recipe { private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; private static final String MOCKITO_STATIC_PREFIX = "mockStatic"; private static final String MOCKITO_STATIC_IMPORT = "org.mockito.MockedStatic"; - private static final String MOCKITO_MOCK_PREFIX = "mockObj"; + private static final String MOCKITO_MOCK_PREFIX = "mock"; private static final String MOCKITO_CONSTRUCTION_PREFIX = "mockCons"; private static final String MOCKITO_CONSTRUCTION_IMPORT = "org.mockito.MockedConstruction"; diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index c3dbe8915..93e6cab18 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -196,23 +196,23 @@ public String getMsg(String echo) { public class MockUpTest { @Test public void test() { - Foo mockObjFoo = mock(Foo.class, CALLS_REAL_METHODS); + Foo mockFoo = mock(Foo.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "FOO"; - }).when(mockObjFoo).getMsg(); + }).when(mockFoo).getMsg(); doAnswer(invocation -> { String echo = invocation.getArgument(0); return "FOO" + echo; - }).when(mockObjFoo).getMsg(nullable(String.class)); - Bar mockObjBar = mock(Bar.class, CALLS_REAL_METHODS); + }).when(mockFoo).getMsg(nullable(String.class)); + Bar mockBar = mock(Bar.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "BAR"; - }).when(mockObjBar).getMsg(); + }).when(mockBar).getMsg(); doAnswer(invocation -> { String echo = invocation.getArgument(0); return "BAR" + echo; - }).when(mockObjBar).getMsg(nullable(String.class)); - try (MockedConstruction mockConsFoo = mockConstructionWithAnswer(Foo.class, delegatesTo(mockObjFoo));MockedConstruction mockConsBar = mockConstructionWithAnswer(Bar.class, delegatesTo(mockObjBar))) { + }).when(mockBar).getMsg(nullable(String.class)); + try (MockedConstruction mockConsFoo = mockConstructionWithAnswer(Foo.class, delegatesTo(mockFoo));MockedConstruction mockConsBar = mockConstructionWithAnswer(Bar.class, delegatesTo(mockBar))) { assertEquals("FOO", new Foo().getMsg()); assertEquals("FOOecho", new Foo().getMsg("echo")); assertEquals("BAR", new Bar().getMsg()); @@ -277,11 +277,11 @@ public class MockUpTest { @Test public void test() { final String msg = "newMsg"; - MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); + MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return msg; - }).when(mockObjMyClazz).getMsg(); - try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz))) { + }).when(mockMyClazz).getMsg(); + try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz))) { // Should ignore the newClass statement new Runnable() { @@ -373,12 +373,12 @@ public static void changeText(String text) { public class MockUpTest { @Test public void test() { - MockUpClass mockObjMockUpClass = mock(MockUpClass.class, CALLS_REAL_METHODS); + MockUpClass mockMockUpClass = mock(MockUpClass.class, CALLS_REAL_METHODS); doAnswer(invocation -> { MockUpClass.Save.msg = "mockMsg"; return null; - }).when(mockObjMockUpClass).changeMsg(); - try (MockedStatic mockStaticMockUpClass = mockStatic(MockUpClass.class);MockedConstruction mockConsMockUpClass = mockConstructionWithAnswer(MockUpClass.class, delegatesTo(mockObjMockUpClass))) { + }).when(mockMockUpClass).changeMsg(); + try (MockedStatic mockStaticMockUpClass = mockStatic(MockUpClass.class);MockedConstruction mockConsMockUpClass = mockConstructionWithAnswer(MockUpClass.class, delegatesTo(mockMockUpClass))) { mockStaticMockUpClass.when(() -> MockUpClass.changeText(nullable(String.class))).thenAnswer(invocation -> { String text = invocation.getArgument(0); MockUpClass.Save.text = "mockText"; @@ -467,11 +467,11 @@ public class MockUpTest { @Before public void setUp() { - MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); + MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMyClazz).getMsg(); - mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz)); + }).when(mockMyClazz).getMsg(); + mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz)); } @After @@ -561,11 +561,11 @@ public class MockUpTest { @Before public void setUp() { - MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); + MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { return "mockMsg"; - }).when(mockObjMyClazz).getMsg(); - mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz)); + }).when(mockMyClazz).getMsg(); + mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz)); mockStaticMyClazz = mockStatic(MyClazz.class); mockStaticMyClazz.when(() -> MyClazz.getStaticMsg()).thenAnswer(invocation -> { return "mockStaticMsg"; @@ -642,13 +642,13 @@ public String getMsg(String foo, String bar, String unused) { public class MockUpTest { @Test public void init() { - MyClazz mockObjMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); + MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); doAnswer(invocation -> { String foo = invocation.getArgument(0); String bar = invocation.getArgument(1); return foo + bar; - }).when(mockObjMyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); - try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockObjMyClazz))) { + }).when(mockMyClazz).getMsg(nullable(String.class), nullable(String.class), nullable(String.class)); + try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz))) { assertEquals("foobar", new MyClazz().getMsg("foo", "bar", "unused")); } } From fa85adb6c4724e1965fb116b83dc13604f9b3368 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 6 Oct 2024 14:00:09 +0200 Subject: [PATCH 34/48] Update JMockitMockUpToMockitoTest.java --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 93e6cab18..2aa8f3693 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -17,14 +17,15 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; -import static org.openrewrite.java.Assertions.java; -import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; import org.openrewrite.test.SourceSpec; import org.openrewrite.test.TypeValidation; +import static org.openrewrite.java.Assertions.java; +import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; + class JMockitMockUpToMockitoTest implements RewriteTest { @Override From b61496d3149bb0d5139e46107be20f01c58cdee4 Mon Sep 17 00:00:00 2001 From: Shivani Sharma Date: Sun, 13 Oct 2024 19:16:26 +1100 Subject: [PATCH 35/48] Refactor mockup migration to resuse existing code and cleanup --- .../jmockit/JMockitMockUpToMockito.java | 513 +++++++++--------- .../jmockit/JMockitMockUpToMockitoTest.java | 4 +- ...kitNonStrictExpectationsToMockitoTest.java | 5 +- .../testing/jmockit/JMockitTestUtils.java | 1 + 4 files changed, 252 insertions(+), 271 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 42bb2a06e..96462c216 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -16,37 +16,17 @@ package org.openrewrite.java.testing.jmockit; import lombok.SneakyThrows; -import org.openrewrite.Cursor; -import org.openrewrite.ExecutionContext; -import org.openrewrite.Preconditions; -import org.openrewrite.Recipe; -import org.openrewrite.Tree; -import org.openrewrite.TreeVisitor; +import org.openrewrite.*; import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; -import org.openrewrite.java.search.FindMissingTypes; import org.openrewrite.java.search.UsesType; -import org.openrewrite.java.tree.J; -import org.openrewrite.java.tree.JavaSourceFile; -import org.openrewrite.java.tree.JavaType; -import org.openrewrite.java.tree.Statement; -import org.openrewrite.java.tree.TypeUtils; +import org.openrewrite.java.tree.*; import org.openrewrite.marker.SearchResult; import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; import java.lang.reflect.Method; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; @@ -61,7 +41,7 @@ public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; private static final String MOCKITO_MATCHER_IMPORT = "org.mockito.ArgumentMatchers.*"; private static final String MOCKITO_DELEGATEANSWER_IMPORT = "org.mockito.AdditionalAnswers.delegatesTo"; - private static final String JMOCKIT_MOCKUP_IMPORT = "mockit.MockUp"; + private static final String JMOCKIT_MOCKUP_IMPORT = MockUp.getFqn(); private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; private static final String MOCKITO_STATIC_PREFIX = "mockStatic"; private static final String MOCKITO_STATIC_IMPORT = "org.mockito.MockedStatic"; @@ -87,6 +67,250 @@ public TreeVisitor getVisitor() { private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { private final Map tearDownMocks = new HashMap<>(); + /** + * Handle at class level because need to handle the case where when there is a MockUp in a setup method, and we + * need to close the migrated mockCons in the teardown, yet the teardown method comes before the setup method + */ + @Override + public J.ClassDeclaration visitClassDeclaration(J.ClassDeclaration classDecl, ExecutionContext ctx) { + // Handle @Before/@BeforeEach mockUp + Set mds = TreeVisitor.collect( + new JavaIsoVisitor() { + @Override + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { + if (isSetUpMethod(md)) { + return SearchResult.found(md); + } + return super.visitMethodDeclaration(md, ctx); + } + }, + classDecl, + new HashSet<>() + ) + .stream() + .filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast) + .collect(Collectors.toSet()); + if (mds.isEmpty()) { + return super.visitClassDeclaration(classDecl, ctx); + } + + final J.ClassDeclaration[] cd = {classDecl}; + mds.forEach(md -> md.getBody() + .getStatements() + .stream() + .filter(this::isMockUpStatement) + .map(J.NewClass.class::cast) + .forEach(newClass -> { + String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); + + Map mockedMethods = getMockUpMethods(newClass); + + // Add mockStatic field + if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedStatic #{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_STATIC_PREFIX + className + ); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); + } + // Add mockConstruction field + if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedConstruction #{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_CONSTRUCTION_PREFIX + className + ); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); + } + })); + + cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDown", + "@org.junit.After", + "@After", + "junit-4.13", + "org.junit.After", + ""); + + return super.visitClassDeclaration(cd[0], ctx); + } + + @Override + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl, ExecutionContext ctx) { + J.MethodDeclaration md = methodDecl; + if (md.getBody() == null) { + return md; + } + if (isTearDownMethod(md)) { + for (J.Identifier id : tearDownMocks.values()) { + String type = TypeUtils.asFullyQualified(id.getFieldType().getType()).getFullyQualifiedName(); + md = JavaTemplate.builder("#{any(" + type + ")}.closeOnDemand();") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + md.getBody().getCoordinates().lastStatement(), + id + ); + } + return md; + } + + boolean isBeforeTest = isSetUpMethod(md); + List varDeclarationInTry = new ArrayList<>(); + List mockStaticMethodInTry = new ArrayList<>(); + List mockConstructionMethodInTry = new ArrayList<>(); + List encloseStatements = new ArrayList<>(); + List residualStatements = new ArrayList<>(); + for (Statement statement : md.getBody().getStatements()) { + if (!isMockUpStatement(statement)) { + encloseStatements.add(statement); + continue; + } + + J.NewClass newClass = (J.NewClass) statement; + + // Only discard @Mock method declarations + residualStatements.addAll(newClass + .getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); + } + return true; + }) + .collect(toList()) + ); + + JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); + String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); + + Map mockedMethods = getMockUpMethods(newClass); + + // Add MockStatic + Map mockedPublicStaticMethods = mockedMethods + .entrySet() + .stream() + .filter(m -> m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + if (!mockedPublicStaticMethods.isEmpty()) { + if (isBeforeTest) { + String tpl = getMockStaticDeclarationInBefore(className) + + getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); + + md = JavaTemplate.builder(tpl) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) + ); + } else { + varDeclarationInTry.add(getMockStaticDeclarationInTry(className)); + mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods)); + } + + maybeAddImport(MOCKITO_STATIC_IMPORT); + } + + // Add MockConstruction + Map mockedPublicMethods = mockedMethods + .entrySet() + .stream() + .filter(m -> !m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + if (!mockedPublicMethods.isEmpty()) { + if (isBeforeTest) { + String tpl = getMockConstructionMethods(className, mockedPublicMethods) + + getMockConstructionDeclarationInBefore(className); + + md = JavaTemplate.builder(tpl) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) + ); + } else { + varDeclarationInTry.add(getMockConstructionDeclarationInTry(className)); + mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockedPublicMethods)); + } + + maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); + maybeAddImport("org.mockito.Answers", "CALLS_REAL_METHODS", false); + maybeAddImport("org.mockito.AdditionalAnswers", "delegatesTo", false); + } + + List statements = md.getBody().getStatements(); + statements.remove(statement); + md = md.withBody(md.getBody().withStatements(statements)); + } + + if (!varDeclarationInTry.isEmpty()) { + String tpl = String.join("", mockConstructionMethodInTry) + + "try (" + + String.join(";", varDeclarationInTry) + + ") {" + + String.join(";", mockStaticMethodInTry) + + "}"; + + J.MethodDeclaration residualMd = md.withBody(md.getBody().withStatements(residualStatements)); + residualMd = JavaTemplate.builder(tpl) + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); + + List mdStatements = residualMd.getBody().getStatements(); + J.Try try_ = (J.Try) mdStatements.get(mdStatements.size() - 1); + + List tryStatements = try_.getBody().getStatements(); + tryStatements.addAll(encloseStatements); + try_ = try_.withBody(try_.getBody().withStatements(tryStatements)); + + mdStatements.set(mdStatements.size() - 1, try_); + md = md.withBody(residualMd.getBody().withStatements(mdStatements)); + } + + maybeAddImport(MOCKITO_ALL_IMPORT.replace(".*", ""), "*", false); + maybeRemoveImport(JMOCKIT_MOCK_IMPORT); + maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); + return maybeAutoFormat(methodDecl, md, ctx); + } + private String getMatcher(JavaType s) { maybeAddImport(MOCKITO_MATCHER_IMPORT.replace(".*", ""), "*", false); if (s instanceof JavaType.Primitive) { @@ -309,246 +533,5 @@ private Map getMockUpMethods(J.NewClass ne .filter(Objects::nonNull) .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); } - - @Override - public J.ClassDeclaration visitClassDeclaration(J.ClassDeclaration classDecl, ExecutionContext ctx) { - // Handle @Before/@BeforeEach mockUp - Set mds = TreeVisitor.collect( - new JavaIsoVisitor() { - @Override - public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { - if (isSetUpMethod(md)) { - return SearchResult.found(md); - } - return super.visitMethodDeclaration(md, ctx); - } - }, - classDecl, - new HashSet<>() - ) - .stream() - .filter(J.MethodDeclaration.class::isInstance) - .map(J.MethodDeclaration.class::cast) - .collect(Collectors.toSet()); - if (mds.isEmpty()) { - return super.visitClassDeclaration(classDecl, ctx); - } - - final J.ClassDeclaration[] cd = {classDecl}; - mds.forEach(md -> md.getBody() - .getStatements() - .stream() - .filter(this::isMockUpStatement) - .map(J.NewClass.class::cast) - .forEach(newClass -> { - JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); - String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); - - Map mockedMethods = getMockUpMethods(newClass); - - // Add mockStatic field - if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedStatic #{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_STATIC_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); - J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); - } - // Add mockConstruction field - if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedConstruction #{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_CONSTRUCTION_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); - J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); - } - })); - - cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDown", - "@org.junit.After", - "@After", - "junit-4.13", - "org.junit.After", - ""); - - return super.visitClassDeclaration(cd[0], ctx); - } - - @Override - public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl, ExecutionContext ctx) { - J.MethodDeclaration md = methodDecl; - if (md.getBody() == null) { - return md; - } - if (isTearDownMethod(md)) { - for (J.Identifier id : tearDownMocks.values()) { - String type = TypeUtils.asFullyQualified(id.getFieldType().getType()).getFullyQualifiedName(); - md = JavaTemplate.builder("#{any(" + type + ")}.closeOnDemand();") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(md), - md.getBody().getCoordinates().lastStatement(), - id - ); - } - return md; - } - - boolean isBeforeTest = isSetUpMethod(md); - List varDeclarationInTry = new ArrayList<>(); - List mockStaticMethodInTry = new ArrayList<>(); - List mockConstructionMethodInTry = new ArrayList<>(); - List encloseStatements = new ArrayList<>(); - List residualStatements = new ArrayList<>(); - for (Statement statement : md.getBody().getStatements()) { - if (!isMockUpStatement(statement)) { - encloseStatements.add(statement); - continue; - } - - J.NewClass newClass = (J.NewClass) statement; - - // Only discard @Mock method declarations - residualStatements.addAll(newClass - .getBody() - .getStatements() - .stream() - .filter(s -> { - if (s instanceof J.MethodDeclaration) { - return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); - } - return true; - }) - .collect(toList()) - ); - - JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); - String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); - - Map mockedMethods = getMockUpMethods(newClass); - - // Add MockStatic - Map mockedPublicStaticMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); - if (!mockedPublicStaticMethods.isEmpty()) { - if (isBeforeTest) { - String tpl = getMockStaticDeclarationInBefore(className) + - getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); - - md = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) - ); - } else { - varDeclarationInTry.add(getMockStaticDeclarationInTry(className)); - mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods)); - } - - maybeAddImport(MOCKITO_STATIC_IMPORT); - } - - // Add MockConstruction - Map mockedPublicMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> !m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); - if (!mockedPublicMethods.isEmpty()) { - if (isBeforeTest) { - String tpl = getMockConstructionMethods(className, mockedPublicMethods) + - getMockConstructionDeclarationInBefore(className); - - md = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) - .build() - .apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) - ); - } else { - varDeclarationInTry.add(getMockConstructionDeclarationInTry(className)); - mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockedPublicMethods)); - } - - maybeAddImport(MOCKITO_CONSTRUCTION_IMPORT); - maybeAddImport("org.mockito.Answers", "CALLS_REAL_METHODS", false); - maybeAddImport("org.mockito.AdditionalAnswers", "delegatesTo", false); - } - - List statements = md.getBody().getStatements(); - statements.remove(statement); - md = md.withBody(md.getBody().withStatements(statements)); - } - - if (!varDeclarationInTry.isEmpty()) { - String tpl = String.join("", mockConstructionMethodInTry) + - "try (" + - String.join(";", varDeclarationInTry) + - ") {" + - String.join(";", mockStaticMethodInTry) + - "}"; - - J.MethodDeclaration residualMd = md.withBody(md.getBody().withStatements(residualStatements)); - residualMd = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) - .build() - .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); - - List mdStatements = residualMd.getBody().getStatements(); - J.Try try_ = (J.Try) mdStatements.get(mdStatements.size() - 1); - - List tryStatements = try_.getBody().getStatements(); - tryStatements.addAll(encloseStatements); - try_ = try_.withBody(try_.getBody().withStatements(tryStatements)); - - mdStatements.set(mdStatements.size() - 1, try_); - md = md.withBody(residualMd.getBody().withStatements(mdStatements)); - } - - maybeAddImport(MOCKITO_ALL_IMPORT.replace(".*", ""), "*", false); - maybeRemoveImport(JMOCKIT_MOCK_IMPORT); - maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); - return maybeAutoFormat(methodDecl, md, ctx); - } } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 2aa8f3693..c0f784dac 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -24,13 +24,13 @@ import org.openrewrite.test.TypeValidation; import static org.openrewrite.java.Assertions.java; -import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; +import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.*; class JMockitMockUpToMockitoTest implements RewriteTest { @Override public void defaults(RecipeSpec spec) { - setParserSettings(spec, "jmockit-1.22", "junit-4.13.2"); + setParserSettings(spec, JMOCKIT_DEPENDENCY, JUNIT_4_DEPENDENCY); } @DocumentExample diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java index bc186bb48..75227e326 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java @@ -21,12 +21,9 @@ import org.openrewrite.test.RewriteTest; import static org.openrewrite.java.Assertions.java; -import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.MOCKITO_CORE_DEPENDENCY; -import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.setParserSettings; +import static org.openrewrite.java.testing.jmockit.JMockitTestUtils.*; class JMockitNonStrictExpectationsToMockitoTest implements RewriteTest { - - private static final String JUNIT_4_DEPENDENCY = "junit-4.13.2"; private static final String LEGACY_JMOCKIT_DEPENDENCY = "jmockit-1.22"; @Override diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitTestUtils.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitTestUtils.java index 0b21832ab..531dc1ccd 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitTestUtils.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitTestUtils.java @@ -23,6 +23,7 @@ public class JMockitTestUtils { static final String MOCKITO_CORE_DEPENDENCY = "mockito-core-3.12"; static final String JUNIT_5_JUPITER_DEPENDENCY = "junit-jupiter-api-5.9"; + static final String JUNIT_4_DEPENDENCY = "junit-4.13.2"; static final String JMOCKIT_DEPENDENCY = "jmockit-1.49"; static final String MOCKITO_JUPITER_DEPENDENCY = "mockito-junit-jupiter-3.12"; From 0dc4d1070d49adae20dbafeddd64136974fb1775 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Tue, 15 Oct 2024 11:09:32 +0800 Subject: [PATCH 36/48] Resolve deprecated print() --- .../java/testing/jmockit/JMockitMockUpToMockito.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 96462c216..7eae37d50 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -383,7 +383,7 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations boolean hasReturn = false; for (Statement s : md.getBody().getStatements()) { hasReturn = hasReturn || s instanceof J.Return; - sb.append(s.print()).append(";"); + sb.append(s.print(getCursor())).append(";"); } // Avoid syntax error if (!hasReturn) { @@ -416,7 +416,7 @@ private String getMockStaticMethods(JavaType.Class clazz, String className, Map< // To generate predictable method order List keys = mockedMethods.keySet().stream() - .sorted(Comparator.comparing((J.MethodDeclaration::print))) + .sorted(Comparator.comparing(o -> o.print(getCursor()))) .collect(toList()); for (J.MethodDeclaration m : keys) { tpl.append("mockStatic").append(className) @@ -470,7 +470,7 @@ private String getMockConstructionMethods(String className, Map o.print(getCursor()))) .forEach(m -> tpl.append("doAnswer(invocation -> {") .append(getAnswerBody(m)) .append("}).when(").append(MOCKITO_MOCK_PREFIX).append(className).append(").").append(m.getSimpleName()).append("(") From 1e5b4654c76bf38d4cd3ee6938ef8af5a6d98b9d Mon Sep 17 00:00:00 2001 From: SiBorea Date: Tue, 15 Oct 2024 11:16:22 +0800 Subject: [PATCH 37/48] Utilize LambdaBlockToExpression --- .../jmockit/JMockitMockUpToMockito.java | 3 ++ .../jmockit/JMockitMockUpToMockitoTest.java | 32 +++++-------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 7eae37d50..6bcbc9616 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -23,6 +23,7 @@ import org.openrewrite.java.search.UsesType; import org.openrewrite.java.tree.*; import org.openrewrite.marker.SearchResult; +import org.openrewrite.staticanalysis.LambdaBlockToExpression; import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; import java.lang.reflect.Method; @@ -308,6 +309,8 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl maybeAddImport(MOCKITO_ALL_IMPORT.replace(".*", ""), "*", false); maybeRemoveImport(JMOCKIT_MOCK_IMPORT); maybeRemoveImport(JMOCKIT_MOCKUP_IMPORT); + + doAfterVisit(new LambdaBlockToExpression().getVisitor()); return maybeAutoFormat(methodDecl, md, ctx); } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index c0f784dac..474763541 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -86,12 +86,8 @@ public class MockUpTest { @Test public void test() { try (MockedStatic mockStaticMyClazz = mockStatic(MyClazz.class)) { - mockStaticMyClazz.when(() -> MyClazz.staticMethod()).thenAnswer(invocation -> { - return 1024; - }); - mockStaticMyClazz.when(() -> MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> { - return 128; - }); + mockStaticMyClazz.when(() -> MyClazz.staticMethod()).thenAnswer(invocation -> 1024); + mockStaticMyClazz.when(() -> MyClazz.staticMethod(anyInt())).thenAnswer(invocation -> 128); assertEquals(1024, MyClazz.staticMethod()); assertEquals(128, MyClazz.staticMethod(0)); } @@ -198,17 +194,13 @@ public class MockUpTest { @Test public void test() { Foo mockFoo = mock(Foo.class, CALLS_REAL_METHODS); - doAnswer(invocation -> { - return "FOO"; - }).when(mockFoo).getMsg(); + doAnswer(invocation -> "FOO").when(mockFoo).getMsg(); doAnswer(invocation -> { String echo = invocation.getArgument(0); return "FOO" + echo; }).when(mockFoo).getMsg(nullable(String.class)); Bar mockBar = mock(Bar.class, CALLS_REAL_METHODS); - doAnswer(invocation -> { - return "BAR"; - }).when(mockBar).getMsg(); + doAnswer(invocation -> "BAR").when(mockBar).getMsg(); doAnswer(invocation -> { String echo = invocation.getArgument(0); return "BAR" + echo; @@ -279,9 +271,7 @@ public class MockUpTest { public void test() { final String msg = "newMsg"; MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); - doAnswer(invocation -> { - return msg; - }).when(mockMyClazz).getMsg(); + doAnswer(invocation -> msg).when(mockMyClazz).getMsg(); try (MockedConstruction mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz))) { // Should ignore the newClass statement @@ -469,9 +459,7 @@ public class MockUpTest { @Before public void setUp() { MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); - doAnswer(invocation -> { - return "mockMsg"; - }).when(mockMyClazz).getMsg(); + doAnswer(invocation -> "mockMsg").when(mockMyClazz).getMsg(); mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz)); } @@ -563,14 +551,10 @@ public class MockUpTest { @Before public void setUp() { MyClazz mockMyClazz = mock(MyClazz.class, CALLS_REAL_METHODS); - doAnswer(invocation -> { - return "mockMsg"; - }).when(mockMyClazz).getMsg(); + doAnswer(invocation -> "mockMsg").when(mockMyClazz).getMsg(); mockConsMyClazz = mockConstructionWithAnswer(MyClazz.class, delegatesTo(mockMyClazz)); mockStaticMyClazz = mockStatic(MyClazz.class); - mockStaticMyClazz.when(() -> MyClazz.getStaticMsg()).thenAnswer(invocation -> { - return "mockStaticMsg"; - }); + mockStaticMyClazz.when(() -> MyClazz.getStaticMsg()).thenAnswer(invocation -> "mockStaticMsg"); } @After From b4f1e0ac2268bf15a18362b7289c251ce180625d Mon Sep 17 00:00:00 2001 From: SiBorea Date: Tue, 15 Oct 2024 11:26:42 +0800 Subject: [PATCH 38/48] Make constants --- .../jmockit/JMockitMockUpToMockito.java | 272 +++++++++--------- 1 file changed, 138 insertions(+), 134 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 6bcbc9616..fcdfa8f2c 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,12 +15,18 @@ */ package org.openrewrite.java.testing.jmockit; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; import lombok.SneakyThrows; import org.openrewrite.*; import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.UsesType; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; +import static org.openrewrite.java.tree.Flag.Private; +import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.*; import org.openrewrite.marker.SearchResult; import org.openrewrite.staticanalysis.LambdaBlockToExpression; @@ -30,13 +36,6 @@ import java.util.*; import java.util.stream.Collectors; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toMap; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; -import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; -import static org.openrewrite.java.tree.Flag.Private; -import static org.openrewrite.java.tree.Flag.Static; - public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_CLASSPATH = "mockito-core-5"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; @@ -50,6 +49,11 @@ public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_CONSTRUCTION_PREFIX = "mockCons"; private static final String MOCKITO_CONSTRUCTION_IMPORT = "org.mockito.MockedConstruction"; + private static final String TEARDOWN_METHOD_ANNOTATION_SIGNATURE = "@org.junit.After"; + private static final String TEARDOWN_METHOD_ANNOTATION_TO_ADD = "@After"; + private static final String TEARDOWN_CLASSPATH_RESOURCE = "junit-4.13"; + private static final String TEARDOWN_IMPORT_TO_ADD = "org.junit.After"; + @Override public String getDisplayName() { return "Rewrite JMockit MockUp to Mockito statements"; @@ -76,79 +80,79 @@ private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor mds = TreeVisitor.collect( - new JavaIsoVisitor() { - @Override - public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { - if (isSetUpMethod(md)) { - return SearchResult.found(md); - } - return super.visitMethodDeclaration(md, ctx); - } - }, - classDecl, - new HashSet<>() - ) - .stream() - .filter(J.MethodDeclaration.class::isInstance) - .map(J.MethodDeclaration.class::cast) - .collect(Collectors.toSet()); + new JavaIsoVisitor() { + @Override + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { + if (isSetUpMethod(md)) { + return SearchResult.found(md); + } + return super.visitMethodDeclaration(md, ctx); + } + }, + classDecl, + new HashSet<>() + ) + .stream() + .filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast) + .collect(Collectors.toSet()); if (mds.isEmpty()) { return super.visitClassDeclaration(classDecl, ctx); } final J.ClassDeclaration[] cd = {classDecl}; mds.forEach(md -> md.getBody() - .getStatements() - .stream() - .filter(this::isMockUpStatement) - .map(J.NewClass.class::cast) - .forEach(newClass -> { - String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); - - Map mockedMethods = getMockUpMethods(newClass); - - // Add mockStatic field - if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedStatic #{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_STATIC_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); - J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); - } - // Add mockConstruction field - if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedConstruction #{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_CONSTRUCTION_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); - J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); - } - })); + .getStatements() + .stream() + .filter(this::isMockUpStatement) + .map(J.NewClass.class::cast) + .forEach(newClass -> { + String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); + + Map mockedMethods = getMockUpMethods(newClass); + + // Add mockStatic field + if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedStatic #{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_STATIC_PREFIX + className + ); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); + } + // Add mockConstruction field + if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedConstruction #{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_CONSTRUCTION_PREFIX + className + ); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); + } + })); cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDown", - "@org.junit.After", - "@After", - "junit-4.13", - "org.junit.After", - ""); + TEARDOWN_METHOD_ANNOTATION_SIGNATURE, + TEARDOWN_METHOD_ANNOTATION_TO_ADD, + TEARDOWN_CLASSPATH_RESOURCE, + TEARDOWN_IMPORT_TO_ADD, + ""); return super.visitClassDeclaration(cd[0], ctx); } @@ -163,16 +167,16 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl for (J.Identifier id : tearDownMocks.values()) { String type = TypeUtils.asFullyQualified(id.getFieldType().getType()).getFullyQualifiedName(); md = JavaTemplate.builder("#{any(" + type + ")}.closeOnDemand();") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(md), - md.getBody().getCoordinates().lastStatement(), - id - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + md.getBody().getCoordinates().lastStatement(), + id + ); } return md; } @@ -193,17 +197,17 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl // Only discard @Mock method declarations residualStatements.addAll(newClass - .getBody() - .getStatements() - .stream() - .filter(s -> { - if (s instanceof J.MethodDeclaration) { - return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); - } - return true; - }) - .collect(toList()) + .getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); + } + return true; + }) + .collect(toList()) ); JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); @@ -213,26 +217,26 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl // Add MockStatic Map mockedPublicStaticMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .entrySet() + .stream() + .filter(m -> m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicStaticMethods.isEmpty()) { if (isBeforeTest) { String tpl = getMockStaticDeclarationInBefore(className) + - getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); + getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); md = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) + ); } else { varDeclarationInTry.add(getMockStaticDeclarationInTry(className)); mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods)); @@ -243,26 +247,26 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl // Add MockConstruction Map mockedPublicMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> !m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .entrySet() + .stream() + .filter(m -> !m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicMethods.isEmpty()) { if (isBeforeTest) { String tpl = getMockConstructionMethods(className, mockedPublicMethods) + - getMockConstructionDeclarationInBefore(className); + getMockConstructionDeclarationInBefore(className); md = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) - .build() - .apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) + ); } else { varDeclarationInTry.add(getMockConstructionDeclarationInTry(className)); mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockedPublicMethods)); @@ -280,20 +284,20 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl if (!varDeclarationInTry.isEmpty()) { String tpl = String.join("", mockConstructionMethodInTry) + - "try (" + - String.join(";", varDeclarationInTry) + - ") {" + - String.join(";", mockStaticMethodInTry) + - "}"; + "try (" + + String.join(";", varDeclarationInTry) + + ") {" + + String.join(";", mockStaticMethodInTry) + + "}"; J.MethodDeclaration residualMd = md.withBody(md.getBody().withStatements(residualStatements)); residualMd = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) - .build() - .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); List mdStatements = residualMd.getBody().getStatements(); J.Try try_ = (J.Try) mdStatements.get(mdStatements.size() - 1); From 750a45b48c13c3bfa242b4ff07f021fb9beed5be Mon Sep 17 00:00:00 2001 From: SiBorea <108953913+SiBorea@users.noreply.github.com> Date: Thu, 24 Oct 2024 10:23:57 +0800 Subject: [PATCH 39/48] Apply bot suggestions Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../testing/jmockit/JMockitMockUpToMockito.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index fcdfa8f2c..c96917adf 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,13 +15,7 @@ */ package org.openrewrite.java.testing.jmockit; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toMap; import lombok.SneakyThrows; -import org.openrewrite.*; -import org.openrewrite.java.JavaIsoVisitor; -import org.openrewrite.java.JavaParser; -import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.UsesType; import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; @@ -36,6 +30,13 @@ import java.util.*; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; +import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; +import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; +import static org.openrewrite.java.tree.Flag.Private; +import static org.openrewrite.java.tree.Flag.Static; + public class JMockitMockUpToMockito extends Recipe { private static final String MOCKITO_CLASSPATH = "mockito-core-5"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; From 84638a3914914f355b224a39e033e4dd25960a24 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 27 Oct 2024 21:02:55 +0100 Subject: [PATCH 40/48] Apply formatter and fix compilation --- .../jmockit/JMockitMockUpToMockito.java | 432 +++++++++--------- .../java/testing/mockito/MockitoUtils.java | 42 +- .../PowerMockitoMockStaticToMockito.java | 174 +++---- .../jmockit/JMockitMockUpToMockitoTest.java | 1 - ...kitNonStrictExpectationsToMockitoTest.java | 250 +++++----- 5 files changed, 449 insertions(+), 450 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index c96917adf..03dcbb3f9 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -16,11 +16,11 @@ package org.openrewrite.java.testing.jmockit; import lombok.SneakyThrows; +import org.openrewrite.*; +import org.openrewrite.java.JavaIsoVisitor; +import org.openrewrite.java.JavaParser; +import org.openrewrite.java.JavaTemplate; import org.openrewrite.java.search.UsesType; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; -import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; -import static org.openrewrite.java.tree.Flag.Private; -import static org.openrewrite.java.tree.Flag.Static; import org.openrewrite.java.tree.*; import org.openrewrite.marker.SearchResult; import org.openrewrite.staticanalysis.LambdaBlockToExpression; @@ -81,79 +81,79 @@ private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor mds = TreeVisitor.collect( - new JavaIsoVisitor() { - @Override - public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { - if (isSetUpMethod(md)) { - return SearchResult.found(md); - } - return super.visitMethodDeclaration(md, ctx); - } - }, - classDecl, - new HashSet<>() - ) - .stream() - .filter(J.MethodDeclaration.class::isInstance) - .map(J.MethodDeclaration.class::cast) - .collect(Collectors.toSet()); + new JavaIsoVisitor() { + @Override + public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, ExecutionContext ctx) { + if (isSetUpMethod(md)) { + return SearchResult.found(md); + } + return super.visitMethodDeclaration(md, ctx); + } + }, + classDecl, + new HashSet<>() + ) + .stream() + .filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast) + .collect(Collectors.toSet()); if (mds.isEmpty()) { return super.visitClassDeclaration(classDecl, ctx); } final J.ClassDeclaration[] cd = {classDecl}; mds.forEach(md -> md.getBody() - .getStatements() - .stream() - .filter(this::isMockUpStatement) - .map(J.NewClass.class::cast) - .forEach(newClass -> { - String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); - - Map mockedMethods = getMockUpMethods(newClass); - - // Add mockStatic field - if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedStatic #{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_STATIC_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); - J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); - } - // Add mockConstruction field - if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedConstruction #{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), - MOCKITO_CONSTRUCTION_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); - J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); - tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); - } - })); + .getStatements() + .stream() + .filter(this::isMockUpStatement) + .map(J.NewClass.class::cast) + .forEach(newClass -> { + String className = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).toString(); + + Map mockedMethods = getMockUpMethods(newClass); + + // Add mockStatic field + if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedStatic #{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_STATIC_PREFIX + className + ); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); + } + // Add mockConstruction field + if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { + cd[0] = JavaTemplate.builder("private MockedConstruction #{};") + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(cd[0]), + cd[0].getBody().getCoordinates().firstStatement(), + MOCKITO_CONSTRUCTION_PREFIX + className + ); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); + tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); + } + })); cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDown", - TEARDOWN_METHOD_ANNOTATION_SIGNATURE, - TEARDOWN_METHOD_ANNOTATION_TO_ADD, - TEARDOWN_CLASSPATH_RESOURCE, - TEARDOWN_IMPORT_TO_ADD, - ""); + TEARDOWN_METHOD_ANNOTATION_SIGNATURE, + TEARDOWN_METHOD_ANNOTATION_TO_ADD, + TEARDOWN_CLASSPATH_RESOURCE, + TEARDOWN_IMPORT_TO_ADD, + ""); return super.visitClassDeclaration(cd[0], ctx); } @@ -168,16 +168,16 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl for (J.Identifier id : tearDownMocks.values()) { String type = TypeUtils.asFullyQualified(id.getFieldType().getType()).getFullyQualifiedName(); md = JavaTemplate.builder("#{any(" + type + ")}.closeOnDemand();") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(md), - md.getBody().getCoordinates().lastStatement(), - id - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + md.getBody().getCoordinates().lastStatement(), + id + ); } return md; } @@ -198,17 +198,17 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl // Only discard @Mock method declarations residualStatements.addAll(newClass - .getBody() - .getStatements() - .stream() - .filter(s -> { - if (s instanceof J.MethodDeclaration) { - return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() - .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); - } - return true; - }) - .collect(toList()) + .getBody() + .getStatements() + .stream() + .filter(s -> { + if (s instanceof J.MethodDeclaration) { + return ((J.MethodDeclaration) s).getLeadingAnnotations().stream() + .noneMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT)); + } + return true; + }) + .collect(toList()) ); JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); @@ -218,26 +218,26 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl // Add MockStatic Map mockedPublicStaticMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .entrySet() + .stream() + .filter(m -> m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicStaticMethods.isEmpty()) { if (isBeforeTest) { String tpl = getMockStaticDeclarationInBefore(className) + - getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); + getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods); md = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT) - .build() - .apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_STATIC_PREFIX + className) + ); } else { varDeclarationInTry.add(getMockStaticDeclarationInTry(className)); mockStaticMethodInTry.add(getMockStaticMethods((JavaType.Class) mockType, className, mockedPublicStaticMethods)); @@ -248,26 +248,26 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl // Add MockConstruction Map mockedPublicMethods = mockedMethods - .entrySet() - .stream() - .filter(m -> !m.getValue().getFlags().contains(Static)) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .entrySet() + .stream() + .filter(m -> !m.getValue().getFlags().contains(Static)) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); if (!mockedPublicMethods.isEmpty()) { if (isBeforeTest) { String tpl = getMockConstructionMethods(className, mockedPublicMethods) + - getMockConstructionDeclarationInBefore(className); + getMockConstructionDeclarationInBefore(className); md = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) - .build() - .apply( - updateCursor(md), - statement.getCoordinates().after(), - tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply( + updateCursor(md), + statement.getCoordinates().after(), + tearDownMocks.get(MOCKITO_CONSTRUCTION_PREFIX + className) + ); } else { varDeclarationInTry.add(getMockConstructionDeclarationInTry(className)); mockConstructionMethodInTry.add(getMockConstructionMethods(className, mockedPublicMethods)); @@ -285,20 +285,20 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration methodDecl if (!varDeclarationInTry.isEmpty()) { String tpl = String.join("", mockConstructionMethodInTry) + - "try (" + - String.join(";", varDeclarationInTry) + - ") {" + - String.join(";", mockStaticMethodInTry) + - "}"; + "try (" + + String.join(";", varDeclarationInTry) + + ") {" + + String.join(";", mockStaticMethodInTry) + + "}"; J.MethodDeclaration residualMd = md.withBody(md.getBody().withStatements(residualStatements)); residualMd = JavaTemplate.builder(tpl) - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) - .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) - .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) - .build() - .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) + .imports(MOCKITO_STATIC_IMPORT, MOCKITO_CONSTRUCTION_IMPORT) + .staticImports(MOCKITO_ALL_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_MATCHER_IMPORT, MOCKITO_DELEGATEANSWER_IMPORT) + .build() + .apply(updateCursor(residualMd), residualMd.getBody().getCoordinates().lastStatement()); List mdStatements = residualMd.getBody().getStatements(); J.Try try_ = (J.Try) mdStatements.get(mdStatements.size() - 1); @@ -350,8 +350,8 @@ private String getMatcher(JavaType s) { @SneakyThrows private String getAnswerBody(J.MethodDeclaration md) { Method findRefs = RemoveUnusedLocalVariables.class - .getDeclaredClasses()[0] - .getDeclaredMethod("findRhsReferences", J.class, J.Identifier.class); + .getDeclaredClasses()[0] + .getDeclaredMethod("findRhsReferences", J.class, J.Identifier.class); findRefs.setAccessible(true); Set usedVariables = new HashSet<>(); @@ -384,7 +384,7 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations String varName = vd.getVariables().get(0).getName().getSimpleName(); if (usedVariables.contains(varName)) { sb.append(className).append(" ").append(varName) - .append(" = invocation.getArgument(").append(i).append(");"); + .append(" = invocation.getArgument(").append(i).append(");"); } } @@ -402,21 +402,21 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations private String getCallRealMethod(JavaType.Method m) { return "(" + - m.getParameterTypes() - .stream() - .map(this::getMatcher) - .collect(Collectors.joining(", ")) + - ")).thenCallRealMethod();"; + m.getParameterTypes() + .stream() + .map(this::getMatcher) + .collect(Collectors.joining(", ")) + + ")).thenCallRealMethod();"; } private String getMockStaticDeclarationInBefore(String className) { return "#{any(" + MOCKITO_STATIC_IMPORT + ")}" + - " = mockStatic(" + className + ".class);"; + " = mockStatic(" + className + ".class);"; } private String getMockStaticDeclarationInTry(String className) { return "MockedStatic " + MOCKITO_STATIC_PREFIX + className + - " = mockStatic(" + className + ".class)"; + " = mockStatic(" + className + ".class)"; } private String getMockStaticMethods(JavaType.Class clazz, String className, Map mockedMethods) { @@ -424,122 +424,122 @@ private String getMockStaticMethods(JavaType.Class clazz, String className, Map< // To generate predictable method order List keys = mockedMethods.keySet().stream() - .sorted(Comparator.comparing(o -> o.print(getCursor()))) - .collect(toList()); + .sorted(Comparator.comparing(o -> o.print(getCursor()))) + .collect(toList()); for (J.MethodDeclaration m : keys) { tpl.append("mockStatic").append(className) - .append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("(") - .append(m.getParameters() - .stream() - .filter(J.VariableDeclarations.class::isInstance) - .map(J.VariableDeclarations.class::cast) - .map(J.VariableDeclarations::getType) - .map(this::getMatcher) - .collect(Collectors.joining(", ")) - ) - .append(")).thenAnswer(invocation -> {") - .append(getAnswerBody(m)) - .append("});"); + .append(".when(() -> ").append(className).append(".").append(m.getSimpleName()).append("(") + .append(m.getParameters() + .stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(J.VariableDeclarations.class::cast) + .map(J.VariableDeclarations::getType) + .map(this::getMatcher) + .collect(Collectors.joining(", ")) + ) + .append(")).thenAnswer(invocation -> {") + .append(getAnswerBody(m)) + .append("});"); } // Call real method for non private, static methods clazz.getMethods() - .stream() - .filter(m -> !m.isConstructor()) - .filter(m -> !m.getFlags().contains(Private)) - .filter(m -> m.getFlags().contains(Static)) - .filter(m -> !mockedMethods.containsValue(m)) - .forEach(m -> tpl.append("mockStatic").append(className).append(".when(() -> ") - .append(className).append(".").append(m.getName()) - .append(getCallRealMethod(m)) - .append(");") - ); + .stream() + .filter(m -> !m.isConstructor()) + .filter(m -> !m.getFlags().contains(Private)) + .filter(m -> m.getFlags().contains(Static)) + .filter(m -> !mockedMethods.containsValue(m)) + .forEach(m -> tpl.append("mockStatic").append(className).append(".when(() -> ") + .append(className).append(".").append(m.getName()) + .append(getCallRealMethod(m)) + .append(");") + ); return tpl.toString(); } private String getMockConstructionDeclarationInBefore(String className) { return "#{any(" + MOCKITO_CONSTRUCTION_IMPORT + ")}" + - " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + className + "));"; + " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + className + "));"; } private String getMockConstructionDeclarationInTry(String className) { return "MockedConstruction " + MOCKITO_CONSTRUCTION_PREFIX + className + - " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + className + "))"; + " = mockConstructionWithAnswer(" + className + ".class, delegatesTo(" + MOCKITO_MOCK_PREFIX + className + "))"; } private String getMockConstructionMethods(String className, Map mockedMethods) { StringBuilder tpl = new StringBuilder() - .append(className) - .append(" ") - .append(MOCKITO_MOCK_PREFIX).append(className) - .append(" = mock(").append(className).append(".class, CALLS_REAL_METHODS);"); + .append(className) + .append(" ") + .append(MOCKITO_MOCK_PREFIX).append(className) + .append(" = mock(").append(className).append(".class, CALLS_REAL_METHODS);"); mockedMethods - .keySet() - .stream() - .sorted(Comparator.comparing(o -> o.print(getCursor()))) - .forEach(m -> tpl.append("doAnswer(invocation -> {") - .append(getAnswerBody(m)) - .append("}).when(").append(MOCKITO_MOCK_PREFIX).append(className).append(").").append(m.getSimpleName()).append("(") - .append(m.getParameters() - .stream() - .filter(J.VariableDeclarations.class::isInstance) - .map(J.VariableDeclarations.class::cast) - .map(J.VariableDeclarations::getType) - .map(this::getMatcher) - .collect(Collectors.joining(", ")) - ) - .append(");")); + .keySet() + .stream() + .sorted(Comparator.comparing(o -> o.print(getCursor()))) + .forEach(m -> tpl.append("doAnswer(invocation -> {") + .append(getAnswerBody(m)) + .append("}).when(").append(MOCKITO_MOCK_PREFIX).append(className).append(").").append(m.getSimpleName()).append("(") + .append(m.getParameters() + .stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(J.VariableDeclarations.class::cast) + .map(J.VariableDeclarations::getType) + .map(this::getMatcher) + .collect(Collectors.joining(", ")) + ) + .append(");")); return tpl.toString(); } private boolean isMockUpStatement(Tree tree) { return tree instanceof J.NewClass && - ((J.NewClass) tree).getClazz() != null && - TypeUtils.isOfClassType(((J.NewClass) tree).getClazz().getType(), JMOCKIT_MOCKUP_IMPORT); + ((J.NewClass) tree).getClazz() != null && + TypeUtils.isOfClassType(((J.NewClass) tree).getClazz().getType(), JMOCKIT_MOCKUP_IMPORT); } private boolean isSetUpMethod(J.MethodDeclaration md) { return md - .getLeadingAnnotations() - .stream() - .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "org.junit.Before")); + .getLeadingAnnotations() + .stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "org.junit.Before")); } private boolean isTearDownMethod(J.MethodDeclaration md) { return md - .getLeadingAnnotations() - .stream() - .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "org.junit.After")); + .getLeadingAnnotations() + .stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), "org.junit.After")); } private Map getMockUpMethods(J.NewClass newClass) { JavaType mockType = ((J.ParameterizedType) newClass.getClazz()).getTypeParameters().get(0).getType(); return newClass.getBody() - .getStatements() - .stream() - .filter(J.MethodDeclaration.class::isInstance) - .map(J.MethodDeclaration.class::cast) - .filter(s -> s.getLeadingAnnotations().stream() - .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT))) - .map(method -> { - Optional found = TypeUtils.findDeclaredMethod( - TypeUtils.asFullyQualified(mockType), - method.getSimpleName(), - method.getMethodType().getParameterTypes() - ); - if (found.isPresent()) { - JavaType.Method m = found.get(); - if (!m.getFlags().contains(Private)) { - return new AbstractMap.SimpleEntry<>(method, found.get()); - } - } - return null; - }) - .filter(Objects::nonNull) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .getStatements() + .stream() + .filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast) + .filter(s -> s.getLeadingAnnotations().stream() + .anyMatch(o -> TypeUtils.isOfClassType(o.getType(), JMOCKIT_MOCK_IMPORT))) + .map(method -> { + Optional found = TypeUtils.findDeclaredMethod( + TypeUtils.asFullyQualified(mockType), + method.getSimpleName(), + method.getMethodType().getParameterTypes() + ); + if (found.isPresent()) { + JavaType.Method m = found.get(); + if (!m.getFlags().contains(Private)) { + return new AbstractMap.SimpleEntry<>(method, found.get()); + } + } + return null; + }) + .filter(Objects::nonNull) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); } } } diff --git a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java index 52b22fdfa..bf72f45cd 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java @@ -30,36 +30,36 @@ public class MockitoUtils { public static J.ClassDeclaration maybeAddMethodWithAnnotation( - JavaVisitor visitor, - J.ClassDeclaration classDecl, - ExecutionContext ctx, - String methodName, - String methodAnnotationSignature, - String methodAnnotationToAdd, - String additionalClasspathResource, - String importToAdd, - String methodAnnotationParameters + JavaVisitor visitor, + J.ClassDeclaration classDecl, + ExecutionContext ctx, + String methodName, + String methodAnnotationSignature, + String methodAnnotationToAdd, + String additionalClasspathResource, + String importToAdd, + String methodAnnotationParameters ) { if (hasMethodWithAnnotation(classDecl, new AnnotationMatcher(methodAnnotationSignature))) { return classDecl; } J.MethodDeclaration firstTestMethod = getFirstTestMethod( - classDecl.getBody().getStatements().stream().filter(J.MethodDeclaration.class::isInstance) - .map(J.MethodDeclaration.class::cast).collect(Collectors.toList())); + classDecl.getBody().getStatements().stream().filter(J.MethodDeclaration.class::isInstance) + .map(J.MethodDeclaration.class::cast).collect(Collectors.toList())); visitor.maybeAddImport(importToAdd); return JavaTemplate.builder(methodAnnotationToAdd + methodAnnotationParameters + " public void " + methodName + "() {}") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, additionalClasspathResource)) - .imports(importToAdd) - .build() - .apply( - new Cursor(visitor.getCursor().getParentOrThrow(), classDecl), - (firstTestMethod != null) ? - firstTestMethod.getCoordinates().before() : - classDecl.getBody().getCoordinates().lastStatement() - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, additionalClasspathResource)) + .imports(importToAdd) + .build() + .apply( + new Cursor(visitor.getCursor().getParentOrThrow(), classDecl), + (firstTestMethod != null) ? + firstTestMethod.getCoordinates().before() : + classDecl.getBody().getCoordinates().lastStatement() + ); } private static boolean hasMethodWithAnnotation(J.ClassDeclaration classDecl, AnnotationMatcher annotationMatcher) { 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 4305eabc1..1d68a6ac5 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java @@ -38,17 +38,17 @@ public String getDisplayName() { @Override public String getDescription() { return "Replaces `PowerMockito.mockStatic()` by `Mockito.mockStatic()`. Removes " + - "the `@PrepareForTest` annotation."; + "the `@PrepareForTest` annotation."; } @Override public TreeVisitor getVisitor() { return Preconditions.check( - Preconditions.or( - new UsesType<>("org.powermock..*", false), - new UsesType<>("org.mockito..*", false) - ), - new PowerMockitoToMockitoVisitor() + Preconditions.or( + new UsesType<>("org.powermock..*", false), + new UsesType<>("org.mockito..*", false) + ), + new PowerMockitoToMockitoVisitor() ); } @@ -63,9 +63,9 @@ private static class PowerMockitoToMockitoVisitor extends JavaVisitor testAnnotation = methodDeclarationCursor - .getLeadingAnnotations().stream() - .filter(annotation -> annotation.getSimpleName().equals("Test")).findFirst(); + .getLeadingAnnotations().stream() + .filter(annotation -> annotation.getSimpleName().equals("Test")).findFirst(); testAnnotation.ifPresent( - ta -> { - if (ta.getArguments() != null) { - getCursor().putMessageOnFirstEnclosing(J.ClassDeclaration.class, TEST_GROUP, ta.getArguments()); - } - }); + ta -> { + if (ta.getArguments() != null) { + getCursor().putMessageOnFirstEnclosing(J.ClassDeclaration.class, TEST_GROUP, ta.getArguments()); + } + }); } } } @@ -330,15 +330,15 @@ private J.MethodInvocation modifyDynamicWhenMethodInvocation(J.MethodInvocation arguments.remove(0); String stringOfArguments = arguments.stream().map(Object::toString).collect(Collectors.joining(",")); method = JavaTemplate.builder("() -> #{}.#{}(#{})") - .contextSensitive() - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), method), - method.getCoordinates().replaceArguments(), - declaringClassName, - Objects.requireNonNull(calledMethod.getValue()).toString(), - stringOfArguments - ); + .contextSensitive() + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), method), + method.getCoordinates().replaceArguments(), + declaringClassName, + Objects.requireNonNull(calledMethod.getValue()).toString(), + stringOfArguments + ); method = method.withSelect(mockedField); } return method; @@ -415,17 +415,17 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration continue; } classDecl = JavaTemplate.builder("private MockedStatic<#{}> " + MOCK_PREFIX + "#{};") - .contextSensitive() - .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) - .staticImports("org.mockito.Mockito.mockStatic") - .imports(MOCKED_STATIC) - .build() - .apply( - new Cursor(getCursor().getParentOrThrow(), classDecl), - classDecl.getBody().getCoordinates().firstStatement(), - classlessTypeName, - classlessTypeName.replace(".", "_") - ); + .contextSensitive() + .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, "mockito-core-3.12")) + .staticImports("org.mockito.Mockito.mockStatic") + .imports(MOCKED_STATIC) + .build() + .apply( + new Cursor(getCursor().getParentOrThrow(), classDecl), + classDecl.getBody().getCoordinates().firstStatement(), + classlessTypeName, + classlessTypeName.replace(".", "_") + ); J.VariableDeclarations mockField = (J.VariableDeclarations) classDecl.getBody().getStatements().get(0); mockedTypesIdentifiers.put(mockField.getVariables().get(0).getName(), mockedStaticClass); @@ -433,7 +433,7 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration getCursor().putMessage(MOCKED_TYPES_FIELDS, mockedTypesIdentifiers); maybeAutoFormat(classDecl, classDecl.withPrefix(classDecl.getPrefix(). - withWhitespace("")), classDecl.getName(), ctx, getCursor()); + withWhitespace("")), classDecl.getName(), ctx, getCursor()); maybeAddImport(MOCKED_STATIC); maybeAddImport("org.mockito.Mockito", "mockStatic"); return classDecl; @@ -442,8 +442,8 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration private J.ClassDeclaration maybeAddSetUpMethodBody(J.ClassDeclaration classDecl, ExecutionContext ctx) { String testGroupsAsString = getTestGroupsAsString(); return maybeAddMethodWithAnnotation(this, classDecl, ctx, "setUpStaticMocks", - setUpMethodAnnotationSignature, setUpMethodAnnotation, - additionalClasspathResource, setUpImportToAdd, testGroupsAsString); + setUpMethodAnnotationSignature, setUpMethodAnnotation, + additionalClasspathResource, setUpImportToAdd, testGroupsAsString); } private String getTestGroupsAsString() { @@ -451,8 +451,8 @@ private String getTestGroupsAsString() { String testGroupsAsString = ""; if (testGroups != null) { testGroupsAsString = "(" + - testGroups.stream().map(Object::toString).collect(Collectors.joining(",")) + - ")"; + testGroups.stream().map(Object::toString).collect(Collectors.joining(",")) + + ")"; } return testGroupsAsString; } @@ -460,20 +460,20 @@ private String getTestGroupsAsString() { private J.ClassDeclaration maybeAddTearDownMethodBody(J.ClassDeclaration classDecl, ExecutionContext ctx) { String testGroupsAsString = (getTestGroupsAsString().isEmpty()) ? tearDownMethodAnnotationParameters : getTestGroupsAsString(); return maybeAddMethodWithAnnotation(this, classDecl, ctx, "tearDownStaticMocks", - tearDownMethodAnnotationSignature, - tearDownMethodAnnotation, - additionalClasspathResource, tearDownImportToAdd, testGroupsAsString); + tearDownMethodAnnotationSignature, + tearDownMethodAnnotation, + additionalClasspathResource, tearDownImportToAdd, testGroupsAsString); } private J.MethodInvocation modifyWhenMethodInvocation(J.MethodInvocation whenMethod) { List methodArguments = whenMethod.getArguments(); List staticMethodInvocationsInArguments = methodArguments.stream() - .filter(J.MethodInvocation.class::isInstance).map(J.MethodInvocation.class::cast) - .filter(methodInvocation -> !MOCKITO_STATIC_METHOD_MATCHER.matches(methodInvocation)) - .filter(methodInvocation -> methodInvocation.getMethodType() != null) - .filter(methodInvocation -> methodInvocation.getMethodType().hasFlags(Flag.Static)) - .collect(Collectors.toList()); + .filter(J.MethodInvocation.class::isInstance).map(J.MethodInvocation.class::cast) + .filter(methodInvocation -> !MOCKITO_STATIC_METHOD_MATCHER.matches(methodInvocation)) + .filter(methodInvocation -> methodInvocation.getMethodType() != null) + .filter(methodInvocation -> methodInvocation.getMethodType().hasFlags(Flag.Static)) + .collect(Collectors.toList()); if (staticMethodInvocationsInArguments.size() == 1) { J.MethodInvocation staticMI = staticMethodInvocationsInArguments.get(0); Expression lambdaInvocation; @@ -485,19 +485,19 @@ private J.MethodInvocation modifyWhenMethodInvocation(J.MethodInvocation whenMet return whenMethod; } if (staticMI.getArguments().stream().map(Expression::getType) - .noneMatch(Objects::nonNull)) { + .noneMatch(Objects::nonNull)) { // If the method invocation has no arguments lambdaInvocation = JavaTemplate.builder(declaringClassName + "::" + staticMI.getSimpleName()) - .contextSensitive() - .build() - .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace()); + .contextSensitive() + .build() + .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace()); } else { JavaType.Method methodType = staticMI.getMethodType(); if (methodType != null) { lambdaInvocation = JavaTemplate.builder("() -> #{any()}") - .contextSensitive() - .build() - .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace(), staticMI); + .contextSensitive() + .build() + .apply(new Cursor(getCursor(), staticMI), staticMI.getCoordinates().replace(), staticMI); } else { // do nothing lambdaInvocation = staticMI; @@ -522,18 +522,18 @@ private J.MethodInvocation modifyWhenMethodInvocation(J.MethodInvocation whenMet private J.@Nullable Identifier getFieldIdentifier(String fieldName) { return getMockedTypesFields().keySet().stream() - .filter(identifier -> identifier.getSimpleName().equals(fieldName)).findFirst() - .orElseGet(() -> { - J.ClassDeclaration cd = getCursor().dropParentUntil(J.ClassDeclaration.class::isInstance).getValue(); - return cd.getBody().getStatements().stream() - .filter(J.VariableDeclarations.class::isInstance) - .map(variableDeclarations -> ((J.VariableDeclarations) variableDeclarations).getVariables()) - .flatMap(Collection::stream) - .filter(namedVariable -> namedVariable.getSimpleName().equals(fieldName)) - .map(J.VariableDeclarations.NamedVariable::getName) - .findFirst() - .orElse(null); - }); + .filter(identifier -> identifier.getSimpleName().equals(fieldName)).findFirst() + .orElseGet(() -> { + J.ClassDeclaration cd = getCursor().dropParentUntil(J.ClassDeclaration.class::isInstance).getValue(); + return cd.getBody().getStatements().stream() + .filter(J.VariableDeclarations.class::isInstance) + .map(variableDeclarations -> ((J.VariableDeclarations) variableDeclarations).getVariables()) + .flatMap(Collection::stream) + .filter(namedVariable -> namedVariable.getSimpleName().equals(fieldName)) + .map(J.VariableDeclarations.NamedVariable::getName) + .findFirst() + .orElse(null); + }); } } } diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 474763541..6fe6213b1 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; - import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; import org.openrewrite.test.SourceSpec; diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java index 75227e326..463746a26 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitNonStrictExpectationsToMockitoTest.java @@ -50,14 +50,14 @@ public String getSomeField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -71,16 +71,16 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertNull; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeField()).thenReturn(null); assertNull(myObject.getSomeField()); @@ -110,14 +110,14 @@ public int getSomeField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -136,16 +136,16 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeField()).thenReturn(10); assertEquals(10, myObject.getSomeField()); @@ -177,14 +177,14 @@ public String getSomeField(String s) { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField(anyString); @@ -198,15 +198,15 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeField(anyString())).thenReturn("foo"); assertEquals("foo", myObject.getSomeField("bar")); @@ -236,16 +236,16 @@ public String getSomeField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + String expected = "expected"; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -259,18 +259,18 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + String expected = "expected"; - + void test() { lenient().when(myObject.getSomeField()).thenReturn(expected); assertEquals(expected, myObject.getSomeField()); @@ -300,14 +300,14 @@ public Object getSomeField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertNotNull; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -321,16 +321,16 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeField()).thenReturn(new Object()); assertNotNull(myObject.getSomeField()); @@ -360,12 +360,12 @@ public String getSomeField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() throws RuntimeException { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -379,15 +379,15 @@ void test() throws RuntimeException { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() throws RuntimeException { lenient().when(myObject.getSomeField()).thenThrow(new RuntimeException()); myObject.getSomeField(); @@ -417,14 +417,14 @@ public String getSomeField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() throws RuntimeException { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -439,16 +439,16 @@ void test() throws RuntimeException { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() throws RuntimeException { lenient().when(myObject.getSomeField()).thenReturn("foo", "bar"); assertEquals("foo", myObject.getSomeField()); @@ -467,7 +467,7 @@ void whenClassArgumentMatcher() { java( """ import java.util.List; - + class MyObject { public String getSomeField(List input) { return "X"; @@ -482,19 +482,19 @@ public String getSomeOtherField(Object input) { """ import java.util.ArrayList; import java.util.List; - + import mockit.NonStrictExpectations; import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField((List) any); @@ -510,19 +510,19 @@ void test() { """ import java.util.ArrayList; import java.util.List; - + import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertNull; import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeField(anyList())).thenReturn(null); lenient().when(myObject.getSomeOtherField(any(Object.class))).thenReturn(null); @@ -542,7 +542,7 @@ void whenNoArguments() { java( """ import java.util.List; - + class MyObject { public String getSomeField() { return "X"; @@ -554,19 +554,19 @@ public String getSomeField() { """ import java.util.ArrayList; import java.util.List; - + import mockit.NonStrictExpectations; import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeField(); @@ -579,20 +579,20 @@ void test() { """ import java.util.ArrayList; import java.util.List; - + import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertNull; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeField()).thenReturn(null); assertNull(myObject.getSomeField()); @@ -611,7 +611,7 @@ void whenMixedArgumentMatcher() { java( """ import java.util.List; - + class MyObject { public String getSomeField(String s, String s2, String s3, long l1) { return "X"; @@ -623,19 +623,19 @@ public String getSomeField(String s, String s2, String s3, long l1) { """ import java.util.ArrayList; import java.util.List; - + import mockit.NonStrictExpectations; import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { String bazz = "bazz"; new NonStrictExpectations() {{ @@ -649,19 +649,19 @@ void test() { """ import java.util.ArrayList; import java.util.List; - + import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertNull; import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { String bazz = "bazz"; lenient().when(myObject.getSomeField(eq("foo"), anyString(), eq(bazz), eq(10L))).thenReturn(null); @@ -680,7 +680,7 @@ void whenSetupStatements() { java( """ class MyObject { - + public String getSomeField(String s) { return "X"; } @@ -696,26 +696,26 @@ public String getString() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { String a = "a"; String s = "s"; - + new NonStrictExpectations() {{ myObject.getSomeField(anyString); result = s; - + myObject.getString(); result = a; }}; - + assertEquals("s", myObject.getSomeField("foo")); assertEquals("a", myObject.getString()); } @@ -725,21 +725,21 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { String a = "a"; String s = "s"; lenient().when(myObject.getSomeField(anyString())).thenReturn(s); lenient().when(myObject.getString()).thenReturn(a); - + assertEquals("s", myObject.getSomeField("foo")); assertEquals("a", myObject.getString()); } @@ -768,14 +768,14 @@ public String getSomeField(String s) { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { String a = "a"; new NonStrictExpectations() {{ @@ -784,7 +784,7 @@ void test() { String b = "b"; result = s; }}; - + assertEquals("s", myObject.getSomeField("foo")); } } @@ -793,21 +793,21 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { String a = "a"; String s = "s"; String b = "b"; lenient().when(myObject.getSomeField(anyString())).thenReturn(s); - + assertEquals("s", myObject.getSomeField("foo")); } } @@ -835,14 +835,14 @@ public String getSomeField() { import mockit.Tested; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; - + @RunWith(JMockit.class) class MyTest { @Tested MyObject myObject; - + void test() { new NonStrictExpectations(myObject) {{ myObject.getSomeField(); @@ -856,16 +856,16 @@ void test() { import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @InjectMocks MyObject myObject; - + void test() { lenient().when(myObject.getSomeField()).thenReturn("foo"); assertEquals("foo", myObject.getSomeField()); @@ -902,18 +902,18 @@ public void doSomething() {} import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked Object myObject; - + @Mocked MyObject myOtherObject; - + void test() { new NonStrictExpectations() {{ myObject.hashCode(); @@ -935,19 +935,19 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock Object myObject; - + @Mock MyObject myOtherObject; - + void test() { lenient().when(myObject.hashCode()).thenReturn(10); lenient().when(myOtherObject.getSomeObjectField()).thenReturn(null); @@ -982,15 +982,15 @@ public String getSomeStringField() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked MyObject myObject; - + void test() { new NonStrictExpectations() {{ myObject.getSomeStringField(); @@ -1009,17 +1009,17 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.when; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock MyObject myObject; - + void test() { lenient().when(myObject.getSomeStringField()).thenReturn("a"); assertEquals("a", myObject.getSomeStringField()); @@ -1042,15 +1042,15 @@ void whenNoResultsNoTimes() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; - + @RunWith(JMockit.class) class MyTest { @Mocked Object myObject; - + void test() { new NonStrictExpectations() {{ myObject.wait(anyLong); @@ -1063,15 +1063,15 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock Object myObject; - + void test() { myObject.wait(1L); } @@ -1091,12 +1091,12 @@ void whenTimes() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + @RunWith(JMockit.class) class MyTest { @Mocked Object myObject; - + void test() { new NonStrictExpectations() {{ myObject.wait(anyLong, anyInt); @@ -1112,14 +1112,14 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock Object myObject; - + void test() { myObject.wait(10L, 10); myObject.wait(10L, 10); @@ -1142,12 +1142,12 @@ void whenTimesAndResult() { import mockit.Mocked; import mockit.integration.junit4.JMockit; import org.junit.runner.RunWith; - + @RunWith(JMockit.class) class MyTest { @Mocked Object myObject; - + void test() { new NonStrictExpectations() {{ myObject.toString(); @@ -1163,14 +1163,14 @@ void test() { import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; - + import static org.mockito.Mockito.*; - + @RunWith(MockitoJUnitRunner.class) class MyTest { @Mock Object myObject; - + void test() { when(myObject.toString()).thenReturn("foo"); myObject.toString(); From 29ab5c438c163a035226ac36f784a86b1764f06f Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 27 Oct 2024 21:07:39 +0100 Subject: [PATCH 41/48] Place binary operators on the same line --- .../java/testing/jmockit/JMockitBlockRewriter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockRewriter.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockRewriter.java index db8b9631f..3856b476e 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockRewriter.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockRewriter.java @@ -109,8 +109,9 @@ J.Block rewriteMethodBody() { methodInvocationIdx++; methodInvocationsToRewrite.add(new ArrayList<>()); } - if (isFullVerifications() && uniqueMocks.stream().noneMatch(mock -> mock.getType().equals(mockObj.getType()) - && mock.getSimpleName().equals(mockObj.getSimpleName()))) { + if (isFullVerifications() && + uniqueMocks.stream().noneMatch(mock -> mock.getType().equals(mockObj.getType()) && + mock.getSimpleName().equals(mockObj.getSimpleName()))) { uniqueMocks.add(mockObj); } } From 1edb46de734eca2726d684fd7d2f62258542778b Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 27 Oct 2024 21:46:07 +0100 Subject: [PATCH 42/48] Add missing language hints --- .../java/testing/jmockit/JMockitMockUpToMockitoTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java index 6fe6213b1..49c9ed48b 100644 --- a/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java +++ b/src/test/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockitoTest.java @@ -411,6 +411,7 @@ public static void changeText(String text) { @Test void mockUpAtSetUpWithoutTearDownTest() { rewriteRun( + //language=java java( """ import org.junit.Before; @@ -486,6 +487,7 @@ public String getMsg() { @Test void mockUpAtSetUpWithTearDownTest() { rewriteRun( + //language=java java( """ import org.junit.Before; @@ -586,6 +588,7 @@ public static String getStaticMsg() { @Test void mockUpWithParamsTest() { rewriteRun( + //language=java java( """ import mockit.Mock; From fc89a166a8296d73546e886be3c1b8eef95e6f61 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 27 Oct 2024 21:46:37 +0100 Subject: [PATCH 43/48] Adopt AtomicReference instead of array element zero --- .../jmockit/JMockitMockUpToMockito.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 03dcbb3f9..675bedd90 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -28,6 +28,7 @@ import java.lang.reflect.Method; import java.util.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; @@ -101,7 +102,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut return super.visitClassDeclaration(classDecl, ctx); } - final J.ClassDeclaration[] cd = {classDecl}; + AtomicReference cd = new AtomicReference<>(classDecl); mds.forEach(md -> md.getBody() .getStatements() .stream() @@ -114,48 +115,48 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut // Add mockStatic field if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedStatic #{};") + cd.set(JavaTemplate.builder("private MockedStatic #{};") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_STATIC_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) .build() .apply( - new Cursor(getCursor().getParentOrThrow(), cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), + new Cursor(getCursor().getParentOrThrow(), cd.get()), + cd.get().getBody().getCoordinates().firstStatement(), MOCKITO_STATIC_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + )); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd.get().getBody().getStatements().get(0); J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); } // Add mockConstruction field if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { - cd[0] = JavaTemplate.builder("private MockedConstruction #{};") + cd.set(JavaTemplate.builder("private MockedConstruction #{};") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_CONSTRUCTION_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) .build() .apply( - updateCursor(cd[0]), - cd[0].getBody().getCoordinates().firstStatement(), + updateCursor(cd.get()), + cd.get().getBody().getCoordinates().firstStatement(), MOCKITO_CONSTRUCTION_PREFIX + className - ); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd[0].getBody().getStatements().get(0); + )); + J.VariableDeclarations mockField = (J.VariableDeclarations) cd.get().getBody().getStatements().get(0); J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); } })); - cd[0] = maybeAddMethodWithAnnotation(this, cd[0], ctx, "tearDown", + cd.set(maybeAddMethodWithAnnotation(this, cd.get(), ctx, "tearDown", TEARDOWN_METHOD_ANNOTATION_SIGNATURE, TEARDOWN_METHOD_ANNOTATION_TO_ADD, TEARDOWN_CLASSPATH_RESOURCE, TEARDOWN_IMPORT_TO_ADD, - ""); + "")); - return super.visitClassDeclaration(cd[0], ctx); + return super.visitClassDeclaration(cd.get(), ctx); } @Override @@ -355,7 +356,7 @@ private String getAnswerBody(J.MethodDeclaration md) { findRefs.setAccessible(true); Set usedVariables = new HashSet<>(); - (new JavaIsoVisitor>() { + new JavaIsoVisitor>() { @Override @SneakyThrows public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations.NamedVariable variable, Set ctx) { @@ -366,7 +367,7 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations } return super.visitVariable(variable, ctx); } - }).visit(md, usedVariables); + }.visit(md, usedVariables); StringBuilder sb = new StringBuilder(); List parameters = md.getParameters(); @@ -390,7 +391,7 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations boolean hasReturn = false; for (Statement s : md.getBody().getStatements()) { - hasReturn = hasReturn || s instanceof J.Return; + hasReturn |= s instanceof J.Return; sb.append(s.print(getCursor())).append(";"); } // Avoid syntax error From 3e81e45e48e6a2acf09f3e87ebff7d1f346d16f6 Mon Sep 17 00:00:00 2001 From: SiBorea Date: Fri, 1 Nov 2024 23:41:25 +0800 Subject: [PATCH 44/48] Fix workflow build --- .../java/testing/jmockit/JMockitBlockType.java | 1 - .../java/testing/jmockit/JMockitMockUpToMockito.java | 9 +++++---- .../openrewrite/java/testing/mockito/MockitoUtils.java | 5 ++++- .../testing/mockito/PowerMockitoMockStaticToMockito.java | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java index 7b0cbb666..c691d97b6 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitBlockType.java @@ -22,7 +22,6 @@ @Getter enum JMockitBlockType { - MockUp, Expectations, NonStrictExpectations, Verifications, diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 675bedd90..ffe6edd21 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -33,17 +33,18 @@ import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toMap; -import static org.openrewrite.java.testing.jmockit.JMockitBlockType.MockUp; import static org.openrewrite.java.testing.mockito.MockitoUtils.maybeAddMethodWithAnnotation; import static org.openrewrite.java.tree.Flag.Private; import static org.openrewrite.java.tree.Flag.Static; public class JMockitMockUpToMockito extends Recipe { + private static final String USES_TYPE = "mockit.MockUp"; + private static final String MOCKITO_CLASSPATH = "mockito-core-5"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; private static final String MOCKITO_MATCHER_IMPORT = "org.mockito.ArgumentMatchers.*"; private static final String MOCKITO_DELEGATEANSWER_IMPORT = "org.mockito.AdditionalAnswers.delegatesTo"; - private static final String JMOCKIT_MOCKUP_IMPORT = MockUp.getFqn(); + private static final String JMOCKIT_MOCKUP_IMPORT = "mockit.MockUp"; private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; private static final String MOCKITO_STATIC_PREFIX = "mockStatic"; private static final String MOCKITO_STATIC_IMPORT = "org.mockito.MockedStatic"; @@ -68,7 +69,7 @@ public String getDescription() { @Override public TreeVisitor getVisitor() { - return Preconditions.check(new UsesType<>(MockUp.getFqn(), false), new JMockitMockUpToMockitoVisitor()); + return Preconditions.check(new UsesType<>(USES_TYPE, false), new JMockitMockUpToMockitoVisitor()); } private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { @@ -149,7 +150,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut } })); - cd.set(maybeAddMethodWithAnnotation(this, cd.get(), ctx, "tearDown", + cd.set(maybeAddMethodWithAnnotation(this, cd.get(), ctx, true, "tearDown", TEARDOWN_METHOD_ANNOTATION_SIGNATURE, TEARDOWN_METHOD_ANNOTATION_TO_ADD, TEARDOWN_CLASSPATH_RESOURCE, diff --git a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java index bf72f45cd..9ce930fb2 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java @@ -33,6 +33,7 @@ public static J.ClassDeclaration maybeAddMethodWithAnnotation( JavaVisitor visitor, J.ClassDeclaration classDecl, ExecutionContext ctx, + boolean isPublic, String methodName, String methodAnnotationSignature, String methodAnnotationToAdd, @@ -49,7 +50,9 @@ public static J.ClassDeclaration maybeAddMethodWithAnnotation( .map(J.MethodDeclaration.class::cast).collect(Collectors.toList())); visitor.maybeAddImport(importToAdd); - return JavaTemplate.builder(methodAnnotationToAdd + methodAnnotationParameters + " public void " + methodName + "() {}") + String tplStr = methodAnnotationToAdd + methodAnnotationParameters + + (isPublic ? " public" : "") + " void " + methodName + "() {}"; + return JavaTemplate.builder(tplStr) .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, additionalClasspathResource)) .imports(importToAdd) 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 161fe3801..dbc259a8e 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/PowerMockitoMockStaticToMockito.java @@ -441,7 +441,7 @@ private J.ClassDeclaration addFieldDeclarationForMockedTypes(J.ClassDeclaration private J.ClassDeclaration maybeAddSetUpMethodBody(J.ClassDeclaration classDecl, ExecutionContext ctx) { String testGroupsAsString = getTestGroupsAsString(); - return maybeAddMethodWithAnnotation(this, classDecl, ctx, "setUpStaticMocks", + return maybeAddMethodWithAnnotation(this, classDecl, ctx, false, "setUpStaticMocks", setUpMethodAnnotationSignature, setUpMethodAnnotation, additionalClasspathResource, setUpImportToAdd, testGroupsAsString); } @@ -459,7 +459,7 @@ private String getTestGroupsAsString() { private J.ClassDeclaration maybeAddTearDownMethodBody(J.ClassDeclaration classDecl, ExecutionContext ctx) { String testGroupsAsString = (getTestGroupsAsString().isEmpty()) ? tearDownMethodAnnotationParameters : getTestGroupsAsString(); - return maybeAddMethodWithAnnotation(this, classDecl, ctx, "tearDownStaticMocks", + return maybeAddMethodWithAnnotation(this, classDecl, ctx, false, "tearDownStaticMocks", tearDownMethodAnnotationSignature, tearDownMethodAnnotation, additionalClasspathResource, tearDownImportToAdd, testGroupsAsString); From 361cfc4c0fa7e83272c3e81e8a428afe2a95257e Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Fri, 1 Nov 2024 17:17:19 +0100 Subject: [PATCH 45/48] Update src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../org/openrewrite/java/testing/mockito/MockitoUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java index 9ce930fb2..ad143e008 100644 --- a/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java +++ b/src/main/java/org/openrewrite/java/testing/mockito/MockitoUtils.java @@ -50,8 +50,8 @@ public static J.ClassDeclaration maybeAddMethodWithAnnotation( .map(J.MethodDeclaration.class::cast).collect(Collectors.toList())); visitor.maybeAddImport(importToAdd); - String tplStr = methodAnnotationToAdd + methodAnnotationParameters - + (isPublic ? " public" : "") + " void " + methodName + "() {}"; + String tplStr = methodAnnotationToAdd + methodAnnotationParameters + + (isPublic ? " public" : "") + " void " + methodName + "() {}"; return JavaTemplate.builder(tplStr) .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, additionalClasspathResource)) From 5d81b5d3f469775e8446278edcae242a512e7096 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sat, 2 Nov 2024 12:16:44 +0100 Subject: [PATCH 46/48] Use mockito-core-3 instead of mockito-core-5 --- build.gradle.kts | 1 - .../jmockit/JMockitMockUpToMockito.java | 2 +- .../rewrite/classpath/mockito-core-5.13.0.jar | Bin 703990 -> 0 bytes 3 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 src/main/resources/META-INF/rewrite/classpath/mockito-core-5.13.0.jar diff --git a/build.gradle.kts b/build.gradle.kts index f0ad04331..71a58d2a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,7 +19,6 @@ recipeDependencies { parserClasspath("com.github.tomakehurst:wiremock-jre8:2.35.0") parserClasspath("org.mockito:mockito-all:1.10.19") parserClasspath("org.mockito:mockito-core:3.+") - parserClasspath("org.mockito:mockito-core:5.+") parserClasspath("org.jmockit:jmockit:1.49") parserClasspath("org.jmockit:jmockit:1.22") // last version with NonStrictExpectations parserClasspath("org.mockito:mockito-junit-jupiter:3.+") diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index ffe6edd21..76013470b 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -40,7 +40,7 @@ public class JMockitMockUpToMockito extends Recipe { private static final String USES_TYPE = "mockit.MockUp"; - private static final String MOCKITO_CLASSPATH = "mockito-core-5"; + private static final String MOCKITO_CLASSPATH = "mockito-core-3"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; private static final String MOCKITO_MATCHER_IMPORT = "org.mockito.ArgumentMatchers.*"; private static final String MOCKITO_DELEGATEANSWER_IMPORT = "org.mockito.AdditionalAnswers.delegatesTo"; diff --git a/src/main/resources/META-INF/rewrite/classpath/mockito-core-5.13.0.jar b/src/main/resources/META-INF/rewrite/classpath/mockito-core-5.13.0.jar deleted file mode 100644 index 986e38d5ca55b779eb01f12c20fdf90991eb6a63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703990 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 From a4ec8466fa5eec8f741f5649d703f2737e044b50 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sat, 2 Nov 2024 12:26:09 +0100 Subject: [PATCH 47/48] Inline constants used once; Explicitly name reference var --- .../jmockit/JMockitMockUpToMockito.java | 45 +++++++++---------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index 76013470b..c64f70687 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -38,25 +38,20 @@ import static org.openrewrite.java.tree.Flag.Static; public class JMockitMockUpToMockito extends Recipe { - private static final String USES_TYPE = "mockit.MockUp"; + + private static final String JMOCKIT_MOCKUP_IMPORT = "mockit.MockUp"; + private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; private static final String MOCKITO_CLASSPATH = "mockito-core-3"; private static final String MOCKITO_ALL_IMPORT = "org.mockito.Mockito.*"; private static final String MOCKITO_MATCHER_IMPORT = "org.mockito.ArgumentMatchers.*"; private static final String MOCKITO_DELEGATEANSWER_IMPORT = "org.mockito.AdditionalAnswers.delegatesTo"; - private static final String JMOCKIT_MOCKUP_IMPORT = "mockit.MockUp"; - private static final String JMOCKIT_MOCK_IMPORT = "mockit.Mock"; private static final String MOCKITO_STATIC_PREFIX = "mockStatic"; private static final String MOCKITO_STATIC_IMPORT = "org.mockito.MockedStatic"; private static final String MOCKITO_MOCK_PREFIX = "mock"; private static final String MOCKITO_CONSTRUCTION_PREFIX = "mockCons"; private static final String MOCKITO_CONSTRUCTION_IMPORT = "org.mockito.MockedConstruction"; - private static final String TEARDOWN_METHOD_ANNOTATION_SIGNATURE = "@org.junit.After"; - private static final String TEARDOWN_METHOD_ANNOTATION_TO_ADD = "@After"; - private static final String TEARDOWN_CLASSPATH_RESOURCE = "junit-4.13"; - private static final String TEARDOWN_IMPORT_TO_ADD = "org.junit.After"; - @Override public String getDisplayName() { return "Rewrite JMockit MockUp to Mockito statements"; @@ -69,7 +64,7 @@ public String getDescription() { @Override public TreeVisitor getVisitor() { - return Preconditions.check(new UsesType<>(USES_TYPE, false), new JMockitMockUpToMockitoVisitor()); + return Preconditions.check(new UsesType<>(JMOCKIT_MOCKUP_IMPORT, false), new JMockitMockUpToMockitoVisitor()); } private static class JMockitMockUpToMockitoVisitor extends JavaIsoVisitor { @@ -103,7 +98,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut return super.visitClassDeclaration(classDecl, ctx); } - AtomicReference cd = new AtomicReference<>(classDecl); + AtomicReference cdRef = new AtomicReference<>(classDecl); mds.forEach(md -> md.getBody() .getStatements() .stream() @@ -116,48 +111,48 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration md, Execut // Add mockStatic field if (mockedMethods.values().stream().anyMatch(m -> m.getFlags().contains(Static))) { - cd.set(JavaTemplate.builder("private MockedStatic #{};") + cdRef.set(JavaTemplate.builder("private MockedStatic #{};") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_STATIC_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) .build() .apply( - new Cursor(getCursor().getParentOrThrow(), cd.get()), - cd.get().getBody().getCoordinates().firstStatement(), + new Cursor(getCursor().getParentOrThrow(), cdRef.get()), + cdRef.get().getBody().getCoordinates().firstStatement(), MOCKITO_STATIC_PREFIX + className )); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd.get().getBody().getStatements().get(0); + J.VariableDeclarations mockField = (J.VariableDeclarations) cdRef.get().getBody().getStatements().get(0); J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); tearDownMocks.put(MOCKITO_STATIC_PREFIX + className, mockFieldId); } // Add mockConstruction field if (mockedMethods.values().stream().anyMatch(m -> !m.getFlags().contains(Static))) { - cd.set(JavaTemplate.builder("private MockedConstruction #{};") + cdRef.set(JavaTemplate.builder("private MockedConstruction #{};") .contextSensitive() .javaParser(JavaParser.fromJavaVersion().classpathFromResources(ctx, MOCKITO_CLASSPATH)) .imports(MOCKITO_CONSTRUCTION_IMPORT) .staticImports(MOCKITO_ALL_IMPORT) .build() .apply( - updateCursor(cd.get()), - cd.get().getBody().getCoordinates().firstStatement(), + updateCursor(cdRef.get()), + cdRef.get().getBody().getCoordinates().firstStatement(), MOCKITO_CONSTRUCTION_PREFIX + className )); - J.VariableDeclarations mockField = (J.VariableDeclarations) cd.get().getBody().getStatements().get(0); + J.VariableDeclarations mockField = (J.VariableDeclarations) cdRef.get().getBody().getStatements().get(0); J.Identifier mockFieldId = mockField.getVariables().get(0).getName(); tearDownMocks.put(MOCKITO_CONSTRUCTION_PREFIX + className, mockFieldId); } })); - cd.set(maybeAddMethodWithAnnotation(this, cd.get(), ctx, true, "tearDown", - TEARDOWN_METHOD_ANNOTATION_SIGNATURE, - TEARDOWN_METHOD_ANNOTATION_TO_ADD, - TEARDOWN_CLASSPATH_RESOURCE, - TEARDOWN_IMPORT_TO_ADD, - "")); + J.ClassDeclaration cd = maybeAddMethodWithAnnotation(this, cdRef.get(), ctx, true, "tearDown", + "@org.junit.After", + "@After", + "junit-4.13", + "org.junit.After", + ""); - return super.visitClassDeclaration(cd.get(), ctx); + return super.visitClassDeclaration(cd, ctx); } @Override From 3c513bf058474951c4a32ca88fee1374b401705b Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sat, 2 Nov 2024 12:59:27 +0100 Subject: [PATCH 48/48] Use now public VariableReferences.findRhsReferences --- .../testing/jmockit/JMockitMockUpToMockito.java | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java index c64f70687..fb942c504 100644 --- a/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java +++ b/src/main/java/org/openrewrite/java/testing/jmockit/JMockitMockUpToMockito.java @@ -15,7 +15,6 @@ */ package org.openrewrite.java.testing.jmockit; -import lombok.SneakyThrows; import org.openrewrite.*; import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.JavaParser; @@ -24,9 +23,8 @@ import org.openrewrite.java.tree.*; import org.openrewrite.marker.SearchResult; import org.openrewrite.staticanalysis.LambdaBlockToExpression; -import org.openrewrite.staticanalysis.RemoveUnusedLocalVariables; +import org.openrewrite.staticanalysis.VariableReferences; -import java.lang.reflect.Method; import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -344,21 +342,13 @@ private String getMatcher(JavaType s) { return "nullable(" + TypeUtils.asFullyQualified(s).getClassName() + ".class)"; } - @SneakyThrows private String getAnswerBody(J.MethodDeclaration md) { - Method findRefs = RemoveUnusedLocalVariables.class - .getDeclaredClasses()[0] - .getDeclaredMethod("findRhsReferences", J.class, J.Identifier.class); - findRefs.setAccessible(true); - Set usedVariables = new HashSet<>(); new JavaIsoVisitor>() { @Override - @SneakyThrows public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations.NamedVariable variable, Set ctx) { Cursor scope = getCursor().dropParentUntil((is) -> is instanceof J.ClassDeclaration || is instanceof J.Block || is instanceof J.MethodDeclaration || is instanceof J.ForLoop || is instanceof J.ForEachLoop || is instanceof J.ForLoop.Control || is instanceof J.ForEachLoop.Control || is instanceof J.Case || is instanceof J.Try || is instanceof J.Try.Resource || is instanceof J.Try.Catch || is instanceof J.MultiCatch || is instanceof J.Lambda || is instanceof JavaSourceFile); - List refs = (List) findRefs.invoke(null, scope.getValue(), variable.getName()); - if (!refs.isEmpty()) { + if (!VariableReferences.findRhsReferences(scope.getValue(), variable.getName()).isEmpty()) { ctx.add(variable.getSimpleName()); } return super.visitVariable(variable, ctx);