| /************************************************************************* |
| /* StringBufferInputStreamTest.java -- Test StringBufferInputStream'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 StringBufferInputStreamTest extends StringBufferInputStream |
| { |
| |
| public |
| StringBufferInputStreamTest(String b) |
| { |
| super(b); |
| } |
| |
| public static void |
| main(String[] argv) |
| { |
| System.out.println("Starting test of StringBufferInputStream."); |
| System.out.flush(); |
| |
| String str = "Between my freshman and sophomore years of high school\n" + |
| "we moved into a brand new building. The old high school was turned\n" + |
| "into an elementary school.\n"; |
| |
| System.out.println("Test 1: Protected Variables"); |
| |
| StringBufferInputStreamTest sbis = new StringBufferInputStreamTest(str); |
| byte[] read_buf = new byte[12]; |
| |
| try |
| { |
| sbis.read(read_buf); |
| sbis.mark(0); |
| |
| boolean passed = true; |
| |
| sbis.read(read_buf); |
| if (sbis.pos != (read_buf.length * 2)) |
| { |
| passed = false; |
| System.out.println("The pos variable is wrong. Expected 24 and got " + |
| sbis.pos); |
| } |
| if (sbis.count != str.length()) |
| { |
| passed = false; |
| System.out.println("The count variable is wrong. Expected " + |
| str.length() + " and got " + sbis.pos); |
| } |
| if (sbis.buffer != str) |
| { |
| 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"); |
| |
| sbis = new StringBufferInputStreamTest(str); |
| |
| try |
| { |
| int bytes_read, total_read = 0; |
| while ((bytes_read = sbis.read(read_buf, 0, read_buf.length)) != -1) |
| { |
| System.out.print(new String(read_buf, 0, bytes_read)); |
| total_read += bytes_read; |
| } |
| |
| sbis.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"); |
| sbis = new StringBufferInputStreamTest(str); |
| |
| try |
| { |
| boolean passed = true; |
| |
| sbis.read(read_buf); |
| if (sbis.available() != (str.length() - read_buf.length)) |
| { |
| passed = false; |
| System.out.println("available() reported " + sbis.available() + |
| " and " + (str.length() - read_buf.length) + |
| " was expected"); |
| } |
| |
| if (sbis.skip(5) != 5) |
| { |
| passed = false; |
| System.out.println("skip() didn't work"); |
| } |
| if (sbis.available() != (str.length() - (read_buf.length + 5))) |
| { |
| passed = false; |
| System.out.println("skip() lied"); |
| } |
| |
| if (sbis.markSupported()) |
| { |
| passed = false; |
| System.out.println("markSupported() should have returned false but returned true"); |
| } |
| |
| int availsave = sbis.available(); |
| sbis.reset(); |
| if (sbis.pos != 0) |
| { |
| 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 StringBufferInputStream test"); |
| } |
| |
| } |
| |