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.ByteArrayInputStream;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayOutputStream;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.InputStreamReader;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.DataInputStream;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.File;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.FileNotFoundException;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.OutputStream;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.PrintStream;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.UnsupportedEncodingException;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class PrintStreamTest extends junit.framework.TestCase {
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    ByteArrayOutputStream bos = new ByteArrayOutputStream();
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    byte[] ibuf = new byte[4096];
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private File testFile = null;
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private String testFilePath = null;
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_java_io_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_PrintStream\nTest_java_io_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_ClassNotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_Object\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_SocketException\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n";
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static class MockPrintStream extends PrintStream {
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MockPrintStream(String fileName) throws FileNotFoundException {
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super(fileName);
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MockPrintStream(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException {
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super(fileName, csn);
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MockPrintStream(OutputStream os) {
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super(os);
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        @Override
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void clearError() {
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            super.clearError();
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		@Override
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void setError() {
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super.setError();
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.io.PrintStream#PrintStream(String)}
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Constructor_Ljava_lang_String() throws IOException {
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	MockPrintStream os = new MockPrintStream(testFilePath);
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	assertNotNull(os);
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	os.close();
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.io.PrintStream#PrintStream(String, String)}
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_Constructor_Ljava_lang_String_Ljava_lang_String() throws Exception {
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	MockPrintStream os = new MockPrintStream(testFilePath, "utf-8");
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	assertNotNull(os);
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	os.close();
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	// Test that a bogus charset is mentioned in the exception
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	try {
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	    new PrintStream(testFilePath, "Bogus");
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	    fail("Exception expected");
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	} catch (UnsupportedEncodingException e) {
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	    assertNotNull(e.getMessage());
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    	}
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#PrintStream(java.io.OutputStream)
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_io_OutputStream() throws Exception {
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.io.PrintStream(java.io.OutputStream)
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos);
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(2345.76834720202);
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // regression for HARMONY-1195
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            os = new PrintStream(bos, true, null);
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw NPE");
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {}
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#PrintStream(java.io.OutputStream, boolean)
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_io_OutputStreamZ() {
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method java.io.PrintStream(java.io.OutputStream, boolean)
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos);
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(2345.76834720202);
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Bytes not written", bos.size() > 0);
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#PrintStream(java.io.OutputStream, boolean, String)
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorLjava_io_OutputStreamZLjava_lang_String() {
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new PrintStream(new ByteArrayOutputStream(), false,
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    "%Illegal_name!");
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Expected UnsupportedEncodingException");
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedEncodingException e) {
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#checkError()
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_checkError() throws Exception {
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method boolean java.io.PrintStream.checkError()
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(new OutputStream() {
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void write(int b) throws IOException {
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new IOException();
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            public void write(byte[] b, int o, int l) throws IOException {
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                throw new IOException();
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        });
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(fileString.substring(0, 501));
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Checkerror should return true", os.checkError());
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests {@link java.io.PrintStream#clearError()}
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_clearError() throws FileNotFoundException {
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        MockPrintStream os = new MockPrintStream(testFilePath);
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(os.checkError());
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.setError();
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(os.checkError());
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.clearError();
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(os.checkError());
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#close()
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_close() throws Exception {
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.close()
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos);
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bos.close();
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#flush()
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_flush() throws Exception {
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.flush()
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos);
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(fileString.substring(0, 501));
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Bytes not written after flush", 501, bos.size());
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bos.close();
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(char[])
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_print$C() {
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(char [])
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            os.print((char[]) null);
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("NPE expected");
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException ok) {}
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os = new PrintStream(bos, true);
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char[] sc = new char[4000];
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        fileString.getChars(0, fileString.length(), sc, 0);
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(sc);
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[4000];
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, fileString.length());
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect char[] written", fileString, new String(rbytes,
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                0, fileString.length()));
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(char)
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printC() throws Exception {
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(char)
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print('t');
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect char written", 't', isr.read());
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(double)
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printD() {
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(double)
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(2345.76834720202);
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 16);
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect double written", "2345.76834720202",
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbuf, 0, 16));
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(float)
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printF() {
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(float)
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte rbuf[] = new byte[10];
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(29.08764f);
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 8);
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect float written", "29.08764", new String(rbuf, 0,
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                8));
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(int)
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printI() {
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(int)
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(768347202);
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[18];
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 9);
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect int written", "768347202", new String(rbuf, 0,
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                9));
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(long)
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printJ() {
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(long)
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(9875645283333L);
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 13);
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect long written", "9875645283333", new String(
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rbuf, 0, 13));
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(java.lang.Object)
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printLjava_lang_Object() throws Exception {
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(java.lang.Object)
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print((Object) null);
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] nullbytes = new byte[4];
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(nullbytes, 0, 4);
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("null should be written", "null", new String(nullbytes, 0,
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                4));
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.close();
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bos.close();
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os = new PrintStream(bos1, true);
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(new java.util.Vector());
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis = new ByteArrayInputStream(bos1.toByteArray());
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[2];
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, 2);
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect Object written", "[]", new String(rbytes, 0, 2));
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(java.lang.String)
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printLjava_lang_String() throws Exception {
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(java.lang.String)
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print((String) null);
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] nullbytes = new byte[4];
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(nullbytes, 0, 4);
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("null should be written", "null", new String(nullbytes, 0,
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                4));
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.close();
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bos.close();
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.close();
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os = new PrintStream(bos1, true);
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print("Hello World");
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis = new ByteArrayInputStream(bos1.toByteArray());
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte rbytes[] = new byte[100];
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, 11);
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect string written", "Hello World", new String(
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rbytes, 0, 11));
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#print(boolean)
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printZ() throws Exception {
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.print(boolean)
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.print(true);
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DataInputStream dis = new DataInputStream(new ByteArrayInputStream(bos
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .toByteArray()));
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Incorrect boolean written", dis.readBoolean());
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println()
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_println() throws Exception {
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println()
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char c;
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println("");
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = (char) isr.read()) == '\r'
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                || c == '\n');
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(char[])
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_println$C() throws Exception {
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(char [])
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char[] sc = new char[4000];
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        fileString.getChars(0, fileString.length(), sc, 0);
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(sc);
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[4000];
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, fileString.length());
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect char[] written", fileString, new String(rbytes,
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                0, fileString.length()));
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // In this particular test method, the end of data is not immediately
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // followed by newLine separator in the reading buffer, instead its
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // followed by zeros. The newline is written as the last entry
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // in the inputStream buffer. Therefore, we must keep reading until we
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // hit a new line.
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int r;
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        boolean newline = false;
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        while ((r = isr.read()) != -1) {
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            if (r == '\r' || r == '\n')
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                newline = true;
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", newline);
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(char)
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnC() throws Exception {
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(char)
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int c;
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println('t');
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect char written", 't', isr.read());
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = isr.read()) == '\r' || c == '\n');
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(double)
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnD() throws Exception {
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(double)
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int c;
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(2345.76834720202);
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 16);
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect double written", "2345.76834720202",
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbuf, 0, 16));
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = isr.read()) == '\r' || c == '\n');
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(float)
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnF() throws Exception {
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(float)
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int c;
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(29.08764f);
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 8);
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect float written", "29.08764", new String(rbuf, 0,
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                8));
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = isr.read()) == '\r' || c == '\n');
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(int)
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnI() throws Exception {
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(int)
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int c;
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(768347202);
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 9);
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect int written", "768347202", new String(rbuf, 0,
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                9));
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = isr.read()) == '\r' || c == '\n');
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(long)
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnJ() throws Exception {
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(long)
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int c;
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(9875645283333L);
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 13);
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect long written", "9875645283333", new String(
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rbuf, 0, 13));
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = isr.read()) == '\r' || c == '\n');
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(java.lang.Object)
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnLjava_lang_Object() throws Exception {
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(java.lang.Object)
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char c;
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(new java.util.Vector());
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[2];
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, 2);
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect Vector written", "[]", new String(rbytes, 0, 2));
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = (char) isr.read()) == '\r'
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                || c == '\n');
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(java.lang.String)
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnLjava_lang_String() throws Exception {
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(java.lang.String)
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char c;
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println("Hello World");
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte rbytes[] = new byte[100];
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, 11);
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect string written", "Hello World", new String(
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rbytes, 0, 11));
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = (char) isr.read()) == '\r'
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                || c == '\n');
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#println(boolean)
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printlnZ() throws Exception {
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.println(boolean)
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int c;
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.println(true);
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        InputStreamReader isr = new InputStreamReader(bis);
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbuf = new byte[100];
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbuf, 0, 4);
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect boolean written", "true",
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbuf, 0, 4));
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Newline not written", (c = isr.read()) == '\r' || c == '\n');
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#write(byte[], int, int)
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_write$BII() {
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.write(byte [], int, int)
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.write(fileString.getBytes(), 0, fileString.length());
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte rbytes[] = new byte[4000];
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, fileString.length());
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Incorrect bytes written", new String(rbytes, 0, fileString
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .length()).equals(fileString));
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#write(int)
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_writeI() {
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // Test for method void java.io.PrintStream.write(int)
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, true);
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.write('t');
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Incorrect char written", 't', bis.read());
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#append(char)
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_appendChar() throws IOException {
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        char testChar = ' ';
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayOutputStream out = new ByteArrayOutputStream();
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream printStream = new PrintStream(out);
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.append(testChar);
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.flush();
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(String.valueOf(testChar), out.toString());
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.close();
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#append(CharSequence)
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_appendCharSequence() {
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String testString = "My Test String";
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayOutputStream out = new ByteArrayOutputStream();
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream printStream = new PrintStream(out);
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.append(testString);
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.flush();
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testString, out.toString());
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.close();
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#append(CharSequence, int, int)
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_appendCharSequenceIntInt() {
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String testString = "My Test String";
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayOutputStream out = new ByteArrayOutputStream();
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream printStream = new PrintStream(out);
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.append(testString, 1, 3);
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.flush();
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(testString.substring(1, 3), out.toString());
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        printStream.close();
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#format(java.lang.String, java.lang.Object...)
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_formatLjava_lang_String$Ljava_lang_Object() {
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, false);
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.format("%s %s", "Hello", "World");
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[11];
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, rbytes.length);
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrote incorrect string", "Hello World",
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbytes));
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#format(java.util.Locale, java.lang.String,
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *        java.lang.Object...)
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_formatLjava_util_Locale_Ljava_lang_String_$Ljava_lang_Object() {
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, false);
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.format(Locale.US, "%s %s", "Hello", "World");
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[11];
621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, rbytes.length);
622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrote incorrect string", "Hello World",
623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbytes));
624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#printf(java.lang.String, java.lang.Object...)
628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printfLjava_lang_String$Ljava_lang_Object() {
630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, false);
631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.printf("%s %s", "Hello", "World");
632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[11];
635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, rbytes.length);
636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrote incorrect string", "Hello World",
637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbytes));
638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests java.io.PrintStream#printf(java.util.Locale, java.lang.String,
642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     *        java.lang.Object...)
643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_printfLjava_util_Locale_Ljava_lang_String_$Ljava_lang_Object() {
645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PrintStream os = new PrintStream(bos, false);
646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.printf(Locale.US, "%s %s", "Hello", "World");
647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        os.flush();
648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] rbytes = new byte[11];
650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        bis.read(rbytes, 0, rbytes.length);
651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Wrote incorrect string", "Hello World",
652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                new String(rbytes));
653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	@Override
656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void setUp() throws Exception {
657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		super.setUp();
658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testFile = File.createTempFile("test", null);
659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testFilePath = testFile.getAbsolutePath();
660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	@Override
663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void tearDown() throws Exception {
664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testFile.delete();
665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testFile = null;
666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		testFilePath = null;
667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		super.tearDown();
668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
672