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.luni.tests.java.io;
19
20import java.io.IOError;
21
22import org.apache.harmony.testframework.serialization.SerializationTest;
23
24import junit.framework.TestCase;
25
26public class IOErrorTest extends TestCase {
27
28    /**
29     * @tests java.io.IOError#IOError(java.lang.Throwable)
30     * @since 1.6
31     */
32    public void test_IOError_LThrowable() {
33        IOError e = new IOError(null);
34        assertNull(e.getCause());
35
36        String errorMsg = "java.io.IOError"; //$NON-NLS-1$
37        assertTrue(e.toString().contains(errorMsg));
38
39        errorMsg = "A dummy error"; //$NON-NLS-1$
40        e = new IOError(new Throwable(errorMsg));
41        assertTrue(e.toString().contains(errorMsg));
42
43        try {
44            throw new IOError(null);
45        }catch(IOError error) {
46            return;
47        }catch(Error error) {
48            fail("Error during IOException test" + error.toString()); //$NON-NLS-1$
49        }
50        fail("Failed to generate error"); //$NON-NLS-1$
51    }
52
53    /**
54     * @tests serialization/deserialization.
55     * @since 1.6
56     */
57    public void testSerializationSelf() throws Exception {
58        String errorMsg = "java.io.IOError";
59        IOError e = new IOError(new Throwable(errorMsg));
60        SerializationTest.verifySelf(e);
61    }
62
63    /**
64     * @tests serialization/deserialization compatibility with RI.
65     * @since 1.6
66     */
67    public void testSerializationCompatibility() throws Exception {
68        String errorMsg = "java.io.IOError";
69        IOError e = new IOError(new Throwable(errorMsg));
70        SerializationTest.verifyGolden(this, e);
71    }
72
73}
74