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
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.lang.reflect;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.reflect.Array;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ArrayTest extends junit.framework.TestCase {
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
25229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#get(java.lang.Object, int)
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getLjava_lang_ObjectI() {
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.get(java.lang.Object, int)
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] x = { 1 };
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object ret = null;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.get(x, 0);
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value",
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, ((Integer) ret).intValue());
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.get(new Object(), 0);
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.get(x, 4);
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
60f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //same test with non primitive component type
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Integer[] y = new Integer[]{ 1 };
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ret = null;
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.get(y, 0);
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value",
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, ((Integer) ret).intValue());
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.get(new Object(), 0);
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.get(y, 4);
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
94229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getBoolean(java.lang.Object, int)
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getBooleanLjava_lang_ObjectI() {
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getBoolean(java.lang.Object, int)
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean[] x = { true };
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean ret = false;
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getBoolean(x, 0);
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Get returned incorrect value", ret);
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getBoolean(new Object(), 0);
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getBoolean(x, 4);
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getBoolean(null, 0);
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
140229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getByte(java.lang.Object, int)
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getByteLjava_lang_ObjectI() {
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method byte
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getByte(java.lang.Object, int)
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] x = { 1 };
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte ret = 0;
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getByte(x, 0);
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret);
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getByte(new Object(), 0);
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getByte(x, 4);
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getByte(null, 0);
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
186229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getChar(java.lang.Object, int)
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getCharLjava_lang_ObjectI() {
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method char
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getChar(java.lang.Object, int)
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        char[] x = { 1 };
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        char ret = 0;
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getChar(x, 0);
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret);
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getChar(new Object(), 0);
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getChar(x, 4);
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getChar(null, 0);
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
232229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getDouble(java.lang.Object, int)
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDoubleLjava_lang_ObjectI() {
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method double
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getDouble(java.lang.Object, int)
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        double[] x = { 1 };
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        double ret = 0;
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getDouble(x, 0);
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret, 0.0);
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getDouble(new Object(), 0);
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
252f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getDouble(x, 4);
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getDouble(null, 0);
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
279229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getFloat(java.lang.Object, int)
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getFloatLjava_lang_ObjectI() {
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method float
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getFloat(java.lang.Object, int)
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        float[] x = { 1 };
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        float ret = 0;
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getFloat(x, 0);
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret, 0.0);
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getFloat(new Object(), 0);
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getFloat(x, 4);
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getFloat(null, 0);
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
325229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getInt(java.lang.Object, int)
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getIntLjava_lang_ObjectI() {
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.lang.reflect.Array.getInt(java.lang.Object,
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int)
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] x = { 1 };
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int ret = 0;
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getInt(x, 0);
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret);
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getInt(new Object(), 0);
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getInt(x, 4);
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getInt(null, 0);
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
371229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getLength(java.lang.Object)
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getLengthLjava_lang_Object() {
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getLength(java.lang.Object)
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        long[] x = { 1 };
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect length", 1, Array.getLength(x));
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect length", 10000, Array
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getLength(new Object[10000]));
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.getLength(new Object());
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return;
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        fail("Failed to throw exception when passed non-array");
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
391229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getLong(java.lang.Object, int)
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getLongLjava_lang_ObjectI() {
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method long
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getLong(java.lang.Object, int)
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        long[] x = { 1 };
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        long ret = 0;
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getLong(x, 0);
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret);
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getLong(new Object(), 0);
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getLong(x, 4);
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getLong(null, 0);
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
437229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#getShort(java.lang.Object, int)
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getShortLjava_lang_ObjectI() {
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method short
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.getShort(java.lang.Object, int)
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        short[] x = { 1 };
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        short ret = 0;
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getShort(x, 0);
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ret);
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getShort(new Object(), 0);
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getShort(x, 4);
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ret = Array.getShort(null, 0);
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
483229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#newInstance(java.lang.Class, int[])
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_newInstanceLjava_lang_Class$I() {
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.newInstance(java.lang.Class, int [])
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[][] x;
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] y = { 2 };
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        x = (int[][]) Array.newInstance(int[].class, y);
492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Failed to instantiate array properly", 2, x.length);
493f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            x = (int[][]) Array.newInstance(null, y);
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
504f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.newInstance(int[].class, new int[]{1,-1});
508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NegativeArraySizeException e) {
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Negative array size failed to throw NegativeArraySizeException");
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
515f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.newInstance(int[].class, new int[]{});
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Zero array size failed to throw IllegalArgumentException");
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
529229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#newInstance(java.lang.Class, int)
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_newInstanceLjava_lang_ClassI() {
532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.newInstance(java.lang.Class, int)
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] x;
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        x = (int[]) Array.newInstance(int.class, 100);
537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Failed to instantiate array properly", 100, x.length);
538f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.newInstance(null, 100);
542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
549f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.newInstance(int[].class, -1);
553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NegativeArraySizeException e) {
554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Negative array size failed to throw NegativeArraySizeException");
559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
563229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#set(java.lang.Object, int,
564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        java.lang.Object)
565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setLjava_lang_ObjectILjava_lang_Object() {
567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.lang.reflect.Array.set(java.lang.Object,
568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, java.lang.Object)
569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] x = { 0 };
570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.set(x, 0, new Integer(1));
573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, ((Integer) Array.get(x, 0))
577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .intValue());
578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.set(new Object(), 0, new Object());
580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.set(x, 4, new Integer(1));
590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // trying to put null in a primitive array causes
599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // a IllegalArgumentException in 5.0
600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean exception = false;
601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.set(new int[1], 0, null);
603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            exception = true;
605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("expected exception not thrown", exception);
607f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.set(null, 0, 2);
611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
621229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setBoolean(java.lang.Object, int, boolean)
622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setBooleanLjava_lang_ObjectIZ() {
624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setBoolean(java.lang.Object, int, boolean)
626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean[] x = { false };
627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setBoolean(x, 0, true);
630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Failed to set correct value", Array.getBoolean(x, 0));
634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setBoolean(new Object(), 0, false);
636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown){
641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setBoolean(x, 4, false);
646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
653f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setBoolean(null, 0, true);
657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
667229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setByte(java.lang.Object, int, byte)
668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setByteLjava_lang_ObjectIB() {
670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setByte(java.lang.Object, int, byte)
672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] x = { 0 };
673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setByte(x, 0, (byte) 1);
676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getByte(x, 0));
680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setByte(new Object(), 0, (byte) 9);
682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setByte(x, 4, (byte) 9);
692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
699f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setByte(null, 0, (byte)0);
703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
704adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
713229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setChar(java.lang.Object, int, char)
714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setCharLjava_lang_ObjectIC() {
716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setChar(java.lang.Object, int, char)
718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        char[] x = { 0 };
719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
721adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setChar(x, 0, (char) 1);
722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getChar(x, 0));
726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setChar(new Object(), 0, (char) 9);
728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setChar(x, 4, (char) 9);
738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
745f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setChar(null, 0, (char)0);
749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
759229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setDouble(java.lang.Object, int, double)
760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setDoubleLjava_lang_ObjectID() {
762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setDouble(java.lang.Object, int, double)
764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        double[] x = { 0 };
765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setDouble(x, 0, 1);
768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getDouble(x, 0), 0.0);
772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setDouble(new Object(), 0, 9);
774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setDouble(x, 4, 9);
784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
791f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setDouble(null, 0, 0);
795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
805229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setFloat(java.lang.Object, int, float)
806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setFloatLjava_lang_ObjectIF() {
808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setFloat(java.lang.Object, int, float)
810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        float[] x = { 0.0f };
811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setFloat(x, 0, (float) 1);
814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getFloat(x, 0), 0.0);
818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setFloat(new Object(), 0, (float) 9);
820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setFloat(x, 4, (float) 9);
830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
837f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setFloat(null, 0, 0);
841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
843adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
851229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setInt(java.lang.Object, int, int)
852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setIntLjava_lang_ObjectII() {
854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.lang.reflect.Array.setInt(java.lang.Object,
855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int)
856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] x = { 0 };
857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setInt(x, 0, (int) 1);
860adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
863adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getInt(x, 0));
864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setInt(new Object(), 0, (int) 9);
866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setInt(x, 4, (int) 9);
876adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
877adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
878adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
881adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
883f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setInt(null, 0, 0);
887adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
892adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
893adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
894adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
896adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
897229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setLong(java.lang.Object, int, long)
898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
899adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setLongLjava_lang_ObjectIJ() {
900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
901adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setLong(java.lang.Object, int, long)
902adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        long[] x = { 0 };
903adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
905adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setLong(x, 0, 1);
906adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getLong(x, 0));
910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setLong(new Object(), 0, 9);
912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
913adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
914adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setLong(x, 4, 9);
922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
923adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
927adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
929f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setLong(null, 0, 0);
933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
935adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
942adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
943229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.lang.reflect.Array#setShort(java.lang.Object, int, short)
944adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setShortLjava_lang_ObjectIS() {
946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void
947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.lang.reflect.Array.setShort(java.lang.Object, int, short)
948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        short[] x = { 0 };
949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean thrown = false;
950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
951adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setShort(x, 0, (short) 1);
952adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Exception during get test : " + e.getMessage());
954adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Get returned incorrect value", 1, Array.getShort(x, 0));
956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setShort(new Object(), 0, (short) 9);
958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
962adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
963adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Passing non-array failed to throw exception");
964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
967adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Array.setShort(x, 4, (short) 9);
968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
972adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Invalid index failed to throw exception");
974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
975f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        thrown = false;
977adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project           Array.setShort(null, 0, (short)0);
979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
980adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Correct behaviour
981adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            thrown = true;
982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (!thrown) {
984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Null argument failed to throw NPE");
985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is called before a test is executed.
991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() {
993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method is called after a test is executed.
998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
999adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
1000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
1002