1994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes/* 2994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * this work for additional information regarding copyright ownership. 5994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * (the "License"); you may not use this file except in compliance with 7994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * the License. You may obtain a copy of the License at 8994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * 9994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * 11994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * See the License for the specific language governing permissions and 15994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * limitations under the License. 16994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 17994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 18994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespackage org.apache.harmony.tests.java.text; 19994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 20994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.AttributedCharacterIterator; 21994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.AttributedCharacterIterator.Attribute; 22994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.io.ByteArrayInputStream; 23994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.io.ByteArrayOutputStream; 24994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.io.NotSerializableException; 25994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.io.IOException; 26994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.io.ObjectInputStream; 27994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.io.ObjectOutputStream; 28994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.util.Locale; 29994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.Annotation; 30994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 31994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespublic class AttributedCharacterIteratorAttributeTest extends junit.framework.TestCase { 32994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 33994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 34994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.AttributedCharacterIterator$Attribute() 35994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 36994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_constructor() { 37994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes MyAttribute attribute = new MyAttribute("attribute"); 38994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 39994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Attribute has wrong name", "attribute", attribute.getExposedName()); 40994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 41994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes attribute = new MyAttribute(null); 42994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Attribute has wrong name", null, attribute.getExposedName()); 43994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 44994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 45994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 46994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.AttributedCharacterIterator.Attribute#equals(Object) 47994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 48994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_equals() { 49994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 50994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue(Attribute.LANGUAGE.equals(Attribute.LANGUAGE)); 51994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 52994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertFalse(Attribute.LANGUAGE.equals(Attribute.READING)); 53994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 54994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes MyAttribute attribute = new MyAttribute("test"); 55994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 56994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue(attribute.equals(attribute)); 57994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 58994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /* this implementation of equals should only return true 59994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * if the same objects */ 60994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertFalse(attribute.equals(new MyAttribute("test"))); 61994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 62994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes attribute = new MyAttribute(null); 63994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertFalse(attribute.equals(new MyAttribute(null))); 64994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 65994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 66994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 67994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.AttributedCharacterIterator$Attribute#readResolve() 68994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 69994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_readResolve() { 70994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // test for method java.lang.Object readResolve() 71994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 72994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ObjectOutputStream out = null; 73994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ObjectInputStream in = null; 74994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 75994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 76994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes out = new ObjectOutputStream(bytes); 77994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 78994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes AttributedCharacterIterator.Attribute dattribute, dattribute2; 79994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes MyAttribute attribute; 80994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 81994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // a regular instance of DateFormat.Field 82994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes dattribute = AttributedCharacterIterator.Attribute.LANGUAGE; 83994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 84994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // a subclass instance with null name 85994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes attribute = new MyAttribute(null); 86994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 87994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes out.writeObject(dattribute); 88994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 89994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes out.writeObject(attribute); 90994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (NotSerializableException e) { 91994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 92994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 93994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes in = new ObjectInputStream(new ByteArrayInputStream(bytes 94994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .toByteArray())); 95994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 96994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 97994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes dattribute2 = (AttributedCharacterIterator.Attribute) in.readObject(); 98994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertSame("resolved incorrectly", dattribute, dattribute2); 99994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (IllegalArgumentException e) { 100994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("Unexpected IllegalArgumentException: " + e); 101994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 102994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 103994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (IOException e) { 104994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("unexpected IOException" + e); 105994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (ClassNotFoundException e) { 106994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("unexpected ClassNotFoundException" + e); 107994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } finally { 108994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 109994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes if (out != null) 110994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes out.close(); 111994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes if (in != null) 112994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes in.close(); 113994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (IOException e) { 114994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 115994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 116994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 117994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 118994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 119994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.AttributedCharacterIterator$Attribute#LANGUAGE 120994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * java.text.AttributedCharacterIterator$Attribute#READING 121994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * java.text.AttributedCharacterIterator$Attribute#INPUT_METHOD_SEGMENT 122994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 123994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_fields() { 124994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 125994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Just check that the fields are accessible as all 126994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // methods are protected 127994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Attribute language = Attribute.LANGUAGE; 128994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Attribute reading = Attribute.READING; 129994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Attribute inputMethodSegment = Attribute.INPUT_METHOD_SEGMENT; 130994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 131994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 132994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes protected void setUp() { 133994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 134994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 135994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes protected void tearDown() { 136994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 137994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 138994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes class MyAttribute extends AttributedCharacterIterator.Attribute { 139994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes protected MyAttribute(String name) { 140994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes super(name); 141994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 142994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 143994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public Object getExposedName() { 144994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes return this.getName(); 145994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 146994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 147994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes} 148