1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License.
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
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
17789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonpackage libcore.java.util;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.AbstractSequentialList;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.AbstractSet;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonpublic class OldAbstractSetTest extends TestCase {
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class Mock_AbstractSet extends AbstractSet{
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Iterator iterator() {
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return new Iterator() {
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                public boolean hasNext() {
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    return false;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                public Object next() {
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    return null;
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                public void remove() {
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            };
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public int size() {
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return 0;
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
52f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testHashCode() {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractSet as = new Mock_AbstractSet();
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull(as.hashCode());
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testEquals() {
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractSet as1 = new Mock_AbstractSet();
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractSet as2 = new Mock_AbstractSet();
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(as1.equals(as2));
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testRemoveAll() {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractSet as = new AbstractSet(){
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            @Override
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            public Iterator iterator() {
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                return new Iterator() {
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    public boolean hasNext() {
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        return true;
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
73f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    public Object next() {
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        return null;
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
77f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    public void remove() {
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        throw new UnsupportedOperationException();
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
81f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                };
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
84f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            @Override
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            public int size() {
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                return 10;
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        };
90f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            as.removeAll(null);
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection c = new Vector();
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(null);
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            as.removeAll(c);
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("UnsupportedOperationException expected");
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        as = new Mock_AbstractSet();
107f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        as.removeAll(c);
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
111