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 Projectpackage tests.api.java.io;
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream;
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayOutputStream;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.DataInputStream;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.DataOutputStream;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.EOFException;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.Support_ASimpleInputStream;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(DataInputStream.class)
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class DataInputStreamTest extends junit.framework.TestCase {
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private DataOutputStream os;
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private DataInputStream dis;
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private ByteArrayOutputStream bos;
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String unihw = "\u0048\u0065\u006C\u006C\u006F\u0020\u0057\u006F\u0072\u006C\u0064";
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_DataInputStream\n";
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private final int testLength = fileString.length();
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#DataInputStream(java.io.InputStream)
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Verifies DataInputStream(java.io.InputStream) constructor.",
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "DataInputStream",
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.InputStream.class}
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_io_InputStream() {
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.io.DataInputStream(java.io.InputStream)
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.writeChar('t');
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.close();
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            openDataInputStream();
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException during constructor test : " + e.getMessage());
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } finally {
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                dis.close();
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (IOException e) {
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("IOException during constructor test : " + e.getMessage());
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#read(byte[])
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "read",
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class}
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_read$B() throws IOException {
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[testLength - 5];
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Support_ASimpleInputStream sis = new Support_ASimpleInputStream();
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int r;
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write(fileString.getBytes());
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        r = dis.read(rbytes);
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 1: Incorrect number of bytes read;",
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                testLength - 5, r);
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 2: Incorrect data written or read.",
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes).equals(fileString.substring(0, testLength - 5)));
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        r = dis.read(rbytes);
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 3: Incorrect number of bytes read;", 5, r);
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 4: Incorrect data written or read.",
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes, 0, 5).equals(fileString.substring(testLength - 5)));
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sis.throwExceptionOnNextUse = true;
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis = new DataInputStream(sis);
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.read(rbytes);
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 5: IOException expected.");
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#read(byte[], int, int)
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "read",
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_read$BII() throws IOException {
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[testLength - 5];
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Support_ASimpleInputStream sis = new Support_ASimpleInputStream();
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int r;
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write(fileString.getBytes());
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        r = dis.read(rbytes, 1, testLength - 10);
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 1: Incorrect number of bytes read;",
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                testLength - 10, r);
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 2: Incorrect data read.", 0, rbytes[0]);
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 3: Incorrect data written or read.",
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes, 1, r).equals(fileString.substring(0, r)));
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        r = dis.read(rbytes, 0, 15);
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 3: Incorrect number of bytes read;", 10, r);
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 4: Incorrect data written or read.",
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes, 0, r).equals(fileString.substring(testLength - 10)));
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sis.throwExceptionOnNextUse = true;
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis = new DataInputStream(sis);
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.read(rbytes, 1, 5);
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 5: IOException expected.");
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#read(byte[], int, int)
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "read",
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_read$BII_Exception() throws IOException {
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[testLength - 5];
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write(fileString.getBytes());
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.read(rbytes, -1, 1);
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException expected.");
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.read(rbytes, 0, -1);
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException expected.");
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.read(rbytes, rbytes.length, 1);
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException expected.");
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readFully(byte[])
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "readFully",
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class}
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readFully$B() throws IOException {
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[testLength];
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write(fileString.getBytes());
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.readFully(rbytes);
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 1: Incorrect data written or read.",
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes, 0, testLength).equals(fileString));
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readFully(rbytes);
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 2: IOException expected.");
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.readByte();
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readFully(rbytes);
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 3: EOFException expected.");
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (EOFException e) {
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readFully(byte[], int, int)
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Verifies everything except illegal argument values.",
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "readFully",
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readFully$BII() throws IOException {
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[testLength];
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write(fileString.getBytes());
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.readFully(rbytes, 2, testLength - 4);
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 1: Incorrect data written or read.",
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes, 2, testLength - 4).equals(
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        fileString.substring(0, testLength - 4)));
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readFully(rbytes, 0, testLength);
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 2: IOException expected.");
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.readByte();
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readFully(rbytes, 0, testLength);
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 3: EOFException expected.");
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (EOFException e) {
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readFully(byte[], int, int)
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Verifies that exceptions are thrown for illegal arguments.",
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "readFully",
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readFully$BII_Exception() throws IOException {
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        DataInputStream is =  new DataInputStream(new ByteArrayInputStream(new byte[testLength]));
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] byteArray = new byte[testLength];
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.readFully(byteArray, 0, -1);
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 1: IndexOutOfBoundsException expected.");
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.readFully(byteArray, 0, byteArray.length + 1);
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 2: IndexOutOfBoundsException expected.");
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.readFully(byteArray, 1, byteArray.length);
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 3: IndexOutOfBoundsException expected.");
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.readFully(byteArray, -1, byteArray.length);
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 4: IndexOutOfBoundsException expected.");
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.readFully(null, 0, 1);
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 5: NullPointerException expected.");
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        is = new DataInputStream(null);
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.readFully(byteArray, 0, 1);
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 6: NullPointerException expected.");
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readLine()
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @SuppressWarnings("deprecation")
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "readLine",
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readLine() throws IOException {
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String line;
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.writeBytes("Lorem\nipsum\rdolor sit amet...");
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        line = dis.readLine();
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 1: Incorrect line written or read: " + line,
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                line.equals("Lorem"));
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        line = dis.readLine();
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 2: Incorrect line written or read: " + line,
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                line.equals("ipsum"));
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        line = dis.readLine();
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 3: Incorrect line written or read: " + line,
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                line.equals("dolor sit amet..."));
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readLine();
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 4: IOException expected.");
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readUnsignedByte()
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "readUnsignedByte",
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readUnsignedByte() throws IOException {
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.writeByte((byte) -127);
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 1: Incorrect byte written or read;",
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                129, dis.readUnsignedByte());
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readUnsignedByte();
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 2: EOFException expected.");
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (EOFException e) {
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readUnsignedByte();
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 3: IOException expected.");
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readUnsignedShort()
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "readUnsignedShort",
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readUnsignedShort() throws IOException {
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.writeShort(Short.MIN_VALUE);
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Test 1: Incorrect short written or read;",
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                (Short.MAX_VALUE + 1), dis.readUnsignedShort());
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readUnsignedShort();
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 2: EOFException expected.");
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (EOFException e) {
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.readUnsignedShort();
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 3: IOException expected.");
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#readUTF(java.io.DataInput)
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "readUTF",
424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {java.io.DataInput.class}
425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_readUTFLjava_io_DataInput() throws IOException {
427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.writeUTF(unihw);
428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        openDataInputStream();
430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 1: Incorrect UTF-8 string written or read.",
431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                DataInputStream.readUTF(dis).equals(unihw));
432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            DataInputStream.readUTF(dis);
435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 2: EOFException expected.");
436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (EOFException e) {
437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis.close();
441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            DataInputStream.readUTF(dis);
443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Test 3: IOException expected.");
444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Expected.
446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.DataInputStream#skipBytes(int)
451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "skipBytes",
455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_skipBytesI() {
458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method int java.io.DataInputStream.skipBytes(int)
459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            byte fileBytes[] = fileString.getBytes();
461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.write(fileBytes);
462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.close();
463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            openDataInputStream();
464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.skipBytes(100);
465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            byte rbytes[] = new byte[testLength];
466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.read(rbytes, 0, 50);
467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.close();
468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("Incorrect data read", new String(rbytes, 0, 50)
469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .equals(fileString.substring(100, 150)));
470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException during skipBytes test 1 : " + e.getMessage());
472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // boolean eofException = false; //what is this var for?
475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            int skipped = 0;
476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            openDataInputStream();
477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                skipped = dis.skipBytes(50000);
479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (EOFException e) {
480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                // eofException = true;
481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            ;
483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue("Skipped should report " + testLength + " not "
484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    + skipped, skipped == testLength);
485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException during skipBytes test 2 : " + e.getMessage());
487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private void openDataInputStream() throws IOException {
491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        dis = new DataInputStream(new ByteArrayInputStream(bos.toByteArray()));
492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is called before a test is executed.
497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() {
499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bos = new ByteArrayOutputStream();
500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os = new DataOutputStream(bos);
501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * method is called after a test is executed.
506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() {
508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.close();
510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            dis.close();
514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
518