1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Serializable; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.AbstractMap; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayList; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashMap; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Iterator; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.LinkedHashMap; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.List; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Map; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.TreeMap; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_MapTest2; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.Support_UnmodifiableCollectionTest; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.LinkedHashMap 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class LinkedHashMapTest extends junit.framework.TestCase { 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 41ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm; 42ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 43ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson final static int hmSize = 1000; 44ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 45ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson static Object[] objArray; 46ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 47ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson static Object[] objArray2; 48ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson { 49ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson objArray = new Object[hmSize]; 50ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson objArray2 = new Object[hmSize]; 51ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < objArray.length; i++) { 52ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson objArray[i] = new Integer(i); 53ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson objArray2[i] = objArray[i].toString(); 54ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 55ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 56ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 57ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson static final class CacheMap extends LinkedHashMap { 58ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson protected boolean removeEldestEntry(Map.Entry e) { 59ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson return size() > 5; 60ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 61ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 62ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static class MockMapNull extends AbstractMap { 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Set entrySet() { 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int size() { 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 10; 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 75ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 76ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#LinkedHashMap() 77ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 78ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_Constructor() { 79ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.LinkedHashMap() 80ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new Support_MapTest2(new LinkedHashMap()).runTest(); 81ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 82ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm2 = new LinkedHashMap(); 83ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Created incorrect LinkedHashMap", 0, hm2.size()); 84ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 85ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 86ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 87ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#LinkedHashMap(int) 88ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 89ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_ConstructorI() { 90ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.LinkedHashMap(int) 91ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm2 = new LinkedHashMap(5); 92ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Created incorrect LinkedHashMap", 0, hm2.size()); 93ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson try { 94ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new LinkedHashMap(-1); 95ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson fail(); 96ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } catch (IllegalArgumentException expected) { 97ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 98ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 99ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap empty = new LinkedHashMap(0); 100ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Empty LinkedHashMap access", empty.get("nothing")); 101ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson empty.put("something", "here"); 102ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("cannot get element", empty.get("something") == "here"); 103ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 104ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 105ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 106ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#LinkedHashMap(int, float) 107ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 108ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_ConstructorIF() { 109ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.LinkedHashMap(int, float) 110ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm2 = new LinkedHashMap(5, (float) 0.5); 111ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Created incorrect LinkedHashMap", 0, hm2.size()); 112ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson try { 113ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new LinkedHashMap(0, 0); 114ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson fail(); 115ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } catch (IllegalArgumentException expected) { 116ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 117ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 118ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap empty = new LinkedHashMap(0, 0.75f); 119ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Empty hashtable access", empty.get("nothing")); 120ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson empty.put("something", "here"); 121ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("cannot get element", empty.get("something") == "here"); 122ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 123ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 124ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 125ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#LinkedHashMap(java.util.Map) 126ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 127ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_ConstructorLjava_util_Map() { 128ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.LinkedHashMap(java.util.Map) 129ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map myMap = new TreeMap(); 130ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int counter = 0; counter < hmSize; counter++) 131ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson myMap.put(objArray2[counter], objArray[counter]); 132ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm2 = new LinkedHashMap(myMap); 133ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int counter = 0; counter < hmSize; counter++) 134ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Failed to construct correct LinkedHashMap", hm 135ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .get(objArray2[counter]) == hm2.get(objArray2[counter])); 136ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 137ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 138ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 139ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#get(java.lang.Object) 140ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 141ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_getLjava_lang_Object() { 142ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.lang.Object 143ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // java.util.LinkedHashMap.get(java.lang.Object) 144ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Get returned non-null for non existent key", 145ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.get("T")); 146ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.put("T", "HELLO"); 147ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Get returned incorecct value for existing key", "HELLO", hm.get("T") 148ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson ); 149ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 150ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap m = new LinkedHashMap(); 151ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(null, "test"); 152ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Failed with null key", "test", m.get(null)); 153ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Failed with missing key matching null hash", m 154ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .get(new Integer(0))); 155ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 156ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 157ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 158ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#put(java.lang.Object, java.lang.Object) 159ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 160ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_putLjava_lang_ObjectLjava_lang_Object() { 161ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.lang.Object 162ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // java.util.LinkedHashMap.put(java.lang.Object, java.lang.Object) 163ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.put("KEY", "VALUE"); 164ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Failed to install key/value pair", 165ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "VALUE", hm.get("KEY")); 166ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 167ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap m = new LinkedHashMap(); 168ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(new Short((short) 0), "short"); 169ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(null, "test"); 170ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(new Integer(0), "int"); 171ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Failed adding to bucket containing null", "short", m.get( 172ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new Short((short) 0))); 173ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Failed adding to bucket containing null2", "int", m.get( 174ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new Integer(0))); 175ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 176ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 177ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 178ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#putAll(java.util.Map) 179ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 180ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_putAllLjava_util_Map() { 181ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method void java.util.LinkedHashMap.putAll(java.util.Map) 182ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm2 = new LinkedHashMap(); 183ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm2.putAll(hm); 184ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < 1000; i++) 185ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Failed to clear all elements", hm2.get( 186ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new Integer(i).toString()).equals((new Integer(i)))); 187ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.LinkedHashMap#putAll(java.util.Map) 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_putAll_Ljava_util_Map_Null() { 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedHashMap linkedHashMap = new LinkedHashMap(); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes linkedHashMap.putAll(new MockMapNull()); 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected. 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes linkedHashMap = new LinkedHashMap(new MockMapNull()); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected. 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 207ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 208ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 209ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 210ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#entrySet() 211ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 212ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_entrySet() { 213ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.Set java.util.LinkedHashMap.entrySet() 214ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s = hm.entrySet(); 215ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator i = s.iterator(); 216ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size", hm.size() == s.size()); 217ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson while (i.hasNext()) { 218ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map.Entry m = (Map.Entry) i.next(); 219ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", hm.containsKey(m 220ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .getKey()) 221ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson && hm.containsValue(m.getValue())); 222ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 223ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 224ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 225ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 226ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#keySet() 227ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 228ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_keySet() { 229ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.Set java.util.LinkedHashMap.keySet() 230ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s = hm.keySet(); 231ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size()", s.size() == hm.size()); 232ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < objArray.length; i++) 233ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set does not contain all keys", s 234ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .contains(objArray[i].toString())); 235ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 236ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap m = new LinkedHashMap(); 237ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(null, "test"); 238ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Failed with null key", m.keySet().contains(null)); 239ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Failed with null key", m.keySet().iterator().next()); 240ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 241ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map map = new LinkedHashMap(101); 242ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map.put(new Integer(1), "1"); 243ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map.put(new Integer(102), "102"); 244ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map.put(new Integer(203), "203"); 245ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it = map.keySet().iterator(); 246ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer remove1 = (Integer) it.next(); 247ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson it.hasNext(); 248ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson it.remove(); 249ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer remove2 = (Integer) it.next(); 250ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson it.remove(); 251ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson ArrayList list = new ArrayList(Arrays.asList(new Integer[] { 252ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new Integer(1), new Integer(102), new Integer(203) })); 253ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson list.remove(remove1); 254ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson list.remove(remove2); 255ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Wrong result", it.next().equals(list.get(0))); 256ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Wrong size", 1, map.size()); 257ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Wrong contents", map.keySet().iterator().next().equals( 258ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson list.get(0))); 259ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 260ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map map2 = new LinkedHashMap(101); 261ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map2.put(new Integer(1), "1"); 262ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map2.put(new Integer(4), "4"); 263ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it2 = map2.keySet().iterator(); 264ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer remove3 = (Integer) it2.next(); 265ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer next; 266ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson if (remove3.intValue() == 1) 267ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson next = new Integer(4); 268ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson else 269ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson next = new Integer(1); 270ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson it2.hasNext(); 271ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson it2.remove(); 272ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Wrong result 2", it2.next().equals(next)); 273ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Wrong size 2", 1, map2.size()); 274ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Wrong contents 2", map2.keySet().iterator().next().equals( 275ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson next)); 276ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 277ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 278ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 279ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#values() 280ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 281ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_values() { 282ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.util.Collection java.util.LinkedHashMap.values() 283ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection c = hm.values(); 284ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned collection of incorrect size()", c.size() == hm 285ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .size()); 286ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < objArray.length; i++) 287ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned collection does not contain all keys", c 288ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .contains(objArray[i])); 289ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 290ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap myLinkedHashMap = new LinkedHashMap(); 291ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < 100; i++) 292ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson myLinkedHashMap.put(objArray2[i], objArray[i]); 293ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection values = myLinkedHashMap.values(); 294ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson new Support_UnmodifiableCollectionTest( 295ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "Test Returned Collection From LinkedHashMap.values()", values) 296ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .runTest(); 297ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson values.remove(new Integer(0)); 298ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue( 299ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "Removing from the values collection should remove from the original map", 300ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson !myLinkedHashMap.containsValue(new Integer(0))); 301ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 302ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 303ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 304ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 305ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#remove(java.lang.Object) 306ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 307ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_removeLjava_lang_Object() { 308ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.lang.Object 309ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // java.util.LinkedHashMap.remove(java.lang.Object) 310ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int size = hm.size(); 311ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer y = new Integer(9); 312ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer x = ((Integer) hm.remove(y.toString())); 313ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Remove returned incorrect value", x.equals(new Integer(9))); 314ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Failed to remove given key", hm.get(new Integer(9))); 315ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Failed to decrement size", hm.size() == (size - 1)); 316ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Remove of non-existent key returned non-null", hm 317ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .remove("LCLCLC")); 318ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 319ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap m = new LinkedHashMap(); 320ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(null, "test"); 321ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Failed with same hash as null", 322ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.remove(new Integer(0))); 323ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Failed with null key", "test", m.remove(null)); 324ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 325ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 326ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 327ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#clear() 328ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 329ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_clear() { 330ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method void java.util.LinkedHashMap.clear() 331ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.clear(); 332ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("Clear failed to reset size", 0, hm.size()); 333ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < hmSize; i++) 334ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertNull("Failed to clear all elements", 335ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.get(objArray2[i])); 336ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 337ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 338ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 339ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 340ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#clone() 341ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 342ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_clone() { 343ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method java.lang.Object java.util.LinkedHashMap.clone() 344ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap hm2 = (LinkedHashMap) hm.clone(); 345ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Clone answered equivalent LinkedHashMap", hm2 != hm); 346ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int counter = 0; counter < hmSize; counter++) 347ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Clone answered unequal LinkedHashMap", hm 348ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .get(objArray2[counter]) == hm2.get(objArray2[counter])); 349ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 350ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap map = new LinkedHashMap(); 351ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map.put("key", "value"); 352ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // get the keySet() and values() on the original Map 353ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set keys = map.keySet(); 354ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection values = map.values(); 355ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("values() does not work", 356ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "value", values.iterator().next()); 357ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("keySet() does not work", 358ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "key", keys.iterator().next()); 359ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson AbstractMap map2 = (AbstractMap) map.clone(); 360ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map2.put("key", "value2"); 361ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection values2 = map2.values(); 362ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("values() is identical", values2 != values); 363ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 364ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // values() and keySet() on the cloned() map should be different 365ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("values() was not cloned", 366ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "value2", values2.iterator().next()); 367ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map2.clear(); 368ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson map2.put("key2", "value3"); 369ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set key2 = map2.keySet(); 370ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("keySet() is identical", key2 != keys); 371ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("keySet() was not cloned", 372ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson "key2", key2.iterator().next()); 373ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 374ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // regresion test for HARMONY-4603 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clone_Mock() { 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LinkedHashMap hashMap = new MockMap(); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String value = "value a"; 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes hashMap.put("key", value); 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MockMap cloneMap = (MockMap) hashMap.clone(); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(value, cloneMap.get("key")); 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(hashMap, cloneMap); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, cloneMap.num); 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes hashMap.put("key", "value b"); 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(hashMap.equals(cloneMap)); 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes class MockMap extends LinkedHashMap { 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int num; 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Object put(Object k, Object v) { 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes num++; 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return super.put(k, v); 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected boolean removeEldestEntry(Map.Entry e) { 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return num > 1; 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 400ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 401ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 402ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 403ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#containsKey(java.lang.Object) 404ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 405ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_containsKeyLjava_lang_Object() { 406ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method boolean 407ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // java.util.LinkedHashMap.containsKey(java.lang.Object) 408ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned false for valid key", hm.containsKey(new Integer( 409ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 876).toString())); 410ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned true for invalid key", !hm.containsKey("KKDKDKD")); 411ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 412ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap m = new LinkedHashMap(); 413ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson m.put(null, "test"); 414ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Failed with null key", m.containsKey(null)); 415ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Failed with missing key matching null hash", !m 416ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .containsKey(new Integer(0))); 417ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 418ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 419ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 420ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#containsValue(java.lang.Object) 421ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 422ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_containsValueLjava_lang_Object() { 423ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method boolean 424ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // java.util.LinkedHashMap.containsValue(java.lang.Object) 425ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned false for valid value", hm 426ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .containsValue(new Integer(875))); 427ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned true for invalid valie", !hm 428ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .containsValue(new Integer(-9))); 429ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 430ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 431ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 432ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#isEmpty() 433ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 434ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_isEmpty() { 435ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method boolean java.util.LinkedHashMap.isEmpty() 436ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned false for new map", new LinkedHashMap().isEmpty()); 437ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned true for non-empty", !hm.isEmpty()); 438ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 439ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 440ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 441ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#size() 442ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 443ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_size() { 444ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // Test for method int java.util.LinkedHashMap.size() 445ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect size", 446ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.size() == (objArray.length + 2)); 447ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 448ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 449ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 450ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#entrySet() 451ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 452ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_ordered_entrySet() { 453ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int i; 454ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int sz = 100; 455ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap lhm = new LinkedHashMap(); 456ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 457ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 458ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lhm.put(ii, ii.toString()); 459ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 460ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 461ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s1 = lhm.entrySet(); 462ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it1 = s1.iterator(); 463ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size 1", lhm.size() == s1.size()); 464ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; it1.hasNext(); i++) { 465ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map.Entry m = (Map.Entry) it1.next(); 466ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) m.getKey(); 467ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set 1", jj.intValue() == i); 468ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 469ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 470ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap lruhm = new LinkedHashMap(200, .75f, true); 471ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 472ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 473ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lruhm.put(ii, ii.toString()); 474ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 475ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 476ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s3 = lruhm.entrySet(); 477ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it3 = s3.iterator(); 478ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size 2", lruhm.size() == s3 479ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .size()); 480ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz && it3.hasNext(); i++) { 481ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map.Entry m = (Map.Entry) it3.next(); 482ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) m.getKey(); 483ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set 2", jj.intValue() == i); 484ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 485ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 486ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /* fetch the even numbered entries to affect traversal order */ 487ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int p = 0; 488ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i += 2) { 489ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson String ii = (String) lruhm.get(new Integer(i)); 490ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson p = p + Integer.parseInt(ii); 491ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 492ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("invalid sum of even numbers", 2450, p); 493ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 494ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s2 = lruhm.entrySet(); 495ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it2 = s2.iterator(); 496ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size 3", lruhm.size() == s2 497ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson .size()); 498ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 1; i < sz && it2.hasNext(); i += 2) { 499ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map.Entry m = (Map.Entry) it2.next(); 500ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) m.getKey(); 501ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set 3", jj.intValue() == i); 502ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 503ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz && it2.hasNext(); i += 2) { 504ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Map.Entry m = (Map.Entry) it2.next(); 505ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) m.getKey(); 506ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set 4", jj.intValue() == i); 507ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 508ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Entries left to iterate on", !it2.hasNext()); 509ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 510ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 511ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 512ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#keySet() 513ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 514ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_ordered_keySet() { 515ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int i; 516ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int sz = 100; 517ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap lhm = new LinkedHashMap(); 518ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 519ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 520ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lhm.put(ii, ii.toString()); 521ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 522ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 523ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s1 = lhm.keySet(); 524ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it1 = s1.iterator(); 525ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size", lhm.size() == s1.size()); 526ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; it1.hasNext(); i++) { 527ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it1.next(); 528ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i); 529ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 530ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 531ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap lruhm = new LinkedHashMap(200, .75f, true); 532ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 533ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 534ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lruhm.put(ii, ii.toString()); 535ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 536ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 537ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s3 = lruhm.keySet(); 538ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it3 = s3.iterator(); 539ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size", lruhm.size() == s3.size()); 540ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz && it3.hasNext(); i++) { 541ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it3.next(); 542ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i); 543ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 544ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 545ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /* fetch the even numbered entries to affect traversal order */ 546ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int p = 0; 547ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i += 2) { 548ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson String ii = (String) lruhm.get(new Integer(i)); 549ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson p = p + Integer.parseInt(ii); 550ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 551ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertEquals("invalid sum of even numbers", 2450, p); 552ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 553ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Set s2 = lruhm.keySet(); 554ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it2 = s2.iterator(); 555ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size", lruhm.size() == s2.size()); 556ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 1; i < sz && it2.hasNext(); i += 2) { 557ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it2.next(); 558ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i); 559ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 560ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz && it2.hasNext(); i += 2) { 561ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it2.next(); 562ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i); 563ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 564ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Entries left to iterate on", !it2.hasNext()); 565ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 566ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 567ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 568ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#values() 569ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 570ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_ordered_values() { 571ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int i; 572ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int sz = 100; 573ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap lhm = new LinkedHashMap(); 574ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 575ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 576ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lhm.put(ii, new Integer(i * 2)); 577ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 578ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 579ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection s1 = lhm.values(); 580ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it1 = s1.iterator(); 581ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size 1", lhm.size() == s1.size()); 582ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; it1.hasNext(); i++) { 583ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it1.next(); 584ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set 1", jj.intValue() == i * 2); 585ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 586ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 587ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson LinkedHashMap lruhm = new LinkedHashMap(200, .75f, true); 588ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 589ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 590ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lruhm.put(ii, new Integer(i * 2)); 591ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 592ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 593ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection s3 = lruhm.values(); 594ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it3 = s3.iterator(); 595ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size", lruhm.size() == s3.size()); 596ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz && it3.hasNext(); i++) { 597ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it3.next(); 598ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i * 2); 599ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 600ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 601ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson // fetch the even numbered entries to affect traversal order 602ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int p = 0; 603ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i += 2) { 604ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = (Integer) lruhm.get(new Integer(i)); 605ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson p = p + ii.intValue(); 606ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 607ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("invalid sum of even numbers", p == 2450 * 2); 608ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 609ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection s2 = lruhm.values(); 610ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it2 = s2.iterator(); 611ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size", lruhm.size() == s2.size()); 612ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 1; i < sz && it2.hasNext(); i += 2) { 613ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it2.next(); 614ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i * 2); 615ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 616ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz && it2.hasNext(); i += 2) { 617ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it2.next(); 618ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set", jj.intValue() == i * 2); 619ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 620ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Entries left to iterate on", !it2.hasNext()); 621ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 622ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 623ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 624ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * @tests java.util.LinkedHashMap#removeEldestEntry(java.util.Map$Entry) 625ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 626ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_remove_eldest() { 627ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int i; 628ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson int sz = 10; 629ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson CacheMap lhm = new CacheMap(); 630ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 0; i < sz; i++) { 631ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer ii = new Integer(i); 632ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson lhm.put(ii, new Integer(i * 2)); 633ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 634ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 635ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Collection s1 = lhm.values(); 636ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Iterator it1 = s1.iterator(); 637ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned set of incorrect size 1", lhm.size() == s1.size()); 638ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (i = 5; it1.hasNext(); i++) { 639ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson Integer jj = (Integer) it1.next(); 640ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Returned incorrect entry set 1", jj.intValue() == i * 2); 641ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 642ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson assertTrue("Entries left in map", !it1.hasNext()); 643ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 644ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 645ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson public void test_getInterfaces() { 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class<?>[] interfaces = HashMap.class.getInterfaces(); 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, interfaces.length); 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes List<Class<?>> interfaceList = Arrays.asList(interfaces); 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(interfaceList.contains(Map.class)); 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(interfaceList.contains(Cloneable.class)); 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(interfaceList.contains(Serializable.class)); 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes interfaces = LinkedHashMap.class.getInterfaces(); 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, interfaces.length); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes interfaceList = Arrays.asList(interfaces); 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(interfaceList.contains(Map.class)); 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 661ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 662ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * Sets up the fixture, for example, open a network connection. This method 663ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * is called before a test is executed. 664ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 665ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson protected void setUp() { 666ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm = new LinkedHashMap(); 667ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson for (int i = 0; i < objArray.length; i++) 668ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.put(objArray2[i], objArray[i]); 669ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.put("test", null); 670ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson hm.put(null, "test"); 671ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 672ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson 673ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson /** 674ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * Tears down the fixture, for example, close a network connection. This 675ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson * method is called after a test is executed. 676ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson */ 677ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson protected void tearDown() { 678ea551a82e41d6b0318af79de5db12416dfa7479cJesse Wilson } 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 680