/************************************************************************* /* CharArrayReaderTest.java -- Test CharArrayReaders's of course /* /* Copyright (c) 1998 Free Software Foundation, Inc. /* Written by Aaron M. Renn (arenn@urbanophile.com) /* /* This program is free software; you can redistribute it and/or modify /* it under the terms of the GNU General Public License as published /* by the Free Software Foundation, either version 2 of the License, or /* (at your option) any later version. /* /* This program is distributed in the hope that it will be useful, but /* WITHOUT ANY WARRANTY; without even the implied warranty of /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /* GNU General Public License for more details. /* /* You should have received a copy of the GNU General Public License /* along with this program; if not, write to the Free Software Foundation /* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /*************************************************************************/ import java.io.*; public class CharArrayReaderTest extends CharArrayReader { public CharArrayReaderTest(char[] b) { super(b); } public static void main(String[] argv) { System.out.println("Starting test of CharArrayReader."); System.out.flush(); String str = "In junior high, I did a lot writing. I wrote a science\n" + "fiction novel length story that was called 'The Destruction of\n" + "Planet Earth'. All the characters in the story were my friends \n" + "from school because I couldn't think up any cool names."; char[] str_chars = new char[str.length()]; str.getChars(0, str.length(), str_chars, 0); System.out.println("Test 1: Protected Variables"); CharArrayReaderTest car = new CharArrayReaderTest(str_chars); char[] read_buf = new char[12]; try { car.read(read_buf); car.mark(0); boolean passed = true; if (car.markedPos != read_buf.length) { passed = false; System.out.println("The mark variable is wrong. Expected " + read_buf.length + " and got " + car.markedPos); } car.read(read_buf); if (car.pos != (read_buf.length * 2)) { passed = false; System.out.println("The pos variable is wrong. Expected 24 and got " + car.pos); } if (car.count != str_chars.length) { passed = false; System.out.println("The count variable is wrong. Expected " + str_chars.length + " and got " + car.pos); } if (car.buf != str_chars) { passed = false; System.out.println("The buf variable is not correct"); } if (passed) System.out.println("PASSED: Protected Variables Test"); else System.out.println("FAILED: Protected Variables Test"); } catch (IOException e) { System.out.println("FAILED: Protected Variables Test: " + e); } System.out.println("Test 2: Simple Read Test"); car = new CharArrayReaderTest(str_chars); try { int chars_read, total_read = 0; while ((chars_read = car.read(read_buf, 0, read_buf.length)) != -1) { System.out.print(new String(read_buf, 0, chars_read)); total_read += chars_read; } car.close(); if (total_read == str.length()) System.out.println("PASSED: Simple Read Test"); else System.out.println("FAILED: Simple Read Test"); } catch (IOException e) { System.out.println("FAILED: Simple Read Test: " + e); } System.out.println("Test 3: mark/reset/available/skip test"); car = new CharArrayReaderTest(str_chars); try { boolean passed = true; car.read(read_buf); if (!car.ready()) { passed = false; System.out.println("ready() reported false and should have " + "reported true."); } if (car.skip(5) != 5) { passed = false; System.out.println("skip() didn't work"); } if (!car.markSupported()) { passed = false; System.out.println("markSupported() should have returned true but returned false"); } car.mark(0); int pos_save = car.pos; car.read(); car.reset(); if (car.pos != pos_save) { passed = false; System.out.println("mark/reset failed to work"); } if (passed) System.out.println("PASSED: mark/reset/available/skip test"); else System.out.println("FAILED: mark/reset/available/skip test"); } catch(IOException e) { System.out.println("FAILED: mark/reset/available/skip test: " + e); } System.out.println("Finished CharArrayReader test"); } }