1935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson/* 2935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one or more 3935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * contributor license agreements. See the NOTICE file distributed with 4935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * this work for additional information regarding copyright ownership. 5935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * The ASF licenses this file to You under the Apache License, Version 2.0 6935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * (the "License"); you may not use this file except in compliance with 7935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * the License. You may obtain a copy of the License at 8935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * 9935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 10935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * 11935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Unless required by applicable law or agreed to in writing, software 12935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 13935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * See the License for the specific language governing permissions and 15935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * limitations under the License. 16935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 17935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io; 19935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 20935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.IOException; 21935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.PushbackReader; 22935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.StringReader; 23935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport tests.support.Support_ASimpleReader; 24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 25935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldPushbackReaderTest extends junit.framework.TestCase { 26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 27935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson Support_ASimpleReader underlying = new Support_ASimpleReader(); 28935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader pbr; 29935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 30935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson String pbString = "Hello World"; 31935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 32935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 33229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#PushbackReader(java.io.Reader) 34935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 35935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_ConstructorLjava_io_Reader() { 36935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Test for method java.io.PushbackReader(java.io.Reader) 37935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 38935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.close(); 39935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr = new PushbackReader(new StringReader(pbString)); 40935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char buf[] = new char[5]; 41935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(buf, 0, 5); 42935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.unread(buf); 43935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Created reader with buffer larger than 1");; 44935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 45935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected 46935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 47935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 48935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 49935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr = new PushbackReader(null); 50935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (NullPointerException e) { 51935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // EXpected 52935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 53935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 54935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 56229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#PushbackReader(java.io.Reader, int) 57935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 58935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_ConstructorLjava_io_ReaderI() throws IOException { 59935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 60935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 61935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying, 10000); 62935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying, 1); 63935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 64935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 65935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying, -1); 66935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.close(); 67935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 68935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IllegalArgumentException e) { 69935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 70935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 71935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 72935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying, 0); 73935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.close(); 74935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 75935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IllegalArgumentException e) { 76935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 77935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 78935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 79935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 80935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 81229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#close() 82935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 83935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_close() throws IOException { 84935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 85935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 86935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 87935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.close(); 88935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.close(); 89935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 90935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 91935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 92935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.close(); 93935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 94935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 95935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 96935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 97935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 98935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 99935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 100229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#markSupported() 101935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 102935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_markSupported() { 103935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertFalse("Test 1: markSupported() must return false.", 104935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.markSupported()); 105935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 106935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 107935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 108229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#read() 109935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 110935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read() throws IOException { 111935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 112935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 113935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 114935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Wrong value read!", 66, tobj.read()); 115935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 116935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 117935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(); 118935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 119935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 120935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 121935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 122935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 123935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 124935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 125229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#read(char[], int, int) 126935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 127935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read$CII() throws IOException { 128935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 129935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] buf = ("01234567890123456789").toCharArray(); 130935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 131935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 132935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(buf, 6, 5); 133935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Wrong value read!", "BEGIN", new String(buf, 6, 5)); 134935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Too much read!", "012345BEGIN123456789", new String(buf)); 135935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 136935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 137935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(buf, 6, 5); 138935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 139935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 140935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 141935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 142935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 143935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Test for method int java.io.PushbackReader.read(char [], int, int) 144935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 145935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] c = new char[5]; 146935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(c, 0, 5); 147935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertTrue("Failed to read chars", new String(c).equals(pbString 148935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson .substring(0, 5))); 149935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 150935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals(0, pbr.read(c, 0, 0)); 151935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals(c.length, pbr.read(c, 0, c.length)); 152935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals(0, pbr.read(c, c.length, 0)); 153935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 154935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException during read test : " + e.getMessage()); 155935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 156935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 157935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 158935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 159229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#read(char[], int, int) 160935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 161935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_$CII_Exception() throws IOException { 162935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr = new PushbackReader(new StringReader(pbString), 10); 163935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 164935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] nullCharArray = null; 165935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] charArray = new char[10]; 166935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 167935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 168935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(nullCharArray, 0, 1); 169935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw NullPointerException"); 170935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (NullPointerException e) { 171935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 172935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 173935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 174935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 175935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, 0, -1); 176935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IndexOutOfBoundsException"); 177935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 178935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 179935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 180935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 181935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 182935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, -1, 0); 183935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IndexOutOfBoundsException"); 184935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 185935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 186935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 187935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 188935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 189935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, charArray.length + 1, 0); 190935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IndexOutOfBoundsException"); 191935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 192935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 193935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 194935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 195935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 196935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, charArray.length, 1); 197935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IndexOutOfBoundsException"); 198935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 199935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 200935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 201935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 202935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 203935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, 1, charArray.length); 204935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IndexOutOfBoundsException"); 205935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 206935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 207935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 208935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 209935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 210935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, 0, charArray.length + 1); 211935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IndexOutOfBoundsException"); 212935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 213935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 214935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 215935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 216935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.close(); 217935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 218935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 219935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(charArray, 0, 1); 220935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw IOException"); 221935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 222935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 223935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 224935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 225935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 226935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 227229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#ready() 228935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 229935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_ready() throws IOException { 230935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 231935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 232935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 233935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertTrue("Should be ready!", tobj.ready()); 234935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 235935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 236935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.ready(); 237935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 238935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 239935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 240935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 241935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 242935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 243229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#unread(char[]) 244935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 245935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_unread$C() throws IOException { 246935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 247935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson String str2 = "0123456789"; 248935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] buf2 = str2.toCharArray(); 249935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] readBuf = new char[10]; 250935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 251935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying, 10); 252935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(buf2); 253935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 254935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(buf2); 255935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 256935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 257935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 258935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 259935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(readBuf); 260935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Incorrect bytes read", str2, new String(readBuf)); 261935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 262935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 263935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(buf2); 264935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 265935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 266935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 267935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 268935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 269935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Test for method void java.io.PushbackReader.unread(char []) 270935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 271935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] c = new char[5]; 272935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(c, 0, 5); 273935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.unread(c); 274935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.read(c, 0, 5); 275935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertTrue("Failed to unread chars", new String(c).equals(pbString 276935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson .substring(0, 5))); 277935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 278935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException during read test : " + e.getMessage()); 279935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 280935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 281935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 282935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 283935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * @throws IOException 284229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#skip(long) 285935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 286935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_skip$J() throws IOException { 287935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 288935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 289935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 290935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.skip(6); 291935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.skip(1000000); 292935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.skip(1000000); 293935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 294935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 295935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.skip(1); 296935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 297935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 298935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 299935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 300935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 301935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 302935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 303229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#unread(char[], int, int) 304935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 305935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_unread$CII() throws IOException { 306935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 307935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson String str2 = "0123456789"; 308935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] buf2 = (str2 + str2 + str2).toCharArray(); 309935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson char[] readBuf = new char[10]; 310935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 311935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying, 10); 312935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(buf2, 15, 10); 313935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 314935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(buf2, 15, 10); 315935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 316935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 317935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 318935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 319935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(readBuf); 320935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Incorrect bytes read", "5678901234", new String(readBuf)); 321935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson underlying.throwExceptionOnNextUse = true; 322935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 323935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.read(buf2, 15, 10); 324935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown."); 325935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 326935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 327935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 328935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 329935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 330935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_unread_$CII_ArrayIndexOutOfBoundsException() throws IOException { 331935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson //a pushback reader with one character buffer 332935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr = new PushbackReader(new StringReader(pbString)); 333935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 334935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.unread(new char[pbString.length()], 0 , -1); 335935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw ArrayIndexOutOfBoundsException"); 336935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 337935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 338935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 339935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 340935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.unread(new char[10], 10 , 1); 341935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("should throw ArrayIndexOutOfBoundsException"); 342935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IndexOutOfBoundsException e) { 343935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 344935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 345935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 346935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 347935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 348229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.PushbackReader#unread(int) 349935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 350935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_unreadI() throws IOException { 351935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson PushbackReader tobj; 352935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 353935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj = new PushbackReader(underlying); 354935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(23); // Why does this work?!? 355935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.skip(2); 356935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(23); 357935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Wrong value read!", 23, tobj.read()); 358935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(13); 359935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 360935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson tobj.unread(13); 361935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("IOException not thrown (ACTUALLY NOT SURE WHETHER IT REALLY MUST BE THROWN!)."); 362935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 363935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // expected 364935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 365935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 366935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 367935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 368935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Sets up the fixture, for example, open a network connection. This method 369935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * is called before a test is executed. 370935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 371935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson protected void setUp() { 372935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr = new PushbackReader(new StringReader(pbString), 10); 373935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 374935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 375935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson /** 376935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Tears down the fixture, for example, close a network connection. This 377935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * method is called after a test is executed. 378935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 379935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson protected void tearDown() { 380935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 381935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson pbr.close(); 382935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 383935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 384935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 385935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson} 386