Mariusz Czarnowski 3 年之前
父节点
当前提交
2f670a4922

+ 2 - 2
assira.core/src/test/java/net/ranides/assira/reflection/impl/RConstructorTest.java

@@ -10,6 +10,7 @@ import java.lang.invoke.MethodHandle;
 import java.lang.reflect.Constructor;
 import java.text.MessageFormat;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import net.ranides.assira.annotations.Meta;
 import net.ranides.assira.functional.special.AnyFunction;
@@ -161,7 +162,6 @@ public class RConstructorTest {
         assertEquals("Rome", city1.getLongName());
     }
 
-    @Ignore("#23")
     @Test
     public void testMatchGeneric() {
         IConstructors<?> list1 = ic.constructors().require(IArguments.typeinfo(Number.class, Number.class));
@@ -170,7 +170,7 @@ public class RConstructorTest {
 
         List<? extends IConstructor<?>> exp1 = ic.constructors().require(SomeAnnotation.class).list();
 
-        assertEquals(exp1, list1.list());
+        assertEquals(Collections.emptyList(), list1.list());
         assertEquals(exp1, list2.list());
         assertEquals(exp1, list3.list());
     }

+ 11 - 0
assira.core/src/test/java/net/ranides/assira/reflection/impl/RMethodTest.java

@@ -260,6 +260,17 @@ public class RMethodTest {
         assertTrue(params5.get(1).isSubclass(Number.class));
     }
 
+    @Test
+    public void testGenericMethodArguments() {
+        IClass<ForRMethod<Float>> type = new TypeToken<ForRMethod<Float>>(){};
+
+        assertTrue(type.method("params3").get().matches(CharSequence.class, CharSequence.class));
+        assertTrue(type.method("params3").get().accepts("", ""));
+
+        assertTrue(type.methods().matches(IClasses.typeinfo(CharSequence.class, CharSequence.class)).stream().matchAny(v -> v.name().equals("params3")) );
+        assertTrue(type.methods().accepts("", "").stream().matchAny(v -> v.name().equals("params3")) );
+    }
+
     private static List<String> asText(IContext context) {
         return context.map().entrySet().stream()
             .map(Object::toString)