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.util; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ConcurrentModificationException; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Hashtable; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.NoSuchElementException; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TreeMap; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector; 33c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Blochimport java.util.Collections; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.java.util.HashMapTest.ReusableKey; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_MapTest2; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_UnmodifiableCollectionTest; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class HashtableTest extends junit.framework.TestCase { 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Hashtable ht10; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Hashtable ht100; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Hashtable htfull; 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Vector keyVector; 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Vector elmVector; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String h10sVal; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 54229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#Hashtable() 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor() { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Hashtable() 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_MapTest2(new Hashtable()).runTest(); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = new Hashtable(); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Created incorrect hashtable", 0, h.size()); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 66229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#Hashtable(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.Hashtable(int) 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = new Hashtable(9); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Created incorrect hashtable", 0, h.size()); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable empty = new Hashtable(0); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Empty hashtable access", empty.get("nothing")); 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project empty.put("something", "here"); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("cannot get element", empty.get("something") == "here"); 78f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Hashtable(-1); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 88229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#Hashtable(int, float) 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorIF() { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Hashtable(int, float) 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = new java.util.Hashtable(10, 0.5f); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Created incorrect hashtable", 0, h.size()); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable empty = new Hashtable(0, 0.75f); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Empty hashtable access", empty.get("nothing")); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project empty.put("something", "here"); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("cannot get element", empty.get("something") == "here"); 99f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Hashtable(-1, 0.75f); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 106f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Hashtable(0, -0.75f); 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 } 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 116229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#Hashtable(java.util.Map) 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_util_Map() { 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Hashtable(java.util.Map) 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map map = new TreeMap(); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object firstVal = "Gabba"; 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object secondVal = new Integer(5); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.put("Gah", firstVal); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.put("Ooga", secondVal); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable ht = new Hashtable(map); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("a) Incorrect Hashtable constructed", 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.get("Gah") == firstVal); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("b) Incorrect Hashtable constructed", 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.get("Ooga") == secondVal); 130f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Hashtable(null); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 140229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#Hashtable(java.util.Map) 141c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch */ 142c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch public void test_ConversionConstructorNullValue() { 143c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch Map<String, Void> map = Collections.singletonMap("Dog", null); 144c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch try { 145c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch new Hashtable<String, Void>(map); 146c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch fail("NullPointerException expected"); 147c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch } catch (NullPointerException e) { 148c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch //expected 149c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch } 150c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch } 151c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch /** 152229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#clear() 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_clear() { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Hashtable.clear() 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = hashtableClone(htfull); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.clear(); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Hashtable was not cleared", 0, h.size()); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration el = h.elements(); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration keys = h.keys(); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Hashtable improperly cleared", !el.hasMoreElements() 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && !(keys.hasMoreElements())); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 166229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#clone() 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_clone() { 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object java.util.Hashtable.clone() 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = (Hashtable) htfull.clone(); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Clone different size than original", h.size() == htfull 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .size()); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration org = htfull.keys(); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration cpy = h.keys(); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String okey, ckey; 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (org.hasMoreElements()) { 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Key comparison failed", (okey = (String) org 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .nextElement()).equals(ckey = (String) cpy.nextElement())); 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Value comparison failed", ((String) htfull.get(okey)) 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .equals((String) h.get(ckey))); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Copy has more keys than original", !cpy.hasMoreElements()); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 189229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#contains(java.lang.Object) 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_containsLjava_lang_Object() { 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Hashtable.contains(java.lang.Object) 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Element not found", ht10.contains("Val 7")); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Invalid element found", !ht10.contains("ZZZZZZZZZZZZZZZZ")); 196f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht10.contains(null); 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 206229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#containsKey(java.lang.Object) 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_containsKeyLjava_lang_Object() { 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Hashtable.containsKey(java.lang.Object) 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to find key", htfull.containsKey("FKey 4")); 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to find key", !htfull.containsKey("FKey 99")); 214f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project htfull.containsKey(null); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 224229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#containsValue(java.lang.Object) 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_containsValueLjava_lang_Object() { 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Hashtable.containsValue(java.lang.Object) 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = elmVector.elements(); 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned false for valid value", ht10.containsValue(e 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .nextElement())); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned true for invalid value", !ht10 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .containsValue(new Object())); 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht10.containsValue(null); 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 245229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#elements() 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_elements() { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Enumeration java.util.Hashtable.elements() 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration elms = ht10.elements(); 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i = 0; 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (elms.hasMoreElements()) { 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String s = (String) elms.nextElement(); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Missing key from enumeration", elmVector.contains(s)); 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ++i; 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("All keys not retrieved", 10, ht10.size()); 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 260c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// BEGIN android-removed 261c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// implementation dependent 262c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// /** 263229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom// * java.util.Hashtable#elements() 264c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// */ 265c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// public void test_elements_subtest0() { 266c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // this is the reference implementation behavior 267c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// final Hashtable ht = new Hashtable(7); 268c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("1", "a"); 269c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // these three elements hash to the same bucket in a 7 element Hashtable 270c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("2", "b"); 271c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("9", "c"); 272c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("12", "d"); 273c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // Hashtable looks like: 274c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // 0: "1" 275c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // 1: "12" -> "9" -> "2" 276c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// Enumeration en = ht.elements(); 277c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // cache the first entry 278c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// en.hasMoreElements(); 279c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.remove("12"); 280c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.remove("9"); 281c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// boolean exception = false; 282c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// try { 283c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // cached "12" 284c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// Object result = en.nextElement(); 285c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertNull("unexpected: " + result, result); 286c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // next is removed "9" 287c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// result = en.nextElement(); 288c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertNull("unexpected: " + result, result); 289c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// result = en.nextElement(); 290c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertTrue("unexpected: " + result, "b".equals(result)); 291c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } catch (NoSuchElementException e) { 292c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// exception = true; 293c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 294c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertTrue("unexpected NoSuchElementException", !exception); 295c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 296c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// END android-removed 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 299229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#entrySet() 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_entrySet() { 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set java.util.Hashtable.entrySet() 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set s = ht10.entrySet(); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set s2 = new HashSet(); 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator i = s.iterator(); 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (i.hasNext()) 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s2.add(((Map.Entry) i.next()).getValue()); 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = elmVector.elements(); 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect entry set", s2.contains(e 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .nextElement())); 312c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// BEGIN android-removed 313c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// implementation dependent 314c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertEquals("Not synchronized", 315c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// "java.util.Collections$SynchronizedSet", s.getClass().getName()); 316c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// END android-removed 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ((Map.Entry) ht10.entrySet().iterator().next()).setValue(null); 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e1) { 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Should not be able to assign null to a Hashtable entrySet() Map.Entry", 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 330229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#equals(java.lang.Object) 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_equalsLjava_lang_Object() { 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Hashtable.equals(java.lang.Object) 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = hashtableClone(ht10); 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned false for equal tables", ht10.equals(h)); 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned true for unequal tables", !ht10.equals(htfull)); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 340229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#get(java.lang.Object) 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getLjava_lang_Object() { 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Hashtable.get(java.lang.Object) 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = hashtableClone(htfull); 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Could not retrieve element", "FVal 2", ((String) h.get("FKey 2")) 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 349c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// BEGIN android-removed 350c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// implementation dependent 351c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // Regression for HARMONY-262 352c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ReusableKey k = new ReusableKey(); 353c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// Hashtable h2 = new Hashtable(); 354c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// k.setKey(1); 355c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// h2.put(k, "value1"); 356c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// 357c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// k.setKey(13); 358c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertNull(h2.get(k)); 359c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// 360c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// k.setKey(12); 361c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertNull(h2.get(k)); 362f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes// 363c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// try { 364c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// h2.get(null); 365c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// fail("NullPointerException expected"); 366c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } catch (NullPointerException e) { 367c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// //expected 368c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 369c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// END android-removed 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 373229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#hashCode() 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_hashCode() { 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Hashtable.hashCode() 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set entrySet = ht10.entrySet(); 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator iterator = entrySet.iterator(); 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int expectedHash; 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (expectedHash = 0; iterator.hasNext(); expectedHash += iterator 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .next().hashCode()) 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ; 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect hashCode returned. Wanted: " + expectedHash 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + " got: " + ht10.hashCode(), expectedHash == ht10.hashCode()); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 388229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#isEmpty() 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_isEmpty() { 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method boolean java.util.Hashtable.isEmpty() 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("isEmpty returned incorrect value", !ht10.isEmpty()); 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("isEmpty returned incorrect value", 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new java.util.Hashtable().isEmpty()); 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Hashtable ht = new Hashtable(); 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put("0", ""); 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread t1 = new Thread() { 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (!ht.isEmpty()) 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ; 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put("final", ""); 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project t1.start(); 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 1; i < 10000; i++) { 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (ht) { 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.remove(String.valueOf(i - 1)); 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put(String.valueOf(i), ""); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int size; 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if ((size = ht.size()) != 1) { 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String result = "Size is not 1: " + size + " " + ht; 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.clear(); 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(result); 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.clear(); 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 425229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#keys() 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_keys() { 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Enumeration java.util.Hashtable.keys() 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration keys = ht10.keys(); 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i = 0; 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (keys.hasMoreElements()) { 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String s = (String) keys.nextElement(); 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Missing key from enumeration", keyVector.contains(s)); 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ++i; 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("All keys not retrieved", 10, ht10.size()); 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 442229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#keys() 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_keys_subtest0() { 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // this is the reference implementation behavior 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Hashtable ht = new Hashtable(3); 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put("initial", ""); 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration en = ht.keys(); 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project en.hasMoreElements(); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.remove("initial"); 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean exception = false; 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object result = en.nextElement(); 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("unexpected: " + result, "initial".equals(result)); 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project exception = true; 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("unexpected NoSuchElementException", !exception); 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 462229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#keySet() 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_keySet() { 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Set java.util.Hashtable.keySet() 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set s = ht10.keySet(); 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = keyVector.elements(); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect key set", s 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .contains(e.nextElement())); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 472c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// BEGIN android-removed 473c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// implementation dependent 474c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertEquals("Not synchronized", 475c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// "java.util.Collections$SynchronizedSet", s.getClass().getName()); 476c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// END android-removed 477f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map map = new Hashtable(101); 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.put(new Integer(1), "1"); 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.put(new Integer(102), "102"); 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map.put(new Integer(203), "203"); 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator it = map.keySet().iterator(); 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer remove1 = (Integer) it.next(); 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it.remove(); 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer remove2 = (Integer) it.next(); 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it.remove(); 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList list = new ArrayList(Arrays.asList(new Integer[] { 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Integer(1), new Integer(102), new Integer(203) })); 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.remove(remove1); 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.remove(remove2); 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Wrong result", it.next().equals(list.get(0))); 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size", 1, map.size()); 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Wrong contents", map.keySet().iterator().next().equals( 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.get(0))); 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map map2 = new Hashtable(101); 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map2.put(new Integer(1), "1"); 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project map2.put(new Integer(4), "4"); 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator it2 = map2.keySet().iterator(); 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer remove3 = (Integer) it2.next(); 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer next; 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (remove3.intValue() == 1) 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project next = new Integer(4); 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project else 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project next = new Integer(1); 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it2.hasNext(); 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it2.remove(); 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Wrong result 2", it2.next().equals(next)); 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong size 2", 1, map2.size()); 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Wrong contents 2", map2.keySet().iterator().next().equals( 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project next)); 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 515229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#keySet() 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_keySet_subtest0() { 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set s1 = ht10.keySet(); 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("should contain key", s1.remove("Key 0")); 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("should not contain key", !s1.remove("Key 0")); 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final int iterations = 10000; 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Hashtable ht = new Hashtable(); 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread t1 = new Thread() { 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < iterations; i++) { 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put(String.valueOf(i), ""); 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.remove(String.valueOf(i)); 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project t1.start(); 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set set = ht.keySet(); 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < iterations; i++) { 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Iterator it = set.iterator(); 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it.next(); 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project it.remove(); 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int size; 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // ensure removing with the iterator doesn't corrupt the 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Hashtable 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if ((size = ht.size()) < 0) { 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("invalid size: " + size); 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchElementException e) { 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ConcurrentModificationException e) { 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 551c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// BEGIN android-removed 552c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// implementation dependent 553c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// /** 554229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom// * java.util.Hashtable#keySet() 555c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// */ 556c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// public void test_keySet_subtest1() { 557c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // this is the reference implementation behavior 558c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// final Hashtable ht = new Hashtable(7); 559c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("1", "a"); 560c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // these three elements hash to the same bucket in a 7 element Hashtable 561c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("2", "b"); 562c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("9", "c"); 563c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// ht.put("12", "d"); 564c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // Hashtable looks like: 565c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // 0: "1" 566c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // 1: "12" -> "9" -> "2" 567c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// Enumeration en = ht.elements(); 568c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // cache the first entry 569c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// en.hasMoreElements(); 570c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// Iterator it = ht.keySet().iterator(); 571c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // this is mostly a copy of the test in test_elements_subtest0() 572c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // test removing with the iterator does not null the values 573c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// while (it.hasNext()) { 574c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// String key = (String) it.next(); 575c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// if ("12".equals(key) || "9".equals(key)) { 576c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// it.remove(); 577c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 578c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 579c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// it.remove(); 580c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// boolean exception = false; 581c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// try { 582c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // cached "12" 583c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// Object result = en.nextElement(); 584c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertTrue("unexpected: " + result, "d".equals(result)); 585c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// // next is removed "9" 586c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// result = en.nextElement(); 587c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertTrue("unexpected: " + result, "c".equals(result)); 588c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// result = en.nextElement(); 589c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertTrue("unexpected: " + result, "b".equals(result)); 590c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } catch (NoSuchElementException e) { 591c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// exception = true; 592c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 593c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertTrue("unexpected NoSuchElementException", !exception); 594c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// } 595c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// END android-removed 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 598229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#put(java.lang.Object, java.lang.Object) 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_putLjava_lang_ObjectLjava_lang_Object() { 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Hashtable.put(java.lang.Object, java.lang.Object) 603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = hashtableClone(ht100); 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer key = new Integer(100); 605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put("Value 100", key); 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Key/Value not inserted", h.size() == 1 && (h.contains(key))); 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Put into "full" table 609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h = hashtableClone(htfull); 610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put("Value 100", key); 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Key/Value not inserted into full table", h.size() == 8 612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && (h.contains(key))); 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put(null, key); 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put("Value 100", null); 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 630229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#putAll(java.util.Map) 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_putAllLjava_util_Map() { 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.util.Hashtable.putAll(java.util.Map) 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = new Hashtable(); 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.putAll(ht10); 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = keyVector.elements(); 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) { 638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object x = e.nextElement(); 639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Failed to put all elements", h.get(x).equals( 640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht10.get(x))); 641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.putAll(null); 645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 652229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#remove(java.lang.Object) 653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeLjava_lang_Object() { 655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.Object 656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.util.Hashtable.remove(java.lang.Object) 657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = hashtableClone(htfull); 658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object k = h.remove("FKey 0"); 659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Remove failed", !h.containsKey("FKey 0") || k == null); 660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(h.remove("FKey 0")); 661f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.remove(null); 664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 671229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#size() 672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_size() { 674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.util.Hashtable.size() 675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned invalid size", ht10.size() == 10 676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && (ht100.size() == 0)); 677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final Hashtable ht = new Hashtable(); 679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put("0", ""); 680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread t1 = new Thread() { 681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (ht.size() > 0) 683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ; 684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put("final", ""); 685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project t1.start(); 688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 1; i < 10000; i++) { 689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project synchronized (ht) { 690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.remove(String.valueOf(i - 1)); 691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.put(String.valueOf(i), ""); 692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int size; 694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if ((size = ht.size()) != 1) { 695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String result = "Size is not 1: " + size + " " + ht; 696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.clear(); 698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(result); 699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // terminate the thread 702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht.clear(); 703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 704adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 706229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#toString() 707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_toString() { 709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.String java.util.Hashtable.toString() 710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable h = new Hashtable(); 711f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Incorrect toString for Empty table", 712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "{}", h.toString()); 713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put("one", "1"); 715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put("two", h); 716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put(h, "3"); 717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project h.put(h, h); 718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String result = h.toString(); 719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("should contain self ref", result.indexOf("(this") > -1); 720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 721adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 723229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Hashtable#values() 724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_values() { 726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.util.Collection java.util.Hashtable.values() 727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection c = ht10.values(); 728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Enumeration e = elmVector.elements(); 729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (e.hasMoreElements()) 730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Returned incorrect values", c.contains(e.nextElement())); 731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 732c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// BEGIN android-removed 733c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// implementation dependent 734c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// assertEquals("Not synchronized", 735c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// "java.util.Collections$SynchronizedCollection", c.getClass().getName()); 736c0a4d9b35cbdd33dcc8e6a78a829573f0ed9bf6dJoshua Bloch// END android-removed 737f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable myHashtable = new Hashtable(); 739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 100; i++) 740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project myHashtable.put(new Integer(i), new Integer(i)); 741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection values = myHashtable.values(); 742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Support_UnmodifiableCollectionTest( 743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Test Returned Collection From Hashtable.values()", values) 744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .runTest(); 745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project values.remove(new Integer(0)); 746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue( 747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Removing from the values collection should remove from the original map", 748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project !myHashtable.containsValue(new Integer(0))); 749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 750f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Regression Test for JIRA 2181 753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_entrySet_remove() 755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Hashtable<String,String> hashtable = new Hashtable<String,String>(); 757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hashtable.put("my.nonexistent.prop", "AAA"); 758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hashtable.put( "parse.error", "BBB" ); 759f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Iterator<Map.Entry<String,String>> iterator = 760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hashtable.entrySet().iterator(); 761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while(iterator.hasNext()) 762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map.Entry entry = iterator.next(); 764f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes final Object value = entry.getValue(); 765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if(value.equals("AAA")) 766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project iterator.remove(); 768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(hashtable.containsKey("my.nonexistent.prop")); 771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_Hashtable extends Hashtable { 774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean flag = false; 775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Mock_Hashtable(int i) { 777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(i); 778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void rehash() { 782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project flag = true; 783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.rehash(); 784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 785f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isRehashed() { 787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return flag; 788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_rehash() { 792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Mock_Hashtable mht = new Mock_Hashtable(5); 793f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(mht.isRehashed()); 795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < 10; i++) { 796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mht.put(i, "New value"); 797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(mht.isRehashed()); 799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected Hashtable hashtableClone(Hashtable s) { 802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (Hashtable) s.clone(); 803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 804f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is called before a test is executed. 808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() { 810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht10 = new Hashtable(10); 812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht100 = new Hashtable(100); 813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project htfull = new Hashtable(10); 814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project keyVector = new Vector(10); 815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project elmVector = new Vector(10); 816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 10; i++) { 818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ht10.put("Key " + i, "Val " + i); 819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project keyVector.addElement("Key " + i); 820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project elmVector.addElement("Val " + i); 821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 7; i++) 824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project htfull.put("FKey " + i, "FVal " + i); 825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tears down the fixture, for example, close a network connection. This 829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method is called after a test is executed. 830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() { 832740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann ht10 = null; 833740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann ht100 = null; 834740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann htfull = null; 835740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann keyVector = null; 836740cbf1565815f08d9fb3a0a8d4a581cdc0d2a9dJorg Pleumann elmVector = null; 837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 839