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