mirror of
https://github.com/alibaba/testable-mock.git
synced 2026-08-19 09:43:29 +08:00
feat: elastic plugin class should contain only one constructor
This commit is contained in:
@@ -38,7 +38,7 @@ public class OmniClassHandler extends BaseClassHandler {
|
||||
|
||||
@Override
|
||||
protected void transform(ClassNode cn) {
|
||||
if (isInterfaceOrAtom(cn) || isJunitTestClass(cn) || isUninstantiableClass(cn) || hasSpecialAnnotation(cn)) {
|
||||
if (isInterfaceOrAtom(cn) || isUniqueConstructorClass(cn) || isUninstantiableClass(cn) || hasSpecialAnnotation(cn)) {
|
||||
return;
|
||||
}
|
||||
addConstructorWithVoidTypeParameter(cn);
|
||||
@@ -89,7 +89,11 @@ public class OmniClassHandler extends BaseClassHandler {
|
||||
return (cn.access & ACC_INTERFACE) != 0 || cn.superName == null || VOID_TYPE.equals(cn.name);
|
||||
}
|
||||
|
||||
private boolean isJunitTestClass(ClassNode cn) {
|
||||
private boolean isUniqueConstructorClass(ClassNode cn) {
|
||||
// elastic plugin class should contain only one constructor
|
||||
if ("org/elasticsearch/plugins/Plugin".equals(cn.superName)) {
|
||||
return true;
|
||||
}
|
||||
// junit require test class contains only one constructor
|
||||
for (MethodNode mn : cn.methods) {
|
||||
if (mn.visibleAnnotations == null) {
|
||||
|
||||
Reference in New Issue
Block a user