1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.lang.reflect; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.Support_Field; 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.annotation.Annotation; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.annotation.ElementType; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.annotation.Inherited; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.annotation.Retention; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.annotation.RetentionPolicy; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.annotation.Target; 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.reflect.Field; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.reflect.Modifier; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.reflect.Type; 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.lang.reflect.TypeVariable; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.HashSet; 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Set; 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Field.class) 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class FieldTest extends junit.framework.TestCase { 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // BEGIN android-note 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // This test had a couple of bugs in it. Some parts of the code were 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // unreachable before. Also some tests expected the wrong excpetions 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // to be thrown. This version has been validated to pass on a standard 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // JDK 1.5. 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // END android-note 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public class TestClass { 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @AnnotationRuntime0 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @AnnotationRuntime1 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @AnnotationClass0 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @AnnotationSource0 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int annotatedField; 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project class Inner{} 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Retention(RetentionPolicy.RUNTIME) 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Target( {ElementType.FIELD}) 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static @interface AnnotationRuntime0 { 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Retention(RetentionPolicy.RUNTIME) 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Target( { ElementType.FIELD}) 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static @interface AnnotationRuntime1 { 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Retention(RetentionPolicy.CLASS) 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Target( { ElementType.FIELD}) 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static @interface AnnotationClass0 { 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Retention(RetentionPolicy.SOURCE) 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Target( {ElementType.FIELD}) 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static @interface AnnotationSource0 { 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Inherited 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Retention(RetentionPolicy.RUNTIME) 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Target( {ElementType.FIELD}) 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static @interface InheritedRuntime { 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public class GenericField<S, T extends Number> { 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project S field; 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project T boundedField; 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int intField; 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class TestField { 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static int pubfield1; 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static int privfield1 = 123; 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected int intField = Integer.MAX_VALUE; 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final int intFField = Integer.MAX_VALUE; 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static int intSField = Integer.MAX_VALUE; 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final int intPFField = Integer.MAX_VALUE; 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected short shortField = Short.MAX_VALUE; 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final short shortFField = Short.MAX_VALUE; 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static short shortSField = Short.MAX_VALUE; 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final short shortPFField = Short.MAX_VALUE; 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected boolean booleanField = true; 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static boolean booleanSField = true; 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final boolean booleanFField = true; 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final boolean booleanPFField = true; 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected byte byteField = Byte.MAX_VALUE; 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static byte byteSField = Byte.MAX_VALUE; 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final byte byteFField = Byte.MAX_VALUE; 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final byte bytePFField = Byte.MAX_VALUE; 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected long longField = Long.MAX_VALUE; 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final long longFField = Long.MAX_VALUE; 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static long longSField = Long.MAX_VALUE; 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final long longPFField = Long.MAX_VALUE; 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected double doubleField = Double.MAX_VALUE; 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static double doubleSField = Double.MAX_VALUE; 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static final double doubleSFField = Double.MAX_VALUE; 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final double doubleFField = Double.MAX_VALUE; 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final double doublePFField = Double.MAX_VALUE; 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected float floatField = Float.MAX_VALUE; 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final float floatFField = Float.MAX_VALUE; 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static float floatSField = Float.MAX_VALUE; 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final float floatPFField = Float.MAX_VALUE; 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected char charField = 'T'; 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static char charSField = 'T'; 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private final char charPFField = 'T'; 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected final char charFField = 'T'; 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static final int x = 1; 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public volatile transient int y = 0; 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected static transient volatile int prsttrvol = 99; 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public class TestFieldSub1 extends TestField { 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public class TestFieldSub2 extends TestField { 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class A { 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected short shortField = Short.MAX_VALUE; 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static enum TestEnum { 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project A, B, C; 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int field; 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#equals(java.lang.Object) 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "equals", 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_equalsLjava_lang_Object() { 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method boolean 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.equals(java.lang.Object) 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getType test : " + e.getMessage()); 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Same Field returned false", f.equals(f)); 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Inherited Field returned false", f.equals(x.getClass() 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getDeclaredField("shortField"))); 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Identical Field from different class returned true", !f 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .equals(A.class.getDeclaredField("shortField"))); 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getType test : " + e.getMessage()); 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#get(java.lang.Object) 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "get", 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getLjava_lang_Object() throws Throwable { 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.lang.Object 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.get(java.lang.Object) 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = x.getClass().getDeclaredField("doubleField"); 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Double val = (Double) f.get(x); 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect double field value", 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val.doubleValue() == Double.MAX_VALUE); 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test getting a static field; 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleSField"); 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(x, new Double(1.0)); 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = (Double) f.get(x); 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect double field value", 1.0, val 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .doubleValue()); 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Try a get on a private field 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = TestAccess.class.getDeclaredField("xxx"); 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(f); 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.get(null); 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No expected IllegalAccessException"); 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ok) { 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Try a get on a private field in nested member 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // temporarily commented because it breaks J9 VM 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression for HARMONY-1309 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //f = x.getClass().getDeclaredField("privfield1"); 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //assertEquals(x.privfield1, f.get(x)); 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Try a get using an invalid class. 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.get(new String()); 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No expected IllegalArgumentException"); 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException exc) { 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Correct - Passed an Object that does not declare or inherit f 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = TestField.class.getDeclaredField("intField"); 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.get(null); 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Expected NullPointerException not thrown"); 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException exc) { 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Correct - Passed an Object that does not declare or inherit f 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static fields 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = TestField.class.getDeclaredField("doubleSField"); 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.get(null); 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Exception thrown", true); 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception exc) { 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected"); 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project class SupportSubClass extends Support_Field { 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object getField(char primitiveType, Object o, Field f, 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Class expectedException) { 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object res = null; 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project primitiveType = Character.toUpperCase(primitiveType); 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project switch (primitiveType) { 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'I': // int 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Integer(f.getInt(o)); 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'J': // long 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Long(f.getLong(o)); 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'Z': // boolean 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Boolean(f.getBoolean(o)); 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'S': // short 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Short(f.getShort(o)); 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'B': // byte 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Byte(f.getByte(o)); 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'C': // char 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Character(f.getChar(o)); 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'D': // double 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Double(f.getDouble(o)); 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'F': // float 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = new Float(f.getFloat(o)); 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project default: 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project res = f.get(o); 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (expectedException != null) { 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("expected exception " + expectedException.getName()); 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (expectedException == null) { 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("unexpected exception " + e); 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("expected exception " 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + expectedException.getName() + " and got " + e, e 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getClass().equals(expectedException)); 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return res; 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project void setField(char primitiveType, Object o, Field f, 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Class expectedException, Object value) { 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project primitiveType = Character.toUpperCase(primitiveType); 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project switch (primitiveType) { 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'I': // int 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setInt(o, ((Integer) value).intValue()); 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'J': // long 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setLong(o, ((Long) value).longValue()); 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'Z': // boolean 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setBoolean(o, ((Boolean) value).booleanValue()); 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'S': // short 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setShort(o, ((Short) value).shortValue()); 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'B': // byte 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setByte(o, ((Byte) value).byteValue()); 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'C': // char 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setChar(o, ((Character) value).charValue()); 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'D': // double 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setDouble(o, ((Double) value).doubleValue()); 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project case 'F': // float 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setFloat(o, ((Float) value).floatValue()); 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project break; 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project default: 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(o, value); 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (expectedException != null) { 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("expected exception " + expectedException.getName() 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + " for field " + f.getName() + ", value " + value); 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (expectedException == null) { 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("unexpected exception " + e + " for field " 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + f.getName() + ", value " + value); 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("expected exception " 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + expectedException.getName() + " and got " + e 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + " for field " + f.getName() + ", value " + value, 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project e.getClass().equals(expectedException)); 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#get(java.lang.Object) 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getByte(java.lang.Object) 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getBoolean(java.lang.Object) 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getShort(java.lang.Object) 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getInt(java.lang.Object) 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getLong(java.lang.Object) 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getFloat(java.lang.Object) 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getDouble(java.lang.Object) 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getChar(java.lang.Object) 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#set(java.lang.Object, java.lang.Object) 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setByte(java.lang.Object, byte) 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setBoolean(java.lang.Object, boolean) 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setShort(java.lang.Object, short) 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setInt(java.lang.Object, int) 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setLong(java.lang.Object, long) 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setFloat(java.lang.Object, float) 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setDouble(java.lang.Object, double) 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setChar(java.lang.Object, char) 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "get", 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getByte", 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getBoolean", 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getShort", 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getInt", 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getFloat", 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getDouble", 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getChar", 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "set", 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, java.lang.Object.class} 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setBoolean", 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, boolean.class} 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setByte", 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, byte.class} 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setShort", 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, short.class} 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setInt", 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, int.class} 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setLong", 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, long.class} 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setFloat", 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, float.class} 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setDouble", 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, double.class} 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL, 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Stress test.", 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setChar", 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, char.class} 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void testProtectedFieldAccess() { 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Class fieldClass = new Support_Field().getClass(); 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String fieldName = null; 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field objectField = null; 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field booleanField = null; 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field byteField = null; 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field charField = null; 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field shortField = null; 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field intField = null; 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field longField = null; 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field floatField = null; 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field doubleField = null; 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "objectField"; 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project objectField = fieldClass.getDeclaredField(fieldName); 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "booleanField"; 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project booleanField = fieldClass.getDeclaredField(fieldName); 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "byteField"; 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byteField = fieldClass.getDeclaredField(fieldName); 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "charField"; 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project charField = fieldClass.getDeclaredField(fieldName); 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "shortField"; 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project shortField = fieldClass.getDeclaredField(fieldName); 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "intField"; 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project intField = fieldClass.getDeclaredField(fieldName); 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "longField"; 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project longField = fieldClass.getDeclaredField(fieldName); 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "floatField"; 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project floatField = fieldClass.getDeclaredField(fieldName); 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = "doubleField"; 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project doubleField = fieldClass.getDeclaredField(fieldName); 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NoSuchFieldException e) { 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("missing field " + fieldName + " in test support class " 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + fieldClass.getName()); 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // create the various objects that might or might not have an instance 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // of the field 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Field parentClass = new Support_Field(); 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SupportSubClass subclass = new SupportSubClass(); 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SupportSubClass otherSubclass = new SupportSubClass(); 542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object plainObject = new Object(); 543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Class illegalAccessExceptionClass = new IllegalAccessException() 545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getClass(); 546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Class illegalArgumentExceptionClass = new IllegalArgumentException() 547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getClass(); 548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The test will attempt to use pass an object to set for object, byte, 550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // short, ..., float and double fields 551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // and pass a byte to to setByte for byte, short, ..., float and double 552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // fields and so on. 553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // It will also test if IllegalArgumentException is thrown when the 554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // field does not exist in the given object and that 555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // IllegalAccessException is thrown when trying to access an 556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // inaccessible protected field. 557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // The test will also check that IllegalArgumentException is thrown for 558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // all other attempts. 559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Ordered by widening conversion, except for 'L' at the beg (which 561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // stands for Object). 562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // If the object provided to set can be unwrapped to a primitive, then 563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // the set method can set 564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // primitive fields. 565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char types[] = { 'L', 'B', 'S', 'C', 'I', 'J', 'F', 'D' }; 566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field fields[] = { objectField, byteField, shortField, charField, 567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project intField, longField, floatField, doubleField }; 568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object values[] = { new Byte((byte) 1), new Byte((byte) 1), 569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new Short((short) 1), new Character((char) 1), new Integer(1), 570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new Long(1), new Float(1), new Double(1) }; 571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test set methods 573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < types.length; i++) { 574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char type = types[i]; 575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object value = values[i]; 576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int j = i; j < fields.length; j++) { 577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = fields[j]; 578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = field.getName(); 579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (field == charField && type != 'C') { 581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // the exception is that bytes and shorts CANNOT be 582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // converted into chars even though chars CAN be 583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // converted into ints, longs, floats and doubles 584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, subclass, field, 585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass, value); 586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // setting type into field); 588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, subclass, field, null, value); 589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, otherSubclass, field, null, value); 590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, parentClass, field, 591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass, value); 592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, plainObject, field, 593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Failed on JDK. 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass, value); 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int j = 0; j < i; j++) { 598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = fields[j]; 599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = field.getName(); 600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // not setting type into field); 601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, subclass, field, 602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass, value); 603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test setBoolean 607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Boolean booleanValue = Boolean.TRUE; 608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField('Z', subclass, booleanField, null, booleanValue); 609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField('Z', otherSubclass, booleanField, null, booleanValue); 610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField('Z', parentClass, booleanField, 611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass, booleanValue); 612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField('Z', plainObject, booleanField, 613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Failed on JDK 614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass, booleanValue); 615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int j = 0; j < fields.length; j++) { 616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field listedField = fields[j]; 617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = listedField.getName(); 618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // not setting boolean into listedField 619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField('Z', subclass, listedField, 620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass, booleanValue); 621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < types.length; i++) { 623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char type = types[i]; 624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object value = values[i]; 625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.setField(type, subclass, booleanField, 626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass, value); 627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // We perform the analagous test on the get methods. 630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // ordered by widening conversion, except for 'L' at the end (which 632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // stands for Object), to which all primitives can be converted by 633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // wrapping 634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char newTypes[] = new char[] { 'B', 'S', 'C', 'I', 'J', 'F', 'D', 'L' }; 635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field newFields[] = { byteField, shortField, charField, intField, 636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project longField, floatField, doubleField, objectField }; 637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fields = newFields; 638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project types = newTypes; 639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test get methods 640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < types.length; i++) { 641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char type = types[i]; 642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int j = 0; j <= i; j++) { 643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = fields[j]; 644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = field.getName(); 645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (type == 'C' && field != charField) { 646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // the exception is that bytes and shorts CANNOT be 647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // converted into chars even though chars CAN be 648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // converted into ints, longs, floats and doubles 649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, subclass, field, 650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass); 651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } else { 652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // getting type from field 653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, subclass, field, null); 654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, otherSubclass, field, null); 655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, parentClass, field, 656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass); 657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, plainObject, field, 658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass); 659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int j = i + 1; j < fields.length; j++) { 662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = fields[j]; 663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = field.getName(); 664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, subclass, field, 665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass); 666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test getBoolean 670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField('Z', subclass, booleanField, null); 671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField('Z', otherSubclass, booleanField, null); 672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField('Z', parentClass, booleanField, 673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass); 674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField('Z', plainObject, booleanField, 675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalAccessExceptionClass); 676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int j = 0; j < fields.length; j++) { 677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field listedField = fields[j]; 678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fieldName = listedField.getName(); 679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // not getting boolean from listedField 680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField('Z', subclass, listedField, 681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass); 682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < types.length - 1; i++) { 684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char type = types[i]; 685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project subclass.getField(type, subclass, booleanField, 686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project illegalArgumentExceptionClass); 687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object res = subclass.getField('L', subclass, booleanField, null); 689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("unexpected object " + res, res instanceof Boolean); 690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getBoolean(java.lang.Object) 694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getBoolean", 699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getBooleanLjava_lang_Object() { 702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean val = false; 705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getBoolean(x); 708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getBoolean test: " + e.toString()); 710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect boolean field value", val); 712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getBoolean(x); 717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanPFField"); 728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getBoolean(x); 729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getBoolean(null); 743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanSField"); 755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean staticValue = f.getBoolean(null); 756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Wrong value returned", staticValue); 757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected"); 759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getByte(java.lang.Object) 765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getByte", 770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getByteLjava_lang_Object() { 773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method byte 774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getByte(java.lang.Object) 775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte val = 0; 778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("byteField"); 780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getByte(x); 781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getbyte test : " + e.getMessage()); 783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect byte field value", val == Byte.MAX_VALUE); 785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getByte(x); 790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("bytePFField"); 801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getByte(x); 802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("byteField"); 815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getByte(null); 816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("byteSField"); 828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte staticValue = f.getByte(null); 829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", Byte.MAX_VALUE, staticValue); 830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected "+ ex.getMessage()); 832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getChar(java.lang.Object) 837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getChar", 842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getCharLjava_lang_Object() { 845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method char 846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getChar(java.lang.Object) 847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char val = 0; 850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charField"); 852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getChar(x); 853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getCharacter test: " + e.toString()); 855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect char field value", 'T', val); 857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getChar(x); 862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charPFField"); 873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getChar(x); 874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charField"); 887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getChar(null); 888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charSField"); 900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char staticValue = f.getChar(null); 901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", 'T', staticValue); 902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected "+ ex.getMessage()); 904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getDeclaringClass() 909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getDeclaringClass", 914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getDeclaringClass() { 917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.lang.Class 918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getDeclaringClass() 919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field[] fields; 920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fields = new TestField().getClass().getFields(); 923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect declaring class", fields[0] 924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getDeclaringClass().equals(new TestField().getClass())); 925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Check the case where the field is inherited to be sure the parent 927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // is returned as the declarator 928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fields = new TestFieldSub1().getClass().getFields(); 929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect declaring class", fields[0] 930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getDeclaringClass().equals(new TestField().getClass())); 931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception : " + e.getMessage()); 933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getDouble(java.lang.Object) 938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getDouble", 943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getDoubleLjava_lang_Object() { 946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method double 947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getDouble(java.lang.Object) 948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project double val = 0.0; 951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getDouble(x); 954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getDouble test: " + e.toString()); 956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect double field value", 958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val == Double.MAX_VALUE); 959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getDouble(x); 964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown " 969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doublePFField"); 976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getDouble(x); 977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getDouble(null); 991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 1000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleSFField"); 1003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project double staticValue = f.getDouble(null); 1004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", Double.MAX_VALUE, staticValue); 1005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected "+ ex.getMessage()); 1007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getFloat(java.lang.Object) 1012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getFloat", 1017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 1018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getFloatLjava_lang_Object() { 1020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method float 1021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getFloat(java.lang.Object) 1022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float val = 0; 1025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatField"); 1027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getFloat(x); 1028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getFloat test : " + e.getMessage()); 1030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect float field value", 1032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val == Float.MAX_VALUE); 1033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getFloat(x); 1038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 1039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown " 1043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatPFField"); 1050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getFloat(x); 1051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 1052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 1056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatField"); 1064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getFloat(null); 1065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 1074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatSField"); 1077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float staticValue = f.getFloat(null); 1078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", Float.MAX_VALUE, staticValue); 1079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected "+ ex.getMessage()); 1081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getInt(java.lang.Object) 1086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getInt", 1091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 1092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getIntLjava_lang_Object() { 1094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method int java.lang.reflect.Field.getInt(java.lang.Object) 1095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int val = 0; 1098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intField"); 1100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getInt(x); 1101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getInt test : " + e.getMessage()); 1103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect Int field value", 1105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val == Integer.MAX_VALUE); 1106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getInt(x); 1111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 1112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown " 1116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intPFField"); 1123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getInt(x); 1124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 1125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 1129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intField"); 1137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getInt(null); 1138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 1147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intSField"); 1150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int staticValue = f.getInt(null); 1151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", Integer.MAX_VALUE, staticValue); 1152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected " + ex.getMessage()); 1154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getLong(java.lang.Object) 1160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getLong", 1165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 1166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getLongLjava_lang_Object() { 1168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method long 1169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getLong(java.lang.Object) 1170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project long val = 0; 1173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longField"); 1175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getLong(x); 1176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getLong test : " + e.getMessage()); 1178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getLong(x); 1184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 1185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown " 1189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longPFField"); 1196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getLong(x); 1197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 1198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 1202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longField"); 1210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getLong(null); 1211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 1220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longSField"); 1223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project long staticValue = f.getLong(null); 1224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", Long.MAX_VALUE, staticValue); 1225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected "+ ex.getMessage()); 1227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getModifiers() 1232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getModifiers", 1237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getModifiers() { 1240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method int java.lang.reflect.Field.getModifiers() 1241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("prsttrvol"); 1245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getModifiers test: " + e.toString()); 1247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int mod = f.getModifiers(); 1249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int mask = (Modifier.PROTECTED | Modifier.STATIC) 1250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project | (Modifier.TRANSIENT | Modifier.VOLATILE); 1251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int nmask = (Modifier.PUBLIC | Modifier.NATIVE); 1252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect field modifiers: ", 1253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ((mod & mask) == mask) && ((mod & nmask) == 0)); 1254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getName() 1258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getName", 1263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getName() { 1266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.lang.String java.lang.reflect.Field.getName() 1267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 1271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getType test : " + e.getMessage()); 1273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect field name", 1275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "shortField", f.getName()); 1276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getShort(java.lang.Object) 1280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getShort", 1285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 1286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getShortLjava_lang_Object() { 1288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method short 1289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.getShort(java.lang.Object) 1290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project short val = 0; 1293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ; 1294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 1296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getShort(x); 1297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getShort test : " + e.getMessage()); 1299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect short field value", 1301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val == Short.MAX_VALUE); 1302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getShort(x); 1307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown"); 1308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected but not thrown " 1312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortPFField"); 1319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getShort(x); 1320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown"); 1321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalAccessException expected but not thrown" 1325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getMessage()); 1326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 1333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getShort(null); 1334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test no NPE on static field 1343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortSField"); 1346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project short staticValue = f.getShort(null); 1347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong value returned", Short.MAX_VALUE, staticValue); 1348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("No exception expected "+ ex.getMessage()); 1350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#getType() 1355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getType", 1360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getType() { 1363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.lang.Class java.lang.reflect.Field.getType() 1364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 1368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during getType test : " + e.getMessage()); 1370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect field type: " + f.getType().toString(), 1372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.getType().equals(short.class)); 1373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#set(java.lang.Object, java.lang.Object) 1377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "set", 1382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, java.lang.Object.class} 1383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setLjava_lang_ObjectLjava_lang_Object() throws Exception{ 1385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void java.lang.reflect.Field.set(java.lang.Object, 1386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.Object) 1387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project double val = 0.0; 1390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 1392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(x, new Double(1.0)); 1393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getDouble(x); 1394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during set test : " + e.getMessage()); 1396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect double field value", 1.0, val); 1398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test wrong type 1400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(x, new Double(1.0)); 1404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test not accessible 1411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleFField"); 1414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(x, new Double(1.0)); 1416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(null, true); 1427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleSField"); 1437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.set(null, new Double(1.0)); 1438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getDouble(x); 1439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect double field value", 1.0, val); 1440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setBoolean(java.lang.Object, boolean) 1444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setBoolean", 1449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, boolean.class} 1450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setBooleanLjava_lang_ObjectZ() throws Exception{ 1452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setBoolean(java.lang.Object, boolean) 1454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean val = false; 1457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setBoolean(x, false); 1460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getBoolean(x); 1461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setboolean test: " + e.toString()); 1463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect float field value", !val); 1465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test wrong type 1467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 1470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setBoolean(x, false); 1471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test not accessible 1478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanPFField"); 1481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setBoolean(x, true); 1483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setBoolean(null, true); 1494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanSField"); 1504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setBoolean(null, false); 1505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getBoolean(x); 1506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse("Returned incorrect boolean field value", val); 1507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setByte(java.lang.Object, byte) 1511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setByte", 1516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, byte.class} 1517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setByteLjava_lang_ObjectB() throws Exception{ 1519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setByte(java.lang.Object, byte) 1521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte val = 0; 1524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("byteField"); 1526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setByte(x, (byte) 1); 1527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getByte(x); 1528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setByte test : " + e.getMessage()); 1530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect float field value", 1, val); 1532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test wrong type 1534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setByte(x, Byte.MIN_VALUE); 1538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test not accessible 1545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("bytePFField"); 1548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setByte(x, Byte.MIN_VALUE); 1550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("byteField"); 1560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setByte(null, Byte.MIN_VALUE); 1561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("byteSField"); 1571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setByte(null, Byte.MIN_VALUE); 1572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getByte(x); 1573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect byte field value", Byte.MIN_VALUE, 1574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val); 1575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setChar(java.lang.Object, char) 1579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setChar", 1584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, char.class} 1585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setCharLjava_lang_ObjectC() throws Exception{ 1587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setChar(java.lang.Object, char) 1589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project char val = 0; 1592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charField"); 1594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setChar(x, (char) 1); 1595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getChar(x); 1596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setChar test : " + e.getMessage()); 1598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect float field value", 1, val); 1600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test wrong type 1602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setChar(x, Character.MIN_VALUE); 1606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test not accessible 1613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charPFField"); 1616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setChar(x, Character.MIN_VALUE); 1618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charField"); 1628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setChar(null, Character.MIN_VALUE); 1629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("charSField"); 1639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setChar(null, Character.MIN_VALUE); 1640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getChar(x); 1641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect char field value", 1642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Character.MIN_VALUE, val); 1643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setDouble(java.lang.Object, double) 1647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setDouble", 1652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, double.class} 1653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setDoubleLjava_lang_ObjectD() throws Exception{ 1655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setDouble(java.lang.Object, double) 1657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project double val = 0.0; 1660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 1662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setDouble(x, Double.MIN_VALUE); 1663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getDouble(x); 1664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setDouble test: " + e.toString()); 1666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect double field value", Double.MIN_VALUE, 1668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val); 1669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test wrong type 1671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setDouble(x, Double.MIN_VALUE); 1675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test not accessible 1682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doublePFField"); 1685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setDouble(x, Double.MIN_VALUE); 1687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleField"); 1697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setDouble(null, Double.MIN_VALUE); 1698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("doubleSField"); 1708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setDouble(null, Double.MIN_VALUE); 1709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getDouble(x); 1710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect double field value", 1711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Double.MIN_VALUE, val); 1712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setFloat(java.lang.Object, float) 1716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setFloat", 1721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, float.class} 1722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setFloatLjava_lang_ObjectF() throws Exception{ 1724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setFloat(java.lang.Object, float) 1726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project float val = 0.0F; 1729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatField"); 1731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setFloat(x, Float.MIN_VALUE); 1732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getFloat(x); 1733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setFloat test : " + e.getMessage()); 1735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect float field value", Float.MIN_VALUE, 1737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val, 0.0); 1738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test wrong type 1740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setFloat(x, Float.MIN_VALUE); 1744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //test not accessible 1751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatPFField"); 1754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setFloat(x, Float.MIN_VALUE); 1756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //Test NPE 1763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatField"); 1766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setFloat(null, Float.MIN_VALUE); 1767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("floatSField"); 1777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setFloat(null, Float.MIN_VALUE); 1778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getFloat(x); 1779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect float field value", 1780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Float.MIN_VALUE, val); 1781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setInt(java.lang.Object, int) 1785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setInt", 1790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, int.class} 1791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setIntLjava_lang_ObjectI() throws Exception{ 1793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void java.lang.reflect.Field.setInt(java.lang.Object, 1794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // int) 1795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int val = 0; 1798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intField"); 1800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setInt(x, Integer.MIN_VALUE); 1801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getInt(x); 1802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setInteger test: " + e.toString()); 1804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect int field value", Integer.MIN_VALUE, 1806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val); 1807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test wrong type 1809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setInt(x, Integer.MIN_VALUE); 1813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test not accessible 1820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intPFField"); 1823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setInt(x, Integer.MIN_VALUE); 1825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test NPE 1832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intField"); 1835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setInt(null, Integer.MIN_VALUE); 1836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("intSField"); 1846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setInt(null, Integer.MIN_VALUE); 1847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getInt(x); 1848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect int field value", 1849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Integer.MIN_VALUE, val); 1850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setLong(java.lang.Object, long) 1854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setLong", 1859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, long.class} 1860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setLongLjava_lang_ObjectJ() throws Exception{ 1862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setLong(java.lang.Object, long) 1864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project long val = 0L; 1867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longField"); 1869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setLong(x, Long.MIN_VALUE); 1870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getLong(x); 1871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setLong test : " + e.getMessage()); 1873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect long field value", Long.MIN_VALUE, val); 1875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test wrong type 1877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setLong(x, Long.MIN_VALUE); 1881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test not accessible 1888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longPFField"); 1891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setLong(x, Long.MIN_VALUE); 1893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test NPE 1900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longField"); 1903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setLong(null, Long.MIN_VALUE); 1904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("longSField"); 1914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setLong(null, Long.MIN_VALUE); 1915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getLong(x); 1916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect long field value", 1917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Long.MIN_VALUE, val); 1918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#setShort(java.lang.Object, short) 1922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setShort", 1927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, short.class} 1928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setShortLjava_lang_ObjectS() throws Exception{ 1930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 1931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.lang.reflect.Field.setShort(java.lang.Object, short) 1932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestField x = new TestField(); 1933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 1934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project short val = 0; 1935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 1937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setShort(x, Short.MIN_VALUE); 1938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getShort(x); 1939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 1940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during setShort test : " + e.getMessage()); 1941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect short field value", Short.MIN_VALUE, 1943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val); 1944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test wrong type 1946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean thrown = false; 1947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("booleanField"); 1949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setShort(x, Short.MIN_VALUE); 1950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed field of invalid type"); 1951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ex) { 1952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalArgumentException expected but not thrown", thrown); 1955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // test not accessible 1957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortPFField"); 1960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(f.isAccessible()); 1961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setShort(x, Short.MIN_VALUE); 1962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Accessed inaccessible field"); 1963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalAccessException ex) { 1964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("IllegalAccessException expected but not thrown", thrown); 1967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test NPE 1969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = false; 1970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 1971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortField"); 1972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setShort(null, Short.MIN_VALUE); 1973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 1975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project thrown = true; 1976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception ex) { 1977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected but not thrown"); 1978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("NullPointerException expected but not thrown", thrown); 1980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test setting a static field; 1982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = x.getClass().getDeclaredField("shortSField"); 1983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.setShort(null, Short.MIN_VALUE); 1984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project val = f.getShort(x); 1985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Returned incorrect short field value", 1986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Short.MIN_VALUE, val); 1987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 1988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 1990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.lang.reflect.Field#toString() 1991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 1992f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 1993f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 1994f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 1995f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "toString", 1996f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 1997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_toString() { 1999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.lang.String java.lang.reflect.Field.toString() 2000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field f = null; 2001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 2003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f = TestField.class.getDeclaredField("x"); 2004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 2005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception getting field : " + e.getMessage()); 2006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Field returned incorrect string", 2008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "private static final int tests.api.java.lang.reflect.FieldTest$TestField.x", 2009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project f.toString()); 2010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getDeclaredAnnotations", 2016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getDeclaredAnnotations() throws Exception { 2019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = TestClass.class.getField("annotatedField"); 2020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Annotation[] annotations = field.getDeclaredAnnotations(); 2021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, annotations.length); 2022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Set<Class<?>> ignoreOrder = new HashSet<Class<?>>(); 2024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ignoreOrder.add(annotations[0].annotationType()); 2025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ignoreOrder.add(annotations[1].annotationType()); 2026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Missing @AnnotationRuntime0", ignoreOrder 2028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .contains(AnnotationRuntime0.class)); 2029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Missing @AnnotationRuntime1", ignoreOrder 2030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .contains(AnnotationRuntime1.class)); 2031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "isEnumConstant", 2037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_isEnumConstant() throws Exception { 2040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = TestEnum.class.getDeclaredField("A"); 2041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Enum constant not recognized", field.isEnumConstant()); 2042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project field = TestEnum.class.getDeclaredField("field"); 2044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse("Non enum constant wrongly stated as enum constant", field 2045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .isEnumConstant()); 2046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project field = TestClass.class.getDeclaredField("annotatedField"); 2048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse("Non enum constant wrongly stated as enum constant", field 2049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .isEnumConstant()); 2050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "isSynthetic", 2056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_isSynthetic() throws Exception { 2059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field[] fields = TestClass.Inner.class.getDeclaredFields(); 2060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Not exactly one field returned", 1, fields.length); 2061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Enum constant not recognized", fields[0].isSynthetic()); 2063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = TestEnum.class.getDeclaredField("field"); 2065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse("Non synthetic field wrongly stated as synthetic", field 2066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .isSynthetic()); 2067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project field = TestClass.class.getDeclaredField("annotatedField"); 2069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse("Non synthetic field wrongly stated as synthetic", field 2070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .isSynthetic()); 2071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getGenericType", 2078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getGenericType() throws Exception { 2081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = GenericField.class.getDeclaredField("field"); 2082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Type type = field.getGenericType(); 2083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @SuppressWarnings("unchecked") 2084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TypeVariable typeVar = (TypeVariable) type; 2085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong type name returned", "S", typeVar.getName()); 2086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field boundedField = GenericField.class.getDeclaredField("boundedField"); 2088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Type boundedType = boundedField.getGenericType(); 2089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @SuppressWarnings("unchecked") 2090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TypeVariable boundedTypeVar = (TypeVariable) boundedType; 2091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong type name returned", "T", boundedTypeVar.getName()); 2092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("More than one bound found", 1, 2093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boundedTypeVar.getBounds().length); 2094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong bound returned", Number.class, 2095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boundedTypeVar.getBounds()[0]); 2096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "toGenericString", 2103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_toGenericString() throws Exception { 2106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = GenericField.class.getDeclaredField("field"); 2107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong generic string returned", 2108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "S tests.api.java.lang.reflect.FieldTest$GenericField.field", 2109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project field.toGenericString()); 2110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field boundedField = GenericField.class 2112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getDeclaredField("boundedField"); 2113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals( 2114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Wrong generic string returned", 2115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "T tests.api.java.lang.reflect.FieldTest$GenericField.boundedField", 2116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boundedField.toGenericString()); 2117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field ordinary = GenericField.class.getDeclaredField("intField"); 2119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals( 2120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Wrong generic string returned", 2121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "int tests.api.java.lang.reflect.FieldTest$GenericField.intField", 2122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ordinary.toGenericString()); 2123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 2127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 2128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 2129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hashCode", 2130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 2131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 2132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hashCode() throws Exception { 2133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Field field = TestClass.class.getDeclaredField("annotatedField"); 2134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong hashCode returned", field.getName().hashCode() 2135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ^ field.getDeclaringClass().getName().hashCode(), field 2136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .hashCode()); 2137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 2142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * is called before a test is executed. 2143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() { 2145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 2148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tears down the fixture, for example, close a network connection. This 2149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method is called after a test is executed. 2150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 2151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void tearDown() { 2152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 2153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 2154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 2155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectclass TestAccess { 2156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private static int xxx; 2157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 2158