156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes/* Licensed to the Apache Software Foundation (ASF) under one or more 256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * contributor license agreements. See the NOTICE file distributed with 356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * this work for additional information regarding copyright ownership. 456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * (the "License"); you may not use this file except in compliance with 656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * the License. You may obtain a copy of the License at 756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * 856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * 1056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * Unless required by applicable law or agreed to in writing, software 1156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 1256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * See the License for the specific language governing permissions and 1456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * limitations under the License. 1556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes */ 1656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 17e5fea3d504609d22337a5311d3ce0e72314bceeeNarayan Kamathpackage org.apache.harmony.tests.java.nio.charset; 1856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 1956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughesimport java.io.Serializable; 2056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughesimport java.nio.charset.CharacterCodingException; 2156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughesimport java.nio.charset.UnmappableCharacterException; 2256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 2356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughesimport junit.framework.TestCase; 2456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 2556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest; 2656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert; 2756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 2856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes/** 2956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * Test class UnmappableCharacterException. 3056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes */ 3156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughespublic class UnmappableCharacterExceptionTest extends TestCase { 3256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 3356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes public void testConstructor() { 3456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes UnmappableCharacterException ex = new UnmappableCharacterException(3); 3556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertTrue(ex instanceof CharacterCodingException); 3656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertNull(ex.getCause()); 3756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertEquals(ex.getInputLength(), 3); 3856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertTrue(ex.getMessage().indexOf("3") != -1); 3956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 4056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes ex = new UnmappableCharacterException(-3); 4156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertNull(ex.getCause()); 4256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertEquals(ex.getInputLength(), -3); 4356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertTrue(ex.getMessage().indexOf("-3") != -1); 4456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 4556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes ex = new UnmappableCharacterException(0); 4656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertNull(ex.getCause()); 4756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertEquals(ex.getInputLength(), 0); 4856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertTrue(ex.getMessage().indexOf("0") != -1); 4956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 5056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes } 5156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 5256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes // comparator for UnmappableCharacterException objects 5356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes private static final SerializableAssert COMPARATOR = new SerializableAssert() { 5456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes public void assertDeserialized(Serializable initial, 5556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes Serializable deserialized) { 5656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 5756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes // do common checks for all throwable objects 5856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes SerializationTest.THROWABLE_COMPARATOR.assertDeserialized(initial, 5956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes deserialized); 6056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 6156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes UnmappableCharacterException initEx = (UnmappableCharacterException) initial; 6256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes UnmappableCharacterException desrEx = (UnmappableCharacterException) deserialized; 6356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 6456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes assertEquals("InputLength", initEx.getInputLength(), desrEx 6556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes .getInputLength()); 6656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes } 6756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes }; 6856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 6956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes /** 7056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * @tests serialization/deserialization compatibility. 7156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes */ 7256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes public void testSerializationSelf() throws Exception { 7356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 7456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes SerializationTest.verifySelf(new UnmappableCharacterException(11), 7556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes COMPARATOR); 7656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes } 7756ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 7856ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes /** 7956ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes * @tests serialization/deserialization compatibility with RI. 8056ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes */ 8156ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes public void testSerializationCompatibility() throws Exception { 8256ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 8356ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes SerializationTest.verifyGolden(this, new UnmappableCharacterException( 8456ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes 11), COMPARATOR); 8556ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes } 8656ddb0af9c75dca21f10cd26e73b9f301c58771eElliott Hughes} 87