1/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package libcore.java.util;
18
19import junit.framework.TestCase;
20
21import java.util.ArrayList;
22
23/**
24 * This test case tests several often used functionality of ArrayLists.
25 */
26public class OldAndroidArrayListTest extends TestCase {
27
28    @SuppressWarnings("unchecked")
29    public void testArrayList() throws Exception {
30        ArrayList array = new ArrayList();
31        assertEquals(0, array.size());
32        assertTrue(array.isEmpty());
33
34        array.add(new Integer(0));
35        array.add(0, new Integer(1));
36        array.add(1, new Integer(2));
37        array.add(new Integer(3));
38        array.add(new Integer(1));
39
40        assertEquals(5, array.size());
41        assertFalse(array.isEmpty());
42
43        assertEquals(1, ((Integer) array.get(0)).intValue());
44        assertEquals(2, ((Integer) array.get(1)).intValue());
45        assertEquals(0, ((Integer) array.get(2)).intValue());
46        assertEquals(3, ((Integer) array.get(3)).intValue());
47        assertEquals(1, ((Integer) array.get(4)).intValue());
48
49        assertFalse(array.contains(null));
50        assertTrue(array.contains(new Integer(2)));
51        assertEquals(0, array.indexOf(new Integer(1)));
52        assertEquals(4, array.lastIndexOf(new Integer(1)));
53        assertTrue(array.indexOf(new Integer(5)) < 0);
54        assertTrue(array.lastIndexOf(new Integer(5)) < 0);
55
56        array.remove(1);
57        array.remove(1);
58
59        assertEquals(3, array.size());
60        assertFalse(array.isEmpty());
61        assertEquals(1, ((Integer) array.get(0)).intValue());
62        assertEquals(3, ((Integer) array.get(1)).intValue());
63        assertEquals(1, ((Integer) array.get(2)).intValue());
64
65        assertFalse(array.contains(null));
66        assertFalse(array.contains(new Integer(2)));
67        assertEquals(0, array.indexOf(new Integer(1)));
68        assertEquals(2, array.lastIndexOf(new Integer(1)));
69        assertTrue(array.indexOf(new Integer(5)) < 0);
70        assertTrue(array.lastIndexOf(new Integer(5)) < 0);
71
72        array.clear();
73
74        assertEquals(0, array.size());
75        assertTrue(array.isEmpty());
76        assertTrue(array.indexOf(new Integer(5)) < 0);
77        assertTrue(array.lastIndexOf(new Integer(5)) < 0);
78
79        ArrayList al = new ArrayList();
80
81        assertFalse(al.remove(null));
82        assertFalse(al.remove("string"));
83
84        al.add("string");
85        al.add(null);
86
87        assertTrue(al.remove(null));
88        assertTrue(al.remove("string"));
89    }
90}
91
92