1ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes/*
2ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  this work for additional information regarding copyright ownership.
5ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  (the "License"); you may not use this file except in compliance with
7ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  the License.  You may obtain a copy of the License at
8ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *
9ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *
11ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  Unless required by applicable law or agreed to in writing, software
12ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  See the License for the specific language governing permissions and
15ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes *  limitations under the License.
16ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes */
17ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.io;
19ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
20ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.BufferedReader;
21ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.ByteArrayInputStream;
22ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.CharArrayReader;
23ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.IOException;
24ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.InputStreamReader;
25ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.PipedReader;
26ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.Reader;
27ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport java.io.StringReader;
28ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
29ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport junit.framework.TestCase;
30ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughesimport tests.support.Support_StringReader;
31ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
32ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughespublic class BufferedReaderTest extends TestCase {
33ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
34ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	BufferedReader br;
35ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
36ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	String testString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_java_io_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_java_io_PrintStream\nTest_java_io_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_ClassNotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_Object\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_SocketException\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n";
37ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
38ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        /**
39ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes         * The spec says that BufferedReader.readLine() considers only "\r", "\n"
40ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes         * and "\r\n" to be line separators. We must not permit additional separator
41ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes         * characters.
42ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        */
43ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        public void test_readLine_IgnoresEbcdic85Characters() throws IOException {
44ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\u0085B", "A\u0085B");
45ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
46ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
47ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        public void test_readLine_Separators() throws IOException {
48ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\nB\nC", "A", "B", "C");
49ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\rB\rC", "A", "B", "C");
50ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\r\nB\r\nC", "A", "B", "C");
51ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\n\rB\n\rC", "A", "", "B", "", "C");
52ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\n\nB\n\nC", "A", "", "B", "", "C");
53ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\r\rB\r\rC", "A", "", "B", "", "C");
54ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\n\n", "A", "");
55ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\n\r", "A", "");
56ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\r\r", "A", "");
57ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\r\n", "A");
58ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertLines("A\r\n\r\n", "A", "");
59ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
60ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
61ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        private void assertLines(String in, String... lines) throws IOException {
62ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            BufferedReader bufferedReader
63ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes                = new BufferedReader(new Support_StringReader(in));
64ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            for (String line : lines) {
65ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes                assertEquals(line, bufferedReader.readLine());
66ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            }
67ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertNull(bufferedReader.readLine());
68ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
69ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
70ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
71ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#BufferedReader(java.io.Reader)
72ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
73ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_ConstructorLjava_io_Reader() {
74ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method java.io.BufferedReader(java.io.Reader)
75ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue("Used in tests", true);
76ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
77ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
78ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
79ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#BufferedReader(java.io.Reader, int)
80ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
81ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_ConstructorLjava_io_ReaderI() {
82ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method java.io.BufferedReader(java.io.Reader, int)
83ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue("Used in tests", true);
84ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
85ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
86ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
87ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#close()
88ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
89ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_close() {
90ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method void java.io.BufferedReader.close()
91ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
92ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
93ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.close();
94ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read();
95ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Read on closed stream");
96ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException x) {
97ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			return;
98ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
99ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
100ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
101ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
102ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#mark(int)
103ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
104ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_markI() throws IOException {
105ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method void java.io.BufferedReader.mark(int)
106ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		char[] buf = null;
107ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br = new BufferedReader(new Support_StringReader(testString));
108ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.skip(500);
109ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.mark(1000);
110ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.skip(250);
111ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.reset();
112ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		buf = new char[testString.length()];
113ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.read(buf, 0, 500);
114ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue("Failed to set mark properly", testString.substring(500,
115ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				1000).equals(new String(buf, 0, 500)));
116ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
117ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
118ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString), 800);
119ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.skip(500);
120ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.mark(250);
121ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(buf, 0, 1000);
122ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.reset();
123ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Failed to invalidate mark properly");
124ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException x) {
125ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		    // Expected
126ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
127ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
128ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		char[] chars = new char[256];
129ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		for (int i = 0; i < 256; i++)
130ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			chars[i] = (char) i;
131ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		Reader in = new BufferedReader(new Support_StringReader(new String(
132ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				chars)), 12);
133ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
134ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.skip(6);
135ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.mark(14);
136ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.read(new char[14], 0, 14);
137ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.reset();
138ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue("Wrong chars", in.read() == (char) 6
139ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				&& in.read() == (char) 7);
140ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
141ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in = new BufferedReader(new Support_StringReader(new String(chars)), 12);
142ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.skip(6);
143ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.mark(8);
144ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.skip(7);
145ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		in.reset();
146ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue("Wrong chars 2", in.read() == (char) 6
147ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				&& in.read() == (char) 7);
148ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
149ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        BufferedReader br = new BufferedReader(new StringReader("01234"), 2);
150ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.mark(3);
151ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        char[] carray = new char[3];
152ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        int result = br.read(carray);
153ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals(3, result);
154ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 0:", '0', carray[0]);
155ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 1:", '1', carray[1]);
156ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 2:", '2', carray[2]);
157ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 3:", '3', br.read());
158ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
159ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br = new BufferedReader(new StringReader("01234"), 2);
160ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.mark(3);
161ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        carray = new char[4];
162ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        result = br.read(carray);
163ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 4:", 4, result);
164ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 5:", '0', carray[0]);
165ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 6:", '1', carray[1]);
166ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 7:", '2', carray[2]);
167ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 8:", '3', carray[3]);
168ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 9:", '4', br.read());
169ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        assertEquals("Assert 10:", -1, br.read());
170ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
171ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        BufferedReader reader = new BufferedReader(new StringReader("01234"));
172ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        reader.mark(Integer.MAX_VALUE);
173ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        reader.read();
174ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        reader.close();
175ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
176ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
177ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
178ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#markSupported()
179ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
180ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_markSupported() {
181ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method boolean java.io.BufferedReader.markSupported()
182ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br = new BufferedReader(new Support_StringReader(testString));
183ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue("markSupported returned false", br.markSupported());
184ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
185ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
186ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
187ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#read()
188ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
189ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_read() throws IOException {
190ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method int java.io.BufferedReader.read()
191ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
192ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
193ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			int r = br.read();
194ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Char read improperly", testString.charAt(0) == r);
195ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(new String(
196ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					new char[] { '\u8765' })));
197ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Wrong double byte character", br.read() == '\u8765');
198ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (java.io.IOException e) {
199ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during read test");
200ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
201ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
202ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		char[] chars = new char[256];
203ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		for (int i = 0; i < 256; i++)
204ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			chars[i] = (char) i;
205ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		Reader in = new BufferedReader(new Support_StringReader(new String(
206ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				chars)), 12);
207ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
208ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertEquals("Wrong initial char", 0, in.read()); // Fill the
209ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// buffer
210ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			char[] buf = new char[14];
211ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			in.read(buf, 0, 14); // Read greater than the buffer
212ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Wrong block read data", new String(buf)
213ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					.equals(new String(chars, 1, 14)));
214ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertEquals("Wrong chars", 15, in.read()); // Check next byte
215ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
216ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during read test 2:" + e);
217ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
218ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
219ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// regression test for HARMONY-841
220ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		assertTrue(new BufferedReader(new CharArrayReader(new char[5], 1, 0), 2).read() == -1);
221ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
222ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
223ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
224ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#read(char[], int, int)
225ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
226ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_read$CII() throws Exception{
227ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		char[] ca = new char[2];
228ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		BufferedReader toRet = new BufferedReader(new InputStreamReader(
229ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				new ByteArrayInputStream(new byte[0])));
230ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
231ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		/* Null buffer should throw NPE even when len == 0 */
232ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
233ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			toRet.read(null, 1, 0);
234ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("null buffer reading zero bytes should throw NPE");
235ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (NullPointerException e) {
236ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			//expected
237ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
238ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
239ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
240ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			toRet.close();
241ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
242ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("unexpected 1: " + e);
243ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
244ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
245ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
246ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			toRet.read(null, 1, 0);
247ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("null buffer reading zero bytes on closed stream should throw IOException");
248ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
249ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			//expected
250ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
251ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
252ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		/* Closed reader should throw IOException reading zero bytes */
253ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
254ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			toRet.read(ca, 0, 0);
255ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Reading zero bytes on a closed reader should not work");
256ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
257ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
258ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
259ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
260ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		/*
261ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		 * Closed reader should throw IOException in preference to index out of
262ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		 * bounds
263ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		 */
264ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
265ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// Read should throw IOException before
266ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// ArrayIndexOutOfBoundException
267ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			toRet.read(ca, 1, 5);
268ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("IOException should have been thrown");
269ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
270ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
271ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
272ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
273ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test to ensure that a drained stream returns 0 at EOF
274ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		toRet = new BufferedReader(new InputStreamReader(
275ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				new ByteArrayInputStream(new byte[2])));
276ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
277ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertEquals("Emptying the reader should return two bytes", 2,
278ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					toRet.read(ca, 0, 2));
279ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertEquals("EOF on a reader should be -1", -1, toRet.read(ca, 0,
280ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					2));
281ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertEquals("Reading zero bytes at EOF should work", 0, toRet
282ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					.read(ca, 0, 0));
283ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException ex) {
284ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Unexpected IOException : " + ex.getLocalizedMessage());
285ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
286ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
287ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method int java.io.BufferedReader.read(char [], int, int)
288ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
289ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			char[] buf = new char[testString.length()];
290ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
291ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(buf, 50, 500);
292ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Chars read improperly", new String(buf, 50, 500)
293ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					.equals(testString.substring(0, 500)));
294ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (java.io.IOException e) {
295ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during read test");
296ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
297ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
298ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		BufferedReader bufin = new BufferedReader(new Reader() {
299ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			int size = 2, pos = 0;
300ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
301ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			char[] contents = new char[size];
302ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
303ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			public int read() throws IOException {
304ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				if (pos >= size)
305ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					throw new IOException("Read past end of data");
306ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				return contents[pos++];
307ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			}
308ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
309ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			public int read(char[] buf, int off, int len) throws IOException {
310ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				if (pos >= size)
311ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					throw new IOException("Read past end of data");
312ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				int toRead = len;
313ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				if (toRead > (size - pos))
314ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					toRead = size - pos;
315ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				System.arraycopy(contents, pos, buf, off, toRead);
316ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				pos += toRead;
317ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				return toRead;
318ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			}
319ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
320ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			public boolean ready() throws IOException {
321ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes				return size - pos > 0;
322ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			}
323ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
324ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			public void close() throws IOException {
325ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			}
326ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		});
327ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
328ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			bufin.read();
329ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			int result = bufin.read(new char[2], 0, 2);
330ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Incorrect result: " + result, result == 1);
331ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
332ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Unexpected: " + e);
333ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
334ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
335ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        //regression for HARMONY-831
336ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        try{
337ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            new BufferedReader(new PipedReader(), 9).read(new char[] {}, 7, 0);
338ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            fail("should throw IndexOutOfBoundsException");
339ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }catch(IndexOutOfBoundsException e){
340ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
341ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
342ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        // Regression for HARMONY-54
343ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        char[] ch = {};
344ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        BufferedReader reader = new BufferedReader(new CharArrayReader(ch));
345ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        try {
346ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // Check exception thrown when the reader is open.
347ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            reader.read(null, 1, 0);
348ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            fail("Assert 0: NullPointerException expected");
349ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        } catch (NullPointerException e) {
350ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // Expected
351ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
352ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
353ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        // Now check IOException is thrown in preference to
354ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        // NullPointerexception when the reader is closed.
355ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        reader.close();
356ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        try {
357ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            reader.read(null, 1, 0);
358ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            fail("Assert 1: IOException expected");
359ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        } catch (IOException e) {
360ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // Expected
361ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
362ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
363ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        try {
364ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // And check that the IOException is thrown before
365ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // ArrayIndexOutOfBoundException
366ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            reader.read(ch, 0, 42);
367ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            fail("Assert 2: IOException expected");
368ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        } catch (IOException e) {
369ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // expected
370ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
371ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
372ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
373ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
374ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#read(char[], int, int)
375ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
376ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_read_$CII_Exception() throws IOException {
377ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br = new BufferedReader(new Support_StringReader(testString));
378ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		char[] nullCharArray = null;
379ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		char[] charArray = testString.toCharArray();
380ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
381ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
382ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(nullCharArray, -1, -1);
383ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail();
384ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (NullPointerException expected) {
385ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IndexOutOfBoundsException expected) {
386ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
387ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
388ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
389ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(nullCharArray, -1, 0);
390ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail();
391ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (NullPointerException expected) {
392ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IndexOutOfBoundsException expected) {
393ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
394ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
395ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
396ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(nullCharArray, 0, -1);
397ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw NullPointerException");
398ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (NullPointerException e) {
399ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
400ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
401ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
402ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
403ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(nullCharArray, 0, 0);
404ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw NullPointerException");
405ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (NullPointerException e) {
406ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
407ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
408ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
409ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
410ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(nullCharArray, 0, 1);
411ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw NullPointerException");
412ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (NullPointerException e) {
413ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
414ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
415ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
416ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
417ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(charArray, -1, -1);
418ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IndexOutOfBoundsException");
419ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IndexOutOfBoundsException e) {
420ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
421ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
422ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
423ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
424ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(charArray, -1, 0);
425ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IndexOutOfBoundsException");
426ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IndexOutOfBoundsException e) {
427ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
428ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
429ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
430ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.read(charArray, 0, 0);
431ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.read(charArray, 0, charArray.length);
432ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.read(charArray, charArray.length, 0);
433ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
434ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
435ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(charArray, charArray.length + 1, 0);
436ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IndexOutOfBoundsException");
437ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IndexOutOfBoundsException e) {
438ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			//expected
439ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
440ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
441ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
442ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(charArray, charArray.length + 1, 1);
443ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IndexOutOfBoundsException");
444ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IndexOutOfBoundsException e) {
445ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			//expected
446ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
447ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
448ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		br.close();
449ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
450ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
451ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(nullCharArray, -1, -1);
452ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IOException");
453ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
454ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
455ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
456ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
457ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
458ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(charArray, -1, 0);
459ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IOException");
460ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
461ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
462ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
463ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
464ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
465ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(charArray, 0, -1);
466ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("should throw IOException");
467ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException e) {
468ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			// expected
469ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
470ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
471ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
472ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#readLine()
473ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
474ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_readLine() {
475ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method java.lang.String java.io.BufferedReader.readLine()
476ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
477ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
478ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			String r = br.readLine();
479ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertEquals("readLine returned incorrect string", "Test_All_Tests", r
480ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					);
481ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (java.io.IOException e) {
482ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during readLine test");
483ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
484ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
485ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
486ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
487ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#ready()
488ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
489ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_ready() {
490ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method boolean java.io.BufferedReader.ready()
491ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
492ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
493ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("ready returned false", br.ready());
494ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (java.io.IOException e) {
495ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during ready test" + e.toString());
496ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
497ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
498ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
499ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
500ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#reset()
501ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
502ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_reset() {
503ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method void java.io.BufferedReader.reset()
504ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
505ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
506ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.skip(500);
507ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.mark(900);
508ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.skip(500);
509ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.reset();
510ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			char[] buf = new char[testString.length()];
511ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(buf, 0, 500);
512ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Failed to reset properly", testString.substring(500,
513ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					1000).equals(new String(buf, 0, 500)));
514ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (java.io.IOException e) {
515ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during reset test");
516ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
517ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
518ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
519ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.skip(500);
520ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.reset();
521ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Reset succeeded on unmarked stream");
522ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (IOException x) {
523ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			return;
524ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
525ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
526ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
527ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
528ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes    public void test_reset_IOException() throws Exception {
529ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        int[] expected = new int[] { '1', '2', '3', '4', '5', '6', '7', '8',
530ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes                '9', '0', -1 };
531ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br = new BufferedReader(new Support_StringReader("1234567890"), 9);
532ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.mark(9);
533ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        for (int i = 0; i < 11; i++) {
534ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertEquals(expected[i], br.read());
535ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
536ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        try {
537ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            br.reset();
538ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            fail("should throw IOException");
539ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        } catch (IOException e) {
540ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            // Expected
541ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
542ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        for (int i = 0; i < 11; i++) {
543ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertEquals(-1, br.read());
544ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
545ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
546ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br = new BufferedReader(new Support_StringReader("1234567890"));
547ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.mark(10);
548ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        for (int i = 0; i < 10; i++) {
549ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertEquals(expected[i], br.read());
550ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
551ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        br.reset();
552ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        for (int i = 0; i < 11; i++) {
553ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes            assertEquals(expected[i], br.read());
554ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes        }
555ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes    }
556ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
557ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
558ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * @tests java.io.BufferedReader#skip(long)
559ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
560ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	public void test_skipJ() {
561ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		// Test for method long java.io.BufferedReader.skip(long)
562ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
563ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br = new BufferedReader(new Support_StringReader(testString));
564ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.skip(500);
565ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			char[] buf = new char[testString.length()];
566ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.read(buf, 0, 500);
567ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			assertTrue("Failed to set skip properly", testString.substring(500,
568ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes					1000).equals(new String(buf, 0, 500)));
569ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (java.io.IOException e) {
570ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			fail("Exception during skip test");
571ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
572ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
573ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
574ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
575ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
576ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * Sets up the fixture, for example, open a network connection. This method
577ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * is called before a test is executed.
578ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
579ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	protected void setUp() {
580ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
581ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes
582ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	/**
583ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * Tears down the fixture, for example, close a network connection. This
584ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 * method is called after a test is executed.
585ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	 */
586ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	protected void tearDown() {
587ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		try {
588ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes			br.close();
589ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		} catch (Exception e) {
590ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes		}
591ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes	}
592ebdccfc7af8ac92f2b0ee158bbedf8d345baa49dElliott Hughes}
593