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 8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 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, WITHOUT 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * License for the specific language governing permissions and limitations under 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonpackage libcore.java.util; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.Serializable; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collections; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Comparator; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.LinkedList; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.RandomAccess; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.SortedMap; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.SortedSet; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TreeMap; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TreeSet; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector; 3910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilsonimport junit.framework.TestCase; 40b416ef5dc224630af2b9393a15ae120b27e4864aJesse Wilsonimport libcore.util.SerializationTester; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.testframework.serialization.SerializationTest; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 44789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonpublic class OldCollectionsTest extends TestCase { 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final SerializableAssert comparator = new SerializableAssert() { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void assertDeserialized(Serializable reference, Serializable test) { 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertSame(reference, test); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 51f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 53229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#binarySearch(java.util.List, 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Object, java.util.Comparator) 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_binarySearchLjava_util_ListLjava_lang_ObjectLjava_util_Comparator() { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-94 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList<Integer> lst = new LinkedList<Integer>(); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lst.add(new Integer(30)); 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.sort(lst, null); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int index = Collections.binarySearch(lst, new Integer(2), null); 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(-1, index); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList<String> lls = new LinkedList<String>(); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("1"); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("2"); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("3"); 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("4"); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add(""); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList<String> ll = lls; 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.binarySearch(ll, new Integer(10), null); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 78f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 79f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 81229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#binarySearch(java.util.List, 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Object) 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("unchecked") 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_binarySearchLjava_util_ListLjava_lang_Object() { 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // regression for Harmony-1367 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List localList = new LinkedList(); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(-1, Collections.binarySearch(localList, new Object())); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project localList.add(new Object()); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.binarySearch(localList, new Integer(1)); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Should throw ClassCastException"); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList<String> lls = new LinkedList<String>(); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("1"); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("2"); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("3"); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add("4"); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lls.add(""); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList ll = lls; 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.binarySearch(ll, new Integer(10)); 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 112f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 114229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#rotate(java.util.List, int) 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_rotateLjava_util_ListI() { 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-19 Rotate an *empty* list 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(new ArrayList<Object>(), 25); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-20 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<String> list = new ArrayList<String>(); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(0, "zero"); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(1, "one"); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(2, "two"); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(3, "three"); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.add(4, "four"); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.rotate(list, Integer.MIN_VALUE); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 0, ", "three", 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.get(0)); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 1, ", "four", 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.get(1)); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 2, ", "zero", 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.get(2)); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 3, ", "one", 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.get(3)); 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Rotated incorrectly at position 4, ", "two", 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project list.get(4)); 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 142229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedCollection(java.util.Collection) 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedCollectionLjava_util_Collection() { 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.synchronizedCollection(null); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: synchronizedCollection(null) must throw NPE"); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 155229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedSortedMap(java.util.SortedMap) 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedSortedMapLjava_util_SortedMap() { 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.synchronizedSortedMap(null); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: synchronizedSortedMap(null) must throw NPE"); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 168229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedMap(java.util.Map) 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedMapLjava_util_Map() { 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.synchronizedMap(null); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: synchronizedMap(map) must throw NPE"); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 181229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedSet(java.util.Set) 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedSetLjava_util_Set() { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.synchronizedSet(null); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: synchronizedSet(set) must throw NPE"); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 194229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#synchronizedSortedSet(java.util.SortedSet) 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_synchronizedSortedSetLjava_util_SortedSet() { 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.synchronizedSortedSet(null); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: synchronizedSortedSet(null) must throw NPE"); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 207229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableCollection(java.util.Collection) 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableCollectionLjava_util_Collection() { 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.unmodifiableCollection(null); 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: unmodifiableCollection(null) must throw NPE"); 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 220229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableMap(java.util.Map) 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableMapLjava_util_Map() { 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.unmodifiableMap(null); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: unmodifiableMap(null) must throw NPE"); 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 233229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableSet(java.util.Set) 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableSetLjava_util_Set() { 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.unmodifiableSet(null); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: unmodifiableSet(null) must throw NPE"); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 246229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableSortedMap(java.util.SortedMap) 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableSortedMapLjava_util_SortedMap() { 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.unmodifiableSortedMap(null); 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: unmodifiableSortedMap(null) must throw NPE"); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 259229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#unmodifiableSortedSet(java.util.SortedSet) 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_unmodifiableSortedSetLjava_util_SortedSet() { 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Regression for HARMONY-93 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.unmodifiableSortedSet(null); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: unmodifiableSortedSet(null) must throw NPE"); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 270f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 272229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#frequency(java.util.Collection,Object) 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_frequencyLjava_util_CollectionLint() { 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.frequency(null, null); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Assert 0: frequency(null,<any>) must throw NPE"); 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) {} 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<String> strings = Arrays.asList(new String[] { "1", "2", "3", "1", "1" }); 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 1: did not find three \"1\" strings", 3, 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.frequency(strings, "1")); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 2: did not find one \"2\" strings", 1, Collections 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .frequency(strings, "2")); 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 3: did not find three \"3\" strings", 1, 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.frequency(strings, "3")); 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 4: matched on null when there are none", 0, 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.frequency(strings, null)); 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<Object> objects = Arrays.asList(new Object[] { new Integer(1), null, null, 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Long(1) }); 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 5: did not find one Integer(1)", 1, Collections 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .frequency(objects, new Integer(1))); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 6: did not find one Long(1)", 1, Collections 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .frequency(objects, new Long(1))); 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Assert 7: did not find two null references", 2, 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.frequency(objects, null)); 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 308229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#reverseOrder() 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_reverseOrder() { 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Comparator<String> roc = Collections.reverseOrder(); 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Assert 0: comparator must not be null", roc); 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Assert 1: comparator must implement Serializable", 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project roc instanceof Serializable); 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] fixtureDesc = new String[] { "2", "1", "0" }; 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] numbers = new String[] { "0", "1", "2" }; 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Arrays.sort(numbers, roc); 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Assert 2: the arrays are not equal, the sort failed", 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Arrays.equals(fixtureDesc, numbers)); 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 325229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections#reverseOrder(java.util.Comparator) 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_reverseOrderLjava_util_Comparator() { 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Comparator<String> roc = Collections 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .reverseOrder(String.CASE_INSENSITIVE_ORDER); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Assert 0: comparator must not be null", roc); 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Assert 1: comparator must implement Serializable", 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project roc instanceof Serializable); 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] fixtureDesc = new String[] { "2", "1", "0" }; 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] numbers = new String[] { "0", "1", "2" }; 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Arrays.sort(numbers, roc); 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Assert 2: the arrays are not equal, the sort failed", 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Arrays.equals(fixtureDesc, numbers)); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project roc = Collections.reverseOrder(null); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Assert 3: comparator must not be null", roc); 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Assert 4: comparator must implement Serializable", 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project roc instanceof Serializable); 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project numbers = new String[] { "0", "1", "2" }; 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Arrays.sort(numbers, roc); 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Assert 5: the arrays are not equal, the sort failed", 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Arrays.equals(fixtureDesc, numbers)); 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_Collection implements Collection { 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean add(Object o) { 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new UnsupportedOperationException(); 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean addAll(Collection c) { 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void clear() { 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean contains(Object o) { 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean containsAll(Collection c) { 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isEmpty() { 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Iterator iterator() { 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean remove(Object o) { 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean removeAll(Collection c) { 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean retainAll(Collection c) { 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object[] toArray() { 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object[] toArray(Object[] a) { 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_WrongCollection implements Collection { 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final String wrongElement = "Wrong element"; 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean add(Object o) { 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (o.equals(wrongElement)) throw new IllegalArgumentException(); 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (o == null) throw new NullPointerException(); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean addAll(Collection c) { 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void clear() { 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean contains(Object o) { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean containsAll(Collection c) { 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isEmpty() { 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Iterator iterator() { 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean remove(Object o) { 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean removeAll(Collection c) { 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean retainAll(Collection c) { 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object[] toArray() { 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object[] toArray(Object[] a) { 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 461f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_AddAll() { 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<Object> l = new ArrayList<Object>(); 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.addAll(l, new Object[] {})); 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(l.isEmpty()); 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.addAll(l, new Object[] { new Integer(1), 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Integer(2), new Integer(3) })); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(l.isEmpty()); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(l.equals(Arrays.asList(new Object[] { new Integer(1), 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Integer(2), new Integer(3) }))); 471f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(null,new Object[] { new Integer(1), 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Integer(2), new Integer(3) }); 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //fail 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 479f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection c = new Mock_Collection(); 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c, new Object[] { new Integer(1), 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Integer(2), new Integer(3) }); 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 488f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = new Mock_WrongCollection (); 490f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c, new String[] { "String", 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Correct element", null }); 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //fail 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 498f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c, new String[] { "String", 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Wrong element", "Correct element" }); 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //fail 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 506f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c, new String[] { "String", 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "", "Correct element" }); 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Disjoint() { 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object[] arr1 = new Object[10]; 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < arr1.length; i++) { 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project arr1[i] = new Integer(i); 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Object[] arr2 = new Object[20]; 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < arr2.length; i++) { 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project arr2[i] = new Integer(100 + i); 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection<Object> c1 = new ArrayList<Object>(); 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection<Object> c2 = new ArrayList<Object>(); 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c1, arr1); 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c2, arr2); 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.disjoint(c1, c2)); 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1.add(arr2[10]); 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.disjoint(c1, c2)); 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1 = new LinkedList<Object>(); 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c2 = new LinkedList<Object>(); 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c1, arr1); 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c2, arr2); 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.disjoint(c1, c2)); 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1.add(arr2[10]); 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.disjoint(c1, c2)); 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1 = new TreeSet<Object>(); 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c2 = new TreeSet<Object>(); 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c1, arr1); 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c2, arr2); 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.disjoint(c1, c2)); 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1.add(arr2[10]); 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.disjoint(c1, c2)); 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1 = new HashSet<Object>(); 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c2 = new HashSet<Object>(); 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c1, arr1); 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c2, arr2); 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.disjoint(c1, c2)); 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1.add(arr2[10]); 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.disjoint(c1, c2)); 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1 = new LinkedList<Object>(); 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c2 = new TreeSet<Object>(); 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c1, arr1); 554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c2, arr2); 555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.disjoint(c1, c2)); 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1.add(arr2[10]); 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.disjoint(c1, c2)); 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1 = new Vector<Object>(); 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c2 = new HashSet<Object>(); 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c1, arr1); 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.addAll(c2, arr2); 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(Collections.disjoint(c1, c2)); 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c1.add(arr2[10]); 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Collections.disjoint(c1, c2)); 566f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.disjoint(c1, null); 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 573f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collections.disjoint(null, c2); 576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 581f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 583229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections.EmptyList#readResolve() 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_EmptyList_readResolve() throws Exception { 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SerializationTest.verifySelf(Collections.EMPTY_LIST, comparator); 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 590229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections.EmptyMap#readResolve() 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_EmptyMap_readResolve() throws Exception { 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SerializationTest.verifySelf(Collections.EMPTY_MAP, comparator); 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 597229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.util.Collections.EmptySet#readResolve() 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_EmptySet_readResolve() throws Exception { 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SerializationTest.verifySelf(Collections.EMPTY_SET, comparator); 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 60310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedCollectionSerializationCompatibility() throws Exception { 60410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced0005737200276a6176612e7574696c2e436f6c6c656374696f6e73244368" 60510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b6564436f6c6c656374696f6e15e96dfd18e6cc6f0200034c00016374001" 60610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "64c6a6176612f7574696c2f436f6c6c656374696f6e3b4c000474797065740011" 60710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "4c6a6176612f6c616e672f436c6173733b5b00167a65726f4c656e677468456c6" 60810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "56d656e7441727261797400135b4c6a6176612f6c616e672f4f626a6563743b78" 60910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "707372001e6a6176612e7574696c2e436f6c6c656374696f6e7324456d7074795" 61010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "3657415f5721db403cb280200007870767200106a6176612e6c616e672e537472" 61110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "696e67a0f0a4387a3bb342020000787070"; 61210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedCollection( 61310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson Collections.<String>emptySet(), String.class), s, false); 61410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 61510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedListRandomAccessSerializationCompatibility() throws Exception { 61610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced00057372002d6a6176612e7574696c2e436f6c6c656374696f6e73244368" 61710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b656452616e646f6d4163636573734c69737416bc0e55a2d7f2f10200007" 61810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "87200216a6176612e7574696c2e436f6c6c656374696f6e7324436865636b6564" 61910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "4c69737400e7ce7692c45f7c0200014c00046c6973747400104c6a6176612f757" 62010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "4696c2f4c6973743b787200276a6176612e7574696c2e436f6c6c656374696f6e" 62110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "7324436865636b6564436f6c6c656374696f6e15e96dfd18e6cc6f0200034c000" 62210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "1637400164c6a6176612f7574696c2f436f6c6c656374696f6e3b4c0004747970" 62310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "657400114c6a6176612f6c616e672f436c6173733b5b00167a65726f4c656e677" 62410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "468456c656d656e7441727261797400135b4c6a6176612f6c616e672f4f626a65" 62510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "63743b7870737200136a6176612e7574696c2e41727261794c6973747881d21d9" 62610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "9c7619d03000149000473697a6578700000000077040000000a78767200106a61" 62710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "76612e6c616e672e537472696e67a0f0a4387a3bb34202000078707071007e0009"; 62810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedList(new ArrayList<String>(), String.class), s, true); 62910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 63010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedListSerializationCompatibility() throws Exception { 63110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced0005737200216a6176612e7574696c2e436f6c6c656374696f6e73244368" 63210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b65644c69737400e7ce7692c45f7c0200014c00046c6973747400104c6a6" 63310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "176612f7574696c2f4c6973743b787200276a6176612e7574696c2e436f6c6c65" 63410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "6374696f6e7324436865636b6564436f6c6c656374696f6e15e96dfd18e6cc6f0" 63510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "200034c0001637400164c6a6176612f7574696c2f436f6c6c656374696f6e3b4c" 63610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "0004747970657400114c6a6176612f6c616e672f436c6173733b5b00167a65726" 63710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "f4c656e677468456c656d656e7441727261797400135b4c6a6176612f6c616e67" 63810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "2f4f626a6563743b7870737200146a6176612e7574696c2e4c696e6b65644c697" 63910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "3740c29535d4a608822030000787077040000000078767200106a6176612e6c61" 64010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "6e672e537472696e67a0f0a4387a3bb34202000078707071007e0008"; 64110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedList(new LinkedList<String>(), String.class), s, true); 64210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 64310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedSetSerializationCompatibility() throws Exception { 64410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced0005737200206a6176612e7574696c2e436f6c6c656374696f6e73244368" 64510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b656453657441249ba27ad9ffab020000787200276a6176612e7574696c2" 64610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "e436f6c6c656374696f6e7324436865636b6564436f6c6c656374696f6e15e96d" 64710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "fd18e6cc6f0200034c0001637400164c6a6176612f7574696c2f436f6c6c65637" 64810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "4696f6e3b4c0004747970657400114c6a6176612f6c616e672f436c6173733b5b" 64910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "00167a65726f4c656e677468456c656d656e7441727261797400135b4c6a61766" 65010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "12f6c616e672f4f626a6563743b7870737200116a6176612e7574696c2e486173" 65110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "68536574ba44859596b8b7340300007870770c000000103f40000000000000787" 65210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "67200106a6176612e6c616e672e537472696e67a0f0a4387a3bb3420200007870" 65310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "70"; 65410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedSet(new HashSet<String>(), String.class), s, true); 65510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 65610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedMapSerializationCompatibility() throws Exception { 65710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced0005737200206a6176612e7574696c2e436f6c6c656374696f6e73244368" 65810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b65644d61704fb2bcdf0d1863680200054c00076b6579547970657400114" 65910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "c6a6176612f6c616e672f436c6173733b4c00016d74000f4c6a6176612f757469" 66010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "6c2f4d61703b4c000976616c75655479706571007e00015b00127a65726f4c656" 66110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "e6774684b657941727261797400135b4c6a6176612f6c616e672f4f626a656374" 66210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "3b5b00147a65726f4c656e67746856616c7565417272617971007e00037870767" 66310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "200106a6176612e6c616e672e537472696e67a0f0a4387a3bb342020000787073" 66410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "7200116a6176612e7574696c2e486173684d61700507dac1c31660d1030002460" 66510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "00a6c6f6164466163746f724900097468726573686f6c6478703f400000000000" 66610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "0c770800000010000000007871007e00067070"; 66710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedMap( 66810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson new HashMap<String, String>(), String.class, String.class), s); 66910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 67010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedSortedSetSerializationCompatibility() throws Exception { 67110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced0005737200266a6176612e7574696c2e436f6c6c656374696f6e73244368" 67210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b6564536f72746564536574163406ba7362eb0f0200014c0002737374001" 67310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "54c6a6176612f7574696c2f536f727465645365743b787200206a6176612e7574" 67410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "696c2e436f6c6c656374696f6e7324436865636b656453657441249ba27ad9ffa" 67510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "b020000787200276a6176612e7574696c2e436f6c6c656374696f6e7324436865" 67610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "636b6564436f6c6c656374696f6e15e96dfd18e6cc6f0200034c0001637400164" 67710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "c6a6176612f7574696c2f436f6c6c656374696f6e3b4c0004747970657400114c" 67810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "6a6176612f6c616e672f436c6173733b5b00167a65726f4c656e677468456c656" 67910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "d656e7441727261797400135b4c6a6176612f6c616e672f4f626a6563743b7870" 68010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "737200116a6176612e7574696c2e54726565536574dd98509395ed875b0300007" 68110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "8707077040000000078767200106a6176612e6c616e672e537472696e67a0f0a4" 68210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "387a3bb34202000078707071007e0009"; 68310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedSortedSet(new TreeSet<String>(), String.class), s, true); 68410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 68510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson public void test_checkedSortedMapSerializationCompatibility() throws Exception { 68610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson String s = "aced0005737200266a6176612e7574696c2e436f6c6c656374696f6e73244368" 68710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "65636b6564536f727465644d617016332c973afe036e0200014c0002736d74001" 68810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "54c6a6176612f7574696c2f536f727465644d61703b787200206a6176612e7574" 68910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "696c2e436f6c6c656374696f6e7324436865636b65644d61704fb2bcdf0d18636" 69010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "80200054c00076b6579547970657400114c6a6176612f6c616e672f436c617373" 69110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "3b4c00016d74000f4c6a6176612f7574696c2f4d61703b4c000976616c7565547" 69210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "9706571007e00035b00127a65726f4c656e6774684b657941727261797400135b" 69310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "4c6a6176612f6c616e672f4f626a6563743b5b00147a65726f4c656e677468566" 69410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "16c7565417272617971007e00057870767200106a6176612e6c616e672e537472" 69510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "696e67a0f0a4387a3bb3420200007870737200116a6176612e7574696c2e54726" 69610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "5654d61700cc1f63e2d256ae60300014c000a636f6d70617261746f727400164c" 69710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "6a6176612f7574696c2f436f6d70617261746f723b78707077040000000078710" 69810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson + "07e0008707071007e000b"; 69910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson assertSerialized(Collections.checkedSortedMap( 70010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson new TreeMap<String, String>(), String.class, String.class), s); 70110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 70210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson 70310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson private void assertSerialized(Collection<?> collection, String s, final boolean definesEquals) { 704b416ef5dc224630af2b9393a15ae120b27e4864aJesse Wilson new SerializationTester<Collection<?>>(collection, s) { 70510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson @SuppressWarnings("unchecked") 70610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson @Override protected void verify(Collection<?> deserialized) throws Exception { 70710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson try { 70810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson ((Collection) deserialized).add(Boolean.TRUE); 70910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson fail(); 71010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } catch (ClassCastException expected) { 71110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 71210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 71310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson @Override protected boolean equals(Collection<?> a, Collection<?> b) { 71410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson boolean equal = definesEquals 71510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson ? a.equals(b) 71610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson : Arrays.equals(a.toArray(), b.toArray()); 71710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson return equal 71810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson && (a instanceof SortedSet == b instanceof SortedSet) 71910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson && (a instanceof RandomAccess == b instanceof RandomAccess); 72010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 72110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson }.test(); 72210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 72310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson 72410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson private void assertSerialized(Map<?, ?> map, String s) { 725b416ef5dc224630af2b9393a15ae120b27e4864aJesse Wilson new SerializationTester<Map<?, ?>>(map, s) { 72610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson @SuppressWarnings("unchecked") 72710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson @Override protected void verify(Map<?, ?> deserialized) throws Exception { 72810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson try { 72910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson ((Map) deserialized).put(Boolean.TRUE, "a"); 73010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson fail(); 73110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } catch (ClassCastException expected) { 73210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 73310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson try { 73410078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson ((Map) deserialized).put("a", Boolean.TRUE); 73510078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson fail(); 73610078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } catch (ClassCastException expected) { 73710078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 73810078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 73910078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson @Override protected boolean equals(Map<?, ?> a, Map<?, ?> b) { 74010078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson return super.equals(a, b) 74110078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson && (a instanceof SortedMap == b instanceof SortedMap); 74210078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson } 74310078dabb17441ce2721a8e5e10f275c5d0a426aJesse Wilson }.test(); 744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_checkedCollectionLjava_util_CollectionLjava_lang_Class() { 747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList<Integer>(); 748f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection c = Collections.checkedCollection(al, Integer.class); 750f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.add(new Integer(1)); 752f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.add(new Double(3.14)); 755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_checkedListLjava_util_ListLjava_lang_Class() { 762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ArrayList al = new ArrayList<Integer>(); 763f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List l = Collections.checkedList(al, Integer.class); 765f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(new Integer(1)); 767f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project l.add(new Double(3.14)); 770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_checkedMapLjava_util_MapLjava_lang_ClassLjava_lang_Class() { 777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap hm = new HashMap<Integer, String>(); 778f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map m = Collections.checkedMap(hm, Integer.class, String.class); 780f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project m.put(1, "one"); 782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project m.put(2, "two"); 783f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project m.put("wron key", null); 786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project m.put(3, new Double(3.14)); 793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_checkedSetLjava_util_SetLjava_lang_Class() { 800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashSet hs = new HashSet<Integer>(); 801f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set s = Collections.checkedSet(hs, Integer.class); 803f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(new Integer(1)); 805f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.add(new Double(3.14)); 808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_checkedSortedMapLjava_util_SortedMapLjava_lang_ClassLjava_lang_Class() { 815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TreeMap tm = new TreeMap<Integer, String>(); 816f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SortedMap sm = Collections.checkedSortedMap(tm, Integer.class, String.class); 818f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sm.put(1, "one"); 820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sm.put(2, "two"); 821f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sm.put("wron key", null); 824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sm.put(3, new Double(3.14)); 831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_checkedSortedSetLjava_util_SortedSetLjava_lang_Class() { 838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TreeSet ts = new TreeSet<Integer>(); 839f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SortedSet ss = Collections.checkedSortedSet(ts, Integer.class); 841f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ss.add(new Integer(1)); 843f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ss.add(new Double(3.14)); 846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_emptyList() { 853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<String> ls = Collections.emptyList(); 854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<Integer> li = Collections.emptyList(); 855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(ls.equals(li)); 857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(li.equals(Collections.EMPTY_LIST)); 858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 860adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_emptyMap() { 861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<Integer, String> mis = Collections.emptyMap(); 862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<String, Integer> msi = Collections.emptyMap(); 863f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(mis.equals(msi)); 865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(msi.equals(Collections.EMPTY_MAP)); 866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_emptySet() { 869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set<String> ss = Collections.emptySet(); 870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Set<Integer> si = Collections.emptySet(); 871f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(ss.equals(si)); 873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(si.equals(Collections.EMPTY_SET)); 874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 876