1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.io; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.CharArrayReader; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.FilterReader; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.PushbackReader; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Reader; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.StringReader; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class PushbackReaderTest extends junit.framework.TestCase { 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes PushbackReader pbr; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String pbString = "Hello World"; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#PushbackReader(java.io.Reader) 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_Reader() { 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.io.PushbackReader(java.io.Reader) 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.close(); 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr = new PushbackReader(new StringReader(pbString)); 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char buf[] = new char[5]; 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(buf, 0, 5); 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(buf); 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Correct 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Created reader with buffer larger than 1"); 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#PushbackReader(java.io.Reader, int) 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_ReaderI() { 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.io.PushbackReader(java.io.Reader, int) 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Used to test", true); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#close() 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_close() { 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.io.PushbackReader.close() 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.close(); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to throw exception reading from closed reader"); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#mark(int) 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_markI() { 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.mark(3); 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // correct 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("mark failed to throw expected IOException"); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#markSupported() 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_markSupported() { 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.io.PushbackReader.markSupported() 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("markSupported returned true", !pbr.markSupported()); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#read() 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read() { 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.io.PushbackReader.read() 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char c; 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c = (char) pbr.read(); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to read char: " + c, c == pbString.charAt(1)); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Reader reader = new PushbackReader(new CharArrayReader( 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new char[] { '\u8765' })); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong double byte character", reader.read() == '\u8765'); 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException during read test : " + e.getMessage()); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#read(char[], int, int) 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read$CII() { 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.io.PushbackReader.read(char [], int, int) 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] c = new char[5]; 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(c, 0, 5); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to read chars", new String(c).equals(pbString 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .substring(0, 5))); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException during read test : " + e.getMessage()); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1271ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes public void test_read_$CII_Exception() throws IOException { 1281ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr = new PushbackReader(new StringReader(pbString), 10); 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1301ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes char[] charArray = new char[10]; 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1321ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes try { 1331ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(null, 1, 0); 1341ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes fail(); 1351ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } catch (NullPointerException expected) { 1361ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 1371ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes try { 1381ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, 0, -1); 1391ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes fail(); 1401ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } catch (IndexOutOfBoundsException expected) { 1411ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 1421ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes try { 1431ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, -1, 0); 1441ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes fail(); 1451ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } catch (IndexOutOfBoundsException expected) { 1461ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1481ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, 0, 0); 1491ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, 0, charArray.length); 1501ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, charArray.length, 0); 1511ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 1521ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes try { 1531ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, charArray.length + 1, 0); 1541ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes fail(); 1551ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } catch (IndexOutOfBoundsException expected) { 1561ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 1571ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes try { 1581ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, 0, charArray.length + 1); 1591ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes fail(); 1601ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } catch (IndexOutOfBoundsException expected) { 1611ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 1621ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 1631ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes // Can't read from a closed PushbackReader. 1641ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.close(); 1651ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes try { 1661ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes pbr.read(charArray, 0, 1); 1671ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes fail(); 1681ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } catch (IOException expected) { 1691ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 1701ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes } 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#ready() 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ready() { 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.io.PushbackReader.ready() 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] c = new char[11]; 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (c.length > 0) 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ;// use c to avoid warning msg 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Ready stream returned false to ready()", pbr.ready()); 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException during ready() test : " + e.getMessage()); 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#reset() 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_reset() { 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.reset(); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // correct 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("mark failed to throw expected IOException"); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#unread(char[]) 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unread$C() { 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.io.PushbackReader.unread(char []) 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] c = new char[5]; 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(c, 0, 5); 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(c); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(c, 0, 5); 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to unread chars", new String(c).equals(pbString 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .substring(0, 5))); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException during read test : " + e.getMessage()); 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#skip(long) 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_skip$J() { 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char chars[] = new char[] { 'h', 'e', 'l', 'l', 'o' }; 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 3; i++) { 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Reader reader, reader2; 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes switch (i) { 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 0: 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reader = new StringReader(new String(chars)); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reader2 = new StringReader(new String(chars)); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case 1: 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reader = new FilterReader(new StringReader(new String(chars))) { 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reader2 = new FilterReader(new StringReader(new String(chars))) { 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes default: 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reader = new CharArrayReader(chars); 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes reader2 = new CharArrayReader(chars); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes PushbackReader pReader = new PushbackReader(reader, 2); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes PushbackReader pReader2 = new PushbackReader(reader2, 2); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean skipped = false; 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long numSkipped = 0; 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped = pReader2.skip(3); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pReader2.unread('a'); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pReader2.unread('b'); 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader2.skip(10); 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader2.skip(10); 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader2.skip(10); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader2.skip(10); 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader2.skip(10); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader2.skip(10); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Did not skip correct number of characters", 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 7, numSkipped); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped = 0; 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(2); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pReader.unread('i'); 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(2); 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(0); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes skipped = true; 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(-1); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to throw " 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + new IllegalArgumentException().getClass().getName()); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to skip characters" + e, skipped); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to skip characters" + e); 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(1); 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(1); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes numSkipped += pReader.skip(1); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Failed to skip all characters", 6, numSkipped); 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long nextSkipped = pReader.skip(1); 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("skipped empty reader", 0, nextSkipped); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Failed to skip more characters" + e); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#unread(char[], int, int) 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unread$CII() { 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.io.PushbackReader.unread(char [], int, int) 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] c = new char[5]; 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(c, 0, 5); 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(c, 0, 2); 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(c, 0, 5); 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to unread chars", new String(c).equals(pbString 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .substring(0, 2) 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + pbString.substring(5, 8))); 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException during unread test : " + e.getMessage()); 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#unread(char[], int, int) 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unread_$CII_NullPointerException() throws IOException { 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //a pushback reader with one character buffer 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr = new PushbackReader(new StringReader(pbString)); 3061ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(null, 0, 1); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3141ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#unread(char[], int, int) 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unread_$CII_Exception_InsufficientBuffer() throws IOException { 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //a pushback reader with one character buffer 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr = new PushbackReader(new StringReader(pbString)); 3211ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //if count > buffer's size , should throw IOException 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(new char[pbString.length()], 0, 2); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IOException"); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3301ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#unread(char[], int, int) 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unread_$CII_ArrayIndexOutOfBoundsException() throws IOException { 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //a pushback reader with one character buffer 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr = new PushbackReader(new StringReader(pbString)); 3371ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(new char[pbString.length()], -1 , -1); 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3451ed0e1c2905c90938f2aad58824a5464a259448dElliott Hughes 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.PushbackReader#unread(int) 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_unreadI() { 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void java.io.PushbackReader.unread(int) 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int c; 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.read(); 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes c = pbr.read(); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.unread(c); 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Failed to unread char", pbr.read() == c); 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException during unread test : " + e.getMessage()); 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Sets up the fixture, for example, open a network connection. This method 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * is called before a test is executed. 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr = new PushbackReader(new StringReader(pbString), 10); 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tears down the fixture, for example, close a network connection. This 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method is called after a test is executed. 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pbr.close(); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 382