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.CharArrayReader;
21935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.CharArrayWriter;
22935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.IOException;
23935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.StringWriter;
24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport tests.support.Support_ASimpleWriter;
25935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldCharArrayWriterTest extends junit.framework.TestCase {
27935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
28935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    CharArrayWriter cw;
29935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    CharArrayReader cr;
30935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
31935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_ConstructorI() {
32935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        // Test for method java.io.CharArrayWriter(int)
33935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        cw = new CharArrayWriter(90);
34935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 1: Incorrect writer created.", 0, cw.size());
35935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
36935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
37935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw = new CharArrayWriter(-1);
38935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("IllegalArgumentException expected.");
39935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IllegalArgumentException e) {
40935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
41935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
42935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
43935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
44935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_write$CII_Exception() {
45935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        char[] target = new char[10];
46935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        cw = new CharArrayWriter();
47935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
48935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw.write(target, -1, 1);
49935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IndexOutOfBoundsException expected.");
50935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
51935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected
52935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
53935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
54935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw.write(target, 0, -1);
55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: IndexOutOfBoundsException expected.");
56935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
57935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected
58935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
59935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
60935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw.write(target, 1, target.length);
61935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IndexOutOfBoundsException expected.");
62935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
63935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected
64935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
65935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
66935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw.write((char[]) null, 1, 1);
67935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: NullPointerException expected.");
68935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (NullPointerException e) {
69935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
70935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
71935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
72935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
73935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_writeToLjava_io_Writer() {
74935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        Support_ASimpleWriter ssw = new Support_ASimpleWriter(true);
75935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        cw.write("HelloWorld", 0, 10);
76935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        StringWriter sw = new StringWriter();
77935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
78935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw.writeTo(sw);
79935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            assertEquals("Test 1: Writer failed to write correct chars;",
80935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                         "HelloWorld", sw.toString());
81935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
82935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Exception during writeTo test : " + e.getMessage());
83935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
84935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
85935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
86935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cw.writeTo(ssw);
87935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: IOException expected.");
88935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IOException e) {
89935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
90935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
91935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
92935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
93935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    public void test_appendLjava_langCharSequenceII() {
94935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        String testString = "My Test String";
95935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        CharArrayWriter writer = new CharArrayWriter(10);
96935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
97935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        // Illegal argument checks.
98935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
99935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            writer.append(testString, -1, 0);
100935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 1: IndexOutOfBoundsException expected.");
101935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
102935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
103935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
104935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
105935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            writer.append(testString, 0, -1);
106935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 2: IndexOutOfBoundsException expected.");
107935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
108935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
109935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
110935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
111935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            writer.append(testString, 1, 0);
112935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 3: IndexOutOfBoundsException expected.");
113935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
114935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
115935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
116935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        try {
117935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            writer.append(testString, 1, testString.length() + 1);
118935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            fail("Test 4: IndexOutOfBoundsException expected.");
119935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        } catch (IndexOutOfBoundsException e) {
120935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            // Expected.
121935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
122935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
123935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        writer.append(testString, 1, 3);
124935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        writer.flush();
125935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        assertEquals("Test 5: Appending failed;",
126935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson                testString.substring(1, 3), writer.toString());
127935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        writer.close();
128935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
129935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
130935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    protected void setUp() {
131935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        cw = new CharArrayWriter();
132935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
133935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson
134935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    protected void tearDown() {
135935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        if (cr != null) {
136935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson            cr.close();
137935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        }
138935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson        cw.close();
139935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson    }
140935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson}
141