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