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.Field; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.reflect.Modifier; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_Field; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class FieldTest extends junit.framework.TestCase { 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class TestField { 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static int pubfield1; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected static double doubleSField = Double.MAX_VALUE; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static int privfield1 = 123; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected int intField = Integer.MAX_VALUE; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected short shortField = Short.MAX_VALUE; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected boolean booleanField = true; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte byteField = Byte.MAX_VALUE; 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected long longField = Long.MAX_VALUE; 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected double doubleField = Double.MAX_VALUE; 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected float floatField = Float.MAX_VALUE; 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected char charField = 'T'; 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final int intFField = Integer.MAX_VALUE; 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final short shortFField = Short.MAX_VALUE; 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final boolean booleanFField = true; 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final byte byteFField = Byte.MAX_VALUE; 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final long longFField = Long.MAX_VALUE; 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final double doubleFField = Double.MAX_VALUE; 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final float floatFField = Float.MAX_VALUE; 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected final char charFField = 'T'; 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final int x = 1; 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public volatile transient int y = 0; 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected static transient volatile int prsttrvol = 99; 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public class TestFieldSub1 extends TestField { 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public class TestFieldSub2 extends TestField { 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class A { 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected short shortField = Short.MAX_VALUE; 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#equals(java.lang.Object) 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equalsLjava_lang_Object() throws Exception { 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.equals(java.lang.Object) 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("shortField"); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Same Field returned false", f.equals(f)); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Inherited Field returned false", f.equals(x.getClass() 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getDeclaredField("shortField"))); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Identical Field from different class returned true", !f 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(A.class.getDeclaredField("shortField"))); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#get(java.lang.Object) 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getLjava_lang_Object() throws Throwable { 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Object 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.get(java.lang.Object) 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = x.getClass().getDeclaredField("doubleField"); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double val = (Double) f.get(x); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect double field value", 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val.doubleValue() == Double.MAX_VALUE); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test getting a static field; 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleSField"); 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.set(x, new Double(1.0)); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = (Double) f.get(x); 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect double field value", 1.0, val 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .doubleValue()); 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Try a get on a private field 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = TestAccess.class.getDeclaredField("xxx"); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(f); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.get(null); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IllegalAccessException"); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ok) {} 1261b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Try a get on a private field in nested member 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // temporarily commented because it breaks J9 VM 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-1309 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //f = x.getClass().getDeclaredField("privfield1"); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //assertEquals(x.privfield1, f.get(x)); 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Try a get using an invalid class. 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleField"); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.get(new String()); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IllegalArgumentException"); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException exc) { 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct - Passed an Object that does not declare or inherit f 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes class SupportSubClass extends Support_Field { 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object getField(char primitiveType, Object o, Field f, 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class expectedException) { 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object res = null; 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes primitiveType = Character.toUpperCase(primitiveType); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes switch (primitiveType) { 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'I': // int 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Integer(f.getInt(o)); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'J': // long 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Long(f.getLong(o)); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'Z': // boolean 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Boolean(f.getBoolean(o)); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'S': // short 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Short(f.getShort(o)); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'B': // byte 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Byte(f.getByte(o)); 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'C': // char 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Character(f.getChar(o)); 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'D': // double 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Double(f.getDouble(o)); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'F': // float 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new Float(f.getFloat(o)); 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes default: 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = f.get(o); 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (expectedException != null) { 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("expected exception " + expectedException.getName()); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (expectedException == null) { 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("unexpected exception " + e); 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("expected exception " 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + expectedException.getName() + " and got " + e, e 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getClass().equals(expectedException)); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return res; 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes void setField(char primitiveType, Object o, Field f, 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class expectedException, Object value) { 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes primitiveType = Character.toUpperCase(primitiveType); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes switch (primitiveType) { 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'I': // int 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setInt(o, ((Integer) value).intValue()); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'J': // long 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setLong(o, ((Long) value).longValue()); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'Z': // boolean 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setBoolean(o, ((Boolean) value).booleanValue()); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'S': // short 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setShort(o, ((Short) value).shortValue()); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'B': // byte 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setByte(o, ((Byte) value).byteValue()); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'C': // char 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setChar(o, ((Character) value).charValue()); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'D': // double 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setDouble(o, ((Double) value).doubleValue()); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 'F': // float 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setFloat(o, ((Float) value).floatValue()); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes default: 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.set(o, value); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (expectedException != null) { 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("expected exception " + expectedException.getName()); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (expectedException == null) { 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("unexpected exception " + e); 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("expected exception " 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + expectedException.getName() + " and got " + e, e 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getClass().equals(expectedException)); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#get(java.lang.Object) 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getByte(java.lang.Object) 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getBoolean(java.lang.Object) 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getShort(java.lang.Object) 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getInt(java.lang.Object) 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getLong(java.lang.Object) 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getFloat(java.lang.Object) 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getDouble(java.lang.Object) 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getChar(java.lang.Object) 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#set(java.lang.Object, java.lang.Object) 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setByte(java.lang.Object, byte) 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setBoolean(java.lang.Object, boolean) 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setShort(java.lang.Object, short) 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setInt(java.lang.Object, int) 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setLong(java.lang.Object, long) 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setFloat(java.lang.Object, float) 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setDouble(java.lang.Object, double) 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setChar(java.lang.Object, char) 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testProtectedFieldAccess() { 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class fieldClass = new Support_Field().getClass(); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String fieldName = null; 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field objectField = null; 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field booleanField = null; 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field byteField = null; 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field charField = null; 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field shortField = null; 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field intField = null; 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field longField = null; 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field floatField = null; 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field doubleField = null; 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "objectField"; 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes objectField = fieldClass.getDeclaredField(fieldName); 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "booleanField"; 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes booleanField = fieldClass.getDeclaredField(fieldName); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "byteField"; 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteField = fieldClass.getDeclaredField(fieldName); 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "charField"; 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes charField = fieldClass.getDeclaredField(fieldName); 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "shortField"; 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes shortField = fieldClass.getDeclaredField(fieldName); 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "intField"; 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes intField = fieldClass.getDeclaredField(fieldName); 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "longField"; 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes longField = fieldClass.getDeclaredField(fieldName); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "floatField"; 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes floatField = fieldClass.getDeclaredField(fieldName); 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = "doubleField"; 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doubleField = fieldClass.getDeclaredField(fieldName); 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchFieldException e) { 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("missing field " + fieldName + " in test support class " 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + fieldClass.getName()); 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // create the various objects that might or might not have an instance 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // of the field 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Support_Field parentClass = new Support_Field(); 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SupportSubClass subclass = new SupportSubClass(); 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SupportSubClass otherSubclass = new SupportSubClass(); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object plainObject = new Object(); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class illegalAccessExceptionClass = new IllegalAccessException() 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getClass(); 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class illegalArgumentExceptionClass = new IllegalArgumentException() 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getClass(); 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // The test will attempt to use pass an object to set for object, byte, 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // short, ..., float and double fields 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // and pass a byte to setByte for byte, short, ..., float and double 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // fields and so on. 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // It will also test if IllegalArgumentException is thrown when the 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // field does not exist in the given object and that 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // IllegalAccessException is thrown when trying to access an 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // inaccessible protected field. 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // The test will also check that IllegalArgumentException is thrown for 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // all other attempts. 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ordered by widening conversion, except for 'L' at the beg (which 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // stands for Object). 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // If the object provided to set can be unwrapped to a primitive, then 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the set method can set 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // primitive fields. 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char types[] = { 'L', 'B', 'S', 'C', 'I', 'J', 'F', 'D' }; 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field fields[] = { objectField, byteField, shortField, charField, 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes intField, longField, floatField, doubleField }; 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object values[] = { new Byte((byte) 1), new Byte((byte) 1), 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Short((short) 1), new Character((char) 1), new Integer(1), 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(1), new Float(1), new Double(1) }; 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test set methods 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < types.length; i++) { 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char type = types[i]; 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object value = values[i]; 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = i; j < fields.length; j++) { 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field field = fields[j]; 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = field.getName(); 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (field == charField && type != 'C') { 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the exception is that bytes and shorts CANNOT be 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // converted into chars even though chars CAN be 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // converted into ints, longs, floats and doubles 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField(type, subclass, field, 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass, value); 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // setting type into field); 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField(type, subclass, field, null, value); 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField(type, otherSubclass, field, null, value); 3561b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.setField(type, parentClass, field, illegalAccessExceptionClass, value); 3571b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.setField(type, plainObject, field, illegalAccessExceptionClass, value); 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 0; j < i; j++) { 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field field = fields[j]; 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = field.getName(); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // not setting type into field); 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField(type, subclass, field, 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass, value); 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test setBoolean 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Boolean booleanValue = Boolean.TRUE; 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField('Z', subclass, booleanField, null, booleanValue); 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField('Z', otherSubclass, booleanField, null, booleanValue); 3731b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.setField('Z', parentClass, booleanField, illegalAccessExceptionClass, booleanValue); 3741b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.setField('Z', plainObject, booleanField, illegalAccessExceptionClass, booleanValue); 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 0; j < fields.length; j++) { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field listedField = fields[j]; 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = listedField.getName(); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // not setting boolean into listedField 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField('Z', subclass, listedField, 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass, booleanValue); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < types.length; i++) { 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char type = types[i]; 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object value = values[i]; 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.setField(type, subclass, booleanField, 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass, value); 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // We perform the analagous test on the get methods. 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ordered by widening conversion, except for 'L' at the end (which 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // stands for Object), to which all primitives can be converted by 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // wrapping 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char newTypes[] = new char[] { 'B', 'S', 'C', 'I', 'J', 'F', 'D', 'L' }; 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field newFields[] = { byteField, shortField, charField, intField, 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes longField, floatField, doubleField, objectField }; 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fields = newFields; 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes types = newTypes; 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test get methods 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < types.length; i++) { 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char type = types[i]; 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 0; j <= i; j++) { 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field field = fields[j]; 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = field.getName(); 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (type == 'C' && field != charField) { 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the exception is that bytes and shorts CANNOT be 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // converted into chars even though chars CAN be 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // converted into ints, longs, floats and doubles 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField(type, subclass, field, 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass); 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // getting type from field 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField(type, subclass, field, null); 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField(type, otherSubclass, field, null); 4151b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.getField(type, parentClass, field, illegalAccessExceptionClass); 4161b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.getField(type, plainObject, field, illegalAccessExceptionClass); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = i + 1; j < fields.length; j++) { 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field field = fields[j]; 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = field.getName(); 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField(type, subclass, field, 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass); 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test getBoolean 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField('Z', subclass, booleanField, null); 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField('Z', otherSubclass, booleanField, null); 4301b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.getField('Z', parentClass, booleanField, illegalAccessExceptionClass); 4311b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes subclass.getField('Z', plainObject, booleanField, illegalAccessExceptionClass); 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 0; j < fields.length; j++) { 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field listedField = fields[j]; 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fieldName = listedField.getName(); 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // not getting boolean from listedField 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField('Z', subclass, listedField, 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < types.length - 1; i++) { 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char type = types[i]; 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes subclass.getField(type, subclass, booleanField, 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes illegalArgumentExceptionClass); 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Object res = subclass.getField('L', subclass, booleanField, null); 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("unexpected object " + res, res instanceof Boolean); 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getBoolean(java.lang.Object) 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getBooleanLjava_lang_Object() throws Exception { 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getBoolean(java.lang.Object) 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean val = false; 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getBoolean(x); 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect boolean field value", val); 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleField"); 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getBoolean(x); 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since doubleField is not a 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getByte(java.lang.Object) 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getByteLjava_lang_Object() throws Exception { 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method byte 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getByte(java.lang.Object) 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte val = 0; 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("byteField"); 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getByte(x); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect byte field value", val == Byte.MAX_VALUE); 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getByte(x); 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since byteField is not a 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getChar(java.lang.Object) 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getCharLjava_lang_Object() throws Exception { 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method char 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getChar(java.lang.Object) 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char val = 0; 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("charField"); 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getChar(x); 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect char field value", 'T', val); 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getChar(x); 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since charField is not a 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getDeclaringClass() 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getDeclaringClass() { 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Class 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getDeclaringClass() 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field[] fields; 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fields = new TestField().getClass().getFields(); 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect declaring class", fields[0] 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getDeclaringClass().equals(new TestField().getClass())); 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Check the case where the field is inherited to be sure the parent 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // is returned as the declarator 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fields = new TestFieldSub1().getClass().getFields(); 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect declaring class", fields[0] 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getDeclaringClass().equals(new TestField().getClass())); 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getDouble(java.lang.Object) 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getDoubleLjava_lang_Object() throws Exception { 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method double 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getDouble(java.lang.Object) 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double val = 0.0; 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleField"); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getDouble(x); 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect double field value", 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val == Double.MAX_VALUE); 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getDouble(x); 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since doubleField is not a 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getFloat(java.lang.Object) 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getFloatLjava_lang_Object() throws Exception { 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method float 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getFloat(java.lang.Object) 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes float val = 0; 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("floatField"); 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getFloat(x); 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect float field value", 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val == Float.MAX_VALUE); 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getFloat(x); 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since floatField is not a 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getInt(java.lang.Object) 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getIntLjava_lang_Object() throws Exception { 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.lang.reflect.Field.getInt(java.lang.Object) 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int val = 0; 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("intField"); 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getInt(x); 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect Int field value", 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val == Integer.MAX_VALUE); 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getInt(x); 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since IntField is not a 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getLong(java.lang.Object) 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getLongLjava_lang_Object() throws Exception { 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method long 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getLong(java.lang.Object) 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long val = 0; 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("longField"); 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getLong(x); 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect long field value", val == Long.MAX_VALUE); 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getLong(x); 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // long type 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getModifiers() 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getModifiers() throws Exception { 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.lang.reflect.Field.getModifiers() 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("prsttrvol"); 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int mod = f.getModifiers(); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int mask = (Modifier.PROTECTED | Modifier.STATIC) 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes | (Modifier.TRANSIENT | Modifier.VOLATILE); 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int nmask = (Modifier.PUBLIC | Modifier.NATIVE); 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect field modifiers: ", 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((mod & mask) == mask) && ((mod & nmask) == 0)); 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getName() 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getName() throws Exception { 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.String java.lang.reflect.Field.getName() 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("shortField"); 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 6721b84f9e7ed4d17d2bc742d89e92b2ecb01dade70Elliott Hughes assertEquals("Returned incorrect field name", 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "shortField", f.getName()); 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getShort(java.lang.Object) 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getShortLjava_lang_Object() throws Exception { 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method short 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.getShort(java.lang.Object) 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes short val = 0; 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("shortField"); 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getShort(x); 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect short field value", 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val == Short.MAX_VALUE); 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getShort(x); 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // short type 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#getType() 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getType() throws Exception { 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Class java.lang.reflect.Field.getType() 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("shortField"); 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect field type: " + f.getType().toString(), 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.getType().equals(short.class)); 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#set(java.lang.Object, java.lang.Object) 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setLjava_lang_ObjectLjava_lang_Object() throws Exception { 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.lang.reflect.Field.set(java.lang.Object, 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.Object) 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double val = 0.0; 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleField"); 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.set(x, new Double(1.0)); 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getDouble(x); 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect double field value", 1.0, val); 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.set(x, new Double(1.0)); 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // double type 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleFField"); 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.set(x, new Double(1.0)); 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since doubleFField is 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // declared as final 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test setting a static field; 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleSField"); 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.set(x, new Double(1.0)); 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getDouble(x); 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect double field value", 1.0, val); 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setBoolean(java.lang.Object, boolean) 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setBooleanLjava_lang_ObjectZ() throws Exception { 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setBoolean(java.lang.Object, boolean) 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean val = false; 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setBoolean(x, false); 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getBoolean(x); 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Returned incorrect float field value", !val); 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setBoolean(x, true); 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // boolean type 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanFField"); 781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setBoolean(x, true); 782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is 784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // declared as final 785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setByte(java.lang.Object, byte) 793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setByteLjava_lang_ObjectB() throws Exception { 795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setByte(java.lang.Object, byte) 797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte val = 0; 800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("byteField"); 801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setByte(x, (byte) 1); 802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getByte(x); 803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect float field value", 1, val); 805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setByte(x, (byte) 1); 809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // byte type 812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("byteFField"); 817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setByte(x, (byte) 1); 818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since byteFField is declared 820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // as final 821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setChar(java.lang.Object, char) 829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setCharLjava_lang_ObjectC() throws Exception { 831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setChar(java.lang.Object, char) 833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char val = 0; 836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("charField"); 837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setChar(x, (char) 1); 838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getChar(x); 839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect float field value", 1, val); 841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setChar(x, (char) 1); 845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // char type 848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("charFField"); 853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setChar(x, (char) 1); 854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since charFField is declared 856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // as final 857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setDouble(java.lang.Object, double) 865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setDoubleLjava_lang_ObjectD() throws Exception { 867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setDouble(java.lang.Object, double) 869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double val = 0.0; 872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleField"); 873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setDouble(x, 1.0); 874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getDouble(x); 875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect double field value", 1.0, val); 877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setDouble(x, 1.0); 881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // double type 884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("doubleFField"); 889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setDouble(x, 1.0); 890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since doubleFField is 892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // declared as final 893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setFloat(java.lang.Object, float) 901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setFloatLjava_lang_ObjectF() throws Exception { 903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setFloat(java.lang.Object, float) 905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes float val = 0.0F; 908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("floatField"); 909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setFloat(x, (float) 1); 910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getFloat(x); 911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect float field value", 1.0, val, 0.0); 913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setFloat(x, (float) 1); 916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // float type 919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("floatFField"); 923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setFloat(x, (float) 1); 924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since floatFField is 926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // declared as final 927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setInt(java.lang.Object, int) 935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setIntLjava_lang_ObjectI() throws Exception { 937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.lang.reflect.Field.setInt(java.lang.Object, 938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // int) 939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int val = 0; 942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("intField"); 943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setInt(x, (int) 1); 944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getInt(x); 945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect int field value", 1, val); 947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setInt(x, (int) 1); 951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // int type 954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("intFField"); 958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setInt(x, (int) 1); 959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since intFField is declared 961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // as final 962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setLong(java.lang.Object, long) 970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setLongLjava_lang_ObjectJ() throws Exception { 972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setLong(java.lang.Object, long) 974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long val = 0L; 977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("longField"); 978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setLong(x, (long) 1); 979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getLong(x); 980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect long field value", 1, val); 982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setLong(x, (long) 1); 986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // long type 989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("longFField"); 993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setLong(x, (long) 1); 994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since longFField is declared 996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // as final 997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#setShort(java.lang.Object, short) 1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setShortLjava_lang_ObjectS() throws Exception { 1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void 1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.reflect.Field.setShort(java.lang.Object, short) 1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes TestField x = new TestField(); 1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes short val = 0; 1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("shortField"); 1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setShort(x, (short) 1); 1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes val = f.getShort(x); 1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect short field value", 1, val); 1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("booleanField"); 1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setShort(x, (short) 1); 1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException ex) { 1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since booleanField is not a 1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // short type 1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = x.getClass().getDeclaredField("shortFField"); 1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.setShort(x, (short) 1); 1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalAccessException ex) { 1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Good, Exception should be thrown since shortFField is 1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // declared as final 1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Accessed field of invalid type"); 1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.reflect.Field#toString() 1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_toString() throws Exception { 1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field f = null; 1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f = TestField.class.getDeclaredField("x"); 1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Field returned incorrect string", 1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "private static final int org.apache.harmony.luni.tests.java.lang.reflect.FieldTest$TestField.x", 1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes f.toString()); 1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesclass TestAccess { 1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static int xxx; 1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 1055