1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.io; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(ByteArrayInputStream.class) 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class ByteArrayInputStreamTest extends junit.framework.TestCase { 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private ByteArrayInputStream is; 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\n"; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#ByteArrayInputStream(byte[]) 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "ByteArrayInputStream", 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {byte[].class} 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor$B() { 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.io.ByteArrayInputStream(byte []) 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project java.io.InputStream bis = new java.io.ByteArrayInputStream(fileString 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getBytes()); 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Unable to create ByteArrayInputStream", 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project bis.available() == fileString.length()); 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("Exception during Constructor test"); 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#ByteArrayInputStream(byte[], int, 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * int) 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "ByteArrayInputStream", 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {byte[].class, int.class, int.class} 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor$BII() throws IOException { 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.io.ByteArrayInputStream(byte [], int, int) 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] zz = fileString.getBytes(); 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project java.io.InputStream bis = new java.io.ByteArrayInputStream(zz, 0, 100); 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Unable to create ByteArrayInputStream", 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 100, bis.available()); 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during Constructor test"); 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression test for Harmony-2405 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new SubByteArrayInputStream(new byte[] { 1, 2 }, 444, 13); 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(444, SubByteArrayInputStream.pos); 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(444, SubByteArrayInputStream.mark); 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, SubByteArrayInputStream.count); 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class SubByteArrayInputStream extends ByteArrayInputStream { 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static byte[] buf; 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static int mark, pos, count; 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SubByteArrayInputStream(byte[] buf, int offset, int length) 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(buf, offset, length); 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project buf = super.buf; 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project mark = super.mark; 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pos = super.pos; 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project count = super.count; 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#available() 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Verifies available() method.", 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "available", 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_available() { 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method int java.io.ByteArrayInputStream.available() 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Returned incorrect number of available bytes", is 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .available() == fileString.length()); 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during available test"); 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#close() 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "close", 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_close() { 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(); 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.close(); 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (java.io.IOException e) { 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Test 1: Failed to close the input stream."); 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(); 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Test 2: Should be able to read from closed stream."); 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#mark(int) 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Verifies mark(int readAheadLimit) method.", 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "mark", 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_markI() { 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void java.io.ByteArrayInputStream.mark(int) 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] buf1 = new byte[100]; 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] buf2 = new byte[100]; 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.skip(3000); 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.mark(1000); 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1, 0, buf1.length); 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.reset(); 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf2, 0, buf2.length); 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.reset(); 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to mark correct position", new String(buf1, 0, 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project buf1.length).equals(new String(buf2, 0, buf2.length))); 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during mark test"); 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#markSupported() 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Verifies markSupported() method.", 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "markSupported", 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_markSupported() { 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method boolean java.io.ByteArrayInputStream.markSupported() 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("markSupported returned incorrect value", is.markSupported()); 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#read() 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Verifies read() method.", 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "read", 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_read() { 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method int java.io.ByteArrayInputStream.read() 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int c = is.read(); 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.reset(); 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("read returned incorrect char", c == fileString 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .charAt(0)); 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during read test"); 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#read(byte[], int, int) 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "read", 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {byte[].class, int.class, int.class} 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_read$BII() throws IOException { 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] buf1 = new byte[20]; 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.skip(50); 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.mark(100); 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1, 0, buf1.length); 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Test 1: Failed to read correct data.", 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new String(buf1, 0, buf1.length).equals( 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fileString.substring(50, 70))); 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Illegal argument checks. 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(null, 1, 0); 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Test 2: NullPointerException expected."); 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected. 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1 , -1, 1); 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Test 3: IndexOutOfBoundsException expected."); 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IndexOutOfBoundsException e) { 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1 , 1, -1); 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Test 4: IndexOutOfBoundsException expected."); 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IndexOutOfBoundsException e) { 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1, 1, buf1.length); 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Test 5: IndexOutOfBoundsException expected."); 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IndexOutOfBoundsException e) { 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#reset() 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "The test verifies reset() method.", 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "reset", 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_reset() { 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void java.io.ByteArrayInputStream.reset() 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] buf1 = new byte[10]; 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] buf2 = new byte[10]; 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.mark(200); 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1, 0, 10); 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.reset(); 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf2, 0, 10); 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.reset(); 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Reset failed", new String(buf1, 0, buf1.length) 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .equals(new String(buf2, 0, buf2.length))); 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during reset test : " + e.getMessage()); 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.io.ByteArrayInputStream#skip(long) 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "skip", 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {long.class} 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_skipJ() { 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method long java.io.ByteArrayInputStream.skip(long) 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] buf1 = new byte[10]; 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.skip(100); 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.read(buf1, 0, buf1.length); 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to skip to correct position", new String(buf1, 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 0, buf1.length).equals(fileString.substring(100, 110))); 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during skip test : " + e.getMessage()); 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * is called before a test is executed. 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() { 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is = new java.io.ByteArrayInputStream(fileString.getBytes()); 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tears down the fixture, for example, close a network connection. This 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method is called after a test is executed. 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void tearDown() { 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.close(); 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 326