| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package libcore.java.io; |
| |
| import java.io.ObjectStreamClass; |
| import java.io.ObjectStreamField; |
| import java.io.Serializable; |
| |
| public class OldObjectStreamFieldTest extends junit.framework.TestCase { |
| |
| static class DummyClass implements Serializable { |
| private static final long serialVersionUID = 999999999999998L; |
| |
| boolean bField = true; |
| char cField = 'c'; |
| double dField = 424242.4242; |
| float fField = 24.12F; |
| int iField = 1965; |
| long lField = 9999999L; |
| short sField = 42; |
| |
| long bam = 999L; |
| |
| int ham = 9999; |
| |
| int sam = 8888; |
| |
| Object hola = new Object(); |
| |
| public static long getUID() { |
| return serialVersionUID; |
| } |
| } |
| |
| class MyObjectStreamField extends ObjectStreamField { |
| public MyObjectStreamField(String name, Class<?> cl) { |
| super(name, cl); |
| } |
| |
| public void setOffset(int newValue) { |
| super.setOffset(newValue); |
| } |
| } |
| |
| ObjectStreamClass osc; |
| |
| ObjectStreamField hamField; |
| |
| ObjectStreamField samField; |
| |
| ObjectStreamField bamField; |
| |
| ObjectStreamField holaField; |
| |
| public void test_ConstructorLjava_lang_StringLjava_lang_Class() { |
| ObjectStreamField osf = new ObjectStreamField("aField", int.class); |
| assertTrue("Test 1: Name member not set correctly.", |
| osf.getName().equals("aField")); |
| assertTrue("Test 2: Type member not set correctly.", |
| osf.getType().equals(int.class)); |
| |
| // Repeat the tests with a different object to make sure |
| // that we have not tested against default values. |
| osf = new ObjectStreamField("anotherField", String.class); |
| assertTrue("Test 3: Name member not set correctly.", |
| osf.getName().equals("anotherField")); |
| assertTrue("Test 4: Type member not set correctly.", |
| osf.getType().equals(String.class)); |
| |
| // Invalid argument tests. |
| try { |
| osf = new ObjectStreamField(null, boolean.class); |
| fail("Test 5: NullPointerException expected."); |
| } catch (NullPointerException e) { |
| // Expected. |
| } |
| try { |
| osf = new ObjectStreamField("thisField", null); |
| fail("Test 6: NullPointerException expected."); |
| } catch (NullPointerException e) { |
| // Expected. |
| } |
| } |
| |
| public void test_ConstructorLjava_lang_StringLjava_lang_ClassB() { |
| ObjectStreamField osf = new ObjectStreamField("aField", int.class, false); |
| assertTrue("Test 1: Name member not set correctly.", |
| osf.getName().equals("aField")); |
| assertTrue("Test 2: Type member not set correctly.", |
| osf.getType().equals(int.class)); |
| assertFalse("Test 3: Unshared member not set correctly.", |
| osf.isUnshared()); |
| |
| // Repeat the tests with a different object to make sure |
| // that we have not tested against default values. |
| osf = new ObjectStreamField("anotherField", String.class, true); |
| assertTrue("Test 4: Name member not set correctly.", |
| osf.getName().equals("anotherField")); |
| assertTrue("Test 5: Type member not set correctly.", |
| osf.getType().equals(String.class)); |
| assertTrue("Test 6: Unshared member not set correctly.", |
| osf.isUnshared()); |
| |
| // Invalid argument tests. |
| try { |
| osf = new ObjectStreamField(null, boolean.class); |
| fail("Test 7: NullPointerException expected."); |
| } catch (NullPointerException e) { |
| // Expected. |
| } |
| try { |
| osf = new ObjectStreamField("thisField", null); |
| fail("Test 8: NullPointerException expected."); |
| } catch (NullPointerException e) { |
| // Expected. |
| } |
| } |
| |
| |
| public void test_getOffset() { |
| ObjectStreamField[] osfArray; |
| osfArray = osc.getFields(); |
| int[] expectedOffsets = {0, 1, 9, 11, 19, 23, 27, 31, 39, 41, 0}; |
| |
| assertTrue("getOffset() did not return reasonable values.", osfArray[0] |
| .getOffset() != osfArray[1].getOffset()); |
| |
| for (int i = 0; i < expectedOffsets.length; i++) { |
| assertEquals(String.format("Unexpected value for osfArray[%d].getOffset(): ", i), |
| expectedOffsets[i], osfArray[i].getOffset()); |
| |
| } |
| } |
| |
| public void test_setOffsetI() { |
| MyObjectStreamField f = new MyObjectStreamField("aField", int.class); |
| f.setOffset(42); |
| assertEquals("Test 1: Unexpected offset value.", 42, f.getOffset()); |
| f.setOffset(2008); |
| assertEquals("Test 2: Unexpected offset value.", 2008, f.getOffset()); |
| } |
| |
| public void test_isPrimitive() { |
| // Test for method int java.io.ObjectStreamField.getOffset() |
| ObjectStreamField[] osfArray; |
| osfArray = osc.getFields(); |
| |
| for (int i = 0; i < (osfArray.length - 1); i++) { |
| assertTrue(String.format("osfArray[%d].isPrimitive() should return true.", i), |
| osfArray[i].isPrimitive()); |
| } |
| assertFalse(String.format("osfArray[%d].isPrimitive() should return false.", |
| osfArray.length - 1), |
| osfArray[(osfArray.length - 1)].isPrimitive()); |
| } |
| |
| protected void setUp() { |
| osc = ObjectStreamClass.lookup(DummyClass.class); |
| bamField = osc.getField("bam"); |
| samField = osc.getField("sam"); |
| hamField = osc.getField("ham"); |
| holaField = osc.getField("hola"); |
| } |
| } |