1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayOutputStream; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FilterOutputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_OutputStream; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldFilterOutputStreamTest extends junit.framework.TestCase { 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private java.io.FilterOutputStream os; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project java.io.ByteArrayOutputStream bos; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project java.io.ByteArrayInputStream bis; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] ibuf = new byte[4096]; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private final 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_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"; 37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private final int testLength = fileString.length(); 39f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_io_OutputStream() { 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.io.FilterOutputStream(java.io.OutputStream) 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bos = new ByteArrayOutputStream(); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(bos); 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write('t'); 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (java.io.IOException e) { 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Constructor test failed : " + e.getMessage()); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_close() throws IOException { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_OutputStream sos = new Support_OutputStream(); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.close(); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(42); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (java.io.IOException e) { 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: Unexpected IOException."); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sos.setThrowsException(true); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(42); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (java.io.IOException e) { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.close(); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IOException expected."); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_flush() throws IOException { 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_OutputStream sos = new Support_OutputStream(550); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(fileString.getBytes(), 0, 500); 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.flush(); 85f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Bytes not written after flush;", 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 500, sos.size()); 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sos.setThrowsException(true); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.flush(); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sos.setThrowsException(false); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_write$B() throws IOException { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_OutputStream sos = new Support_OutputStream(testLength); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(fileString.getBytes()); 102f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis = new ByteArrayInputStream(sos.toByteArray()); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Bytes have not been written.", 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis.available() == testLength); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] wbytes = new byte[testLength]; 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis.read(wbytes, 0, testLength); 108f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 2: Incorrect bytes written or read.", 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fileString.equals(new String(wbytes))); 110f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Support_OutputStream throws an IOException if the internal 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // buffer is full, which it should be now. 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(42); 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_write$BII() throws IOException { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_OutputStream sos = new Support_OutputStream(testLength); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(fileString.getBytes(), 10, testLength - 10); 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis = new ByteArrayInputStream(sos.toByteArray()); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Bytes have not been written.", 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis.available() == testLength - 10); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] wbytes = new byte[testLength - 10]; 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis.read(wbytes); 131f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 2: Incorrect bytes written or read.", 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fileString.substring(10).equals(new String(wbytes))); 133f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Support_OutputStream throws an IOException if the internal 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // buffer is full, which it should be eventually. 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(fileString.getBytes()); 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_write$BII_Exception() throws IOException { 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_OutputStream sos = new Support_OutputStream(testLength); 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] buf = new byte[10]; 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(buf, -1, 1); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected."); 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(buf, 0, -1); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected."); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 161f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(buf, 10, 1); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IndexOutOfBoundsException expected."); 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 168f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_writeI() throws IOException { 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_OutputStream sos = new Support_OutputStream(1); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os = new FilterOutputStream(sos); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(42); 175f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis = new ByteArrayInputStream(sos.toByteArray()); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Byte has not been written.", 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis.available() == 1); 179f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect byte written or read;", 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 42, bis.read()); 181f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Support_OutputStream throws an IOException if the internal 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // buffer is full, which it should be now. 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.write(42); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() { 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (bos != null) 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bos.close(); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (bis != null) 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bis.close(); 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (os != null) 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project os.close(); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 204