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