1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the License.  You may obtain a copy of the License at
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.AbstractMap;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.WeakHashMap;
28fce022be38a2c79f9cdc8d9fea33c72cf2f16528Elliott Hughesimport libcore.java.lang.ref.FinalizationTester;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_MapTest2;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class WeakHashMapTest extends junit.framework.TestCase {
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class MockMap extends AbstractMap {
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Set entrySet() {
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
37ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
38ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        public int size() {
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return 0;
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    Object[] keyArray = new Object[100];
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    Object[] valueArray = new Object[100];
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    WeakHashMap whm;
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
50229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#WeakHashMap()
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_Constructor() {
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.WeakHashMap()
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        new Support_MapTest2(new WeakHashMap()).runTest();
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Incorrect value retrieved",
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    whm.get(keyArray[i]) == valueArray[i]);
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
66229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#WeakHashMap(int)
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorI() {
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.WeakHashMap(int)
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap(50);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Incorrect value retrieved",
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    whm.get(keyArray[i]) == valueArray[i]);
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        WeakHashMap empty = new WeakHashMap(0);
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("Empty weakhashmap access", empty.get("nothing"));
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        empty.put("something", "here");
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("cannot get element", empty.get("something") == "here");
81f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new WeakHashMap(-50);
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
91229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#WeakHashMap(int, float)
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorIF() {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.WeakHashMap(int, float)
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap(50, 0.5f);
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Incorrect value retrieved",
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    whm.get(keyArray[i]) == valueArray[i]);
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        WeakHashMap empty = new WeakHashMap(0, 0.75f);
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("Empty hashtable access", empty.get("nothing"));
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        empty.put("something", "here");
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("cannot get element", empty.get("something") == "here");
106f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new WeakHashMap(50, -0.5f);
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
114f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
116229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#WeakHashMap(java.util.Map)
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_util_Map() {
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Map mockMap = new MockMap();
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        WeakHashMap map = new WeakHashMap(mockMap);
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Size should be 0", 0, map.size());
122f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new WeakHashMap(null);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
132229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#clear()
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clear() {
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.WeakHashMap.clear()
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm.clear();
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Cleared map should be empty", whm.isEmpty());
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNull("Cleared map should only return null", whm
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .get(keyArray[i]));
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
148229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#containsKey(java.lang.Object)
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_containsKeyLjava_lang_Object() {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.WeakHashMap.containsKey()
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Should contain referenced key", whm
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .containsKey(keyArray[i]));
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[25] = null;
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[50] = null;
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
163229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#containsValue(java.lang.Object)
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_containsValueLjava_lang_Object() {
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.WeakHashMap.containsValue()
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Should contain referenced value", whm
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .containsValue(valueArray[i]));
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[25] = null;
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[50] = null;
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
178229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#entrySet()
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_entrySet() {
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Set java.util.WeakHashMap.entrySet()
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List keys = Arrays.asList(keyArray);
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List values = Arrays.asList(valueArray);
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Set entrySet = whm.entrySet();
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect number of entries returned--wanted 100, got: "
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + entrySet.size(), entrySet.size() == 100);
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator it = entrySet.iterator();
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while (it.hasNext()) {
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Map.Entry entry = (Map.Entry) it.next();
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Invalid map entry returned--bad key", keys
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .contains(entry.getKey()));
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Invalid map entry returned--bad key", values
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .contains(entry.getValue()));
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keys = null;
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        values = null;
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[50] = null;
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20297afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier        FinalizationTester.induceFinalization();
20397afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier        long startTime = System.currentTimeMillis();
20497afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier        // We use a busy wait loop here since we can not know when the ReferenceQueue
20597afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier        // daemon will enqueue the cleared references on their internal reference
20697afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier        // queues. The current timeout is 5 seconds.
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        do {
20897afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier            try {
20997afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier                Thread.sleep(100);
21097afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier            } catch (InterruptedException e) {
21197afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier            }
21297afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier        } while (entrySet.size() != 99 &&
21397afbd7972a43345ea12eb442b2a4e473b03d881Mathieu Chartier                 System.currentTimeMillis() - startTime < 5000);
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "Incorrect number of entries returned after gc--wanted 99, got: "
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        + entrySet.size(), entrySet.size() == 99);
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
221229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#isEmpty()
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_isEmpty() {
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.WeakHashMap.isEmpty()
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("New map should be empty", whm.isEmpty());
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object myObject = new Object();
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm.put(myObject, myObject);
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Map should not be empty", !whm.isEmpty());
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm.remove(myObject);
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Map with elements removed should be empty", whm.isEmpty());
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
235229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#put(java.lang.Object, java.lang.Object)
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_putLjava_lang_ObjectLjava_lang_Object() {
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.WeakHashMap.put(java.lang.Object, java.lang.Object)
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        WeakHashMap map = new WeakHashMap();
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        map.put(null, "value"); // add null key
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        System.gc();
243fce022be38a2c79f9cdc8d9fea33c72cf2f16528Elliott Hughes        System.gc();
244fce022be38a2c79f9cdc8d9fea33c72cf2f16528Elliott Hughes        FinalizationTester.induceFinalization();
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        map.remove("nothing"); // Cause objects in queue to be removed
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("null key was removed", 1, map.size());
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
248f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
250229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#putAll(java.util.Map)
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_putAllLjava_util_Map() {
253ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        Map mockMap = new MockMap();
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        WeakHashMap map = new WeakHashMap();
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        map.putAll(mockMap);
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Size should be 0", 0, map.size());
257f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            map.putAll(null);
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException exected");
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
267229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#remove(java.lang.Object)
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_removeLjava_lang_Object() {
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.WeakHashMap.remove(java.lang.Object)
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Remove returned incorrect value",
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                whm.remove(keyArray[25]) == valueArray[25]);
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("Remove returned incorrect value",
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                whm.remove(keyArray[25]));
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Size should be 99 after remove", 99, whm.size());
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
284229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#size()
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_size() {
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(0, whm.size());
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
292229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#keySet()
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_keySet() {
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Set java.util.WeakHashMap.keySet()
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List keys = Arrays.asList(keyArray);
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List values = Arrays.asList(valueArray);
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Set keySet = whm.keySet();
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect number of keys returned,", 100, keySet.size());
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator it = keySet.iterator();
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while (it.hasNext()) {
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Object key = it.next();
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Invalid map entry returned--bad key", keys
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .contains(key));
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keys = null;
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        values = null;
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[50] = null;
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int count = 0;
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        do {
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.gc();
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.gc();
319fce022be38a2c79f9cdc8d9fea33c72cf2f16528Elliott Hughes            FinalizationTester.induceFinalization();
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            count++;
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } while (count <= 5 && keySet.size() == 100);
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect number of keys returned after gc,", 99, keySet
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .size());
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
328ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     * Regression test for HARMONY-3883
329ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     *
330ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     * java.util.WeakHashMap#keySet()
331ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath     */
332ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    public void test_keySet_hasNext() {
333ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        WeakHashMap map = new WeakHashMap();
334ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        ConstantHashClass cl = new ConstantHashClass(2);
335ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        map.put(new ConstantHashClass(1), null);
336ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        map.put(cl, null);
337ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        map.put(new ConstantHashClass(3), null);
338ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        Iterator iter = map.keySet().iterator();
339ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        iter.next();
340ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        iter.next();
341ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        int count = 0;
342ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        do {
343ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            System.gc();
344ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            System.gc();
345ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            FinalizationTester.induceFinalization();
346ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            count++;
347ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        } while (count <= 5);
348ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertFalse("Wrong hasNext() value", iter.hasNext());
349ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    }
350ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
351ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    static class ConstantHashClass {
352ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        private int id = 0;
353ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
354ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        public ConstantHashClass(int id) {
355ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            this.id = id;
356ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        }
357ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
358ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        public int hashCode() {
359ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            return 0;
360ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        }
361ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
362ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        public String toString() {
363ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath            return "ConstantHashClass[id=" + id + "]";
364ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        }
365ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    }
366ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
367ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
368ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    /**
369229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.WeakHashMap#values()
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_values() {
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Set java.util.WeakHashMap.values()
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        whm = new WeakHashMap();
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++)
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            whm.put(keyArray[i], valueArray[i]);
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List keys = Arrays.asList(keyArray);
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List values = Arrays.asList(valueArray);
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection valuesCollection = whm.values();
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect number of keys returned,", 100,
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                valuesCollection.size());
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator it = valuesCollection.iterator();
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        while (it.hasNext()) {
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Object value = it.next();
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Invalid map entry returned--bad value", values
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .contains(value));
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keys = null;
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        values = null;
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        keyArray[50] = null;
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int count = 0;
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        do {
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.gc();
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.gc();
397fce022be38a2c79f9cdc8d9fea33c72cf2f16528Elliott Hughes            FinalizationTester.induceFinalization();
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            count++;
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } while (count <= 5 && valuesCollection.size() == 100);
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect number of keys returned after gc,", 99,
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                valuesCollection.size());
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is called before a test is executed.
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() {
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < 100; i++) {
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            keyArray[i] = new Object();
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            valueArray[i] = new Object();
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method is called after a test is executed.
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
424