You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by qi...@apache.org on 2008/10/24 03:36:16 UTC
svn commit: r707523 - in
/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect:
ConstructorTest.java MethodTest.java
Author: qiuxx
Date: Thu Oct 23 18:36:16 2008
New Revision: 707523
URL: http://svn.apache.org/viewvc?rev=707523&view=rev
Log:
Apply patch for HARMONY-5999, (Add Test Case for java.lang.reflect.Constructor and java.lang.reflect.Method)
Modified:
harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/ConstructorTest.java
harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/MethodTest.java
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/ConstructorTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/ConstructorTest.java?rev=707523&r1=707522&r2=707523&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/ConstructorTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/ConstructorTest.java Thu Oct 23 18:36:16 2008
@@ -18,7 +18,9 @@
package org.apache.harmony.luni.tests.java.lang.reflect;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Modifier;
+import java.util.Vector;
public class ConstructorTest extends junit.framework.TestCase {
@@ -175,6 +177,78 @@
assertEquals("improper instance created", 99, test.check());
}
+
+ /**
+ * @tests java.lang.reflect.Constructor#newInstance(java.lang.Object[])
+ */
+ public void test_newInstance_IAE() throws Exception {
+ Constructor constructor = Vector.class
+ .getConstructor(new Class[] { Integer.TYPE });
+
+ try {
+ constructor.newInstance(new Object[] { null });
+ fail("should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+ }
+
+ public void test_newInstance_InvocationTargetException() throws Exception {
+ Constructor constructor = MockObject.class.getConstructor(Class.class);
+
+ try {
+ constructor.newInstance(InvocationTargetException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ constructor.newInstance(IllegalAccessException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ constructor.newInstance(IllegalArgumentException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ constructor.newInstance(InvocationTargetException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ constructor.newInstance(Throwable.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+ }
+
+ static class MockObject {
+
+ public MockObject(Class<?> clazz) throws Exception {
+ if (clazz == InstantiationException.class) {
+ throw new InstantiationException();
+ } else if (clazz == IllegalAccessException.class) {
+ throw new IllegalAccessException();
+ } else if (clazz == IllegalArgumentException.class) {
+ throw new IllegalArgumentException();
+ } else if (clazz == InvocationTargetException.class) {
+ throw new InvocationTargetException(new Throwable());
+ } else {
+ throw new Exception();
+ }
+ }
+
+ }
/**
* @tests java.lang.reflect.Constructor#toString()
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/MethodTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/MethodTest.java?rev=707523&r1=707522&r2=707523&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/MethodTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/MethodTest.java Thu Oct 23 18:36:16 2008
@@ -394,7 +394,15 @@
ret = mth.invoke(new TestMethod(), new Object[0]);
} catch (InvocationTargetException e) {
// Correct behaviour
- }
+ }
+
+ mth = String.class.getMethod("valueOf", new Class[] { Integer.TYPE });
+ try {
+ mth.invoke(String.class, new Object[] { null });
+ fail("should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
TestMethod testMethod = new TestMethod();
Method methods[] = cl.getMethods();
@@ -533,6 +541,63 @@
}
}
}
+
+ public void test_invoke_InvocationTargetException() throws Exception {
+ Method method = MockObject.class.getDeclaredMethod("mockMethod", Class.class);
+ MockObject mockObject = new MockObject();
+
+ try {
+ method.invoke(mockObject, InvocationTargetException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ method.invoke(mockObject, IllegalAccessException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ method.invoke(mockObject, IllegalArgumentException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ method.invoke(mockObject, InvocationTargetException.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+
+ try {
+ method.invoke(mockObject, Throwable.class);
+ fail("should throw InvocationTargetException");
+ } catch (InvocationTargetException e) {
+ // Expected
+ }
+ }
+
+ static class MockObject {
+
+ public void mockMethod (Class<?> clazz) throws Exception {
+ if (clazz == InstantiationException.class) {
+ throw new InstantiationException();
+ } else if (clazz == IllegalAccessException.class) {
+ throw new IllegalAccessException();
+ } else if (clazz == IllegalArgumentException.class) {
+ throw new IllegalArgumentException();
+ } else if (clazz == InvocationTargetException.class) {
+ throw new InvocationTargetException(new Throwable());
+ } else {
+ throw new Exception();
+ }
+ }
+ }
/**
* @tests java.lang.reflect.Method#toString()