FilterOutputStreamTest.java revision 89c1feb0a69a7707b271086e749975b3f7acacf7
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18package tests.api.java.io; 19 20import dalvik.annotation.TestInfo; 21import dalvik.annotation.TestLevel; 22import dalvik.annotation.TestTarget; 23import dalvik.annotation.TestTargetClass; 24 25@TestTargetClass(java.io.FilterOutputStream.class) 26public class FilterOutputStreamTest extends junit.framework.TestCase { 27 28 private java.io.OutputStream os; 29 30 java.io.ByteArrayOutputStream bos; 31 32 java.io.ByteArrayInputStream bis; 33 34 byte[] ibuf = new byte[4096]; 35 36 public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_java_io_FileOutputStream\nTest_java_io_FilterInputStream\nTest_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"; 37 38 /** 39 * @tests java.io.FilterOutputStream#FilterOutputStream(java.io.OutputStream) 40 */ 41 @TestInfo( 42 level = TestLevel.COMPLETE, 43 purpose = "Verifies FilterOutputStream(java.io.OutputStream) constructor.", 44 targets = { @TestTarget(methodName = "FilterOutputStream", 45 methodArgs = {java.io.OutputStream.class}) 46 } 47 ) 48 public void test_ConstructorLjava_io_OutputStream() { 49 // Test for method java.io.FilterOutputStream(java.io.OutputStream) 50 try { 51 bos = new java.io.ByteArrayOutputStream(); 52 os = new java.io.FilterOutputStream(bos); 53 os.write('t'); 54 } catch (java.io.IOException e) { 55 fail("Constructor test failed : " + e.getMessage()); 56 } 57 } 58 59 /** 60 * @tests java.io.FilterOutputStream#close() 61 */ 62 @TestInfo( 63 level = TestLevel.PARTIAL, 64 purpose = "IOException checking missed.", 65 targets = { @TestTarget(methodName = "close", 66 methodArgs = {}) 67 } 68 ) 69 public void test_close() { 70 // Test for method void java.io.FilterOutputStream.close() 71 try { 72 bos = new java.io.ByteArrayOutputStream(); 73 os = new java.io.FilterOutputStream(bos); 74 os.write(fileString.getBytes(), 0, 500); 75 os.flush(); 76 assertEquals("Bytes not written after flush", 500, bos.size()); 77 os.close(); 78 } catch (java.io.IOException e) { 79 fail("Close test failed : " + e.getMessage()); 80 } 81 } 82 83 /** 84 * @tests java.io.FilterOutputStream#flush() 85 */ 86 @TestInfo( 87 level = TestLevel.PARTIAL, 88 purpose = "IOException checking missed.", 89 targets = { @TestTarget(methodName = "flush", 90 methodArgs = {}) 91 } 92 ) 93 public void test_flush() { 94 // Test for method void java.io.FilterOutputStream.flush() 95 try { 96 bos = new java.io.ByteArrayOutputStream(); 97 os = new java.io.FilterOutputStream(bos); 98 os.write(fileString.getBytes(), 0, 500); 99 os.flush(); 100 assertEquals("Bytes not written after flush", 500, bos.size()); 101 os.close(); 102 } catch (java.io.IOException e) { 103 fail("Flush test failed : " + e.getMessage()); 104 } 105 } 106 107 /** 108 * @tests java.io.FilterOutputStream#write(byte[]) 109 */ 110 @TestInfo( 111 level = TestLevel.PARTIAL, 112 purpose = "IOException checking missed.", 113 targets = { @TestTarget(methodName = "write", 114 methodArgs = {byte[].class}) 115 } 116 ) 117 118 public void test_write$B() { 119 // Test for method void java.io.FilterOutputStream.write(byte []) 120 try { 121 bos = new java.io.ByteArrayOutputStream(); 122 os = new java.io.FilterOutputStream(bos); 123 os.write(fileString.getBytes()); 124 bis = new java.io.ByteArrayInputStream(bos.toByteArray()); 125 os.flush(); 126 assertTrue("Bytes not written after flush", 127 bis.available() == fileString.length()); 128 byte[] wbytes = new byte[fileString.length()]; 129 bis.read(wbytes, 0, fileString.length()); 130 assertTrue("Incorrect bytes written", fileString.equals(new String( 131 wbytes, 0, wbytes.length))); 132 } catch (java.io.IOException e) { 133 fail("Write test failed : " + e.getMessage()); 134 } 135 } 136 137 /** 138 * @tests java.io.FilterOutputStream#write(byte[], int, int) 139 */ 140 @TestInfo( 141 level = TestLevel.PARTIAL, 142 purpose = "IOException checking missed.", 143 targets = { @TestTarget(methodName = "write", 144 methodArgs = {byte[].class, int.class, int.class}) 145 } 146 ) 147 public void test_write$BII() { 148 // Test for method void java.io.FilterOutputStream.write(byte [], int, 149 // int) 150 try { 151 bos = new java.io.ByteArrayOutputStream(); 152 os = new java.io.FilterOutputStream(bos); 153 os.write(fileString.getBytes(), 0, fileString.length()); 154 bis = new java.io.ByteArrayInputStream(bos.toByteArray()); 155 os.flush(); 156 assertTrue("Bytes not written after flush", 157 bis.available() == fileString.length()); 158 byte[] wbytes = new byte[fileString.length()]; 159 bis.read(wbytes, 0, fileString.length()); 160 assertTrue("Incorrect bytes written", fileString.equals(new String( 161 wbytes, 0, wbytes.length))); 162 } catch (java.io.IOException e) { 163 fail("Write test failed : " + e.getMessage()); 164 } 165 } 166 167 /** 168 * @tests java.io.FilterOutputStream#write(int) 169 */ 170 @TestInfo( 171 level = TestLevel.PARTIAL, 172 purpose = "IOException checking missed.", 173 targets = { @TestTarget(methodName = "write", 174 methodArgs = {int.class}) 175 } 176 ) 177 public void test_writeI() { 178 // Test for method void java.io.FilterOutputStream.write(int) 179 try { 180 bos = new java.io.ByteArrayOutputStream(); 181 os = new java.io.FilterOutputStream(bos); 182 os.write('t'); 183 bis = new java.io.ByteArrayInputStream(bos.toByteArray()); 184 os.flush(); 185 assertEquals("Byte not written after flush", 1, bis.available()); 186 byte[] wbytes = new byte[1]; 187 bis.read(wbytes, 0, 1); 188 assertEquals("Incorrect byte written", 't', wbytes[0]); 189 } catch (java.io.IOException e) { 190 fail("Write test failed : " + e.getMessage()); 191 } 192 } 193 194 /** 195 * Sets up the fixture, for example, open a network connection. This method 196 * is called before a test is executed. 197 */ 198 protected void setUp() { 199 } 200 201 /** 202 * Tears down the fixture, for example, close a network connection. This 203 * method is called after a test is executed. 204 */ 205 protected void tearDown() { 206 try { 207 if (bos != null) 208 bos.close(); 209 if (bis != null) 210 bis.close(); 211 if (os != null) 212 os.close(); 213 } catch (Exception e) { 214 } 215 } 216} 217