1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.lang.reflect;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.InvocationTargetException;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.Method;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.Modifier;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class MethodTest extends junit.framework.TestCase {
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static class TestMethod {
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public TestMethod() {
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void voidMethod() throws IllegalArgumentException {
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void parmTest(int x, short y, String s, boolean bool, Object o,
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				long l, byte b, char c, double d, float f) {
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int intMethod() {
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1;
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static final void printTest(int x, short y, String s,
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				boolean bool, Object o, long l, byte b, char c, double d,
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				float f) {
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public double doubleMethod() {
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1.0;
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public short shortMethod() {
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return (short) 1;
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public byte byteMethod() {
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return (byte) 1;
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public float floatMethod() {
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1.0f;
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public long longMethod() {
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1l;
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public char charMethod() {
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 'T';
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Object objectMethod() {
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return new Object();
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static void prstatic() {
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static void pustatic() {
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static synchronized void pustatsynch() {
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static int invokeStaticTest() {
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1;
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int invokeInstanceTest() {
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1;
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private int privateInvokeTest() {
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 1;
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int invokeExceptionTest() throws NullPointerException {
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw new NullPointerException();
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static synchronized native void pustatsynchnat();
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(byte param) {
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(short param) {
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(int param) {
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(long param) {
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(float param) {
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(double param) {
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(char param) {
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void invokeCastTest1(boolean param) {
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	abstract class AbstractTestMethod {
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public abstract void puabs();
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	class TestMethodSub extends TestMethod {
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int invokeInstanceTest() {
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return 0;
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#equals(java.lang.Object)
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_equalsLjava_lang_Object() throws Exception {
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method boolean
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.reflect.Method.equals(java.lang.Object)
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method m1 = null, m2 = null;
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		m1 = TestMethod.class.getMethod("invokeInstanceTest", new Class[0]);
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		m2 = TestMethodSub.class.getMethod("invokeInstanceTest",
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				new Class[0]);
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Overriden method returned equal", !m1.equals(m2));
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Same method returned not-equal", m1.equals(m1));
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                m1 = TestMethod.class.getMethod("invokeStaticTest", new Class[0]);
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                m2 = TestMethodSub.class
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                .getMethod("invokeStaticTest", new Class[0]);
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Inherited method returned not-equal", m1.equals(m2));
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#getDeclaringClass()
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getDeclaringClass() {
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.lang.Class
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.reflect.Method.getDeclaringClass()
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method[] mths;
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mths = TestMethod.class.getDeclaredMethods();
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Returned incorrect declaring class: "
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                + mths[0].getDeclaringClass().toString(), mths[0]
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                .getDeclaringClass().equals(TestMethod.class));
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#getExceptionTypes()
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getExceptionTypes() throws Exception {
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.lang.Class []
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.reflect.Method.getExceptionTypes()
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Method mth = TestMethod.class.getMethod("voidMethod", new Class[0]);
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Class[] ex = mth.getExceptionTypes();
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Returned incorrect number of exceptions",
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                1, ex.length);
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Returned incorrect exception type", ex[0]
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                .equals(IllegalArgumentException.class));
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mth = TestMethod.class.getMethod("intMethod", new Class[0]);
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ex = mth.getExceptionTypes();
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Returned incorrect number of exceptions",
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                0, ex.length);
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#getModifiers()
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getModifiers() throws Exception {
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.lang.reflect.Method.getModifiers()
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class cl = TestMethod.class;
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int mods = 0;
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method mth = null;
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int mask = 0;
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mth = cl.getMethod("pustatic", new Class[0]);
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mods = mth.getModifiers();
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mask = Modifier.PUBLIC | Modifier.STATIC;
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Incorrect modifiers returned", (mods | mask) == mask);
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mth = cl.getDeclaredMethod("prstatic", new Class[0]);
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mods = mth.getModifiers();
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mask = Modifier.PRIVATE | Modifier.STATIC;
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Incorrect modifiers returned", (mods | mask) == mask);
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("pustatsynch", new Class[0]);
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mods = mth.getModifiers();
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mask = (Modifier.PUBLIC | Modifier.STATIC) | Modifier.SYNCHRONIZED;
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Incorrect modifiers returned", (mods | mask) == mask);
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("pustatsynchnat", new Class[0]);
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mods = mth.getModifiers();
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mask = ((Modifier.PUBLIC | Modifier.STATIC) | Modifier.SYNCHRONIZED)
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				| Modifier.NATIVE;
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Incorrect modifiers returned", (mods | mask) == mask);
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		cl = AbstractTestMethod.class;
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mth = cl.getDeclaredMethod("puabs", new Class[0]);
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mods = mth.getModifiers();
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mask = Modifier.PUBLIC | Modifier.ABSTRACT;
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Incorrect modifiers returned", (mods | mask) == mask);
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#getName()
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getName() throws Exception {
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.lang.String java.lang.reflect.Method.getName()
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method mth = null;
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = TestMethod.class.getMethod("voidMethod", new Class[0]);
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Returned incorrect method name",
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				"voidMethod", mth.getName());
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#getParameterTypes()
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getParameterTypes() throws Exception {
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.lang.Class []
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.reflect.Method.getParameterTypes()
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class cl = TestMethod.class;
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method mth = null;
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class[] parms = null;
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method[] methods = null;
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class[] plist = { int.class, short.class, String.class, boolean.class,
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Object.class, long.class, byte.class, char.class, double.class,
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				float.class };
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("voidMethod", new Class[0]);
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		parms = mth.getParameterTypes();
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Returned incorrect parameterTypes", 0, parms.length);
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("parmTest", plist);
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		parms = mth.getParameterTypes();
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Invalid number of parameters returned",
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				plist.length == parms.length);
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < plist.length; i++)
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Incorrect parameter returned", plist[i]
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					.equals(parms[i]));
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test same method. but this time pull it from the list of methods
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// rather than asking for it explicitly
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		methods = cl.getDeclaredMethods();
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int i;
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (i = 0; i < methods.length; i++)
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (methods[i].getName().equals("parmTest")) {
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				mth = methods[i];
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				i = methods.length + 1;
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		if (i < methods.length) {
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			parms = mth.getParameterTypes();
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Incorrect number of parameters returned",
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					parms.length == plist.length);
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			for (i = 0; i < plist.length; i++)
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				assertTrue("Incorrect parameter returned", plist[i]
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes						.equals(parms[i]));
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#getReturnType()
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_getReturnType() throws Exception {
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.lang.Class
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.reflect.Method.getReturnType()
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class cl = TestMethod.class;
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method mth = null;
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("charMethod", new Class[0]);
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted char", mth
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(char.class));
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("longMethod", new Class[0]);
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted long", mth
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(long.class));
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("shortMethod", new Class[0]);
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted short", mth
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(short.class));
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("intMethod", new Class[0]);
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted int: "
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				+ mth.getReturnType(), mth.getReturnType().equals(int.class));
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("doubleMethod", new Class[0]);
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted double", mth
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(double.class));
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("byteMethod", new Class[0]);
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted byte", mth
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(byte.class));
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("byteMethod", new Class[0]);
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted byte", mth
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(byte.class));
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("objectMethod", new Class[0]);
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted Object", mth
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(Object.class));
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getMethod("voidMethod", new Class[0]);
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Gave incorrect returne type, wanted void", mth
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.getReturnType().equals(void.class));
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#invoke(java.lang.Object,
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 *        java.lang.Object[])
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_invokeLjava_lang_Object$Ljava_lang_Object() throws Exception {
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.lang.Object
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// [])
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class cl = TestMethod.class;
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method mth = null;
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object ret = null;
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Class[] dcl = new Class[0];
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Get and invoke a static method
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("invokeStaticTest", dcl);
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ret = mth.invoke(null, new Object[0]);
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Invoke returned incorrect value", 1, ((Integer) ret)
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.intValue());
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Get and invoke an instance method
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("invokeInstanceTest", dcl);
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ret = mth.invoke(new TestMethod(), new Object[0]);
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Invoke returned incorrect value", 1, ((Integer) ret)
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.intValue());
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Get and attempt to invoke a private method
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("privateInvokeTest", dcl);
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ret = mth.invoke(new TestMethod(), new Object[0]);
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalAccessException e) {
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Correct behaviour
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Generate an IllegalArgumentException
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("invokeInstanceTest", dcl);
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                try {
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Object[] args = { Object.class };
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ret = mth.invoke(new TestMethod(), args);
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Correct behaviour
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Generate a NullPointerException
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("invokeInstanceTest", dcl);
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                try {
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ret = mth.invoke(null, new Object[0]);
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Correct behaviour
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Generate an InvocationTargetException
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = cl.getDeclaredMethod("invokeExceptionTest", dcl);
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ret = mth.invoke(new TestMethod(), new Object[0]);
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (InvocationTargetException e) {
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Correct behaviour
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		mth = String.class.getMethod("valueOf", new Class[] { Integer.TYPE });
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            mth.invoke(String.class, new Object[] { null });
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw IllegalArgumentException");
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		TestMethod testMethod = new TestMethod();
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Method methods[] = cl.getMethods();
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < methods.length; i++) {
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (methods[i].getName().startsWith("invokeCastTest1")) {
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				Class param = methods[i].getParameterTypes()[0];
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod, new Object[] { new Byte(
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							(byte) 1) });
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Byte: " + methods[i],
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Integer.TYPE
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Long.TYPE
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Float.TYPE
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Double.TYPE);
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Byte invalid exception: " + e,
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Byte invalid failure: " + methods[i],
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Boolean.TYPE || param == Character.TYPE);
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod, new Object[] { new Short(
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							(short) 1) });
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Short: " + methods[i],
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Short.TYPE || param == Integer.TYPE
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Long.TYPE
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Float.TYPE
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Double.TYPE);
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Short invalid exception: " + e,
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Short invalid failure: " + methods[i],
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Boolean.TYPE
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Character.TYPE);
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod,
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							new Object[] { new Integer(1) });
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Integer: " + methods[i],
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Integer.TYPE || param == Long.TYPE
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Float.TYPE
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Double.TYPE);
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Integer invalid exception: " + e,
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Integer invalid failure: " + methods[i],
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Boolean.TYPE
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Character.TYPE);
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod, new Object[] { new Long(1) });
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Long: " + methods[i],
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Long.TYPE || param == Float.TYPE
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Double.TYPE);
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Long invalid exception: " + e,
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Long invalid failure: " + methods[i],
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Integer.TYPE
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Boolean.TYPE
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Character.TYPE);
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod, new Object[] { new Character(
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							'a') });
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Character: " + methods[i],
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Character.TYPE || param == Integer.TYPE
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Long.TYPE
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Float.TYPE
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Double.TYPE);
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Character invalid exception: " + e,
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Character invalid failure: " + methods[i],
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Boolean.TYPE);
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i]
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							.invoke(testMethod, new Object[] { new Float(1) });
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Float: " + methods[i],
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Float.TYPE || param == Double.TYPE);
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Float invalid exception: " + e,
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Float invalid failure: " + methods[i],
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Integer.TYPE
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Long.TYPE
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Boolean.TYPE
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Character.TYPE);
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod,
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							new Object[] { new Double(1) });
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Double: " + methods[i],
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Double.TYPE);
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Double invalid exception: " + e,
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Double invalid failure: " + methods[i],
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Integer.TYPE
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Long.TYPE
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Boolean.TYPE
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Character.TYPE
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Float.TYPE);
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				try {
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					methods[i].invoke(testMethod, new Object[] { new Boolean(
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							true) });
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("invalid invoke with Boolean: " + methods[i],
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Boolean.TYPE);
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				} catch (Exception e) {
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Boolean invalid exception: " + e,
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							e instanceof IllegalArgumentException);
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					assertTrue("Boolean invalid failure: " + methods[i],
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							param == Byte.TYPE || param == Short.TYPE
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Integer.TYPE
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Long.TYPE
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Character.TYPE
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Float.TYPE
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes									|| param == Double.TYPE);
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				}
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_invoke_InvocationTargetException() throws Exception {
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Method method = MockObject.class.getDeclaredMethod("mockMethod", Class.class);
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        MockObject mockObject = new MockObject();
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            method.invoke(mockObject, InvocationTargetException.class);
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw InvocationTargetException");
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvocationTargetException e) {
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            method.invoke(mockObject, IllegalAccessException.class);
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw InvocationTargetException");
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvocationTargetException e) {
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            method.invoke(mockObject, IllegalArgumentException.class);
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw InvocationTargetException");
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvocationTargetException e) {
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            method.invoke(mockObject, InvocationTargetException.class);
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw InvocationTargetException");
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvocationTargetException e) {
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            method.invoke(mockObject, Throwable.class);
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("should throw InvocationTargetException");
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvocationTargetException e) {
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // Expected
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    static class MockObject {
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void mockMethod (Class<?> clazz) throws Exception {
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            if (clazz == InstantiationException.class) {
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new InstantiationException();
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            } else if (clazz == IllegalAccessException.class) {
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new IllegalAccessException();
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            } else if (clazz == IllegalArgumentException.class) {
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new IllegalArgumentException();
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            } else if (clazz == InvocationTargetException.class) {
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new InvocationTargetException(new Throwable());
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            } else {
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new Exception();
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.lang.reflect.Method#toString()
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_toString() throws Exception {
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Method mth = null;
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Class[] parms = { int.class, short.class, String.class, boolean.class,
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Object.class, long.class, byte.class, char.class, double.class,
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                float.class };
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        mth = TestMethod.class.getDeclaredMethod("printTest", parms);
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Returned incorrect string for method: " + mth.toString(),
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                mth
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        .toString()
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        .equals(
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                "public static final void org.apache.harmony.luni.tests.java.lang.reflect.MethodTest$TestMethod.printTest(int,short,java.lang.String,boolean,java.lang.Object,long,byte,char,double,float)"));
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
620