1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* Licensed to the Apache Software Foundation (ASF) under one or more
2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements.  See the NOTICE file distributed with
3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership.
4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0
5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with
6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License.  You may obtain a copy of the License at
7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *
8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *     http://www.apache.org/licenses/LICENSE-2.0
9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *
10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software
11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS,
12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and
14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License.
15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */
16ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util;
17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
18cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Serializable;
19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.UnknownFormatConversionException;
20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport junit.framework.TestCase;
22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport org.apache.harmony.testframework.serialization.SerializationTest;
24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class UnknownFormatConversionExceptionTest extends TestCase {
27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.UnknownFormatConversionException#UnknownFormatConversionException(String)
30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_unknownFormatConversionException() {
32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // RI 5.0 will not throw NullPointerException, it is the bug according
34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        // to spec.
35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        try {
36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            new UnknownFormatConversionException(null);
37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            fail("should throw NullPointerExcepiton");
38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        } catch (NullPointerException e) {
39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.UnknownFormatConversionException#getConversion()
44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_getConversion() {
46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String s = "MYTESTSTRING";
47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        UnknownFormatConversionException UnknownFormatConversionException = new UnknownFormatConversionException(
48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                s);
49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertEquals(s, UnknownFormatConversionException.getConversion());
50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * java.util.UnknownFormatConversionException#getMessage()
54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void test_getMessage() {
56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        String s = "MYTESTSTRING";
57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        UnknownFormatConversionException UnknownFormatConversionException = new UnknownFormatConversionException(
58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                s);
59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        assertTrue(null != UnknownFormatConversionException.getMessage());
60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    // comparator for comparing UnknownFormatConversionException objects
63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    private static final SerializableAssert exComparator = new SerializableAssert() {
64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        public void assertDeserialized(Serializable initial,
65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                Serializable deserialized) {
66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            SerializationTest.THROWABLE_COMPARATOR.assertDeserialized(initial,
68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                    deserialized);
69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            UnknownFormatConversionException initEx = (UnknownFormatConversionException) initial;
71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            UnknownFormatConversionException desrEx = (UnknownFormatConversionException) deserialized;
72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath            assertEquals("Conversion", initEx.getConversion(), desrEx
74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                    .getConversion());
75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        }
76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    };
77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * serialization/deserialization.
80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void testSerializationSelf() throws Exception {
82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SerializationTest.verifySelf(new UnknownFormatConversionException(
84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                "MYTESTSTRING"), exComparator);
85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    /**
88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     * serialization/deserialization compatibility with RI.
89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath     */
90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    public void testSerializationCompatibility() throws Exception {
91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath
92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath        SerializationTest.verifyGolden(this,
93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                new UnknownFormatConversionException("MYTESTSTRING"),
94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath                exComparator);
95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath    }
96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath}
97