1935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson/*
2935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  Licensed to the Apache Software Foundation (ASF) under one or more
3935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  contributor license agreements.  See the NOTICE file distributed with
4935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  this work for additional information regarding copyright ownership.
5935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  The ASF licenses this file to You under the Apache License, Version 2.0
6935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  (the "License"); you may not use this file except in compliance with
7935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  the License.  You may obtain a copy of the License at
8935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *
9935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
10935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *
11935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  Unless required by applicable law or agreed to in writing, software
12935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  distributed under the License is distributed on an "AS IS" BASIS,
13935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  See the License for the specific language governing permissions and
15935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *  limitations under the License.
16935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */
17935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io;
19935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
20935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.ByteArrayInputStream;
21935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.DataInputStream;
22935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.DataOutputStream;
23935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.EOFException;
24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.IOException;
25935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport tests.support.Support_OutputStream;
26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
27935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldDataInputOutputStreamTest extends junit.framework.TestCase {
28935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
29935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private DataOutputStream os;
30935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
31935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private DataInputStream dis;
32935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
33935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private Support_OutputStream sos;
34935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
35935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    String unihw = "\u0048\u0065\u006C\u006C\u006F\u0020\u0057\u006F\u0072\u006C\u0064";
36935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
37935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeBoolean() throws IOException {
38935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeBoolean(true);
39935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
40935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
41935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeBoolean(false);
42935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
43935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
44935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
45935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
46935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
47935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
48935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
49935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
50935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 2: Incorrect boolean written or read.",
51935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                dis.readBoolean());
52935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
53935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
54935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readBoolean();
55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: EOFException expected.");
56935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
57935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
58935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
59935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
60935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
61935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
62935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readBoolean();
63935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: IOException expected.");
64935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
65935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
66935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
67935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
68935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
69935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeByte() throws IOException {
70935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeByte((byte) 127);
71935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
72935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
73935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeByte((byte) 127);
74935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
75935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
76935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
77935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
78935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
79935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
80935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
81935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
82935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 2: Incorrect byte written or read;",
83935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                (byte) 127, dis.readByte());
84935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
85935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
86935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readByte();
87935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: EOFException expected.");
88935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
89935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
90935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
91935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
92935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
93935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
94935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readByte();
95935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: IOException expected.");
96935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
97935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
98935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
99935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
100935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
101935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeChar() throws IOException {
102935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeChar('b');
103935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
104935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
105935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeChar('k');
106935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
107935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
108935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
109935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
110935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
111935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
112935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
113935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
114935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 2: Incorrect char written or read;",
115935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                'b', dis.readChar());
116935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
117935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
118935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readChar();
119935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: EOFException expected.");
120935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
121935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
122935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
123935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
124935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
125935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
126935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readChar();
127935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: IOException expected.");
128935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
129935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
130935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
131935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
132935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
133935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeDouble() throws IOException {
134935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeDouble(2345.76834720202);
135935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
136935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
137935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeDouble(2345.76834720202);
138935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
139935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
140935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
141935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
142935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
143935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
144935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
145935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
146935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect double written or read;",
147935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                2345.76834720202, dis.readDouble());
148935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
149935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
150935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readDouble();
151935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
152935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
153935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
154935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
155935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
156935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
157935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
158935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readDouble();
159935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
160935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
161935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
162935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
163935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
164935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
165935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeFloat() throws IOException {
166935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeFloat(29.08764f);
167935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
168935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
169935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeFloat(29.08764f);
170935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
171935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
172935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
173935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
174935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
175935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
176935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
177935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
178935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 2: Incorrect float written or read;",
179935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                29.08764f, dis.readFloat());
180935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
181935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
182935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readFloat();
183935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: EOFException expected.");
184935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
185935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
186935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
187935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
188935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
189935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
190935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readFloat();
191935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: IOException expected.");
192935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
193935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
194935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
195935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
196935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
197935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeInt() throws IOException {
198935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeInt(768347202);
199935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
200935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
201935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeInt(768347202);
202935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
203935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
204935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
205935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
206935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
207935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
208935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
209935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
210935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect int written or read;",
211935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                768347202, dis.readInt());
212935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
213935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
214935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readInt();
215935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
216935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
217935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
218935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
219935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
220935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
221935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
222935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readInt();
223935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
224935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
225935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
226935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
227935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
228935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
229935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeLong() throws IOException {
230935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeLong(9875645283333L);
231935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
232935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
233935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeLong(9875645283333L);
234935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
235935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
236935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
237935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
238935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
239935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
240935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
241935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
242935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 2: Incorrect long written or read;",
243935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                9875645283333L, dis.readLong());
244935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
245935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
246935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readLong();
247935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: EOFException expected.");
248935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
249935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
250935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
251935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
252935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
253935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
254935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readLong();
255935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: IOException expected.");
256935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
257935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
258935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
259935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
260935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
261935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeShort() throws IOException {
262935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeShort(9875);
263935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
264935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
265935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeShort(9875);
266935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
267935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
268935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
269935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
270935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
271935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
272935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
273935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
274935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect short written or read;",
275935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                9875, dis.readShort());
276935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
277935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
278935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readShort();
279935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
280935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
281935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
282935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
283935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
284935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
285935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
286935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readShort();
287935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
288935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
289935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
290935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
291935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
292935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
293935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeUTF() throws IOException {
294935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeUTF(unihw);
295935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
296935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
297935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.writeUTF(unihw);
298935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IOException expected.");
299935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
300935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
301935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
302935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(false);
303935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
304935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
305935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openDataInputStream();
306935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 1: Incorrect UTF-8 string written or read.",
307935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                dis.readUTF().equals(unihw));
308935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
309935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
310935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readUTF();
311935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
312935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
313935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
314935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
315935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
316935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis.close();
317935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
318935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.readUTF();
319935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
320935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
321935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
322935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
323935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
324935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
325935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private void openDataInputStream() throws IOException {
326935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        dis = new DataInputStream(new ByteArrayInputStream(sos.toByteArray()));
327935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
328935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
329935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    protected void setUp() {
330935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos = new Support_OutputStream(256);
331935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os = new DataOutputStream(sos);
332935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
333935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
334935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    protected void tearDown() {
335935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
336935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.close();
337935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (Exception e) {
338935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
339935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
340935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            dis.close();
341935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (Exception e) {
342935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
343935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
344935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson}
345