1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ObjectInputStream; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_GetPutFields; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_GetPutFieldsDefaulted; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests the methods of {@code ObjectInputStream.GetField}. Three things make 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this class somewhat difficult to test: 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <ol> 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>It is a completely abstract class; none of the methods is implemented in 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code ObjectInputStream.GetField}.</li> 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>There is no public class that implements 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code ObjectInputStream.GetField}. The only way to get an implementation is 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * by calling {@code ObjectInputStream.getFields()}.</li> 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>Invoking {@code ObjectOutputStream.getFields()} only works from within 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the private {@code readObject(ObjectInputStream)} method of a class that 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * implements {@code Serializable}; an exception is thrown otherwise.</li> 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </ol> 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Given these restrictions, an indirect approach is used to test 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code ObjectInputStream.GetField}: Three serializable helper classes in 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * package {@code tests.support} ({@code Support_GetPutFields}, 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Support_GetPutFieldsDeprecated} and 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Support_GetPutFieldsDefaulted}) implement 44f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * {@code readObject(ObjectInputStream)} to read data from an input stream. 45f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * This input stream in turn reads from one of the corresponding files 46f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * ({@code testFields.ser}, {@code testFieldsDeprecated.ser} and 47f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * {@code testFieldsDefaulted.ser}) that have been created with 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code tests.util.FieldTestFileGenerator} on a reference platform. 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </p> 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The test method in this class expects to find the reference files as a 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * resource stored at {@code tests/api/java/io}. 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </p> 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldObjectInputStreamGetFieldTest extends junit.framework.TestCase { 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private ObjectInputStream ois = null; 58f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 59f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes private final String FILENAME = 60740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann "/tests/api/java/io/testFields.ser"; 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes private final String DEFAULTED_FILENAME = 62740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann "/tests/api/java/io/testFieldsDefaulted.ser"; 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean booleanValue; 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public byte byteValue; 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char charValue; 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int intValue; 68f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_get() throws Exception { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project initOis(FILENAME); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields object = (Support_GetPutFields) ois.readObject(); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields newObject = new Support_GetPutFields(); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project newObject.initTestValues(); 74f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 75f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 1: The object read from the reference file does " + 76f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes "not match a locally created instance of the same class.", 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project object.equals(newObject)); 78f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project initOis(DEFAULTED_FILENAME); 80f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Support_GetPutFieldsDefaulted defaulted = 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (Support_GetPutFieldsDefaulted) ois.readObject(); 82f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Support_GetPutFieldsDefaulted newDefaulted = 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_GetPutFieldsDefaulted(); 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project newDefaulted.initTestValues(); 85f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 86f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 2: The object read from the reference file does " + 87f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes "not match a locally created instance of the same class.", 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaulted.equals(newDefaulted)); 89f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Executing the same procedure against the file created with the 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // deprecated ObjectOutputStream.PutFields.write(ObjectOutput) method 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // is not possible since there is no corresponding read(ObjectInput) 93f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes // method. When trying to do it as in tests 1 and 2, a 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // NullPointerException is thrown. 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_defaultedLjava_lang_String() throws Exception { 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project initOis(FILENAME); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields object = (Support_GetPutFields) ois.readObject(); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ObjectInputStream.GetField fields = object.getField; 101f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.defaulted("noField"); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected."); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 107f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertFalse("The field longValue should not be defaulted.", 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.defaulted("longValue")); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Now the same with defaulted fields. 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project initOis(DEFAULTED_FILENAME); 112f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Support_GetPutFieldsDefaulted defaultedObject = 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (Support_GetPutFieldsDefaulted) ois.readObject(); 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields = defaultedObject.getField; 115f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 116f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("The field longValue should be defaulted.", 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.defaulted("longValue")); 118f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getException() throws Exception { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project initOis(FILENAME); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields object = (Support_GetPutFields) ois.readObject(); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ObjectInputStream.GetField fields = object.getField; 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Methods called with invalid field name. 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", false); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, boolean)."); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 132f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", (byte) 0); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, byte)."); 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", (char) 0); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, char)."); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", 0.0); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, double)."); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", 0.0f); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, float)."); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", (long) 0); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, long)."); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", 0); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, int)."); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", new Object()); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, Object)."); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("noValue", (short) 0); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for not existing name " + 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "argument in get(String, short)."); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Methods called with correct field name but non-matching type. 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("byteValue", false); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, boolean)."); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 187f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("booleanValue", (byte) 0); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, byte)."); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("intValue", (char) 0); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, char)."); 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 199f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("floatValue", 0.0); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, double)."); 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("doubleValue", 0.0f); 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, float)."); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("intValue", (long) 0); 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, long)."); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("shortValue", 0); 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected for non-matching name " + 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, int)."); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("booleanValue", new Object()); 226f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes fail("IllegalArgumentException expected for non-matching name " + 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, Object)."); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fields.get("longValue", (short) 0); 232f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes fail("IllegalArgumentException expected for non-matching name " + 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "and type arguments in get(String, short)."); 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) {} 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 236f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getObjectStreamClass() throws Exception { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project initOis(FILENAME); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields object = (Support_GetPutFields) ois.readObject(); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Return value of getObjectStreamClass() should not be null.", 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project object.getField.getObjectStreamClass()); 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 243f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void initOis(String fileName) throws Exception { 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (ois != null) { 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ois.close(); 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ois = new ObjectInputStream( 249740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann getClass().getResourceAsStream(fileName)); 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 251f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (ois != null) { 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ois.close(); 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 260