1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.AbstractSequentialList; 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.LinkedList; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ListIterator; 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 AbstractSequentialListTest extends TestCase { 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 40f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class ASLT<E> extends AbstractSequentialList<E> { 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LinkedList<E> l = new LinkedList<E>(); 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator<E> listIterator(int index) { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return l.listIterator(index); 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return l.size(); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 57229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * {@link java.util.AbstractSequentialList#addAll(int, java.util.Collection)} 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAll_ILCollection() { 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList<String> al = new ASLT<String>(); 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes String[] someList = { "Aardvark" , 62f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes "Bear" , 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes "Chimpanzee", 64f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes "Duck" }; 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection<String> c = Arrays.asList(someList); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project al.addAll(c); 67f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Should return true", al.addAll(2, c)); 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 69f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_unsupportedListIterator implements ListIterator { 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void add(Object o) { 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new UnsupportedOperationException(); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasNext() { 76f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson return true; 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasPrevious() { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object next() { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int nextIndex() { 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object previous() { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int previousIndex() { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void remove() { 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void set(Object o) { 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new UnsupportedOperationException(); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 106f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class Mock_ListIterator<E> implements ListIterator<E> { 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final String wrongElement = "String"; 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void add(E o) { 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (o.equals(wrongElement)) throw new IllegalArgumentException(); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (o == null) throw new NullPointerException(); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasNext() { 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasPrevious() { 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E next() { 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int nextIndex() { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E previous() { 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int previousIndex() { 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void remove() { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void set(E o) { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addAllILjava_util_Collection() { 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList asl = new AbstractSequentialList() { 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_unsupportedListIterator(); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection strV = new Vector<String>(); 159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project strV.add("String"); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project strV.add("1"); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project strV.add("3.14"); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(0, strV); 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected."); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException ee) { 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(0, null); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //ClassCastException can not be checked for this method. 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new AbstractSequentialList() { 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_ListIterator(); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 191f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(0, strV); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 198f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project strV.remove("String"); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project strV.add(null); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(0, strV); 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 208f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project strV.remove(null); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(0, strV); 211f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new LinkedList(); 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(-10, strV); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.addAll(1, strV); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 228f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_addILjava_lang_Object() { 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList asl = new AbstractSequentialList() { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_unsupportedListIterator(); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 242f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(0, 1); 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new AbstractSequentialList() { 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_ListIterator(); 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 262f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(0, "String"); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException ee) { 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 269f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(0, null); 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //ClassCastException can not be checked for this method. 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(0, 1); 280f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new LinkedList(); 282f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(-1, 1); 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException ee) { 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(0, 1); 291f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.add(2, 1); 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException ee) { 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 299f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getI() { 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final String buff[] = {"0", "1", "2", "3", "4", "5"}; 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList asl = new AbstractSequentialList() { 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int currPos = 0; 304f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buff.length; 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 309f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project currPos = index; 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new ListIterator() { 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void add(Object o) { 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasNext() { 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasPrevious() { 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object next() { 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buff[currPos]; 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int nextIndex() { 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object previous() { 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int previousIndex() { 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void remove() { 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void set(Object o) { 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 349f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < buff.length; i++) { 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(buff[i], asl.get(i)); 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 353f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.get(asl.size() + 1); 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 360f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.get(-1); 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 368f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_iterrator() { 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList asl = new AbstractSequentialList() { 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_unsupportedListIterator(); 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 382f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(asl.iterator().getClass().toString().contains("Mock_unsupportedListIterator")); 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new AbstractSequentialList() { 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_ListIterator(); 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 397f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(asl.iterator().getClass().toString().contains("Mock_ListIterator")); 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new AbstractSequentialList() { 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(asl.iterator()); 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 414f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeI() { 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList asl = new AbstractSequentialList() { 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String buff[] = {"0", "1", "2", "3", "4", "5"}; 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int currPos = 0; 419f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buff.length; 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 424f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project currPos = index; 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new ListIterator() { 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void add(Object o) { 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasNext() { 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasPrevious() { 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object next() { 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buff[currPos]; 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int nextIndex() { 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object previous() { 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int previousIndex() { 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void remove() { 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buff[currPos] = "removed element"; 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void set(Object o) { 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 465f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.remove(asl.size() + 1); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 472f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.remove(-1); 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 479f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < asl.size(); i++) { 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(asl.get(i).toString().contains("removed element")); 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.remove(i); 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(asl.get(i).toString().contains("removed element")); 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 486f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setILjava_lang_Object() { 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractSequentialList asl = new AbstractSequentialList() { 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String buff[] = {"0", "1", "2", "3", "4", "5"}; 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project final String illegalStr = "Illegal element"; 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int currPos = 0; 492f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buff.length; 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 497f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project currPos = index; 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new ListIterator() { 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void add(Object o) { 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 504f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasNext() { 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 508f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasPrevious() { 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 512f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object next() { 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return buff[currPos]; 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 516f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int nextIndex() { 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 520f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object previous() { 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 524f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int previousIndex() { 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 528f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void remove() { 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buff[currPos] = "removed element"; 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 532f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void set(Object o) { 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (o == null) throw new NullPointerException(); 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (o.equals(illegalStr)) throw new IllegalArgumentException(); 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project buff[currPos] = (String) o; 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 541f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(asl.size() + 1, "new element"); 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 548f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(-1, "new element"); 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected"); 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 555f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < asl.size(); i++) { 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(asl.get(i).toString().contains("new element")); 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(i, "new element"); 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(asl.get(i).toString().contains("new element")); 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 561f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(1, new Double(1)); 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ClassCastException expected"); 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ClassCastException e) { 566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 568f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(1, "Illegal element"); 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException ee) { 573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 575f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(1, null); 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ee) { 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl = new AbstractSequentialList() { 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size() { 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return 0; 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator listIterator(int index) { 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new Mock_unsupportedListIterator(); 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }; 595f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project asl.set(0, "New element"); 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 604