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.BufferedOutputStream; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayOutputStream; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.OutputStream; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class BufferedOutputStreamTest extends junit.framework.TestCase { 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private java.io.OutputStream os; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.io.ByteArrayOutputStream baos; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.io.ByteArrayInputStream bais; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_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_java_io_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"; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#BufferedOutputStream(java.io.OutputStream) 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_OutputStream() throws IOException { 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baos = new java.io.ByteArrayOutputStream(); 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os = new java.io.BufferedOutputStream(baos); 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.write(fileString.getBytes(), 0, 500); 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#BufferedOutputStream(java.io.OutputStream, 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * int) 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_OutputStreamI() throws IOException { 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baos = new java.io.ByteArrayOutputStream(); 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os = new java.io.BufferedOutputStream(baos, 1024); 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.write(fileString.getBytes(), 0, 500); 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_flush_Constructor_NullStream() throws IOException { 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream buffos = new java.io.BufferedOutputStream(null); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.close(); 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos = new java.io.BufferedOutputStream(null, 10); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.close(); 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new java.io.BufferedOutputStream(null, 0); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IllegalArgumentException"); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new java.io.BufferedOutputStream(null, -1); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IllegalArgumentException"); 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#flush() 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_flush() throws IOException { 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baos = new ByteArrayOutputStream(); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os = new java.io.BufferedOutputStream(baos, 600); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.write(fileString.getBytes(), 0, 500); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.flush(); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 500, 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((ByteArrayOutputStream) baos).size()); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static class MockOutputStream extends OutputStream { 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] written; 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int count; 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public MockOutputStream(int size) { 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes written = new byte[size]; 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes count = 0; 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void write(int b) { 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes written[count++] = (byte) b; 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String getWritten() { 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return new String(written, 0, count); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(byte[], int, int) 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write$BII() throws IOException { 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os = new BufferedOutputStream(baos = new ByteArrayOutputStream(), 512); 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.write(fileString.getBytes(), 0, 500); 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais = new ByteArrayInputStream(baos.toByteArray()); 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 0, bais.available()); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.flush(); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais = new ByteArrayInputStream(baos.toByteArray()); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 500, bais.available()); 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.write(fileString.getBytes(), 500, 513); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais = new ByteArrayInputStream(baos.toByteArray()); 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Bytes not written when buffer full", 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais.available() >= 1000); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] wbytes = new byte[1013]; 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais.read(wbytes, 0, 1013); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect bytes written", new String(wbytes, 0, 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes wbytes.length), fileString.substring(0, 1013)); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // regression test for HARMONY-4177 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MockOutputStream mos = new MockOutputStream(5); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream bos = new BufferedOutputStream(mos, 3); 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write("a".getBytes()); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write("bcde".getBytes()); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Large data should be written directly", "abcde", mos 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getWritten()); 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mos = new MockOutputStream(4); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos = new BufferedOutputStream(mos, 3); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write("ab".getBytes()); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write("cd".getBytes()); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Should flush before write", "ab", mos.getWritten()); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(byte[], int, int) 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_$BII_Exception() throws IOException { 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes OutputStream bos = new BufferedOutputStream(new ByteArrayOutputStream()); 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] nullByteArray = null; 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] byteArray = new byte[10]; 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, -1); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, 0); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, 1); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, -1); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, 0); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, 1); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, -1); 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, 0); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, 1); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, -1); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, 0); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, 1); 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, -1); 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, byteArray.length + 1); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, byteArray.length); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, byteArray.length); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length, -1); 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length, 0); 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length, 1); 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, 0); 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, 1); 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, byteArray.length - 1); 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, byteArray.length); 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, -1); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, 0); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, 1); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length, 0); 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length + 1, 0); 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length + 1, 1); 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.close(); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, -1); 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(); 3322a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IOException expected) { 3332a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IndexOutOfBoundsException expected) { 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(null, -1, -1); 3382a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes fail(); 3392a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IOException expected) { 3402a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (NullPointerException expected) { 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(null, 0, 1); 3452a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes fail(); 3462a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IOException expected) { 3472a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (NullPointerException expected) { 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(byte[], int, int) 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_$BII_NullStream_NullArray() throws IOException { 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes OutputStream bos = new BufferedOutputStream(null); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] nullByteArray = null; 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, -1); 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, -1); 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, -1); 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, 0); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, 0); 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, 0); 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, 1); 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, 1); 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, 1); 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(byte[], int, int) 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_$BII_NullStream_NullArray_Size() throws IOException { 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes OutputStream bos = new BufferedOutputStream(null, 1); 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] nullByteArray = null; 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, -1); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, -1); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, -1); 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, 0); 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, 0); 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, 0); 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, -1, 1); 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 0, 1); 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(nullByteArray, 1, 1); 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(byte[], int, int) 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_$BII_NullStream() throws IOException { 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream bos = new BufferedOutputStream(null); 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] byteArray = new byte[10]; 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, -1); 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, -1); 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, -1); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, 0); 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, 0); 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, 0); 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length, 0); 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length + 1, 0); 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, 1); 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, 1); 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, 1); 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, byteArray.length); 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length + 1, 1); 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(byte[], int, int) 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_$BII_NullStream_Size() throws IOException { 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream bos = new BufferedOutputStream(null, 1); 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] byteArray = new byte[10]; 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, -1); 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, -1); 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, -1); 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, 0); 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, 0); 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, 0); 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length, 0); 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length + 1, 0); 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ArrayIndexOutOfBoundsException"); 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ArrayIndexOutOfBoundsException e) { 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, -1, 1); 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, 1); 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 0, byteArray.length); 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, 1, 1); 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.write(byteArray, byteArray.length + 1, 1); 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.io.BufferedOutputStream#write(int) 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_writeI() throws IOException { 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baos = new java.io.ByteArrayOutputStream(); 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os = new java.io.BufferedOutputStream(baos); 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.write('t'); 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais = new java.io.ByteArrayInputStream(baos.toByteArray()); 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Byte written, not buffered", 0, bais.available()); 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.flush(); 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais = new java.io.ByteArrayInputStream(baos.toByteArray()); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Byte not written after flush", 1, bais.available()); 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] wbytes = new byte[1]; 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais.read(wbytes, 0, 1); 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect byte written", 't', wbytes[0]); 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_Close() throws IOException { 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream buffos = new BufferedOutputStream( 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ByteArrayOutputStream()); 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(new byte[0]); 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(null); 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] buffer = "1234567890".getBytes(); 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(Integer.MIN_VALUE); 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(Integer.MAX_VALUE); 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 10); 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.close(); 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_Scenario1() throws IOException { 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayOutputStream byteArrayos = new ByteArrayOutputStream(); 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayInputStream byteArrayis = null; 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] buffer = "1234567890".getBytes("UTF-8"); 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream buffos = new BufferedOutputStream(byteArrayos, 10); 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 10); 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 10, byteArrayis.available()); 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 10, byteArrayis 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 10); 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 20, byteArrayis.available()); 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 20, byteArrayis 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 10); 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 30, byteArrayis.available()); 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 30, byteArrayis 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_Scenario2() throws IOException { 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayOutputStream byteArrayos = new ByteArrayOutputStream(); 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayInputStream byteArrayis = null; 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] buffer = "1234567890".getBytes("UTF-8"); 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream buffos = new BufferedOutputStream(byteArrayos, 20); 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 10); 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 0, byteArrayis.available()); 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 10, byteArrayis 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] buffer2 = new byte[] { 'a', 'b', 'c', 'd' }; 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer2, 0, 4); 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 10, byteArrayis.available()); 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 14, byteArrayis 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 4; i++) { 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer2[i], byteArrayis.read()); 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] buffer3 = new byte[] { 'e', 'f', 'g', 'h', 'i' }; 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer3, 0, 5); 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 14, byteArrayis.available()); 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 19, byteArrayis 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 10; i++) { 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 4; i++) { 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer2[i], byteArrayis.read()); 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 5; i++) { 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer3[i], byteArrayis.read()); 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(new byte[] { 'j', 'k' }); 782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 19, byteArrayis.available()); 784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 21, byteArrayis 787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.close(); 790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_write_Scenario3() throws IOException { 793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayOutputStream byteArrayos = new ByteArrayOutputStream(); 794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayInputStream byteArrayis = null; 795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] buffer = "1234567890".getBytes("UTF-8"); 796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedOutputStream buffos = new BufferedOutputStream(byteArrayos, 5); 798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 4); 799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 0, byteArrayis.available()); 801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 4, byteArrayis 804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 4; i++) { 806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.write(buffer, 0, 5); 810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes written, not buffered", 9, byteArrayis.available()); 812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffos.flush(); 813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byteArrayis = new ByteArrayInputStream(byteArrayos.toByteArray()); 814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes not written after flush", 9, byteArrayis 815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .available()); 816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 4; i++) { 817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 5; i++) { 820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buffer[i], byteArrayis.read()); 821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for flush on closed stream 825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_flush_on_closed_stream() throws IOException { 8262a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes BufferedOutputStream bos = new BufferedOutputStream(new ByteArrayOutputStream()); 827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bos.close(); 8282a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes try { 8292a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes bos.flush(); // RI does not throw exception 8302a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IOException expected) { // but Android does 8312a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } 832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tears down the fixture, for example, close a network connection. This 836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method is called after a test is executed. 837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() throws IOException { 839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (bais != null) { 840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes bais.close(); 841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (os != null) { 843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes os.close(); 844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (baos != null) { 846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baos.close(); 847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 850