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.ByteArrayOutputStream;
21935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.IOException;
22935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.UnsupportedEncodingException;
23935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport junit.framework.TestCase;
25935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport tests.support.Support_OutputStream;
26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
27935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson/**
28935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Automated Test Suite for class java.io.ByteArrayOutputStream
29935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson *
30935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * @see java.io.ByteArrayOutputStream
31935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */
32935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldByteArrayOutputStreamTest extends TestCase {
33935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
34935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    ByteArrayOutputStream bos = null;
35935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
36935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_ByteArrayOutputStream\nTest_java_io_DataInputStream\n";
37935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
38935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_ConstructorI() {
39935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos = new java.io.ByteArrayOutputStream(100);
40935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Failed to create stream;", 0, bos.size());
41935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
42935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
43935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos = new ByteArrayOutputStream(-1);
44935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: IllegalArgumentException expected.");
45935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IllegalArgumentException e) {
46935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
47935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
48935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
49935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
50935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_toStringLjava_lang_String() throws Exception {
51935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos = new ByteArrayOutputStream();
52935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
53935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos.write(fileString.getBytes(), 0, fileString.length());
54935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 1: Returned incorrect 8859-1 String",
55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                bos.toString("8859_1").equals(fileString));
56935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 2: Returned incorrect 8859-2 String",
57935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                bos.toString("8859_2").equals(fileString));
58935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
59935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
60935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos.toString("NotAnEcoding");
61935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: UnsupportedEncodingException expected.");
62935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (UnsupportedEncodingException e) {
63935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
64935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
65935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
66935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
67935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_write$BII_Exception() {
68935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        byte[] target = new byte[10];
69935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos = new ByteArrayOutputStream();
70935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
71935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos.write(target, -1, 1);
72935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IndexOutOfBoundsException expected.");
73935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
74935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected
75935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
76935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
77935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos.write(target, 0, -1);
78935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: IndexOutOfBoundsException expected.");
79935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
80935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected
81935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
82935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
83935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos.write(target, 1, target.length);
84935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IndexOutOfBoundsException expected.");
85935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
86935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected
87935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
88935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
89935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos.write(null, 1, 1);
90935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: NullPointerException expected.");
91935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (NullPointerException e) {
92935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
93935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
94935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
95935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
96935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_writeToLjava_io_OutputStream() throws Exception {
97935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        Support_OutputStream sos = new Support_OutputStream();
98935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos = new java.io.ByteArrayOutputStream();
99935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos.write(fileString.getBytes(), 0, 10);
100935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        bos.writeTo(sos);
101935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertTrue("Test 1: Incorrect string written.",
102935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                sos.toString().equals(
103935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                        fileString.substring(0, 10)));
104935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
105935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        sos.setThrowsException(true);
106935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
107935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            bos.writeTo(sos);
108935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: IOException expected.");
109935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
110935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
111935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
112935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
113935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson}
114