add methodsa

This commit is contained in:
Looly
2022-09-30 19:45:39 +08:00
parent bfdc1ecbda
commit 83a4f14b43
2 changed files with 53 additions and 8 deletions

View File

@@ -1,11 +1,16 @@
package cn.hutool.core.annotation;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import lombok.SneakyThrows;
import org.junit.Assert;
import org.junit.Test;
import java.lang.annotation.*;
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
import java.util.Map;
@@ -16,7 +21,7 @@ public class AnnotationUtilTest {
@Test
public void testGetDeclaredAnnotations() {
Annotation[] annotations = AnnotationUtil.getDeclaredAnnotations(ClassForTest.class);
final Annotation[] annotations = AnnotationUtil.getDeclaredAnnotations(ClassForTest.class);
Assert.assertArrayEquals(annotations, ClassForTest.class.getDeclaredAnnotations());
Assert.assertSame(annotations, AnnotationUtil.getDeclaredAnnotations(ClassForTest.class));
@@ -85,7 +90,7 @@ public class AnnotationUtilTest {
final AnnotationForTest annotation = ClassForTest.class.getAnnotation(AnnotationForTest.class);
final Map<String, Object> valueMap = AnnotationUtil.getAnnotationValueMap(ClassForTest.class, AnnotationForTest.class);
Assert.assertNotNull(valueMap);
Assert.assertEquals(1, valueMap.size());
Assert.assertEquals(2, valueMap.size());
Assert.assertEquals(annotation.value(), valueMap.get("value"));
}
@@ -129,9 +134,9 @@ public class AnnotationUtilTest {
@Test
public void testGetAnnotationAttributes() {
Method[] methods = AnnotationUtil.getAnnotationAttributes(AnnotationForTest.class);
final Method[] methods = AnnotationUtil.getAnnotationAttributes(AnnotationForTest.class);
Assert.assertArrayEquals(methods, AnnotationUtil.getAnnotationAttributes(AnnotationForTest.class));
Assert.assertEquals(1, methods.length);
Assert.assertEquals(2, methods.length);
Assert.assertArrayEquals(AnnotationForTest.class.getDeclaredMethods(), methods);
}
@@ -142,6 +147,12 @@ public class AnnotationUtilTest {
Assert.assertTrue(AnnotationUtil.isAnnotationAttribute(AnnotationForTest.class.getMethod("value")));
}
@Test
public void getAnnotationValueTest2() {
final String[] names = AnnotationUtil.getAnnotationValue(ClassForTest.class, AnnotationForTest::names);
Assert.assertTrue(ArrayUtil.equals(names, new String[]{"测试1", "测试2"}));
}
@Target(ElementType.TYPE_USE)
@Retention(RetentionPolicy.RUNTIME)
private @interface MetaAnnotationForTest{
@@ -155,9 +166,10 @@ public class AnnotationUtilTest {
@Retention(RetentionPolicy.RUNTIME)
private @interface AnnotationForTest{
String value() default "";
String[] names() default "";
}
@AnnotationForTest("foo")
@AnnotationForTest(value = "foo", names = {"测试1", "测试2"})
private static class ClassForTest{}
}