This commit is contained in:
Looly
2023-05-05 12:03:34 +08:00
parent 6b86ca2e5d
commit cbd74d4df9
7 changed files with 110 additions and 138 deletions

View File

@@ -12,8 +12,12 @@
package org.dromara.hutool.core.reflect;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
@@ -78,4 +82,32 @@ public class ClassDescTest {
assertEquals("[[Ljava/lang/Object;",
ClassDescUtil.nameToDesc(ClassDescUtil.getName(Object[][].class)));
}
@Test
@SneakyThrows
public void testGetDescriptor() {
// methods
Assertions.assertEquals("()I", ClassDescUtil.getDesc(
Object.class.getMethod("hashCode"), false));
Assertions.assertEquals("()Ljava/lang/String;", ClassDescUtil.getDesc(
Object.class.getMethod("toString"), false));
Assertions.assertEquals("(Ljava/lang/Object;)Z", ClassDescUtil.getDesc(
Object.class.getMethod("equals", Object.class), false));
Assertions.assertEquals("(II)I", ClassDescUtil.getDesc(
Integer.class.getDeclaredMethod("compare", int.class, int.class), false));
Assertions.assertEquals("([Ljava/lang/Object;)Ljava/util/List;", ClassDescUtil.getDesc(
Arrays.class.getMethod("asList", Object[].class), false));
Assertions.assertEquals("()V", ClassDescUtil.getDesc(
Object.class.getConstructor(), false));
// clazz
Assertions.assertEquals("Z", ClassDescUtil.getDesc(boolean.class));
Assertions.assertEquals("Ljava/lang/Boolean;", ClassDescUtil.getDesc(Boolean.class));
Assertions.assertEquals("[[[D", ClassDescUtil.getDesc(double[][][].class));
Assertions.assertEquals("I", ClassDescUtil.getDesc(int.class));
Assertions.assertEquals("Ljava/lang/Integer;", ClassDescUtil.getDesc(Integer.class));
Assertions.assertEquals("V", ClassDescUtil.getDesc(void.class));
Assertions.assertEquals("Ljava/lang/Void;", ClassDescUtil.getDesc(Void.class));
Assertions.assertEquals("Ljava/lang/Object;", ClassDescUtil.getDesc(Object.class));
}
}

View File

@@ -111,25 +111,4 @@ public class ReflectUtilTest {
}
}
@Test
@SneakyThrows
public void testGetDescriptor() {
// methods
Assertions.assertEquals("()I", ReflectUtil.getDescriptor(Object.class.getMethod("hashCode")));
Assertions.assertEquals("()Ljava/lang/String;", ReflectUtil.getDescriptor(Object.class.getMethod("toString")));
Assertions.assertEquals("(Ljava/lang/Object;)Z", ReflectUtil.getDescriptor(Object.class.getMethod("equals", Object.class)));
Assertions.assertEquals("(II)I", ReflectUtil.getDescriptor(Integer.class.getDeclaredMethod("compare", int.class, int.class)));
Assertions.assertEquals("([Ljava/lang/Object;)Ljava/util/List;", ReflectUtil.getDescriptor(Arrays.class.getMethod("asList", Object[].class)));
Assertions.assertEquals("()V", ReflectUtil.getDescriptor(Object.class.getConstructor()));
// clazz
Assertions.assertEquals("Z", ReflectUtil.getDescriptor(boolean.class));
Assertions.assertEquals("Ljava/lang/Boolean;", ReflectUtil.getDescriptor(Boolean.class));
Assertions.assertEquals("[[[D", ReflectUtil.getDescriptor(double[][][].class));
Assertions.assertEquals("I", ReflectUtil.getDescriptor(int.class));
Assertions.assertEquals("Ljava/lang/Integer;", ReflectUtil.getDescriptor(Integer.class));
Assertions.assertEquals("V", ReflectUtil.getDescriptor(void.class));
Assertions.assertEquals("Ljava/lang/Void;", ReflectUtil.getDescriptor(Void.class));
Assertions.assertEquals("Ljava/lang/Object;", ReflectUtil.getDescriptor(Object.class));
}
}