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 */
16ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.AbstractQueue;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.NoSuchElementException;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class AbstractQueueTest extends TestCase {
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private MockAbstractQueue<Object> queue;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private class MockAbstractQueue<E> extends AbstractQueue<E> {
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        static final int CAPACITY = 10;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private int size = 0;
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private Object[] elements = new Object[CAPACITY];
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Iterator<E> iterator() {
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return new Iterator<E>() {
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                private int currentIndex = -1;
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                public boolean hasNext() {
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    return size > 0 && currentIndex < size;
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                public E next() {
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    if (!hasNext()) {
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        throw new NoSuchElementException();
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    currentIndex++;
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    return (E) elements[currentIndex];
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                public void remove() {
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    if (-1 == currentIndex) {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        throw new IllegalStateException();
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    for (int i = currentIndex; i < size - 1; i++) {
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        elements[i] = elements[i + 1];
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    size--;
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            };
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public int size() {
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return size;
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public boolean offer(E o) {
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (null == o) {
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                throw new NullPointerException();
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (size >= CAPACITY) {
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                return false;
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            elements[size++] = o;
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return true;
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public E poll() {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (isEmpty()) {
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                return null;
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            E e = (E) elements[0];
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            for (int i = 0; i < size - 1; i++) {
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                elements[i] = elements[i + 1];
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            size--;
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return e;
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public E peek() {
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (isEmpty()) {
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                return null;
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return (E) elements[0];
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
109229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue.add(E)
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addLE_null() {
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.add(null);
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw NullPointerException");
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
121229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue.add(E)
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addLE_Full() {
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object o = new Object();
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(int i = 0; i < MockAbstractQueue.CAPACITY; i++ ) {
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.add(o);
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.add(o);
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw IllegalStateException");
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
139229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#add(E)
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addLE() {
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Object o = new Object();
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        final int LAST_INDEX = 4;
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < LAST_INDEX; i++) {
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.add(o);
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Integer I = new Integer(123456);
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.add(I);
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(queue.contains(I));
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Iterator iter = queue.iterator();
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < LAST_INDEX; i++) {
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            iter.next();
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(I == iter.next());
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
158229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#addAll(E)
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addAllLE_null() {
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.addAll(null);
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw NullPointerException");
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
170229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#addAll(E)
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addAllLE_with_null() {
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List list = Arrays.asList("MYTESTSTRING", null, new Float(123.456));
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.addAll(list);
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw NullPointerException");
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
183229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#addAll(E)
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addAllLE_full() {
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.addAll(list);
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw IllegalStateException");
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
196229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#addAll(E)
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addAllLE_empty() {
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression test for HARMONY-1178
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List list = new ArrayList<Object>(0);
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("Non modification to queue should return false", queue.addAll(list));
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
205229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#addAll(E)
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addAllLE_this() {
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.addAll(queue);
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw IllegalArgumentException ");
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
215f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_addAllLjava_lang_Object() {
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection c = new Vector();
218f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(0);
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(1);
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(2);
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(3);
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(4);
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c.add(5);
225f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(queue.addAll(c));
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(6, queue.size());
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
231229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#clear()
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clear_empty() {
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.clear();
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(queue.isEmpty());
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(queue.peek());
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
240229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#clear()
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clear() {
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List list = Arrays.asList(123.456, "MYTESTSTRING", new Object(), 'c');
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.addAll(list);
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.clear();
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(queue.isEmpty());
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(queue.peek());
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
251229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#AbstractQueue()
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_Constructor() {
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MockAbstractQueue queue = new MockAbstractQueue();
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull(queue);
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
259229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#remove()
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_remove_null() {
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.remove();
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw NoSuchElementException");
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NoSuchElementException e) {
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
272229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#remove()
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_remove() {
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        char c = 'a';
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.add(c);
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        c = 'b';
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.add(c);
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals('a', queue.remove());
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals('b', queue.remove());
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.remove();
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw NoSuchElementException");
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NoSuchElementException e) {
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
290229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#element()
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_element_empty() {
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            queue.element();
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("should throw NoSuchElementException");
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NoSuchElementException e) {
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
302229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.AbstractQueue#element()
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_element() {
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String s = "MYTESTSTRING_ONE";
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.add(s);
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        s = "MYTESTSTRING_TWO";
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue.add(s);
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("MYTESTSTRING_ONE", queue.element());
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // still the first element
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("MYTESTSTRING_ONE", queue.element());
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue = new MockAbstractQueue<Object>();
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        queue = null;
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
324