1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package org.apache.harmony.tests.java.io;
19
20import java.io.IOException;
21
22import junit.framework.TestCase;
23
24public class IOExceptionTest extends TestCase {
25
26    /**
27     * java.io.IOException#IOException()
28     */
29    public void test_Constructor() {
30        try {
31            if (true) {
32                throw new IOException();
33            }
34            fail("Exception during IOException test");
35        } catch (IOException e) {
36            // Expected
37        }
38    }
39
40    /**
41     * java.io.IOException#IOException(java.lang.String)
42     */
43    public void test_ConstructorLjava_lang_String() {
44        try {
45            if (true) {
46                throw new IOException("Some error message");
47            }
48            fail("Failed to generate exception");
49        } catch (IOException e) {
50            // Expected
51        }
52    }
53
54    /**
55     * java.io.IOException#IOException(java.lang.String,
56     *java.lang.Throwable)
57     * @since 1.6
58     */
59    public void test_ConstructorLString_LThrowable() {
60        // Test for constructor java.io.IOException(java.lang.String, java.lang.Throwable)
61
62        IOException ioException = new IOException(
63                "A dummy IOException", new Throwable("A dummy Throwable")); //$NON-NLS-1$//$NON-NLS-2$
64        assertEquals("A dummy IOException", ioException.getMessage()); //$NON-NLS-1$
65
66        try {
67            throw new IOException(
68                    "A dummy error", new Throwable("Some error message")); //$NON-NLS-1$ //$NON-NLS-2$
69        } catch (IOException e) {
70            return;
71        } catch (Exception e) {
72            fail("Exception during IOException test" + e.toString()); //$NON-NLS-1$
73        }
74        fail("Failed to generate exception"); //$NON-NLS-1$
75    }
76
77    /**
78     * java.io.IOException#IOException(java.lang.Throwable)
79     * @since 1.6
80     */
81    public void test_Constructor_LThrowable() {
82        // Test for constructor java.io.IOException(java.lang.Throwable)
83        Throwable cause = new Throwable("A dummy Throwable"); //$NON-NLS-1$
84        IOException ioException = new IOException(cause);
85        assertEquals(cause.toString(), ioException.getMessage());
86
87        ioException = new IOException((Throwable) null);
88        assertNull(ioException.getMessage());
89
90        try {
91            throw new IOException(new Throwable("Some error message")); //$NON-NLS-1$
92        } catch (IOException e) {
93            return;
94        } catch (Exception e) {
95            fail("Exception during IOException test" + e.toString()); //$NON-NLS-1$
96        }
97        fail("Failed to generate exception"); //$NON-NLS-1$
98    }
99
100    /**
101     * Sets up the fixture, for example, open a network connection. This method
102     * is called before a test is executed.
103     */
104    protected void setUp() {
105    }
106
107    /**
108     * Tears down the fixture, for example, close a network connection. This
109     * method is called after a test is executed.
110     */
111    protected void tearDown() {
112    }
113}
114