1d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath/* 2d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * contributor license agreements. See the NOTICE file distributed with 4d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * this work for additional information regarding copyright ownership. 5d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 6d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * (the "License"); you may not use this file except in compliance with 7d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * the License. You may obtain a copy of the License at 8d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * 9d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * 11d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * Unless required by applicable law or agreed to in writing, software 12d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 13d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * See the License for the specific language governing permissions and 15d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * limitations under the License. 16d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 17d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 18d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathpackage org.apache.harmony.tests.java.util.jar; 19d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 20d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.Collection; 21d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.Collections; 22d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.HashSet; 23d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.Iterator; 24d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.Map; 25d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.Set; 26d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport java.util.jar.Attributes; 27d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathimport junit.framework.TestCase; 28d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 29d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamathpublic class AttributesTest extends TestCase { 30d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath private Attributes a; 31d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 32d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath @Override 33d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath protected void setUp() { 34d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a = new Attributes(); 35d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putValue("1", "one"); 36d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putValue("2", "two"); 37d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putValue("3", "three"); 38d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putValue("4", "four"); 39d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 40d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 41d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 42d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#Attributes(java.util.jar.Attributes) 43d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 44d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_ConstructorLjava_util_jar_Attributes() { 45d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes a2 = new Attributes(a); 46d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(a, a2); 47d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putValue("1", "one(1)"); 48d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("equal", !a.equals(a2)); 49d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 50d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 51d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 52d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#clear() 53d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 54d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_clear() { 55d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.clear(); 56d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("a) All entries should be null after clear", a.get("1")); 57d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("b) All entries should be null after clear", a.get("2")); 58d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("c) All entries should be null after clear", a.get("3")); 59d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("d) All entries should be null after clear", a.get("4")); 60d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("Should not contain any keys", !a.containsKey("1")); 61d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 62d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 63d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 64d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#containsKey(java.lang.Object) 65d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 66d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_containsKeyLjava_lang_Object() { 67d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("a) Should have returned false", !a.containsKey(new Integer(1))); 68d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("b) Should have returned false", !a.containsKey("0")); 69d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("Should have returned true", a.containsKey(new Attributes.Name("1"))); 70d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 71d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 72d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 73d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#containsValue(java.lang.Object) 74d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 75d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_containsValueLjava_lang_Object() { 76d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("Should have returned false", !a.containsValue("One")); 77d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("Should have returned true", a.containsValue("one")); 78d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 79d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 80d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 81d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#entrySet() 82d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 83d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_entrySet() { 84d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Set<Map.Entry<Object, Object>> entrySet = a.entrySet(); 85d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Set<Object> keySet = new HashSet<Object>(); 86d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Set<Object> valueSet = new HashSet<Object>(); 87d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Iterator<?> i; 88d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(4, entrySet.size()); 89d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath i = entrySet.iterator(); 90d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath while (i.hasNext()) { 91d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath java.util.Map.Entry<?, ?> e; 92d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath e = (Map.Entry<?, ?>) i.next(); 93d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath keySet.add(e.getKey()); 94d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath valueSet.add(e.getValue()); 95d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 96d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("a) Should contain entry", valueSet.contains("one")); 97d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("b) Should contain entry", valueSet.contains("two")); 98d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("c) Should contain entry", valueSet.contains("three")); 99d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("d) Should contain entry", valueSet.contains("four")); 100d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("a) Should contain key", keySet.contains(new Attributes.Name("1"))); 101d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("b) Should contain key", keySet.contains(new Attributes.Name("2"))); 102d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("c) Should contain key", keySet.contains(new Attributes.Name("3"))); 103d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("d) Should contain key", keySet.contains(new Attributes.Name("4"))); 104d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 105d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 106d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 107d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#get(java.lang.Object) 108d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 109d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_getLjava_lang_Object() { 110d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("a) Incorrect value returned", "one", a.getValue("1")); 111d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("b) Incorrect value returned", a.getValue("0")); 112d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 113d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 114d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 115d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#isEmpty() 116d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 117d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_isEmpty() { 118d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("Should not be empty", !a.isEmpty()); 119d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.clear(); 120d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("a) Should be empty", a.isEmpty()); 121d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a = new Attributes(); 122d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("b) Should be empty", a.isEmpty()); 123d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 124d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 125d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 126d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#keySet() 127d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 128d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_keySet() { 129d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Set<?> s = a.keySet(); 130d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(4, s.size()); 131d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("a) Should contain entry", s.contains(new Attributes.Name("1"))); 132d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("b) Should contain entry", s.contains(new Attributes.Name("2"))); 133d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("c) Should contain entry", s.contains(new Attributes.Name("3"))); 134d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("d) Should contain entry", s.contains(new Attributes.Name("4"))); 135d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 136d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 137d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 138d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#putAll(java.util.Map) 139d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 140d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_putAllLjava_util_Map() { 141d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes b = new Attributes(); 142d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath b.putValue("3", "san"); 143d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath b.putValue("4", "shi"); 144d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath b.putValue("5", "go"); 145d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath b.putValue("6", "roku"); 146d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putAll(b); 147d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Should not have been replaced", "one", a.getValue("1")); 148d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Should have been replaced", "san", a.getValue("3")); 149d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Should have been added", "go", a.getValue("5")); 150d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes atts = new Attributes(); 151d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("Assert 0: ", atts.put(Attributes.Name.CLASS_PATH, "tools.jar")); 152d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("Assert 1: ", atts.put(Attributes.Name.MANIFEST_VERSION, "1")); 153d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes atts2 = new Attributes(); 154d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath atts2.putAll(atts); 155d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Assert 2:", "tools.jar", atts2.get(Attributes.Name.CLASS_PATH)); 156d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Assert 3: ", "1", atts2.get(Attributes.Name.MANIFEST_VERSION)); 157d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath try { 158d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath atts.putAll(Collections.EMPTY_MAP); 159d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath fail("Assert 4: no class cast from attrib parameter"); 160d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } catch (ClassCastException e) { 161d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath // Expected 162d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 163d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 164d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 165d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 166d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#remove(java.lang.Object) 167d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 168d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_removeLjava_lang_Object() { 169d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.remove(new Attributes.Name("1")); 170d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.remove(new Attributes.Name("3")); 171d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("Should have been removed", a.getValue("1")); 172d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Should not have been removed", "four", a.getValue("4")); 173d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 174d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 175d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 176d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#size() 177d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 178d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_size() { 179d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Incorrect size returned", 4, a.size()); 180d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.clear(); 181d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(0, a.size()); 182d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 183d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 184d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 185d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#values() 186d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 187d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_values() { 188d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Collection<?> valueCollection = a.values(); 189d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("a) Should contain entry", valueCollection.contains("one")); 190d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("b) Should contain entry", valueCollection.contains("two")); 191d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("c) Should contain entry", valueCollection.contains("three")); 192d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("d) Should contain entry", valueCollection.contains("four")); 193d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 194d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 195d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 196d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#clone() 197d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 198d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_clone() { 199d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes a2 = (Attributes) a.clone(); 200d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(a, a2); 201d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a.putValue("1", "one(1)"); 202d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue("equal", !a.equals(a2)); 203d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 204d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 205d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 206d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes#equals(java.lang.Object) 207d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 208d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_equalsLjava_lang_Object() { 209d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes.Name n1 = new Attributes.Name("name"), n2 = new Attributes.Name("Name"); 210d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(n1, n2); 211d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes a1 = new Attributes(); 212d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a1.putValue("one", "1"); 213d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a1.putValue("two", "2"); 214d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes a2 = new Attributes(); 215d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a2.putValue("One", "1"); 216d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a2.putValue("TWO", "2"); 217d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(a1, a2); 218d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(a1, a1); 219d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath a2 = null; 220d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertFalse(a1.equals(a2)); 221d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 222d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 223d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 224d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes.put(java.lang.Object, java.lang.Object) 225d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 226d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_putLjava_lang_ObjectLjava_lang_Object() { 227d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes atts = new Attributes(); 228d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull("Assert 0: ", atts.put(Attributes.Name.CLASS_PATH, "tools.jar")); 229d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals("Assert 1: ", "tools.jar", atts.getValue(Attributes.Name.CLASS_PATH)); 230d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath // Regression for HARMONY-79 231d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath try { 232d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath atts.put("not a name", "value"); 233d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath fail("Assert 2: no class cast from key parameter"); 234d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } catch (ClassCastException e) { 235d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath // Expected 236d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 237d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath try { 238d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath atts.put(Attributes.Name.CLASS_PATH, Boolean.TRUE); 239d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath fail("Assert 3: no class cast from value parameter"); 240d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } catch (ClassCastException e) { 241d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath // Expected 242d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 243d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 244d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 245d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 246d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes.put(java.lang.Object, java.lang.Object) 247d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 248d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_putLjava_lang_ObjectLjava_lang_Object_Null() { 249d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 250d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes attribute = new Attributes(); 251d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 252d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertFalse(attribute.containsKey(null)); 253d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertFalse(attribute.containsValue(null)); 254d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath attribute.put(null, null); 255d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath attribute.put(null, null); 256d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(1, attribute.size()); 257d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue(attribute.containsKey(null)); 258d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertTrue(attribute.containsValue(null)); 259d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull(attribute.get(null)); 260d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 261d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath String value = "It's null"; 262d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath attribute.put(null, value); 263d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(1, attribute.size()); 264d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(value, attribute.get(null)); 265d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 266d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath Attributes.Name name = new Attributes.Name("null"); 267d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath attribute.put(name, null); 268d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(2, attribute.size()); 269d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertNull(attribute.get(name)); 270d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 271d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 272d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath /** 273d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath * java.util.jar.Attributes.hashCode() 274d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath */ 275d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public void test_hashCode() { 276d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath MockAttributes mockAttr = new MockAttributes(); 277d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath mockAttr.putValue("1", "one"); 278d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath assertEquals(mockAttr.getMap().hashCode(), mockAttr.hashCode()); 279d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 280d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath 281d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath private static class MockAttributes extends Attributes { 282d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath public Map<Object, Object> getMap() { 283d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath return map; 284d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 285d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath } 286d567f9025c4b94fc5e9b47f5702c1b48c2a45c96Narayan Kamath} 287