| /************************************************************************* |
| /* ByteArrayInputStreamTest.java -- Test ByteArrayInputStream'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 ByteArrayInputStreamTest extends ByteArrayInputStream |
| { |
| |
| public |
| ByteArrayInputStreamTest(byte[] b) |
| { |
| super(b); |
| } |
| |
| public static void |
| main(String[] argv) |
| { |
| System.out.println("Starting test of ByteArrayInputStream."); |
| System.out.flush(); |
| |
| String str = "My sophomore year of college I moved out of the dorms. I\n" + |
| "moved in with three friends into a brand new townhouse in east\n" + |
| "Bloomington at 771 Woodbridge Drive. To this day that was the\n" + |
| "nicest place I've ever lived.\n"; |
| |
| byte[] str_bytes = str.getBytes(); |
| |
| System.out.println("Test 1: Protected Variables"); |
| |
| ByteArrayInputStreamTest bais = new ByteArrayInputStreamTest(str_bytes); |
| byte[] read_buf = new byte[12]; |
| |
| try |
| { |
| bais.read(read_buf); |
| bais.mark(0); |
| |
| boolean passed = true; |
| |
| if (bais.mark != read_buf.length) |
| { |
| passed = false; |
| System.out.println("The mark variable is wrong. Expected " + |
| read_buf.length + " and got " + bais.mark); |
| } |
| bais.read(read_buf); |
| if (bais.pos != (read_buf.length * 2)) |
| { |
| passed = false; |
| System.out.println("The pos variable is wrong. Expected 24 and got " + |
| bais.pos); |
| } |
| if (bais.count != str_bytes.length) |
| { |
| passed = false; |
| System.out.println("The count variable is wrong. Expected " + |
| str_bytes.length + " and got " + bais.pos); |
| } |
| if (bais.buf != str_bytes) |
| { |
| 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"); |
| |
| bais = new ByteArrayInputStreamTest(str_bytes); |
| |
| try |
| { |
| int bytes_read, total_read = 0; |
| while ((bytes_read = bais.read(read_buf, 0, read_buf.length)) != -1) |
| { |
| System.out.print(new String(read_buf, 0, bytes_read)); |
| total_read += bytes_read; |
| } |
| |
| bais.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"); |
| bais = new ByteArrayInputStreamTest(str_bytes); |
| |
| try |
| { |
| boolean passed = true; |
| |
| bais.read(read_buf); |
| if (bais.available() != (str_bytes.length - read_buf.length)) |
| { |
| passed = false; |
| System.out.println("available() reported " + bais.available() + |
| " and " + (str_bytes.length - read_buf.length) + |
| " was expected"); |
| } |
| |
| if (bais.skip(5) != 5) |
| { |
| passed = false; |
| System.out.println("skip() didn't work"); |
| } |
| if (bais.available() != (str_bytes.length - (read_buf.length + 5))) |
| { |
| passed = false; |
| System.out.println("skip() lied"); |
| } |
| |
| if (!bais.markSupported()) |
| { |
| passed = false; |
| System.out.println("markSupported() should have returned true but returned false"); |
| } |
| |
| bais.mark(0); |
| int availsave = bais.available(); |
| bais.read(); |
| bais.reset(); |
| if (bais.available() != availsave) |
| { |
| 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 ByteArrayInputStream test"); |
| } |
| |
| } |
| |