1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.archive.tests.java.util.jar; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Collection; 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Collections; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.HashSet; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Iterator; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Map; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Set; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.jar.Attributes; 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.TestCase; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Attributes.class) 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class AttributesTest extends TestCase { 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private Attributes a; 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() { 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a = new Attributes(); 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putValue("1", "one"); 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putValue("2", "two"); 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putValue("3", "three"); 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putValue("4", "four"); 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#Attributes(java.util.jar.Attributes) 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Attributes", 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.jar.Attributes.class} 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_util_jar_Attributes() { 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes a2 = new Attributes(a); 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(a, a2); 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putValue("1", "one(1)"); 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("equal", !a.equals(a2)); 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#clear() 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "clear", 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_clear() { 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.clear(); 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("a) All entries should be null after clear", a.get("1")); 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("b) All entries should be null after clear", a.get("2")); 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("c) All entries should be null after clear", a.get("3")); 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("d) All entries should be null after clear", a.get("4")); 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Should not contain any keys", !a.containsKey("1")); 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#containsKey(java.lang.Object) 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "containsKey", 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_containsKeyLjava_lang_Object() { 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("a) Should have returned false", !a.containsKey(new Integer( 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1))); 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("b) Should have returned false", !a.containsKey("0")); 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Should have returned true", a 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .containsKey(new Attributes.Name("1"))); 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#containsValue(java.lang.Object) 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "containsValue", 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_containsValueLjava_lang_Object() { 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Should have returned false", !a.containsValue("One")); 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Should have returned true", a.containsValue("one")); 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#entrySet() 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "entrySet", 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_entrySet() { 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Set<Map.Entry<Object, Object>> entrySet = a.entrySet(); 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Set<Object> keySet = new HashSet<Object>(); 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Set<Object> valueSet = new HashSet<Object>(); 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Iterator<?> i; 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, entrySet.size()); 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project i = entrySet.iterator(); 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (i.hasNext()) { 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project java.util.Map.Entry<?, ?> e; 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project e = (Map.Entry<?, ?>) i.next(); 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project keySet.add(e.getKey()); 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project valueSet.add(e.getValue()); 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("a) Should contain entry", valueSet.contains("one")); 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("b) Should contain entry", valueSet.contains("two")); 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("c) Should contain entry", valueSet.contains("three")); 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("d) Should contain entry", valueSet.contains("four")); 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("a) Should contain key", keySet 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .contains(new Attributes.Name("1"))); 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("b) Should contain key", keySet 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .contains(new Attributes.Name("2"))); 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("c) Should contain key", keySet 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .contains(new Attributes.Name("3"))); 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("d) Should contain key", keySet 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .contains(new Attributes.Name("4"))); 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#get(java.lang.Object) 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getValue", 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getLjava_lang_Object() { 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("a) Incorrect value returned", "one", a.getValue("1")); 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("b) Incorrect value returned", a.getValue("0")); 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.getValue("IllegalArgumentException expected"); 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ee) { 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#isEmpty() 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "isEmpty", 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_isEmpty() { 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Should not be empty", !a.isEmpty()); 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.clear(); 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("a) Should be empty", a.isEmpty()); 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a = new Attributes(); 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("b) Should be empty", a.isEmpty()); 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#keySet() 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "keySet", 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_keySet() { 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Set<?> s = a.keySet(); 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(4, s.size()); 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("a) Should contain entry", s.contains(new Attributes.Name( 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "1"))); 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("b) Should contain entry", s.contains(new Attributes.Name( 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "2"))); 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("c) Should contain entry", s.contains(new Attributes.Name( 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "3"))); 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("d) Should contain entry", s.contains(new Attributes.Name( 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "4"))); 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#putAll(java.util.Map) 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "putAll", 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.Map.class} 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_putAllLjava_util_Map() { 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes b = new Attributes(); 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("3", "san"); 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("4", "shi"); 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("5", "go"); 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("6", "roku"); 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putAll(b); 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Should not have been replaced", "one", a.getValue("1")); 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Should have been replaced", "san", a.getValue("3")); 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Should have been added", "go", a.getValue("5")); 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes atts = new Attributes(); 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("Assert 0: ", atts.put(Attributes.Name.CLASS_PATH, 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "tools.jar")); 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("Assert 1: ", atts 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .put(Attributes.Name.MANIFEST_VERSION, "1")); 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes atts2 = new Attributes(); 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project atts2.putAll(atts); 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Assert 2:", "tools.jar", atts2 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .get(Attributes.Name.CLASS_PATH)); 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Assert 3: ", "1", atts2 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .get(Attributes.Name.MANIFEST_VERSION)); 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project atts.putAll(Collections.EMPTY_MAP); 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Assert 4: no class cast from attrib parameter"); 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ClassCastException e) { 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#putAll(java.util.Map) 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test", 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "putAll", 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.Map.class} 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_putAllLjava_util_Map2() { 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression for HARMONY-464 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new Attributes().putAll((Map) null); 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ClassCastException expected"); 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ClassCastException e) { 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // verify that special care for null is done in the Attributes.putAll() 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // method 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new Attributes() { 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void putAll(Map<?, ?> attrib) { 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project map.putAll(attrib); 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }.putAll((Map<?, ?>) null); 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected"); 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#remove(java.lang.Object) 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "remove", 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_removeLjava_lang_Object() { 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.remove(new Attributes.Name("1")); 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.remove(new Attributes.Name("3")); 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("Should have been removed", a.getValue("1")); 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Should not have been removed", "four", a.getValue("4")); 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#size() 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "size", 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_size() { 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Incorrect size returned", 4, a.size()); 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.clear(); 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(0, a.size()); 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#values() 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "values", 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_values() { 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Collection<?> valueCollection = a.values(); 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("a) Should contain entry", valueCollection.contains("one")); 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("b) Should contain entry", valueCollection.contains("two")); 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("c) Should contain entry", valueCollection.contains("three")); 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("d) Should contain entry", valueCollection.contains("four")); 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#clone() 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "clone", 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_clone() { 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes a2 = (Attributes) a.clone(); 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(a, a2); 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a.putValue("1", "one(1)"); 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("equal", !a.equals(a2)); 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes#equals(java.lang.Object) 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "equals", 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_equalsLjava_lang_Object() { 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes.Name n1 = new Attributes.Name("name"), n2 = new Attributes.Name( 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Name"); 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(n1, n2); 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes a1 = new Attributes(); 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a1.putValue("one", "1"); 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a1.putValue("two", "2"); 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes a2 = new Attributes(); 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a2.putValue("One", "1"); 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project a2.putValue("TWO", "2"); 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(a1, a2); 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes.put(java.lang.Object, java.lang.Object) 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test. Checks ClassCastException", 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "put", 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, java.lang.Object.class} 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_putLjava_lang_ObjectLjava_lang_Object() { 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes atts = new Attributes(); 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("Assert 0: ", atts.put(Attributes.Name.CLASS_PATH, 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "tools.jar")); 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Assert 1: ", "tools.jar", atts 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getValue(Attributes.Name.CLASS_PATH)); 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression for HARMONY-79 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project atts.put("not a name", "value"); 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Assert 2: no class cast from key parameter"); 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ClassCastException e) { 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project atts.put(Attributes.Name.CLASS_PATH, Boolean.TRUE); 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Assert 3: no class cast from value parameter"); 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ClassCastException e) { 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.jar.Attributes.put(java.lang.Object, java.lang.Object) 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "ClassCastException checking missed.", 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "put", 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class, java.lang.Object.class} 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_putLjava_lang_ObjectLjava_lang_Object_Null() { 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes attribute = new Attributes(); 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(attribute.containsKey(null)); 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(attribute.containsValue(null)); 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project attribute.put(null, null); 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project attribute.put(null, null); 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, attribute.size()); 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(attribute.containsKey(null)); 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(attribute.containsValue(null)); 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(attribute.get(null)); 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String value = "It's null"; 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project attribute.put(null, value); 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(1, attribute.size()); 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(value, attribute.get(null)); 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes.Name name = new Attributes.Name("null"); 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project attribute.put(name, null); 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(2, attribute.size()); 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(attribute.get(name)); 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 424407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson /** 425407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson * @tests java.util.jar.Attributes.hashCode() 426407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson */ 427407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson @TestTargetNew( 428407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson level = TestLevel.PARTIAL_COMPLETE, 429407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson notes = "", 430407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson method = "hashCode", 431407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson args = {} 432407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson ) 433407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson public void test_hashCode_consistent_with_map() { 434407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson MockAttributes mockAttr = new MockAttributes(); 435407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson mockAttr.putValue("1", "one"); 436407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson assertEquals(mockAttr.getMap().hashCode(), mockAttr.hashCode()); 437407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson } 438407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson 439407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson private static class MockAttributes extends Attributes { 440407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson public Map<Object, Object> getMap() { 441407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson return map; 442407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson } 443407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson } 444407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Attributes", 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor() { 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes attr = new Attributes(); 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(attr.size() >= 0); 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Attributes", 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorI() { 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes attr = new Attributes(10); 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(attr.size() >= 0); 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "get", 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getLjava_lang_Object_true() { 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("a) Incorrect value returned", "one", a 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .get(new Attributes.Name("1"))); 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("b) Incorrect value returned", a.get("0")); 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("b) Incorrect value returned", a.get("1")); 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getValue", 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.jar.Attributes.Name.class} 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getValueLjava_util_jar_Attributes_Name() { 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("a) Incorrect value returned", "one", a 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getValue(new Attributes.Name("1"))); 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("b) Incorrect value returned", a 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getValue(new Attributes.Name("0"))); 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 494407a2013b289b6b0e860b4275671b7b0194c42fcJesse Wilson level = TestLevel.PARTIAL_COMPLETE, 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hashCode", 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hashCode() { 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes b = (Attributes) a.clone(); 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("33", "Thirty three"); 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotSame(a.hashCode(), b.hashCode()); 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b = (Attributes) a.clone(); 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.clear(); 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotSame(a.hashCode(), b.hashCode()); 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "putValue", 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class, java.lang.String.class} 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_putValueLjava_lang_StringLjava_lang_String() { 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes b = new Attributes(); 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.put(new Attributes.Name("1"), "one"); 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("2", "two"); 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.put(new Attributes.Name("3"), "three"); 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue("4", "four"); 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(a.equals(b)); 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue(null, "null"); 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected"); 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ee) { 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project StringBuffer sb = new StringBuffer(); 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 0x10000; i++) { 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sb.append('3'); 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project b.putValue(new String(sb), "wrong name"); 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected"); 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException ee) { 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 542