| /* |
| * Copyright (C) 2012 The Android Open Source Project |
| * |
| * Licensed 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.lang.reflect; |
| |
| import java.lang.reflect.Array; |
| import junit.framework.TestCase; |
| |
| public class ArrayTest extends TestCase { |
| private static boolean[] booleans; |
| private static byte[] bytes; |
| private static char[] chars; |
| private static double[] doubles; |
| private static float[] floats; |
| private static int[] ints; |
| private static long[] longs; |
| private static short[] shorts; |
| |
| @Override protected void setUp() throws Exception { |
| super.setUp(); |
| booleans = new boolean[] { true }; |
| bytes = new byte[] { (byte) 0xff }; |
| chars = new char[] { '\uffff' }; |
| doubles = new double[] { (double) 0xffffffffffffffffL }; |
| floats = new float[] { (float) 0xffffffff }; |
| ints = new int[] { 0xffffffff }; |
| longs = new long[] { 0xffffffffffffffffL }; |
| shorts = new short[] { (short) 0xffff }; |
| } |
| |
| public void testGetBoolean() throws Exception { |
| assertEquals(booleans[0], Array.getBoolean(booleans, 0)); |
| try { Array.getBoolean(bytes, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(chars, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(floats, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(ints, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(longs, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(shorts, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getBoolean(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetByte() throws Exception { |
| try { Array.getByte(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals(bytes[0], Array.getByte(bytes, 0)); |
| try { Array.getByte(chars, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getByte(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getByte(floats, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getByte(ints, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getByte(longs, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getByte(shorts, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getByte(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetChar() throws Exception { |
| try { Array.getChar(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getChar(bytes, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals(chars[0], Array.getChar(chars, 0)); |
| try { Array.getChar(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getChar(floats, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getChar(ints, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getChar(longs, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getChar(shorts, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getChar(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetDouble() throws Exception { |
| try { Array.getDouble(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((double) bytes[0], Array.getDouble(bytes, 0)); |
| assertEquals((double) chars[0], Array.getDouble(chars, 0)); |
| assertEquals(doubles[0], Array.getDouble(doubles, 0)); |
| assertEquals((double) floats[0], Array.getDouble(floats, 0)); |
| assertEquals((double) ints[0], Array.getDouble(ints, 0)); |
| assertEquals((double) longs[0], Array.getDouble(longs, 0)); |
| assertEquals((double) shorts[0], Array.getDouble(shorts, 0)); |
| try { Array.getDouble(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetFloat() throws Exception { |
| try { Array.getFloat(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((float) bytes[0], Array.getFloat(bytes, 0)); |
| assertEquals((float) chars[0], Array.getFloat(chars, 0)); |
| assertEquals(floats[0], Array.getFloat(floats, 0)); |
| try { Array.getFloat(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((float) ints[0], Array.getFloat(ints, 0)); |
| assertEquals((float) longs[0], Array.getFloat(longs, 0)); |
| assertEquals((float) shorts[0], Array.getFloat(shorts, 0)); |
| try { Array.getFloat(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetInt() throws Exception { |
| try { Array.getInt(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((int) bytes[0], Array.getInt(bytes, 0)); |
| assertEquals((int) chars[0], Array.getInt(chars, 0)); |
| try { Array.getInt(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getInt(floats, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals(ints[0], Array.getInt(ints, 0)); |
| try { Array.getInt(longs, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((int) shorts[0], Array.getInt(shorts, 0)); |
| try { Array.getInt(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetLong() throws Exception { |
| try { Array.getLong(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((long) bytes[0], Array.getLong(bytes, 0)); |
| assertEquals((long) chars[0], Array.getLong(chars, 0)); |
| try { Array.getLong(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getLong(floats, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((long) ints[0], Array.getLong(ints, 0)); |
| assertEquals(longs[0], Array.getLong(longs, 0)); |
| assertEquals((long) shorts[0], Array.getLong(shorts, 0)); |
| try { Array.getLong(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testGetShort() throws Exception { |
| try { Array.getShort(booleans, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals((int) bytes[0], Array.getShort(bytes, 0)); |
| try { Array.getShort(chars, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getShort(doubles, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getShort(floats, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getShort(ints, 0); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.getShort(longs, 0); fail(); } catch (IllegalArgumentException expected) {} |
| assertEquals(shorts[0], Array.getShort(shorts, 0)); |
| try { Array.getShort(null, 0); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetBoolean() throws Exception { |
| Array.setBoolean(booleans, 0, booleans[0]); |
| try { Array.setBoolean(bytes, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(chars, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(doubles, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(floats, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(ints, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(longs, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(shorts, 0, true); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setBoolean(null, 0, true); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetByte() throws Exception { |
| try { Array.setByte(booleans, 0, bytes[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setByte(bytes, 0, bytes[0]); |
| try { Array.setByte(chars, 0, bytes[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setByte(doubles, 0, bytes[0]); |
| Array.setByte(floats, 0, bytes[0]); |
| Array.setByte(ints, 0, bytes[0]); |
| Array.setByte(longs, 0, bytes[0]); |
| Array.setByte(shorts, 0, bytes[0]); |
| try { Array.setByte(null, 0, bytes[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetChar() throws Exception { |
| try { Array.setChar(booleans, 0, chars[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setChar(bytes, 0, chars[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setChar(chars, 0, chars[0]); |
| Array.setChar(doubles, 0, chars[0]); |
| Array.setChar(floats, 0, chars[0]); |
| Array.setChar(ints, 0, chars[0]); |
| Array.setChar(longs, 0, chars[0]); |
| try { Array.setChar(shorts, 0, chars[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setChar(null, 0, chars[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetDouble() throws Exception { |
| try { Array.setDouble(booleans, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setDouble(bytes, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setDouble(chars, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setDouble(doubles, 0, doubles[0]); |
| try { Array.setDouble(floats, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setDouble(ints, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setDouble(longs, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setDouble(shorts, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setDouble(null, 0, doubles[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetFloat() throws Exception { |
| try { Array.setFloat(booleans, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setFloat(bytes, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setFloat(chars, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setFloat(floats, 0, floats[0]); |
| Array.setFloat(doubles, 0, floats[0]); |
| try { Array.setFloat(ints, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setFloat(longs, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setFloat(shorts, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setFloat(null, 0, floats[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetInt() throws Exception { |
| try { Array.setInt(booleans, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setInt(bytes, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setInt(chars, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setInt(doubles, 0, ints[0]); |
| Array.setInt(floats, 0, ints[0]); |
| Array.setInt(ints, 0, ints[0]); |
| Array.setInt(longs, 0, ints[0]); |
| try { Array.setInt(shorts, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setInt(null, 0, ints[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetLong() throws Exception { |
| try { Array.setLong(booleans, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setLong(bytes, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setLong(chars, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setLong(doubles, 0, longs[0]); |
| Array.setLong(floats, 0, longs[0]); |
| try { Array.setLong(ints, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setLong(longs, 0, longs[0]); |
| try { Array.setLong(shorts, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setLong(null, 0, longs[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| |
| public void testSetShort() throws Exception { |
| try { Array.setShort(booleans, 0, shorts[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setShort(bytes, 0, shorts[0]); fail(); } catch (IllegalArgumentException expected) {} |
| try { Array.setShort(chars, 0, shorts[0]); fail(); } catch (IllegalArgumentException expected) {} |
| Array.setShort(doubles, 0, shorts[0]); |
| Array.setShort(floats, 0, shorts[0]); |
| Array.setShort(ints, 0, shorts[0]); |
| Array.setShort(longs, 0, shorts[0]); |
| Array.setShort(shorts, 0, shorts[0]); |
| try { Array.setShort(null, 0, shorts[0]); fail(); } catch (NullPointerException expected) {} |
| } |
| } |