revised "ClassUtils.isAssignable" semantics to cover primitives vs wrappers in both directions (SPR-7610)

This commit is contained in:
Juergen Hoeller
2010-10-01 21:50:25 +00:00
parent 9008e08171
commit d9b54a524d
2 changed files with 32 additions and 3 deletions

View File

@@ -227,6 +227,21 @@ public class ClassUtilsTests extends TestCase {
InnerClass.overloadedCalled);
}
public void testIsAssignable() {
assertTrue(ClassUtils.isAssignable(Object.class, Object.class));
assertTrue(ClassUtils.isAssignable(String.class, String.class));
assertTrue(ClassUtils.isAssignable(Object.class, String.class));
assertTrue(ClassUtils.isAssignable(Object.class, Integer.class));
assertTrue(ClassUtils.isAssignable(Number.class, Integer.class));
assertTrue(ClassUtils.isAssignable(Number.class, int.class));
assertTrue(ClassUtils.isAssignable(Integer.class, int.class));
assertTrue(ClassUtils.isAssignable(int.class, Integer.class));
assertFalse(ClassUtils.isAssignable(String.class, Object.class));
assertFalse(ClassUtils.isAssignable(Integer.class, Number.class));
assertFalse(ClassUtils.isAssignable(Integer.class, double.class));
assertFalse(ClassUtils.isAssignable(double.class, Integer.class));
}
public void testClassPackageAsResourcePath() {
String result = ClassUtils.classPackageAsResourcePath(Proxy.class);
assertTrue(result.equals("java/lang/reflect"));