KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > collections > primitives > TestCharIterator


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;
18
19 import java.util.Iterator JavaDoc;
20 import java.util.NoSuchElementException JavaDoc;
21
22 import org.apache.commons.collections.iterators.AbstractTestIterator;
23 import org.apache.commons.collections.primitives.adapters.CharIteratorIterator;
24
25 /**
26  * @version $Revision: 480451 $ $Date: 2006-11-28 23:45:08 -0800 (Tue, 28 Nov 2006) $
27  * @author Rodney Waldhoff
28  */

29 public abstract class TestCharIterator extends AbstractTestIterator {
30
31     // conventional
32
// ------------------------------------------------------------------------
33

34     public TestCharIterator(String JavaDoc testName) {
35         super(testName);
36     }
37
38     // collections testing framework
39
// ------------------------------------------------------------------------
40

41     public Iterator JavaDoc makeEmptyIterator() {
42         return CharIteratorIterator.wrap(makeEmptyCharIterator());
43     }
44
45     public Iterator JavaDoc makeFullIterator() {
46         return CharIteratorIterator.wrap(makeFullCharIterator());
47     }
48
49
50     protected abstract CharIterator makeEmptyCharIterator();
51     protected abstract CharIterator makeFullCharIterator();
52     protected abstract char[] getFullElements();
53
54     // tests
55
// ------------------------------------------------------------------------
56

57     public void testNextHasNextRemove() {
58         char[] elements = getFullElements();
59         CharIterator iter = makeFullCharIterator();
60         for(int i=0;i<elements.length;i++) {
61             assertTrue(iter.hasNext());
62             assertEquals(elements[i],iter.next(),0f);
63             if(supportsRemove()) {
64                 iter.remove();
65             }
66         }
67         assertTrue(! iter.hasNext() );
68     }
69
70     public void testEmptyCharIterator() {
71         assertTrue( ! makeEmptyCharIterator().hasNext() );
72         try {
73             makeEmptyCharIterator().next();
74             fail("Expected NoSuchElementException");
75         } catch(NoSuchElementException JavaDoc e) {
76             // expected
77
}
78         if(supportsRemove()) {
79             try {
80                 makeEmptyCharIterator().remove();
81                 fail("Expected IllegalStateException");
82             } catch(IllegalStateException JavaDoc e) {
83                 // expected
84
}
85         }
86     }
87
88     public void testRemoveBeforeNext() {
89         if(supportsRemove()) {
90             try {
91                 makeFullCharIterator().remove();
92                 fail("Expected IllegalStateException");
93             } catch(IllegalStateException JavaDoc e) {
94                 // expected
95
}
96         }
97     }
98
99     public void testRemoveAfterRemove() {
100         if(supportsRemove()) {
101             CharIterator iter = makeFullCharIterator();
102             iter.next();
103             iter.remove();
104             try {
105                 iter.remove();
106                 fail("Expected IllegalStateException");
107             } catch(IllegalStateException JavaDoc e) {
108                 // expected
109
}
110         }
111     }
112 }
113
Popular Tags