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.io;
18  
19  import java.io.ByteArrayInputStream;
20  import java.io.IOException;
21  import java.io.InputStream;
22  
23  import junit.framework.Test;
24  import junit.framework.TestSuite;
25  
26  import org.apache.commons.collections.primitives.ByteIterator;
27  import org.apache.commons.collections.primitives.TestByteIterator;
28  
29  /**
30   * @version $Revision: 480451 $ $Date: 2006-11-29 02:45:08 -0500 (Wed, 29 Nov 2006) $
31   * @author Rodney Waldhoff
32   */
33  public class TestInputStreamByteIterator extends TestByteIterator {
34  
35      // conventional
36      // ------------------------------------------------------------------------
37  
38      public TestInputStreamByteIterator(String testName) {
39          super(testName);
40      }
41  
42      public static Test suite() {
43          return new TestSuite(TestInputStreamByteIterator.class);
44      }
45  
46      // ------------------------------------------------------------------------
47      
48      public boolean supportsRemove() {
49          return false;
50      }
51  
52      protected ByteIterator makeEmptyByteIterator() {
53          return new InputStreamByteIterator(new ByteArrayInputStream(new byte[0]));
54      }
55  
56      protected ByteIterator makeFullByteIterator() {
57          return new InputStreamByteIterator(new ByteArrayInputStream(getFullElements()));
58      }
59  
60      protected byte[] getFullElements() {
61          byte[] bytes = new byte[256];
62          for(int i=0; i < 256; i++) {
63              bytes[i] = (byte)(i-128);
64          }
65          return bytes;
66      }
67  
68  
69      // ------------------------------------------------------------------------
70      
71      public void testErrorThrowingStream() {
72          InputStream errStream = new InputStream() {
73              public int read() throws IOException {
74                  throw new IOException();
75              }
76          };
77          
78          ByteIterator iter = new InputStreamByteIterator(errStream);
79          try {
80              iter.hasNext();
81              fail("Expected RuntimeException");
82          } catch(RuntimeException e) {
83              // expected
84          } 
85          try {
86              iter.next();
87              fail("Expected RuntimeException");
88          } catch(RuntimeException e) {
89              // expected
90          } 
91      }
92      
93      public void testAdaptNull() {
94          assertNull(InputStreamByteIterator.adapt(null));
95      }
96  
97      public void testAdaptNonNull() {
98          assertNotNull(InputStreamByteIterator.adapt(new ByteArrayInputStream(new byte[0])));
99      }
100 }