EnumMapTest.java revision f33eae7e84eb6d3b0f4e86b59605bb3de73009f3
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* Licensed to the Apache Software Foundation (ASF) under one or more
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership.
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License.  You may obtain a copy of the License at
7f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
9f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License.
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.java.util;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel;
22f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughesimport dalvik.annotation.TestTargetClass;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.AndroidOnly;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.EnumMap;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.NoSuchElementException;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.testframework.serialization.SerializationTest;
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes@TestTargetClass(EnumMap.class)
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class EnumMapTest extends TestCase {
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    enum Size {
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Small, Middle, Big {};
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    enum Color {
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Red, Green, Blue {};
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    enum Empty {
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //Empty
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private static class MockEntry<K, V> implements Map.Entry<K, V> {
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private K key;
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private V value;
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public MockEntry(K key, V value) {
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            this.key   = key;
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            this.value = value;
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public int hashCode() {
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return (key == null ? 0 : key.hashCode())
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    ^ (value == null ? 0 : value.hashCode());
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public K getKey() {
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return key;
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public V getValue() {
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return value;
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public V setValue(V object) {
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            V oldValue = value;
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            value = object;
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return oldValue;
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#EnumMap(Class)
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "EnumMap",
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.Class.class}
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_lang_Class() {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new EnumMap((Class) null);
96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
100f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
101f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new EnumMap(Size.Big.getClass());
104f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new EnumMap(Integer.class);
111f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
117f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumColorMap.put(
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Color.Green, 2));
119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 2,
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumColorMap.get(Color.Green));
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumEmptyMap = new EnumMap<Empty, Double>(Empty.class);
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumEmptyMap.put(Color.Red, 2);
125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
131f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumSizeMap.put(
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Size.Big, 2));
133f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 2,
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumSizeMap.get(Size.Big));
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumSizeMap.put(Color.Red, 2);
137f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
141f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.Middle.getClass());
143f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumSizeMap.put(
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Size.Small, 1));
145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 1,
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumSizeMap.get(Size.Small));
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumSizeMap.put(Color.Red, 2);
149f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#EnumMap(EnumMap)
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "EnumMap",
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.EnumMap.class}
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_util_EnumMap() {
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumMap;
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = null;
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap = new EnumMap(enumColorMap);
170f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap = new EnumMap<Color, Double>(Color.class);
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Double double1 = new Double(1);
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, 2);
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, double1);
179f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap = new EnumMap(enumColorMap);
181f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Constructor fails", 2, enumMap.get(Color.Green));
182f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Constructor fails", double1, enumMap.get(Color.Blue));
183f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Constructor fails", enumMap.get(Color.Red));
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.put(Color.Red, 1);
185f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value", 1, enumMap.get(Color.Red));
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap.put(Size.Middle, 2);
189f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#EnumMap(Map)
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "EnumMap",
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.Map.class}
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_util_Map() {
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumMap;
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Map enumColorMap = null;
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap = new EnumMap(enumColorMap);
210f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap = new EnumMap<Color, Double>(Color.class);
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap      = new EnumMap(enumColorMap);
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, 3);
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap      = new EnumMap(enumColorMap);
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        HashMap hashColorMap = null;
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap = new EnumMap(hashColorMap);
222fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes            fail("Expected NullPointerException");
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap = new HashMap();
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap = new EnumMap(hashColorMap);
230f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected IllegalArgumentException");
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(Color.Green, 2);
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap = new EnumMap(hashColorMap);
237f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Constructor fails", 2, enumMap.get(Color.Green));
238f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Constructor fails", enumMap.get(Color.Red));
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.put(Color.Red, 1);
240f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value", 1, enumMap.get(Color.Red));
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(Size.Big, 3);
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap = new EnumMap(hashColorMap);
244f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap = new HashMap();
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(new Integer(1), 1);
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumMap = new EnumMap(hashColorMap);
253f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#clear()
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "clear",
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clear() {
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, 1);
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.clear();
273f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Failed to clear all elements", enumSizeMap.get(Size.Small));
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#containsKey(Object)
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "containsKey",
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.Object.class}
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings( { "unchecked", "boxing" })
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_containsKeyLjava_lang_Object() {
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
288f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained key", enumSizeMap
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsKey(Size.Small));
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, 1);
291f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained key", enumSizeMap
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsKey(Size.Small));
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
295f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained key", enumSizeMap
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsKey(Size.Big));
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
298f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained key", enumSizeMap
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsKey(Color.Red));
300f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained key", enumSizeMap
301f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes                .containsKey(new Integer("3")));
302f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained key", enumSizeMap
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsKey(null));
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#clone()
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "clone",
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings( { "unchecked", "boxing" })
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clone() {
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
318f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        Integer integer = new Integer("3");
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, integer);
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMapClone = enumSizeMap.clone();
321f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNotSame("Should not be same", enumSizeMap, enumSizeMapClone);
322f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Clone answered unequal EnumMap", enumSizeMap,
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumSizeMapClone);
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
325f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Should be same", enumSizeMap.get(Size.Small),
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumSizeMapClone.get(Size.Small));
327f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Clone is not shallow clone", integer, enumSizeMapClone
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Size.Small));
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Small);
330f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Clone is not shallow clone", integer, enumSizeMapClone
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Size.Small));
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#containsValue(Object)
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "containsValue",
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.Object.class}
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings( { "unchecked", "boxing" })
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_containsValueLjava_lang_Object() {
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Double double1 = new Double(3);
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Double double2 = new Double(3);
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
349f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained value", enumSizeMap
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(double1));
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 2);
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, double1);
353f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained value", enumSizeMap
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(double1));
355f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained value", enumSizeMap
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(double2));
357f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained value", enumSizeMap
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(2));
359f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained value", enumSizeMap
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(1));
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
362f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained value", enumSizeMap
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(null));
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
365f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained value", enumSizeMap
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .containsValue(null));
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#entrySet()
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "entrySet",
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @AndroidOnly("Map.Entry is indirectly modified on RI when Iterator.next() is invoked")
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_entrySet() {
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MockEntry mockEntry = new MockEntry(Size.Middle, 1);
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Set set = enumSizeMap.entrySet();
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Set set1 = enumSizeMap.entrySet();
388f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Should be same", set1, set);
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            set.add(mockEntry);
391f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw UnsupportedOperationException");
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
396fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", set
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Middle, null);
399f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
401f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Small));
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(new Integer(1), 1);
404f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
406f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(new Integer(1)));
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Big, null);
410fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", set
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
412f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false when the object can be removed", set
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(mockEntry));
414f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
416f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed", set
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(mockEntry));
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(new Integer(1), 1);
419f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed", set
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(mockEntry));
421f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed", set
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(new Integer(1)));
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // The set is backed by the map so changes to one are reflected by the
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // other.
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, 3);
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Big, 3);
428fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", set
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Big);
431f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
434f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set.clear();
436f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, set.size());
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection c = new ArrayList();
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(new MockEntry(Size.Middle, 1));
444f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Return wrong value", set.containsAll(c));
445f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Remove does not success", set.removeAll(c));
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(new MockEntry(Size.Big, 3));
449f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Remove does not success", set.removeAll(c));
450f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", set.removeAll(c));
451f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c = new ArrayList();
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(new MockEntry(Size.Middle, 1));
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(new MockEntry(Size.Big, 3));
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
461f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Retain does not success", set.retainAll(c));
462f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
463f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", set.retainAll(c));
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object[] array = set.toArray();
471f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong length", 2, array.length);
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Map.Entry entry = (Map.Entry) array[0];
473f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Middle, entry.getKey());
474f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value", 1, entry.getValue());
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object[] array1 = new Object[10];
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array1 = set.toArray();
478f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong length", 2, array1.length);
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) array[0];
480f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Middle, entry.getKey());
481f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value", 1, entry.getValue());
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array1 = new Object[10];
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array1 = set.toArray(array1);
485f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong length", 10, array1.length);
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) array[1];
487f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Big, entry.getKey());
488f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Should be null", array1[2]);
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
491f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        Integer integer = new Integer("1");
492f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed", set
493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(integer));
494f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false when the object can be removed", set
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(entry));
496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator iter = set.iterator();
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) iter.next();
503f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(entry));
504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Middle, 2);
505f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(new Integer(2), 2);
508f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) iter.next();
511f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(entry));
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Big);
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Big, null);
516f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
517f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set.contains(mockEntry));
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, 2);
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Big, 2);
520f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(mockEntry));
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
526f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            entry.setValue(2);
532f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            set.contains(entry);
538f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter = set.iterator();
548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) iter.next();
549f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Middle, entry.getKey());
550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
551f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(entry));
552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 3);
553f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(entry));
554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry.setValue(2);
555f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(entry));
556f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(new Integer(1)));
558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.next();
560f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Middle, entry.getKey());
561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set.clear();
562f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, set.size());
563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.entrySet();
568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter = set.iterator();
569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Middle, 1);
570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
571f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Wrong result", entry.equals(mockEntry));
572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
574f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) iter.next();
579f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Middle, entry.getKey());
580f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", entry.equals(mockEntry));
581f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Should be equal", mockEntry.hashCode(), entry.hashCode());
582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        mockEntry = new MockEntry(Size.Big, 1);
583f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Wrong result", entry.equals(mockEntry));
584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entry = (Map.Entry) iter.next();
586f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Wrong result", entry.equals(mockEntry));
587f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Big, entry.getKey());
588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
589f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Wrong result", entry.equals(mockEntry));
590f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
593f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.next();
599f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw NoSuchElementException");
600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NoSuchElementException e) {
601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#equals(Object)
607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "equals",
612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.Object.class}
613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings( { "unchecked", "boxing" })
615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_equalsLjava_lang_Object() {
616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumMap = new EnumMap(Size.class);
617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.put(Size.Small, 1);
618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
620f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal EnumMap", enumSizeMap
621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, 1);
623f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for equal EnumMap", enumSizeMap
624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
626f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal EnumMap", enumSizeMap
627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.put(Size.Middle, null);
630f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal EnumMap", enumSizeMap
631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.remove(Size.Middle);
633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.put(Size.Big, 3);
634f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal EnumMap", enumSizeMap
635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumMap.put(Size.Big, null);
637f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for equal EnumMap", enumSizeMap
638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        HashMap hashMap = new HashMap();
641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashMap.put(Size.Small, 1);
642f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal EnumMap", hashMap
643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(enumMap));
644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashMap.put(Size.Big, null);
645f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for equal EnumMap", enumMap.equals(hashMap));
646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
647f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", enumSizeMap
648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(new Integer(1)));
649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#keySet()
653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "keySet",
658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings( { "unchecked", "boxing" })
661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_keySet() {
662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 2);
664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Set set = enumSizeMap.keySet();
666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Set set1 = enumSizeMap.keySet();
668f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Should be same", set1, set);
669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            set.add(Size.Big);
671f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw UnsupportedOperationException");
672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
676fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", set
677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Middle));
678fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", set
679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Big));
680f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Small));
682f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(new Integer(1)));
684f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false when the object can be removed", set
685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Size.Big));
686f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Big));
688f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed", set
689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Size.Big));
690f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed", set
691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(new Integer(1)));
692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // The set is backed by the map so changes to one are reflected by the
694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // other.
695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, 3);
696fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", set
697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Big));
698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Big);
699f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(Size.Big));
701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
702f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set.clear();
704f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, set.size());
705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.keySet();
710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection c = new ArrayList();
711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(Size.Big);
712f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", set.containsAll(c));
713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(Size.Small);
714f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", set.containsAll(c));
715f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", set.removeAll(c));
716f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
717f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", set.removeAll(c));
718f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            set.addAll(c);
721f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw UnsupportedOperationException");
722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
727f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 2, set.size());
728f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", set.retainAll(c));
729f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
730f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", set.retainAll(c));
731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, set.size());
732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object[] array = set.toArray();
733f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong length", 1, array.length);
734f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Big, array[0]);
735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.keySet();
740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c = new ArrayList();
741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(Color.Blue);
742f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", set.remove(c));
743f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 2, set.size());
744f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", set.retainAll(c));
745f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, set.size());
746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.keySet();
751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator iter = set.iterator();
753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Enum enumKey = (Enum) iter.next();
754f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(enumKey));
755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumKey = (Enum) iter.next();
756f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(enumKey));
757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Big);
759f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(enumKey));
761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
764f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
768f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(enumKey));
770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter = set.iterator();
772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumKey = (Enum) iter.next();
773f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(enumKey));
774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 3);
775f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", set.contains(enumKey));
776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap = new EnumMap(Size.class);
778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 1);
779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, null);
780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        set = enumSizeMap.keySet();
781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter = set.iterator();
782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
784f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumKey = (Enum) iter.next();
789f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Middle, enumKey);
790f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Wrong key", Size.Middle, enumKey);
791f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal object", iter.equals(enumKey));
792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
793f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", set
794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(enumKey));
795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
797f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
802f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, set.size());
803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumKey = (Enum) iter.next();
804f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", Size.Big, enumKey);
805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.next();
808f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw NoSuchElementException");
809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NoSuchElementException 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    /**
815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#get(Object)
816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "get",
821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.Object.class}
822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getLjava_lang_Object() {
825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
826f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumSizeMap
827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Size.Big));
828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, 1);
829f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 1,
830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumSizeMap.get(Size.Big));
831f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
832f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumSizeMap
833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Size.Small));
834f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non existent key", enumSizeMap
835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Red));
836f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non existent key", enumSizeMap
837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(new Integer(1)));
838f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non existent key", enumSizeMap
839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(null));
840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
842f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumColorMap
843adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Green));
844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, 2);
845f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 2,
846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumColorMap.get(Color.Green));
847f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumColorMap
848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Blue));
849f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, new Double(4));
851f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key",
852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                new Double(4), enumColorMap.get(Color.Green));
853fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        enumColorMap.put(Color.Green, new Integer("3"));
854f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", new Integer(
855fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes                "3"), enumColorMap.get(Color.Green));
856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, null);
857f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Can not handle null value", enumColorMap.get(Color.Green));
858fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        Float f = new Float("3.4");
859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, f);
860f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Get returned incorrect value for given key", f,
861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumColorMap.get(Color.Green));
862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
863f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#put(Object,Object)
866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "put",
871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {Enum.class, java.lang.Object.class}
872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_putLjava_lang_ObjectLjava_lang_Object() {
874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
876adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumSizeMap.put(Color.Red, 2);
877f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
878adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
881f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumSizeMap.put(
882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Size.Small, 1));
883adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumColorMap.put(Size.Big, 2);
887f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
892adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumColorMap.put(null, 2);
893f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
894adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
896adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
897f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumColorMap.put(
898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Color.Green, 2));
899f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Return wrong value", 2, enumColorMap.put(Color.Green,
900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                new Double(4)));
901f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Return wrong value", new Double(4), enumColorMap.put(
902fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes                Color.Green, new Integer("3")));
903f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Return wrong value", new Integer("3"), enumColorMap.put(
904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Color.Green, null));
905fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        Float f = new Float("3.4");
906f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumColorMap.put(
907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Color.Green, f));
908f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Return non-null for non mapped key", enumColorMap.put(
909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Color.Blue, 2));
910f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Return wrong value", 2, enumColorMap.put(Color.Blue,
911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                new Double(4)));
912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
913adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
914adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#putAll(Map)
916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putAll",
921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.Map.class}
922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
923adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_putAllLjava_util_Map() {
925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, 2);
927adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.putAll(enumSizeMap);
930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, 1);
932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumColorMap.putAll(enumSizeMap);
934f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
935adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap1 = new EnumMap<Color, Double>(Color.class);
940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap1.put(Color.Blue, 3);
941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.putAll(enumColorMap1);
942f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 3,
943adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumColorMap.get(Color.Blue));
944f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong Size", 2, enumColorMap.size());
945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap = new EnumMap<Color, Double>(Color.class);
947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        HashMap hashColorMap = null;
949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumColorMap.putAll(hashColorMap);
951f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected NullPointerException");
952adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
954adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap = new HashMap();
957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.putAll(hashColorMap);
958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(Color.Green, 2);
960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.putAll(hashColorMap);
961f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Get returned incorrect value for given key", 2,
962adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumColorMap.get(Color.Green));
963f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumColorMap
964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Red));
965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(Color.Red, new Integer(1));
966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.putAll(hashColorMap);
967fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertEquals("Get returned incorrect value for given key", new Integer(
968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                2), enumColorMap.get(Color.Green));
969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(Size.Big, 3);
970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumColorMap.putAll(hashColorMap);
972f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
977adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap = new HashMap();
978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        hashColorMap.put(new Integer(1), 1);
979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
980adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumColorMap.putAll(hashColorMap);
981f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#remove(Object)
989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "remove",
994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.Object.class}
995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_removeLjava_lang_Object() {
998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
999f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Remove of non-mapped key returned non-null", enumSizeMap
1000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Size.Big));
1001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Big, 3);
1002adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, 2);
1003adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1004f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumSizeMap
1005adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Size.Small));
1006f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Remove returned incorrect value", 3, enumSizeMap
1007adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Size.Big));
1008f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumSizeMap
1009adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Size.Big));
1010f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Remove of non-mapped key returned non-null", enumSizeMap
1011adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Size.Big));
1012f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Remove of non-existent key returned non-null", enumSizeMap
1013adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Color.Red));
1014f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Remove of non-existent key returned non-null", enumSizeMap
1015adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(new Double(4)));
1016f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Remove of non-existent key returned non-null", enumSizeMap
1017adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(null));
1018adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1019adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
1020f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumColorMap
1021adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Green));
1022adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, new Double(4));
1023f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Remove returned incorrect value", new Double(4),
1024adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                enumColorMap.remove(Color.Green));
1025f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumColorMap
1026adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Green));
1027adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, null);
1028f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Can not handle null value", enumColorMap
1029adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(Color.Green));
1030f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertNull("Get returned non-null for non mapped key", enumColorMap
1031adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .get(Color.Green));
1032adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1033adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1034adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1035adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#size()
1036adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1037adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1038adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1039adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1040adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "size",
1041adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1042adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1043adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
1044adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_size() {
1045adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumSizeMap = new EnumMap(Size.class);
1046f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, enumSizeMap.size());
1047adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, 1);
1048f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, enumSizeMap.size());
1049adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Small, 0);
1050f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, enumSizeMap.size());
1051adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1052adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            enumSizeMap.put(Color.Red, 2);
1053f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Expected ClassCastException");
1054adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ClassCastException e) {
1055adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1056adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1057f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, enumSizeMap.size());
1058f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
1059adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.put(Size.Middle, null);
1060f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 2, enumSizeMap.size());
1061adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Big);
1062f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 2, enumSizeMap.size());
1063adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Size.Middle);
1064f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, enumSizeMap.size());
1065adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumSizeMap.remove(Color.Green);
1066f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, enumSizeMap.size());
1067adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1068adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
1069adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, 2);
1070f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, enumColorMap.size());
1071adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.remove(Color.Green);
1072f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, enumColorMap.size());
1073adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumEmptyMap = new EnumMap<Empty, Double>(Empty.class);
1075f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, enumEmptyMap.size());
1076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1077adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests java.util.EnumMap#values()
1080adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "values",
1085adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1087adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings( { "unchecked", "boxing" })
1088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_values() {
1089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
1090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Red, 1);
1091adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, null);
1092adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection collection = enumColorMap.values();
1093adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection collection1 = enumColorMap.values();
1095f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Should be same", collection1, collection);
1096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            collection.add(new Integer(1));
1098f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw UnsupportedOperationException");
1099adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
1100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1103fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", collection
1104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(1));
1105fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", collection
1106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(null));
1107f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", collection
1108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(2));
1109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1110f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false when the object can be removed", collection
1111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .remove(null));
1112f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", collection
1113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(null));
1114f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed",
1115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                collection.remove(null));
1116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // The set is backed by the map so changes to one are reflected by the
1118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // other.
1119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, 3);
1120fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertTrue("Returned false for contained object", collection
1121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(3));
1122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.remove(Color.Blue);
1123fd6bb3510c2f94d636f3572dcf5f7f4dcd1a2726Elliott Hughes        assertFalse("Returned true for uncontained object", collection
1124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(3));
1125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1126f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, collection.size());
1127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        collection.clear();
1128f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, collection.size());
1129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap = new EnumMap<Color, Double>(Color.class);
1131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Red, 1);
1132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, null);
1133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        collection = enumColorMap.values();
1134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection c = new ArrayList();
1135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(new Integer(1));
1136f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", collection.containsAll(c));
1137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(new Double(3.4));
1138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", collection.containsAll(c));
1139f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", collection.removeAll(c));
1140f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, collection.size());
1141f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", collection.removeAll(c));
1142f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, collection.size());
1143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            collection.addAll(c);
1145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw UnsupportedOperationException");
1146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
1147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Red, 1);
1151f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 2, collection.size());
1152f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Should return true", collection.retainAll(c));
1153f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, collection.size());
1154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Should return false", collection.retainAll(c));
1155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, collection.size());
1156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object[] array = collection.toArray();
1157f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong length", 1, array.length);
1158f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong key", 1, array[0]);
1159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap = new EnumMap<Color, Double>(Color.class);
1161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Red, 1);
1162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, null);
1163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        collection = enumColorMap.values();
1164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1165f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 2, collection.size());
1166f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true when the object can not be removed",
1167f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes                collection.remove(new Integer("10")));
1168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator iter = enumColorMap.values().iterator();
1170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object value = iter.next();
1171f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", collection
1172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(value));
1173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        value = iter.next();
1174f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", collection
1175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(value));
1176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, 1);
1178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.remove(Color.Blue);
1179f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", collection
1180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(value));
1181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
1182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
1184f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
1185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1188f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for uncontained object", collection
1189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(value));
1190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter = enumColorMap.values().iterator();
1192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        value = iter.next();
1193f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", collection
1194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(value));
1195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, 3);
1196f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", collection
1197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(value));
1198f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Returned false for contained object", collection
1199f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes                .remove(new Integer("1")));
1200f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, collection.size());
1201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        collection.clear();
1202f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 0, collection.size());
1203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap = new EnumMap<Color, Double>(Color.class);
1205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Integer integer1 = new Integer(1);
1206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Green, integer1);
1207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, null);
1208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        collection = enumColorMap.values();
1209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter = enumColorMap.values().iterator();
1210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
1212f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
1213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        value = iter.next();
1217f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong value", integer1, value);
1218f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertSame("Wrong value", integer1, value);
1219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal object", iter.equals(value));
1220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
1221f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal object", iter.equals(value));
1222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.remove();
1224f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw IllegalStateException");
1225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1228f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Wrong size", 1, collection.size());
1229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        value = iter.next();
1230f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertFalse("Returned true for unequal object", iter.equals(value));
1231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        iter.remove();
1232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.next();
1234f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("Should throw NoSuchElementException");
1235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NoSuchElementException e) {
1236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected
1237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests serialization/deserialization.
1242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "Verifies serialization/deserialization compatibility.",
1246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "!SerializationSelf",
1247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1248f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes    )
1249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
1250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSerializationSelf() throws Exception {
1251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
1252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, 3);
1253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SerializationTest.verifySelf(enumColorMap);
1254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @tests serialization/deserialization compatibility with RI.
1258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "Verifies serialization/deserialization compatibility.",
1262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "!SerializationGolden",
1263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings({ "unchecked", "boxing" })
1266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSerializationCompatibility() throws Exception {
1267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EnumMap enumColorMap = new EnumMap<Color, Double>(Color.class);
1268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Red, 1);
1269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        enumColorMap.put(Color.Blue, 3);
1270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SerializationTest.verifyGolden(this, enumColorMap);
1271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture.
1275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @Override
1277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
1278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
1279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
1282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture.
1283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
1284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @Override
1285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception{
1286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
1287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
1289