From 3aa8bb9ff064bf88f3041651fc1dbb6442d463d6 Mon Sep 17 00:00:00 2001 From: kamosama <837080904@qq.com> Date: Wed, 5 Jun 2024 14:24:18 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B5=8B=E8=AF=95=20ClassUtil.getAllMe?= =?UTF-8?q?thods,TableInfoFactory.getColumnFields=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatisflex/coretest/ClassUtilTest.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 mybatis-flex-core/src/test/java/com/mybatisflex/coretest/ClassUtilTest.java diff --git a/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/ClassUtilTest.java b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/ClassUtilTest.java new file mode 100644 index 00000000..d70c1ccb --- /dev/null +++ b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/ClassUtilTest.java @@ -0,0 +1,68 @@ +package com.mybatisflex.coretest; + +import com.mybatisflex.core.table.TableInfoFactory; +import com.mybatisflex.core.util.ClassUtil; +import org.junit.Test; + +import java.lang.reflect.Field; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class ClassUtilTest { + public static class A extends E implements B, D{ + public String name1; + } + interface B extends C{ + default void test1() { + } + } + interface C { + default void test2() { + } + } + interface D { + default void test3() { + } + } + + public static class E extends F{ + public String name1; + } + + public static class F { + public String name3; + } + + @Test + public void testMethods() { + System.out.println(ClassUtil.getAnyMethod(A.class, "test2", "test3")); +// List methods = new ArrayList<>(); +// ClassUtil.doGetMethods(A.class,methods,null,false); +// methods.forEach(method -> System.out.println("all:"+method.getDeclaringClass()+ ":" +method.getName())); +// methods.clear(); +// ClassUtil.doGetMethods(A.class,methods,null,true); +// methods.forEach(method -> System.out.println("firstOnly:"+method.getDeclaringClass()+ ":" +method.getName())); + assertEquals("public default void com.mybatisflex.coretest.ClassUtilTest$C.test2()",ClassUtil.getAnyMethod(A.class, "test2", "test3").toString()); + System.out.println(ClassUtil.getAllMethods(A.class)); + assertEquals(3,ClassUtil.getAllMethods(A.class).size()); + System.out.println(ClassUtil.getAllMethods(A.class, method -> method.getName().equals("test2"))); + assertEquals(1,ClassUtil.getAllMethods(A.class, method -> method.getName().equals("test2")).size()); + System.out.println(ClassUtil.getFirstMethod(A.class, method -> method.getName().equals("test3"))); + assertEquals("D",ClassUtil.getFirstMethod(A.class, method -> method.getName().equals("test3")).getDeclaringClass().getSimpleName()); + } + + @Test + public void testFields() { + List fields = ClassUtil.getAllFields(A.class); + fields.forEach(field -> System.out.println(field.getDeclaringClass() + ":" + field.getName())); + assertEquals(3, ClassUtil.getAllFields(A.class).size()); + System.out.println(ClassUtil.getAllFields(A.class, field -> field.getDeclaringClass().getSimpleName().startsWith("E"))); + assertEquals(1, ClassUtil.getAllFields(A.class, field -> field.getDeclaringClass().getSimpleName().startsWith("E")).size()); + } + @Test + public void testGetColumnFields() { + TableInfoFactory.getColumnFields(A.class).forEach(field -> System.out.println(field.getDeclaringClass() + ":" + field.getName())); + assertEquals(2, TableInfoFactory.getColumnFields(A.class).size()); + } +}