Additional tests for MethodUtils from Nathan Beyer - LANG-712

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@1142380 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Henri Yandell 2011-07-03 06:59:59 +00:00
parent e3cb1c6c0a
commit f5cb67acd9
1 changed files with 27 additions and 0 deletions

View File

@ -33,6 +33,15 @@ import org.apache.commons.lang3.mutable.MutableObject;
* @version $Id$ * @version $Id$
*/ */
public class MethodUtilsTest extends TestCase { public class MethodUtilsTest extends TestCase {
private static interface PrivateInterface {}
static class TestBeanWithInterfaces implements PrivateInterface {
public String foo() {
return "foo()";
}
}
public static class TestBean { public static class TestBean {
public static String bar() { public static String bar() {
@ -58,6 +67,11 @@ public class MethodUtilsTest extends TestCase {
public static String bar(Object o) { public static String bar(Object o) {
return "bar(Object)"; return "bar(Object)";
} }
@SuppressWarnings("unused")
private void privateStuff() {
}
public String foo() { public String foo() {
return "foo()"; return "foo()";
@ -247,6 +261,13 @@ public class MethodUtilsTest extends TestCase {
assertSame(Mutable.class, accessibleMethod.getDeclaringClass()); assertSame(Mutable.class, accessibleMethod.getDeclaringClass());
} }
} }
public void testGetAccessibleMethodPrivateInterface() throws Exception {
Method expected = TestBeanWithInterfaces.class.getMethod("foo");
assertNotNull(expected);
Method actual = MethodUtils.getAccessibleMethod(TestBeanWithInterfaces.class, "foo");
assertNull(actual);
}
public void testGetAccessibleInterfaceMethodFromDescription() public void testGetAccessibleInterfaceMethodFromDescription()
throws Exception { throws Exception {
@ -269,6 +290,12 @@ public class MethodUtilsTest extends TestCase {
MutableObject.class, "getValue", ArrayUtils.EMPTY_CLASS_ARRAY) MutableObject.class, "getValue", ArrayUtils.EMPTY_CLASS_ARRAY)
.getDeclaringClass()); .getDeclaringClass());
} }
public void testGetAccessibleMethodInaccessible() throws Exception {
Method expected = TestBean.class.getDeclaredMethod("privateStuff");
Method actual = MethodUtils.getAccessibleMethod(expected);
assertNull(actual);
}
public void testGetMatchingAccessibleMethod() throws Exception { public void testGetMatchingAccessibleMethod() throws Exception {
expectMatchingAccessibleMethodParameterTypes(TestBean.class, "foo", expectMatchingAccessibleMethodParameterTypes(TestBean.class, "foo",