From 8be5550331259b8713789327eb914259641fa669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=88=9F?= Date: Thu, 18 Feb 2021 13:25:51 +0800 Subject: [PATCH] extra constant to core package --- .../com/alibaba/testable/agent/constant/ConstPool.java | 5 ----- .../alibaba/testable/agent/handler/MockClassHandler.java | 9 +++++---- .../testable/agent/handler/SourceClassHandler.java | 2 +- .../testable/agent/transformer/MockClassParser.java | 5 +++-- .../com/alibaba/testable/core/constant/ConstPool.java | 8 ++++++++ .../alibaba/testable/core/util/MockAssociationUtil.java | 5 ++--- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java b/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java index e496409..b2b0030 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java @@ -22,9 +22,4 @@ public class ConstPool { public static final String KOTLIN_POSTFIX_COMPANION = "$Companion"; public static final String KOTLIN_PREFIX_ACCESS = "access$"; - /** - * Name of the constructor method - */ - public static final String CONSTRUCTOR = ""; - } diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/handler/MockClassHandler.java b/testable-agent/src/main/java/com/alibaba/testable/agent/handler/MockClassHandler.java index 5469571..87c7f98 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/handler/MockClassHandler.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/handler/MockClassHandler.java @@ -12,6 +12,7 @@ import org.objectweb.asm.tree.*; import java.util.List; import static com.alibaba.testable.agent.util.ClassUtil.toDotSeparateFullClassName; +import static com.alibaba.testable.core.constant.ConstPool.CONSTRUCTOR; /** * @author flin @@ -60,7 +61,7 @@ public class MockClassHandler extends BaseClassWithContextHandler { il.add(new JumpInsnNode(IFNONNULL, label)); il.add(new TypeInsnNode(NEW, mockClassName)); il.add(new InsnNode(DUP)); - il.add(new MethodInsnNode(INVOKESPECIAL, mockClassName, ConstPool.CONSTRUCTOR, VOID_ARGS + VOID_RES, false)); + il.add(new MethodInsnNode(INVOKESPECIAL, mockClassName, CONSTRUCTOR, VOID_ARGS + VOID_RES, false)); il.add(new FieldInsnNode(PUTSTATIC, mockClassName, TESTABLE_REF, ClassUtil.toByteCodeClassName(mockClassName))); il.add(label); il.add(new FrameNode(F_SAME, 0, null, 0, null)); @@ -159,10 +160,10 @@ public class MockClassHandler extends BaseClassWithContextHandler { methodName = name; } } else if (ClassUtil.toByteCodeClassName(ConstPool.MOCK_CONSTRUCTOR).equals(an.desc)) { - methodName = ConstPool.CONSTRUCTOR; + methodName = CONSTRUCTOR; } } - if (methodName.equals(ConstPool.CONSTRUCTOR)) { + if (methodName.equals(CONSTRUCTOR)) { className = Type.getType(ClassUtil.getReturnType(mn.desc)); } else { className = Type.getType(ClassUtil.getFirstParameter(mn.desc)); @@ -242,7 +243,7 @@ public class MockClassHandler extends BaseClassWithContextHandler { } else if (ConstPool.MOCK_METHOD.equals(annotationName)) { String method = AnnotationUtil.getAnnotationParameter (an, ConstPool.FIELD_TARGET_METHOD, null, String.class); - if (ConstPool.CONSTRUCTOR.equals(method)) { + if (CONSTRUCTOR.equals(method)) { return true; } } diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/handler/SourceClassHandler.java b/testable-agent/src/main/java/com/alibaba/testable/agent/handler/SourceClassHandler.java index ceab231..8eafb78 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/handler/SourceClassHandler.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/handler/SourceClassHandler.java @@ -13,7 +13,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import static com.alibaba.testable.agent.constant.ConstPool.CONSTRUCTOR; +import static com.alibaba.testable.core.constant.ConstPool.CONSTRUCTOR; /** * @author flin diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/MockClassParser.java b/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/MockClassParser.java index d63eed7..50f7a7e 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/MockClassParser.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/MockClassParser.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.List; import static com.alibaba.testable.agent.util.ClassUtil.toDotSeparateFullClassName; +import static com.alibaba.testable.core.constant.ConstPool.CONSTRUCTOR; public class MockClassParser { @@ -96,7 +97,7 @@ public class MockClassParser { LogUtil.verbose(" Mock method \"%s\" as \"%s\"", mn.name, getTargetMethodDesc(mn, an)); String targetMethod = AnnotationUtil.getAnnotationParameter( an, ConstPool.FIELD_TARGET_METHOD, mn.name, String.class); - if (ConstPool.CONSTRUCTOR.equals(targetMethod)) { + if (CONSTRUCTOR.equals(targetMethod)) { addMockConstructor(methodInfos, cn, mn); } else { MethodInfo mi = getMethodInfo(mn, an, targetMethod); @@ -134,7 +135,7 @@ public class MockClassParser { private void addMockConstructor(List methodInfos, ClassNode cn, MethodNode mn) { String sourceClassName = ClassUtil.getSourceClassName(cn.name); - methodInfos.add(new MethodInfo(sourceClassName, ConstPool.CONSTRUCTOR, mn.desc, mn.name, mn.desc)); + methodInfos.add(new MethodInfo(sourceClassName, CONSTRUCTOR, mn.desc, mn.name, mn.desc)); } /** diff --git a/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java b/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java index 6d1d51e..6c46d03 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java @@ -2,6 +2,14 @@ package com.alibaba.testable.core.constant; public class ConstPool { + /** + * Name of the constructor method + */ + public static final String CONSTRUCTOR = ""; + + /** + * Postfix or test and mock file + */ public static final String TEST_POSTFIX = "Test"; public static final String MOCK_POSTFIX = "Mock"; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/MockAssociationUtil.java b/testable-core/src/main/java/com/alibaba/testable/core/util/MockAssociationUtil.java index 13bf1c2..94af2f2 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/util/MockAssociationUtil.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/util/MockAssociationUtil.java @@ -7,8 +7,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import static com.alibaba.testable.core.constant.ConstPool.MOCK_POSTFIX; -import static com.alibaba.testable.core.constant.ConstPool.TEST_POSTFIX; +import static com.alibaba.testable.core.constant.ConstPool.*; public class MockAssociationUtil { @@ -41,7 +40,7 @@ public class MockAssociationUtil { } public static Object invokeOrigin(Class originClass, String originMethod, Object... args) { - if (originMethod.equals("")) { + if (originMethod.equals(CONSTRUCTOR)) { return PrivateAccessor.construct(originClass, args); } else if (args[0] == null) { return PrivateAccessor.invokeStatic(originClass, originMethod, CollectionUtil.slice(args, 1));