diff --git a/src/test/java/ru/dmitriymx/reflection/ReflectionObjectTest.java b/src/test/java/ru/dmitriymx/reflection/ReflectionObjectTest.java index b396217..4fe0b25 100644 --- a/src/test/java/ru/dmitriymx/reflection/ReflectionObjectTest.java +++ b/src/test/java/ru/dmitriymx/reflection/ReflectionObjectTest.java @@ -139,6 +139,23 @@ public class ReflectionObjectTest { assertNotNull(refMethod); } + @Test + public void method_generic() { + SomeGenericObject someGenericObject = new SomeGenericObject<>(); + String key = "KEY!"; + int value = 3306; + + ReflectionObject refObj = new ReflectionObject(someGenericObject); + + ReflectionMethod refMethod = refObj.method("genericMethod", Object.class, Object.class); + assertNotNull(refMethod); + + refMethod.invoke(key, value); + assertFalse(someGenericObject.map.isEmpty()); + assertTrue(someGenericObject.map.containsKey(key)); + assertEquals(value, (int) someGenericObject.map.get(key)); + } + @Test(expected = ReflectionException.class) public void method_notExists() { ReflectionObject refObj = new ReflectionObject(new SomeObject()); diff --git a/src/test/java/ru/dmitriymx/reflection/SomeGenericObject.java b/src/test/java/ru/dmitriymx/reflection/SomeGenericObject.java new file mode 100644 index 0000000..4cdae3d --- /dev/null +++ b/src/test/java/ru/dmitriymx/reflection/SomeGenericObject.java @@ -0,0 +1,13 @@ +package ru.dmitriymx.reflection; + +import java.util.HashMap; +import java.util.Map; + +public class SomeGenericObject { + + public Map map = new HashMap<>(); + + public void genericMethod(K key, V value) { + map.put(key, value); + } +}