1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.archive.tests.java.util.jar; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collections; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.HashSet; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Iterator; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Map; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.jar.Attributes; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class AttributesTest extends TestCase { 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private Attributes a; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a = new Attributes(); 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putValue("1", "one"); 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putValue("2", "two"); 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putValue("3", "three"); 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putValue("4", "four"); 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#Attributes(java.util.jar.Attributes) 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_util_jar_Attributes() { 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes a2 = new Attributes(a); 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(a, a2); 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putValue("1", "one(1)"); 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("equal", !a.equals(a2)); 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#clear() 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clear() { 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.clear(); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("a) All entries should be null after clear", a.get("1")); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("b) All entries should be null after clear", a.get("2")); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("c) All entries should be null after clear", a.get("3")); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("d) All entries should be null after clear", a.get("4")); 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not contain any keys", !a.containsKey("1")); 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#containsKey(java.lang.Object) 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_containsKeyLjava_lang_Object() { 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Should have returned false", !a.containsKey(new Integer(1))); 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Should have returned false", !a.containsKey("0")); 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should have returned true", a.containsKey(new Attributes.Name("1"))); 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#containsValue(java.lang.Object) 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_containsValueLjava_lang_Object() { 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should have returned false", !a.containsValue("One")); 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should have returned true", a.containsValue("one")); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#entrySet() 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_entrySet() { 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<Map.Entry<Object, Object>> entrySet = a.entrySet(); 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<Object> keySet = new HashSet<Object>(); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<Object> valueSet = new HashSet<Object>(); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Iterator<?> i; 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, entrySet.size()); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i = entrySet.iterator(); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (i.hasNext()) { 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.util.Map.Entry<?, ?> e; 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e = (Map.Entry<?, ?>) i.next(); 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keySet.add(e.getKey()); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes valueSet.add(e.getValue()); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Should contain entry", valueSet.contains("one")); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Should contain entry", valueSet.contains("two")); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Should contain entry", valueSet.contains("three")); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Should contain entry", valueSet.contains("four")); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Should contain key", keySet.contains(new Attributes.Name("1"))); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Should contain key", keySet.contains(new Attributes.Name("2"))); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Should contain key", keySet.contains(new Attributes.Name("3"))); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Should contain key", keySet.contains(new Attributes.Name("4"))); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#get(java.lang.Object) 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getLjava_lang_Object() { 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("a) Incorrect value returned", "one", a.getValue("1")); 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("b) Incorrect value returned", a.getValue("0")); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#isEmpty() 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isEmpty() { 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not be empty", !a.isEmpty()); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.clear(); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Should be empty", a.isEmpty()); 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a = new Attributes(); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Should be empty", a.isEmpty()); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#keySet() 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_keySet() { 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Set<?> s = a.keySet(); 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, s.size()); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Should contain entry", s.contains(new Attributes.Name("1"))); 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Should contain entry", s.contains(new Attributes.Name("2"))); 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Should contain entry", s.contains(new Attributes.Name("3"))); 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Should contain entry", s.contains(new Attributes.Name("4"))); 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#putAll(java.util.Map) 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_putAllLjava_util_Map() { 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes b = new Attributes(); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes b.putValue("3", "san"); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes b.putValue("4", "shi"); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes b.putValue("5", "go"); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes b.putValue("6", "roku"); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putAll(b); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Should not have been replaced", "one", a.getValue("1")); 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Should have been replaced", "san", a.getValue("3")); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Should have been added", "go", a.getValue("5")); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes atts = new Attributes(); 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Assert 0: ", atts.put(Attributes.Name.CLASS_PATH, "tools.jar")); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Assert 1: ", atts.put(Attributes.Name.MANIFEST_VERSION, "1")); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes atts2 = new Attributes(); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes atts2.putAll(atts); 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Assert 2:", "tools.jar", atts2.get(Attributes.Name.CLASS_PATH)); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Assert 3: ", "1", atts2.get(Attributes.Name.MANIFEST_VERSION)); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes atts.putAll(Collections.EMPTY_MAP); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Assert 4: no class cast from attrib parameter"); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#putAll(java.util.Map) 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_putAllLjava_util_Map2() { 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-464 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Attributes().putAll((Map) null); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ClassCastException expected"); 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // verify that special care for null is done in the Attributes.putAll() 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // method 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Attributes() { 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putAll(Map<?, ?> attrib) { 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes map.putAll(attrib); 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }.putAll((Map<?, ?>) null); 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException expected"); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#remove(java.lang.Object) 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_removeLjava_lang_Object() { 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.remove(new Attributes.Name("1")); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.remove(new Attributes.Name("3")); 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Should have been removed", a.getValue("1")); 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Should not have been removed", "four", a.getValue("4")); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#size() 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_size() { 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect size returned", 4, a.size()); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.clear(); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, a.size()); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#values() 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_values() { 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection<?> valueCollection = a.values(); 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("a) Should contain entry", valueCollection.contains("one")); 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("b) Should contain entry", valueCollection.contains("two")); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("c) Should contain entry", valueCollection.contains("three")); 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("d) Should contain entry", valueCollection.contains("four")); 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#clone() 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_clone() { 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes a2 = (Attributes) a.clone(); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(a, a2); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a.putValue("1", "one(1)"); 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("equal", !a.equals(a2)); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes#equals(java.lang.Object) 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equalsLjava_lang_Object() { 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes.Name n1 = new Attributes.Name("name"), n2 = new Attributes.Name("Name"); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(n1, n2); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes a1 = new Attributes(); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a1.putValue("one", "1"); 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a1.putValue("two", "2"); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes a2 = new Attributes(); 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a2.putValue("One", "1"); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a2.putValue("TWO", "2"); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(a1, a2); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(a1, a1); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes a2=null; 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(a1.equals(a2)); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes.put(java.lang.Object, java.lang.Object) 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_putLjava_lang_ObjectLjava_lang_Object() { 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes atts = new Attributes(); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Assert 0: ", atts.put(Attributes.Name.CLASS_PATH, "tools.jar")); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Assert 1: ", "tools.jar", atts.getValue(Attributes.Name.CLASS_PATH)); 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-79 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes atts.put("not a name", "value"); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Assert 2: no class cast from key parameter"); 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes atts.put(Attributes.Name.CLASS_PATH, Boolean.TRUE); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Assert 3: no class cast from value parameter"); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassCastException e) { 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes.put(java.lang.Object, java.lang.Object) 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_putLjava_lang_ObjectLjava_lang_Object_Null() { 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes attribute = new Attributes(); 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(attribute.containsKey(null)); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(attribute.containsValue(null)); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes attribute.put(null, null); 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes attribute.put(null, null); 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, attribute.size()); 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(attribute.containsKey(null)); 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(attribute.containsValue(null)); 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(attribute.get(null)); 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String value = "It's null"; 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes attribute.put(null, value); 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, attribute.size()); 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(value, attribute.get(null)); 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Attributes.Name name = new Attributes.Name("null"); 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes attribute.put(name, null); 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(2, attribute.size()); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(attribute.get(name)); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.jar.Attributes.hashCode() 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_hashCode() { 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MockAttributes mockAttr = new MockAttributes(); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes mockAttr.putValue("1", "one"); 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(mockAttr.getMap().hashCode(), mockAttr.hashCode()); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static class MockAttributes extends Attributes { 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Map<Object, Object> getMap() { 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return map; 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 311