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 Wilsonpackage libcore.java.io;
18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
19935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.ByteArrayInputStream;
20935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.EOFException;
21935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.IOException;
22935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.ObjectInputStream;
23935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.ObjectOutputStream;
24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport tests.support.Support_OutputStream;
25935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldObjectInputOutputStreamTest extends junit.framework.TestCase {
27935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
28935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private ObjectOutputStream os;
29935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
30935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private ObjectInputStream is;
31935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
32935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private Support_OutputStream sos;
33935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
34935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    String unihw = "\u0048\u0065\u006C\u006C\u006F\u0020\u0057\u006F\u0072\u006C\u0064";
35935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
36935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeBoolean() throws IOException {
37935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeBoolean(true);
38935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
39935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
40935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
41935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 1: Incorrect boolean written or read.",
42935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                is.readBoolean());
43935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
44935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
45935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readBoolean();
46935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
47935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
48935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
49935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
50935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
51935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
52935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
53935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readBoolean();
54935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
56935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
57935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
58935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
59935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
60935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeByte() throws IOException {
61935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeByte((byte) 127);
62935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
63935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
64935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
65935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect byte written or read;",
66935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                (byte) 127, is.readByte());
67935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
68935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
69935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readByte();
70935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
71935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
72935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
73935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
74935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
75935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
76935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
77935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readByte();
78935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
79935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
80935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
81935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
82935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
83935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
84935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeChar() throws IOException {
85935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeChar('b');
86935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
87935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
88935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
89935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect char written or read;",
90935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                'b', is.readChar());
91935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
92935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
93935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readChar();
94935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
95935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
96935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
97935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
98935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
99935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
100935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
101935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readChar();
102935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
103935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
104935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
105935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
106935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
107935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
108935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeDouble() throws IOException {
109935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeDouble(2345.76834720202);
110935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
111935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
112935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
113935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect double written or read;",
114935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                2345.76834720202, is.readDouble());
115935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
116935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
117935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readDouble();
118935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
119935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
120935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
121935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
122935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
123935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
124935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
125935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readDouble();
126935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
127935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
128935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
129935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
130935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
131935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
132935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeFloat() throws IOException {
133935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeFloat(29.08764f);
134935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
135935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
136935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
137935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect float written or read;",
138935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                29.08764f, is.readFloat());
139935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
140935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
141935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readFloat();
142935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
143935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
144935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
145935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
146935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
147935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
148935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
149935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readFloat();
150935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
151935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
152935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
153935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
154935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
155935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
156935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeInt() throws IOException {
157935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeInt(768347202);
158935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
159935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
160935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
161935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect int written or read;",
162935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                768347202, is.readInt());
163935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
164935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
165935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readInt();
166935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
167935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
168935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
169935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
170935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
171935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
172935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
173935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readInt();
174935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
175935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
176935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
177935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
178935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
179935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
180935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeLong() throws IOException {
181935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeLong(9875645283333L);
182935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
183935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
184935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
185935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect long written or read;",
186935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                9875645283333L, is.readLong());
187935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
188935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
189935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readLong();
190935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
191935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
192935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
193935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
194935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
195935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
196935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
197935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readLong();
198935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
199935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
200935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
201935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
202935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
203935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
204935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeShort() throws IOException {
205935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeShort(9875);
206935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
207935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
208935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
209935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect short written or read;",
210935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                9875, is.readShort());
211935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
212935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
213935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readShort();
214935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
215935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
216935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
217935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
218935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
219935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
220935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
221935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readShort();
222935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
223935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
224935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
225935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
226935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
227935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
228935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_read_writeUTF() throws IOException {
229935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.writeUTF(unihw);
230935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
231935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os.close();
232935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        openObjectInputStream();
233935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 1: Incorrect UTF-8 string written or read.",
234935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                is.readUTF().equals(unihw));
235935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
236935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
237935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readUTF();
238935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: EOFException expected.");
239935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (EOFException e) {
240935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
241935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
242935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
243935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is.close();
244935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
245935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.readUTF();
246935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IOException expected.");
247935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
248935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
249935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
250935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
251935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
252935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    private void openObjectInputStream() throws IOException {
253935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        is = new ObjectInputStream(
254935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                new ByteArrayInputStream(sos.toByteArray()));
255935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
256935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
257935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    protected void setUp() throws IOException {
258935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos = new Support_OutputStream(256);
259935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        os = new ObjectOutputStream(sos);
260935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
261935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
262935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    protected void tearDown() {
263935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
264935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            os.close();
265935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (Exception e) {
266935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
267935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
268935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            is.close();
269935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (Exception e) {
270935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
271935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
272935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson}
273