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