View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.collections.primitives.adapters;
18  
19  import java.util.Iterator;
20  import java.util.ListIterator;
21  import java.util.NoSuchElementException;
22  
23  import junit.framework.Test;
24  import junit.framework.TestSuite;
25  
26  import org.apache.commons.collections.iterators.AbstractTestListIterator;
27  import org.apache.commons.collections.primitives.ArrayIntList;
28  import org.apache.commons.collections.primitives.IntList;
29  
30  /**
31   * @version $Revision: 480451 $ $Date: 2006-11-29 02:45:08 -0500 (Wed, 29 Nov 2006) $
32   * @author Rodney Waldhoff
33   */
34  public class TestIntListIteratorListIterator extends AbstractTestListIterator {
35  
36      // conventional
37      // ------------------------------------------------------------------------
38  
39      public TestIntListIteratorListIterator(String testName) {
40          super(testName);
41      }
42  
43      public static Test suite() {
44          return new TestSuite(TestIntListIteratorListIterator.class);
45      }
46  
47      // collections testing framework
48      // ------------------------------------------------------------------------
49  
50      public ListIterator makeEmptyListIterator() {
51          return IntListIteratorListIterator.wrap(makeEmptyIntList().listIterator());
52      }
53      
54      public ListIterator makeFullListIterator() {
55          return IntListIteratorListIterator.wrap(makeFullIntList().listIterator());
56      }
57  
58      protected IntList makeEmptyIntList() {
59          return new ArrayIntList();
60      }
61      
62      protected IntList makeFullIntList() {
63          IntList list = makeEmptyIntList();
64          int[] elts = getFullElements();
65          for(int i=0;i<elts.length;i++) {
66              list.add(elts[i]);
67          }
68          return list;
69      }
70      
71      public int[] getFullElements() {
72          return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
73      }
74      
75      public Object addSetValue() {
76          return new Integer(1);
77      }
78  
79      // tests
80      // ------------------------------------------------------------------------
81  
82      
83      public void testNextHasNextRemove() {
84          int[] elements = getFullElements();
85          Iterator iter = makeFullIterator();
86          for(int i=0;i<elements.length;i++) {
87              assertTrue(iter.hasNext());
88              assertEquals(new Integer(elements[i]),iter.next());
89              if(supportsRemove()) {
90                  iter.remove();
91              }
92          }        
93          assertTrue(! iter.hasNext() );
94      }
95  
96      public void testEmptyIterator() {
97          assertTrue( ! makeEmptyIterator().hasNext() );
98          try {
99              makeEmptyIterator().next();
100             fail("Expected NoSuchElementException");
101         } catch(NoSuchElementException e) {
102             // expected
103         }
104         if(supportsRemove()) {
105             try {
106                 makeEmptyIterator().remove();
107                 fail("Expected IllegalStateException");
108             } catch(IllegalStateException e) {
109                 // expected
110             }
111         }        
112     }
113 
114     public void testRemoveBeforeNext() {
115         if(supportsRemove()) {
116             try {
117                 makeFullIterator().remove();
118                 fail("Expected IllegalStateException");
119             } catch(IllegalStateException e) {
120                 // expected
121             }
122         }        
123     }
124 
125     public void testRemoveAfterRemove() {
126         if(supportsRemove()) {
127             Iterator iter = makeFullIterator();
128             iter.next();
129             iter.remove();
130             try {
131                 iter.remove();
132                 fail("Expected IllegalStateException");
133             } catch(IllegalStateException e) {
134                 // expected
135             }
136         }        
137     }
138 
139 }